[PULL][Xenial] Update for third party Redpine Wifi-BT and Exar USB UART drivers
Shrirang Bagul
shrirang.bagul at canonical.com
Sat Apr 22 10:53:11 UTC 2017
On Fri, 2017-04-21 at 19:32 +0100, Colin Ian King wrote:
> On 21/04/17 15:50, Shrirang Bagul wrote:
> >
> >
> > On Fri, Apr 21, 2017 at 6:43 PM, Stefan Bader
> > <stefan.bader at canonical.com <mailto:stefan.bader at canonical.com>> wrote:
> >
> > On 21.04.2017 11 <tel:21.04.2017%2011>:12, Shrirang Bagul wrote:
> > > git://kernel.ubuntu.com/snb/ubuntu-xenial.git
> > <http://kernel.ubuntu.com/snb/ubuntu-xenial.git> caracalla-kt-for-arev
> >
> > I really don't understand what the changes to
> > drivers/mmc/host/sdhci.c should
> > accomplish:
> >
> > @@ -1745,9 +1746,18 @@ static void sdhci_enable_sdio_irq_nolock(struct
> > sdhci_host *host, int enable)
> > static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable)
> > {
> > struct sdhci_host *host = mmc_priv(mmc);
> > + struct pci_dev *pci_host;
> > unsigned long flags;
> >
> > - sdhci_runtime_pm_get(host);
> > + pci_host = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID,
> > + 0x1028, 0x07b9, NULL);
> > +
> > + if (!pci_host)
> > + sdhci_runtime_pm_get(host);
> > + else {
> > + if (enable)
> > + sdhci_runtime_pm_get(host);
> > + }
> >
> > spin_lock_irqsave(&host->lock, flags);
> > if (enable)
> >
> > So pci_host set to a value means this is the gw and NULL for
> > anything else. At
> > least for everything else the behaviour is not changed. Only for the
> > IOT device
> > the reference (assuming that is what pm_get/put do) is kept between
> > enabling the
> > IRQ until disabling it (while otherwise it is kept only while
> > modifying the state).
> > On the positive side it should not cause regressions for everything
> > else but
> > while not seeing any additional protection for that case, then why
> > change it at all?
> >
> > -Stefan
> >
> >
> > The patch is targeted to be applied only for specific models of Dell IoT
> > gateways which use
> > Intel Baytrail-I processors. This patch [1] is required to support SDIO
> > IRQ's on Baytrail [2].
> > Because this project will eventually go through a de-branding /
> > re-branding process, quirks
> > based on DMI strings cannot be used to uniquely identify the hardware.
> > Hence, the use
> > of PCI host sub-system ID [3] to get runtime pm when sdio IRQ is enabled.
> >
> > [1] https://git.congatec.com/arm/qmx6_kernel/commit/2ced65a11885ea84c6d3cd2ec8832
> > d489bb0c3f7
> > [2] http://www.spinics.net/lists/linux-mmc/msg41440.html
> > [3] Inspired from :
> > http://kernel.ubuntu.com/git/ubuntu/ubuntu-xenial.git/commit/?id=38a6598a75d76b66
> > 25fca0972cd463fe56cab368
> >
> > -Shrirang
>
>
> OK, thanks for the explanation. I can understand now why the keying on
> the Dell IoT gateway is not based on a DMI check. Will the PCI IDs of
> the system change in the future with different models?
No. The PCI IDs on all SKU's of this product will not change.
-Shrirang
>
> As for the this patch, it does not appear to change the behaviour for
> systems other than the one that has that specific PCI IDs.
>
> Colin.
>
> >
> >
> >
> > @@ -1758,7 +1768,12 @@ static void sdhci_enable_sdio_irq(struct
> > mmc_host *mmc,
> > int enable)
> > sdhci_enable_sdio_irq_nolock(host, enable);
> > spin_unlock_irqrestore(&host->lock, flags);
> >
> > - sdhci_runtime_pm_put(host);
> > + if (!pci_host)
> > + sdhci_runtime_pm_put(host);
> > + else {
> > + if (!enable)
> > + sdhci_runtime_pm_put(host);
> > + }
> > }
> >
> > static int sdhci_do_start_signal_voltage_switch(struct sdhci_host
> > *host,
> >
> >
>
>
More information about the kernel-team
mailing list