Re: [RFC 2/2] mmc: sdhci-pci: Use ACPI to get max frequency for Intel byt sdio host controller sub-vended by NI

From: Julia Cartwright
Date: Fri Nov 11 2016 - 14:49:58 EST


On Wed, Nov 09, 2016 at 10:08:29AM -0600, Zach Brown wrote:
> On Wed, Nov 09, 2016 at 03:24:24PM +0200, Adrian Hunter wrote:
> > On 08/11/16 22:07, Zach Brown wrote:
> > > On NI 9037 boards the max SDIO frequency is limited by trace lengths
> > > and other layout choices. The max SDIO frequency is stored in an ACPI
> > > table, as MXFQ.
> > >
> > > The driver reads the ACPI entry MXFQ during sdio_probe_slot and sets the
> > > f_max field of the host with it.
> > >
> > > Signed-off-by: Nathan Sullivan <nathan.sullivan@xxxxxx>
> > > Reviewed-by: Jaeden Amero <jaeden.amero@xxxxxx>
> > > Reviewed-by: Josh Cartwright <joshc@xxxxxx>
> > > Signed-off-by: Zach Brown <zach.brown@xxxxxx>
[..]
> > > static int ni_byt_sdio_probe_slot(struct sdhci_pci_slot *slot)
> > > {
> > > +#ifdef CONFIG_ACPI
> > > + /* Get max freq from ACPI for NI hardware */
> > > + acpi_handle acpi_hdl;
> > > + acpi_status status;
> > > + struct acpi_buffer acpi_result = {
> > > + ACPI_ALLOCATE_BUFFER, NULL };
> > > + union acpi_object *acpi_buffer;
> > > + int max_freq;
> > > +
> > > + status = acpi_get_handle(ACPI_HANDLE(&slot->chip->pdev->dev), "MXFQ",
> > > + &acpi_hdl);
> >
> > Is "MXFQ" an object that has already been deployed or are you inventing it
> > now? In the latter case, did you consider device properties as an alternative?
> >
> "MXFQ" is an object that we have already deployed on some of our devices.

Unfortunately, the whole ACPI device properties table discussion was
just starting at the point where we were putting the firmware together
for these devices :(. Had we engineered the firmware today, we would
certainly have looked at using it.

Thanks,
Julia