[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