This patch series parse remaining port info from device tree storing it in mt7621_pcie_port struct created for this. It also performs a lot of cleanups to get the driver in a good shape to give it a try to get mainlined. All of this changes are only compile-tested. Cleanups performed here: - Style cleanups. - Use PERST_N instead of GPIO control. - Remove not used macros. - Use kernel reset_control functions. - Remove unused code. Changes in v6: - PATCHES 18-33 added: * Review defines and macros and create some news to get code more readable. * Avoid globals. * Factor out new 'mt7621_pcie_enable_port' and 'mt7621_pcie_enable_ports' functions. * Use PERST_N instead of GPIO control. * Use msleep instead of mdelay. - Rebased onto staging-next Changes in v5: - Patch 18 removed from the series. Already submited by Mamta Shukla (also applied) - Rebased onto staging-next Changes in v4: - Some patches of this series was previously added to staging. - Rebased onto staging-next. Changes in v3: - 'mt7621_pcie_enable_port' now returns an error instead of void to avoid a layering violation. - Delete 'mt7621_pcie_port_free' function and just delete port from the list in probe function. - Use parent node to get base address registers for each port. Changes in v2: - Rewrite phy part of the driver - fix some checkpatch complains - make use of sysctl from DT Hope this helps. Best regards, Sergio Paracuellos Sergio Paracuellos (33): staging: mt7621-pci: parse and init port data from device tree staging: mt7621-pci: replace return value if devm_pci_alloc_host_bridge call fails staging: mt7621-pci: add two helpers for read and write pcie register ports staging: mt7621-pci: factor out 'mt7621_pcie_enable_port' function staging: mt7621-pci: remove [ASSERT|DEASSERT]_SYSRST_PCIE macros staging: mt7621-pci: remove GPL2+ text from license header staging: mt7621-pci: remove two commented code lines staging: mt7621-pci: remove reset related unused macros staging: mt7621-pci: reagroup reset related macros all together staging: mt7621-pci: rewrite pcie phy related functions staging: mt7621-pci: factor out 'mt7621_enable_phy' function staging: mt7621-pci: debug port N_FTS inside 'mt7621_pcie_enable_port' staging: mt7621-pci: rename 'mt7621_pcie_enable_port' into 'mt7621_pcie_init_port' staging: mt7621-dts: add sysctl registers base address to pcie staging: mt7621-pci: remap and use sysctl from device tree staging: mt7621-pci: use a trailing */ on a separate line staging: mt7621-pci: use dev_* functions instead of printk staging: mt7621-pci: factor out 'mt7621_pcie_enable_ports' function staging: mt7621-pci: avoid use of global variable 'pcie_link_status' staging: mt7621-pci: factor out 'mt7621_pcie_init_ports' function staging: mt7621-pci: remove unused preprocessor definitions staging: mt7621-pci: reorder preprocessor definitions staging: mt7621-pci: remove non sense comment staging: mt7621-pci: align function definition style along the code staging: mt7621-pci: rewrite RC FTS configuration staging: mt7621-pci: rewrite hardcoded code for enabling ports staging: mt7621-pci: add some definitions for enabling and disabling GEN and GEN1 clocks staging: mt7621-pci: use PERST_N instead of gpio control staging: mt7621-pci: use PCIE_PORT_LINKUP instead of hardcode value staging: mt7621-pci: enable interrupt when port is being enabled staging: mt7621-pci: factor out 'mt7621_pcie_enable_port' function staging: mt7621-pci: move some code into 'mt7621_pcie_init_ports' staging: mt7621-pci: replace 'mdelay()' with 'msleep()' drivers/staging/mt7621-dts/mt7621.dtsi | 4 +- drivers/staging/mt7621-pci/pci-mt7621.c | 927 +++++++++++++++++++------------- 2 files changed, 558 insertions(+), 373 deletions(-) -- 2.7.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel