* Re: [v4,3/3] mwifiex: Enable WoWLAN for both sdio and pcie [not found] ` <595A207D.3000804-TNX95d0MmH7DzftRWevZcw@public.gmane.org> @ 2017-07-07 0:53 ` Brian Norris [not found] ` <20170707005302.GA17921-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 3+ messages in thread From: Brian Norris @ 2017-07-07 0:53 UTC (permalink / raw) To: jeffy Cc: Amitkumar Karwar, linux-wireless-u79uwXL29TY76Z2rM5mHXA, Cathy Luo, Nishant Sarmukadam, rajatja-hpIqsD4AKlfQT0dZR+AlfA, dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w, Bjorn Helgaas, Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA On Mon, Jul 03, 2017 at 06:46:21PM +0800, Jeffy Chen wrote: > Hi guys, > > with this patch, the pci device's irq might be override by this > wakeup irq when not using msi: Hmm, good point. I believe I noticed this one at some point and then didn't get to investigate further... It kind of seems like we inadvertently conflicted with the PCI OF interrupt spec [1]. There, the "interrupts" property for a device (if present) is supposed to represent INT{A...D} with values of {1...4}. IIUC, there should only be a single entry in this property. If we were to extend this properly, I guess that would mean we'd need a second "interrupts" entry, with a different parent. I think we can use "interrupts-extended" for that. So we'd need to document an optional "interrupt-names" for Marvell, and have the driver try that first. The rough outline would be something like this. For the device tree (e.g., rk3399-gru): - interrupt-parent = <&gpio0>; - interrupts = <8 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&pcie0 1>, <&gpio0 8 IRQ_TYPE_LEVEL_LOW>; + interrupt-names = "int-A", "wake"; Then mwifiex would need to check "byname" before trying "by index": adapter->irq_wakeup = of_irq_get_byname(adapter->dt_node, "wake"); if (!adapter->irq_wakeup) { adapter->irq_wakeup = irq_of_parse_and_map(adapter->dt_node, 0); if (!adapter->irq_wakeup) { dev_dbg(dev, "fail to parse irq_wakeup from device tree\n"); goto err_exit; } } Or if we want to suggest the original binding was wrong and that we should just ignore existing device trees that tried to use it, we can skip the by-index fallback. Brian [1] Documentation/devicetree/bindings/pci/pci.txt points to http://www.firmware.org/1275/practice/imap/imap0_9d.pdf except that link is also dead now. I found the same doc here: https://www.openfirmware.info/data/docs/rec.intmap.d09.pdf Might want to update the binding doc... I've sent a patch for that separately. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <20170707005302.GA17921-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>]
* Re: [v4,3/3] mwifiex: Enable WoWLAN for both sdio and pcie [not found] ` <20170707005302.GA17921-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> @ 2017-07-07 3:04 ` jeffy [not found] ` <595EFA40.1080405-TNX95d0MmH7DzftRWevZcw@public.gmane.org> 0 siblings, 1 reply; 3+ messages in thread From: jeffy @ 2017-07-07 3:04 UTC (permalink / raw) To: Brian Norris Cc: Amitkumar Karwar, linux-wireless-u79uwXL29TY76Z2rM5mHXA, Cathy Luo, Nishant Sarmukadam, rajatja-hpIqsD4AKlfQT0dZR+AlfA, dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w, Bjorn Helgaas, Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA Hi brian, On 07/07/2017 08:53 AM, Brian Norris wrote: > On Mon, Jul 03, 2017 at 06:46:21PM +0800, Jeffy Chen wrote: >> Hi guys, >> >> with this patch, the pci device's irq might be override by this >> wakeup irq when not using msi: > > Hmm, good point. I believe I noticed this one at some point and then > didn't get to investigate further... > > It kind of seems like we inadvertently conflicted with the PCI OF > interrupt spec [1]. There, the "interrupts" property for a device (if > present) is supposed to represent INT{A...D} with values of {1...4}. > IIUC, there should only be a single entry in this property. > > If we were to extend this properly, I guess that would mean we'd need a > second "interrupts" entry, with a different parent. I think we can use > "interrupts-extended" for that. > > So we'd need to document an optional "interrupt-names" for Marvell, and > have the driver try that first. The rough outline would be something > like this. > > For the device tree (e.g., rk3399-gru): > > - interrupt-parent = <&gpio0>; > - interrupts = <8 IRQ_TYPE_LEVEL_LOW>; > + interrupts-extended = <&pcie0 1>, <&gpio0 8 IRQ_TYPE_LEVEL_LOW>; > + interrupt-names = "int-A", "wake"; This is a great idea. And how about also add a property to tell of_pci_irq to ignore of irq and force using PCI_INTERRUPT_PIN? Since there might be devices don't use pci irq, but using other irq(wowlan for example). Then we can specify this property and add a name("wake") to the wifi wake irq here. And interrupts-extended would still be an available option. > > Then mwifiex would need to check "byname" before trying "by index": > > adapter->irq_wakeup = of_irq_get_byname(adapter->dt_node, "wake"); > if (!adapter->irq_wakeup) { > adapter->irq_wakeup = irq_of_parse_and_map(adapter->dt_node, 0); > if (!adapter->irq_wakeup) { > dev_dbg(dev, "fail to parse irq_wakeup from device tree\n"); > goto err_exit; > } > } > > Or if we want to suggest the original binding was wrong and that we > should just ignore existing device trees that tried to use it, we can > skip the by-index fallback. > > Brian > > [1] Documentation/devicetree/bindings/pci/pci.txt points to > http://www.firmware.org/1275/practice/imap/imap0_9d.pdf > except that link is also dead now. I found the same doc here: > https://www.openfirmware.info/data/docs/rec.intmap.d09.pdf > Might want to update the binding doc... I've sent a patch for that > separately. > > > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <595EFA40.1080405-TNX95d0MmH7DzftRWevZcw@public.gmane.org>]
* Re: [v4,3/3] mwifiex: Enable WoWLAN for both sdio and pcie [not found] ` <595EFA40.1080405-TNX95d0MmH7DzftRWevZcw@public.gmane.org> @ 2017-07-10 22:31 ` Brian Norris 0 siblings, 0 replies; 3+ messages in thread From: Brian Norris @ 2017-07-10 22:31 UTC (permalink / raw) To: jeffy Cc: Amitkumar Karwar, Cathy Luo, Nishant Sarmukadam, rajatja-hpIqsD4AKlfQT0dZR+AlfA, dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w, Bjorn Helgaas, Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-pci-u79uwXL29TY76Z2rM5mHXA + linux-pci - linux-wireless On Fri, Jul 07, 2017 at 11:04:32AM +0800, Jeffy Chen wrote: > On 07/07/2017 08:53 AM, Brian Norris wrote: > >It kind of seems like we inadvertently conflicted with the PCI OF > >interrupt spec [1]. There, the "interrupts" property for a device (if > >present) is supposed to represent INT{A...D} with values of {1...4}. > >IIUC, there should only be a single entry in this property. > > > >If we were to extend this properly, I guess that would mean we'd need a > >second "interrupts" entry, with a different parent. I think we can use > >"interrupts-extended" for that. > > > >So we'd need to document an optional "interrupt-names" for Marvell, and > >have the driver try that first. The rough outline would be something > >like this. > > > >For the device tree (e.g., rk3399-gru): > > > >- interrupt-parent = <&gpio0>; > >- interrupts = <8 IRQ_TYPE_LEVEL_LOW>; > >+ interrupts-extended = <&pcie0 1>, <&gpio0 8 IRQ_TYPE_LEVEL_LOW>; > >+ interrupt-names = "int-A", "wake"; > This is a great idea. > > And how about also add a property to tell of_pci_irq to ignore of > irq and force using PCI_INTERRUPT_PIN? Since there might be devices > don't use pci irq, but using other irq(wowlan for example). Even if they don't use the PCI IRQ, is there a way to provide an empty / un-mapped entry? I'm a little wary on trying to "extend" (which can sometimes be read "break") the device tree spec here too much more. But perhaps DT or PCI folks have a better recommendation (if they can hold their noses long enough). > Then we can specify this property and add a name("wake") to the wifi > wake irq here. And interrupts-extended would still be an available > option. Brian -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-07-10 22:31 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1479216964-3328-3-git-send-email-akarwar@marvell.com> [not found] ` <595A207D.3000804@rock-chips.com> [not found] ` <595A207D.3000804-TNX95d0MmH7DzftRWevZcw@public.gmane.org> 2017-07-07 0:53 ` [v4,3/3] mwifiex: Enable WoWLAN for both sdio and pcie Brian Norris [not found] ` <20170707005302.GA17921-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> 2017-07-07 3:04 ` jeffy [not found] ` <595EFA40.1080405-TNX95d0MmH7DzftRWevZcw@public.gmane.org> 2017-07-10 22:31 ` Brian Norris
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).