Message ID | 1516208146-4144-1-git-send-email-mw@semihalf.com |
---|---|
Headers | show |
Series | Armada 7k/8k PP2 ACPI support | expand |
On Wed, Jan 17, 2018 at 05:55:39PM +0100, Marcin Wojtas wrote: > Hi, > > This is a third version of the patchset introducing mvpp2 driver ability > to operate with ACPI. Until follow-up generic MDIO is introduced > it can using the link interrupt capability (a.k.a. in-band management) > on all ports, 1000BaseT RGMII included. > Driver operation was tested on top of the net-next branch > with both DT and ACPI on MacchiatoBin and Armada 7040 DB boards. > > The main changes were requested during v2 review, which was > adding generic helper routines for: > * interating over available fwnodes (new patch 4/7) > * getting IRQ directly from fwnode (new patch 3/7) Hi Marcin Thanks for adding these helpers. It makes the changes for ACPI much less invasive and more natural. Does the IRQ helper solve the issue of getting an interrupt from a child node? I don't see this explicitly mentioned in the commit. It seems to be getting it from a device. Is the child a device? Thanks Andrew
Hi Andrew, 2018-01-17 19:11 GMT+01:00 Andrew Lunn <andrew@lunn.ch>: > On Wed, Jan 17, 2018 at 05:55:39PM +0100, Marcin Wojtas wrote: >> Hi, >> >> This is a third version of the patchset introducing mvpp2 driver ability >> to operate with ACPI. Until follow-up generic MDIO is introduced >> it can using the link interrupt capability (a.k.a. in-band management) >> on all ports, 1000BaseT RGMII included. >> Driver operation was tested on top of the net-next branch >> with both DT and ACPI on MacchiatoBin and Armada 7040 DB boards. >> >> The main changes were requested during v2 review, which was >> adding generic helper routines for: >> * interating over available fwnodes (new patch 4/7) >> * getting IRQ directly from fwnode (new patch 3/7) > > Hi Marcin > > Thanks for adding these helpers. It makes the changes for ACPI much > less invasive and more natural. > > Does the IRQ helper solve the issue of getting an interrupt from a > child node? I don't see this explicitly mentioned in the commit. It > seems to be getting it from a device. Is the child a device? > I didn't use word 'child', but this is what exactly what the new helper is capable of. Hence this should easily fit PHY IRQs, regardless shape of their final ACPI representation. It's now enough to have an ACPI handle with IRQ defined in its own _CRS method - it does not have to be a parent / platform_device. For the reference, please check the IRQs defined under ETHx subnodes of the PP2 controllers nodes on MacchiatoBin: https://github.com/MarvellEmbeddedProcessors/edk2-open-platform/blob/71ae395da1661374b0f07d1602afb1eee56e9794/Platforms/Marvell/Armada/AcpiTables/Armada80x0McBin/Dsdt.asl#L201 Best regards, Marcin
On Wed, Jan 17, 2018 at 05:55:39PM +0100, Marcin Wojtas wrote: > Hi, > > This is a third version of the patchset introducing mvpp2 driver ability > to operate with ACPI. Until follow-up generic MDIO is introduced > it can using the link interrupt capability (a.k.a. in-band management) > on all ports, 1000BaseT RGMII included. > Driver operation was tested on top of the net-next branch > with both DT and ACPI on MacchiatoBin and Armada 7040 DB boards. > > The main changes were requested during v2 review, which was > adding generic helper routines for: > * interating over available fwnodes (new patch 4/7) > * getting IRQ directly from fwnode (new patch 3/7) > Thanks to the latter the driver code could be simplified > and allowed to drop formula-based IRQ obtaining. Changes are > summarized in the changelog below. Hi Marcin I don't know enough about ACPI to make a proper review of the changes. But it does at least all look sensible. Andrew
On Wed, Jan 17, 2018 at 05:55:39PM +0100, Marcin Wojtas wrote: > Hi, > > This is a third version of the patchset introducing mvpp2 driver ability > to operate with ACPI. Until follow-up generic MDIO is introduced > it can using the link interrupt capability (a.k.a. in-band management) > on all ports, 1000BaseT RGMII included. > Driver operation was tested on top of the net-next branch > with both DT and ACPI on MacchiatoBin and Armada 7040 DB boards. > > The main changes were requested during v2 review, which was > adding generic helper routines for: > * interating over available fwnodes (new patch 4/7) > * getting IRQ directly from fwnode (new patch 3/7) > Thanks to the latter the driver code could be simplified > and allowed to drop formula-based IRQ obtaining. Changes are > summarized in the changelog below. > > mvpp2 driver can work with the ACPI representation, as exposed > on a public branch: > https://github.com/MarvellEmbeddedProcessors/edk2-open-platform/commits/marvell-armada-wip > It was compiled together with the most recent Tianocore EDK2 revision. > Please refer to the firmware build instruction on MacchiatoBin board: > http://wiki.macchiatobin.net/tiki-index.php?page=Build+from+source+-+UEFI+EDK+II > > ACPI representation of PP2 controllers (withouth PHY support) can > be viewed in the github: > * MacchiatoBin: > https://github.com/MarvellEmbeddedProcessors/edk2-open-platform/blob/71ae395da1661374b0f07d1602afb1eee56e9794/Platforms/Marvell/Armada/AcpiTables/Armada80x0McBin/Dsdt.asl#L201 > > * Armada 7040 DB: > https://github.com/MarvellEmbeddedProcessors/edk2-open-platform/blob/71ae395da1661374b0f07d1602afb1eee56e9794/Platforms/Marvell/Armada/AcpiTables/Armada70x0/Dsdt.asl#L131 > > I will appreciate any comments or remarks. > Nice work, this looks pretty neat to me, for series. Reviewed-by: Graeme Gregory <graeme.gregory@linaro.org> Thanks Graeme > Best regards, > Marcin > > Changelog: > v2 -> v3: > * 1/7, 2/7 > - Add Rafael's Acked-by's > * 3/7, 4/7 > - New patches > * 6/7, 7/7 > - Update driver with new helper routines usage > - Improve commit log. > > v1 -> v2: > * Remove MDIO patches > * Use PP2 ports only with link interrupts > * Release second region resources in mvpp2 driver (code moved from > mvmdio), as explained in details in 5/5 commit message. > > > Marcin Wojtas (7): > device property: Introduce fwnode_get_mac_address() > device property: Introduce fwnode_get_phy_mode() > device property: Introduce fwnode_irq_get() > device property: Allow iterating over available child fwnodes > net: mvpp2: simplify maintaining enabled ports' list > net: mvpp2: use device_*/fwnode_* APIs instead of of_* > net: mvpp2: enable ACPI support in the driver > > drivers/base/property.c | 105 ++++++++-- > drivers/net/ethernet/marvell/mvpp2.c | 206 ++++++++++++-------- > include/linux/property.h | 11 ++ > 3 files changed, 230 insertions(+), 92 deletions(-) > > -- > 2.7.4 >