PCI: rcar: Recent driver patches from Ben Dooks and me
Subsystems (3)
Magnus Damm
maintainercover PCI: rcar: Recent driver patches from Ben Dooks and me
PCI: rcar: Recent driver patches from Ben Dooks and me
[PATCH 01/08] PCI: rcar: check platform_get_irq() return code [PATCH v2 02/08] PCI: rcar: add error interrupt handling [PATCH 03/08] PCI: rcar: fix bridge logic configuration accesses [PATCH v2 04/08] PCI: rcar: Register each instance independently [PATCH v2 05/08] PCI: rcar: Break out window size handling [PATCH v2 06/08] PCI: rcar: Add DMABOUNCE support
[PATCH 07/08] PCI: rcar: Enable BOUNCE in case of HIGHMEM [PATCH 08/08] PCI: rcar: Make the Kconfig dependencies more generic
These patches update the pci-rcar-gen2.c driver with patches from Ben Dooks and me. The first 3 are written by Ben (thanks!) and are included here to show what I would like to have merged and what I rebased my patches on. The following 4 are updated versions of
[PATCH 00/04] PCI: rcar: Driver model and physical address space update
The final patch is a new one that fixes up the Kconfig dependencies.
Patch 1-3:
Patch 4-8:
---
Written against renesas.git tag renesas-devel-v3.14-rc1-20140207
drivers/pci/host/Kconfig | 5 drivers/pci/host/pci-rcar-gen2.c | 445 ++++++++++++++++++++++++++++++++------ 2 files changed, 385 insertions(+), 65 deletions(-)
Magnus Damm
maintainerPATCH 1/8 PCI: rcar: check platform_get_irq() return code
From: Ben Dooks <[email protected]>
The current code does not check the return from platform_get_irq() so add an error check and return if this call does fail.
---
drivers/pci/host/pci-rcar-gen2.c | 5 +++++ 1 file changed, 5 insertions(+)
drivers/pci/host/pci-rcar-gen2.c +5 -0
@@ -308,6 +308,11 @@ static int __init rcar_pci_probe(struct priv->reg = reg; priv->dev = &pdev->dev; +if (priv->irq <0 ) { +dev_err (&pdev->dev,"no valid irq found\n" ); +return priv->irq; + } +return rcar_pci_add_controller (priv); }
Magnus Damm
maintainerPATCH v2 2/8 PCI: rcar: add error interrupt handling
In reply to Magnus DammFrom: Ben Dooks <[email protected]>
Add option to enable interrupts to report any errors from the AHB-PCI bridge to help find any issues with the bridge when in use.
---
v2:
- removed kconfig entry and use CONFIG_PCI_DEBUG
- check for irq > 0 before trying to attach irq
drivers/pci/host/pci-rcar-gen2.c | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+)
drivers/pci/host/pci-rcar-gen2.c +60 -0
@@ -39,9 +39,26 @@#define RCAR_PCI_INT_ENABLE_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x20)#define RCAR_PCI_INT_STATUS_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x24) +#define RCAR_PCI_INT_SIGTABORT (1 << 0) +#define RCAR_PCI_INT_SIGRETABORT (1 << 1) +#define RCAR_PCI_INT_REMABORT (1 << 2) +#define RCAR_PCI_INT_PERR (1 << 3) +#define RCAR_PCI_INT_SIGSERR (1 << 4) +#define RCAR_PCI_INT_RESERR (1 << 5) +#define RCAR_PCI_INT_WIN1ERR (1 << 12) +#define RCAR_PCI_INT_WIN2ERR (1 << 13)#define RCAR_PCI_INT_A (1 << 16)#define RCAR_PCI_INT_B (1 << 17)#define RCAR_PCI_INT_PME (1 << 19) +#define RCAR_PCI_INT_ALLERRORS (RCAR_PCI_INT_SIGTABORT | \ + RCAR_PCI_INT_SIGRETABORT | \ + RCAR_PCI_INT_SIGRETABORT | \ + RCAR_PCI_INT_REMABORT | \ + RCAR_PCI_INT_PERR | \ + RCAR_PCI_INT_SIGSERR | \ + RCAR_PCI_INT_RESERR | \ + RCAR_PCI_INT_WIN1ERR | \ + RCAR_PCI_INT_WIN2ERR)#define RCAR_AHB_BUS_CTR_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x30)#define RCAR_AHB_BUS_MMODE_HTRANS (1 << 0)
@@ -164,6 +181,46 @@ static int __init rcar_pci_map_irq(constreturn priv->irq; } +#ifdef CONFIG_PCI_DEBUG +/* if debug enabled, then attach an error handler irq to the bridge */ + +static irqreturn_t rcar_pci_err_irq (int irq,void *pw) +{ +struct rcar_pci_priv *priv = pw; +u32 status =ioread32 (priv->reg +RCAR_PCI_INT_STATUS_REG ); + +if (status &RCAR_PCI_INT_ALLERRORS ) { +dev_err (priv->dev,"error irq: status %08x\n" , status); + +/* clear the error(s) */ +iowrite32 (status &RCAR_PCI_INT_ALLERRORS , + priv->reg +RCAR_PCI_INT_STATUS_REG ); +return IRQ_HANDLED ; + } + +return IRQ_NONE ; +} + +static void rcar_pci_setup_errirq (struct rcar_pci_priv *priv) +{ +int ret; +u32 val; + + ret =devm_request_irq (priv->dev, priv->irq, rcar_pci_err_irq, +IRQF_SHARED ,"error irq" , priv); +if (ret) { +dev_err (priv->dev,"cannot claim IRQ for error handling\n" ); +return ; + } + + val =ioread32 (priv->reg +RCAR_PCI_INT_ENABLE_REG ); + val |=RCAR_PCI_INT_ALLERRORS ; +iowrite32 (val, priv->reg +RCAR_PCI_INT_ENABLE_REG ); +} +#else +static inline void rcar_pci_setup_errirq (struct rcar_pci_priv *priv) { } +#endif +/* PCI host controller setup */ static int __init rcar_pci_setup (int nr,struct pci_sys_data *sys) {
@@ -224,6 +281,9 @@ static int __init rcar_pci_setup(int nr,iowrite32 (RCAR_PCI_INT_A |RCAR_PCI_INT_B |RCAR_PCI_INT_PME , reg +RCAR_PCI_INT_ENABLE_REG ); +if (priv->irq >0 ) +rcar_pci_setup_errirq (priv); +/* Add PCI resources */ pci_add_resource (&sys->resources, &priv->io_res);pci_add_resource (&sys->resources, &priv->mem_res);
Magnus Damm
maintainerPATCH 3/8 PCI: rcar: fix bridge logic configuration accesses
In reply to Magnus DammFrom: Ben Dooks <[email protected]>
The bridge logic at slot 0 only supports reads up to 0x40 and the rest of the PCI configuration space for this slot is marked as reserved in the manual.
Trying a read from offset 0x100 is producing an error from the bridge. With error interrupts enabled, the following is printed:
pci-rcar-gen2 ee0d0000.pci: error irq: status 00000014
---
drivers/pci/host/pci-rcar-gen2.c | 4 ++++ 1 file changed, 4 insertions(+)
drivers/pci/host/pci-rcar-gen2.c +4 -0
@@ -119,6 +119,10 @@ static void __iomem *rcar_pci_cfg_base(sif (slot >2 )return NULL ; +/* bridge logic only has registers to 0x40 */ +if (slot ==0x0 && where >=0x40 ) +return NULL ; + val = slot ?RCAR_AHBPCI_WIN1_DEVICE |RCAR_AHBPCI_WIN_CTR_CFG :RCAR_AHBPCI_WIN1_HOST |RCAR_AHBPCI_WIN_CTR_CFG ;
Magnus Damm
maintainerPATCH v2 4/8 PCI: rcar: Register each instance independently
In reply to Magnus DammFrom: Magnus Damm <[email protected]>
Convert the code to allow per-device probe() like other device drivers. This also delays driver registration due to change from subsys_initcall() to regular module_platform_driver().
---
Changes since V1:
- Updated to fit on top of patches from Ben Dooks
- Use hw_private[1] for hw.private_data, thanks Geert!
- Use ARRAY_SIZE with hw_private for hw.nr_controllers
drivers/pci/host/pci-rcar-gen2.c | 76 +++++++++----------------------------- 1 file changed, 18 insertions(+), 58 deletions(-)
drivers/pci/host/pci-rcar-gen2.c +18 -58
@@ -91,9 +91,6 @@#define RCAR_PCI_UNIT_REV_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x48) -/* Number of internal PCI controllers */ -#define RCAR_PCI_NR_CONTROLLERS 3 -struct rcar_pci_priv {struct device *dev;void __iomem *reg;
@@ -292,6 +289,8 @@ static int __init rcar_pci_setup(int nr,pci_add_resource (&sys->resources, &priv->io_res);pci_add_resource (&sys->resources, &priv->mem_res); +/* Setup bus number based on platform device id */ + sys->busnr =to_platform_device (priv->dev)->id;return 1 ; }
@@ -300,48 +299,13 @@ static struct pci_ops rcar_pci_ops = { .write = rcar_pci_write_config, }; -static struct hw_pci rcar_hw_pci__initdata = { - .map_irq = rcar_pci_map_irq, - .ops = &rcar_pci_ops, - .setup = rcar_pci_setup, -}; - -static int rcar_pci_count__initdata ; - -static int __init rcar_pci_add_controller (struct rcar_pci_priv *priv) -{ -void **private_data; -int count; - -if (rcar_hw_pci.nr_controllers < rcar_pci_count) - goto add_priv; - -/* (Re)allocate private data pointer array if needed */ - count = rcar_pci_count +RCAR_PCI_NR_CONTROLLERS ; - private_data =kzalloc (count *sizeof (void *),GFP_KERNEL ); -if (!private_data) -return -ENOMEM ; - - rcar_pci_count = count; -if (rcar_hw_pci.private_data) { -memcpy (private_data, rcar_hw_pci.private_data, - rcar_hw_pci.nr_controllers *sizeof (void *)); -kfree (rcar_hw_pci.private_data); - } - - rcar_hw_pci.private_data = private_data; - -add_priv: -/* Add private data pointer to the array */ - rcar_hw_pci.private_data[rcar_hw_pci.nr_controllers++] = priv; -return 0 ; -} - -static int __init rcar_pci_probe (struct platform_device *pdev) +static int rcar_pci_probe (struct platform_device *pdev) {struct resource *cfg_res, *mem_res;struct rcar_pci_priv *priv;void __iomem *reg; +struct hw_pci hw; +void *hw_private[1 ]; cfg_res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); reg =devm_ioremap_resource (&pdev->dev, cfg_res);
@@ -377,31 +341,27 @@ static int __init rcar_pci_probe(structreturn priv->irq; } -return rcar_pci_add_controller (priv); + hw_private[0 ] = priv; +memset (&hw,0 ,sizeof (hw)); + hw.nr_controllers =ARRAY_SIZE (hw_private); + hw.private_data = hw_private; + hw.map_irq = rcar_pci_map_irq; + hw.ops = &rcar_pci_ops; + hw.setup = rcar_pci_setup; +pci_common_init_dev (&pdev->dev, &hw); +return 0 ; }static struct platform_driver rcar_pci_driver = { .driver = { .name ="pci-rcar-gen2" , + .owner =THIS_MODULE , + .suppress_bind_attrs = true, }, + .probe = rcar_pci_probe, }; -static int __init rcar_pci_init (void ) -{ -int retval; - - retval =platform_driver_probe (&rcar_pci_driver, rcar_pci_probe); -if (!retval) -pci_common_init (&rcar_hw_pci); - -/* Private data pointer array is not needed any more */ -kfree (rcar_hw_pci.private_data); - rcar_hw_pci.private_data =NULL ; - -return retval; -} - -subsys_initcall (rcar_pci_init); +module_platform_driver (rcar_pci_driver);MODULE_LICENSE ("GPL v2" );MODULE_DESCRIPTION ("Renesas R-Car Gen2 internal PCI" );
Magnus Damm
maintainerPATCH v2 5/8 PCI: rcar: Break out window size handling
In reply to Magnus DammFrom: Magnus Damm <[email protected]>
Break out the hard coded window size code to allow dynamic setup. The window size is still left at 1GiB but with this patch changing window size is easy for testing.
---
Changes since V1:
- Updated to fit on top of patches from Ben Dooks
drivers/pci/host/pci-rcar-gen2.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-)
drivers/pci/host/pci-rcar-gen2.c +28 -3
@@ -18,6 +18,7 @@#include <linux/pci.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> +#include <linux/sizes.h> #include <linux/slab.h> /* AHB-PCI Bridge PCI communication registers */
@@ -98,6 +99,7 @@ struct rcar_pci_priv {struct resource mem_res;struct resource *cfg_res;int irq; +unsigned long window_size; };/* PCI configuration space operations */
@@ -241,10 +243,31 @@ static int __init rcar_pci_setup(int nr,iowrite32 (val, reg +RCAR_USBCTR_REG );udelay (4 ); -/* De-assert reset and set PCIAHB window1 size to 1GB */ +/* De-assert reset and reset PCIAHB window1 size */ val &= ~(RCAR_USBCTR_PCIAHB_WIN1_MASK |RCAR_USBCTR_PCICLK_MASK |RCAR_USBCTR_USBH_RST |RCAR_USBCTR_PLL_RST ); -iowrite32 (val |RCAR_USBCTR_PCIAHB_WIN1_1G , reg +RCAR_USBCTR_REG ); + +/* Setup PCIAHB window1 size */ +switch (priv->window_size) { +case SZ_2G : + val |=RCAR_USBCTR_PCIAHB_WIN1_2G ; +break ; +case SZ_1G : + val |=RCAR_USBCTR_PCIAHB_WIN1_1G ; +break ; +case SZ_512M : + val |=RCAR_USBCTR_PCIAHB_WIN1_512M ; +break ; +default : +pr_warn ("unknown window size %ld - defaulting to 256M\n" , + priv->window_size); + priv->window_size =SZ_256M ; +/* fall-through */ +case SZ_256M : + val |=RCAR_USBCTR_PCIAHB_WIN1_256M ; +break ; + } +iowrite32 (val, reg +RCAR_USBCTR_REG );/* Configure AHB master and slave modes */ iowrite32 (RCAR_AHB_BUS_MODE , reg +RCAR_AHB_BUS_CTR_REG );
@@ -255,7 +278,7 @@ static int __init rcar_pci_setup(int nr,RCAR_PCI_ARBITER_PCIBP_MODE ;iowrite32 (val, reg +RCAR_PCI_ARBITER_CTR_REG ); -/* PCI-AHB mapping: 0x40000000-0x80000000 */ +/* PCI-AHB mapping: 0x40000000 base */ iowrite32 (0x40000000 |RCAR_PCIAHB_PREFETCH16 , reg +RCAR_PCIAHB_WIN1_CTR_REG );
@@ -341,6 +364,8 @@ static int rcar_pci_probe(struct platforreturn priv->irq; } + priv->window_size =SZ_1G ; + hw_private[0 ] = priv;memset (&hw,0 ,sizeof (hw)); hw.nr_controllers =ARRAY_SIZE (hw_private);
Magnus Damm
maintainerPATCH v2 6/8 PCI: rcar: Add DMABOUNCE support
In reply to Magnus DammFrom: Magnus Damm <[email protected]>
Add DMABOUNCE support together with a local memory area for all PCI devices hanging off this bridge. 4MiB of memory is set aside for coherent allocations which is shared between the on-chip OHCI and EHCI devices that are hanging off the PCI bridge. With this patch the driver will work for all CONFIG_VMSPLIT settings.
---
Changes since V1:
- Updated to fit on top of patches by Ben Dooks.
- Break out code into rcar_pci_init_bounce()
drivers/pci/host/Kconfig | 2 drivers/pci/host/pci-rcar-gen2.c | 269 +++++++++++++++++++++++++++++++++++++- 2 files changed, 268 insertions(+), 3 deletions(-)
drivers/pci/host/Kconfig +2 -0
@@ -28,6 +28,8 @@ config PCI_TEGRA config PCI_RCAR_GEN2 bool "Renesas R-Car Gen2 Internal PCI controller" depends on ARM && (ARCH_R8A7790 || ARCH_R8A7791 || COMPILE_TEST) + select GENERIC_ALLOCATOR + select DMABOUNCE help Say Y here if you want internal PCI support on R-Car Gen2 SoC. There are 3 internal PCI controllers available with a single
drivers/pci/host/pci-rcar-gen2.c +266 -3
328 lines not on this page · raw message
Magnus Damm
maintainerPATCH 7/8 PCI: rcar: Enable BOUNCE in case of HIGHMEM
In reply to Magnus DammFrom: Magnus Damm <[email protected]>
Select BOUNCE in case of HIGHMEM to enable bounce buffers in the block layer. Without this patch the DMABOUNCE code will error out due to lack of HIGHMEM support, and without DMABOUNCE there will be silent errors.
---
drivers/pci/host/Kconfig | 1 + 1 file changed, 1 insertion(+)
drivers/pci/host/Kconfig +1 -0
@@ -30,6 +30,7 @@ config PCI_RCAR_GEN2 depends on ARM && (ARCH_R8A7790 || ARCH_R8A7791 || COMPILE_TEST) select GENERIC_ALLOCATOR select DMABOUNCE + select BOUNCE if HIGHMEM help Say Y here if you want internal PCI support on R-Car Gen2 SoC. There are 3 internal PCI controllers available with a single
Magnus Damm
maintainerPATCH 8/8 PCI: rcar: Make the Kconfig dependencies more generic
In reply to Magnus DammFrom: Magnus Damm <[email protected]>
Update the R-Car Generation 2 PCI driver Kconfig dependencies to follow same style as other drivers - no SoC dependencies.
Also, update the COMPILE_TEST bits to depend on ARM. This since the DMA bounce buffer and dma_ops handling code is ARM specific.
---
drivers/pci/host/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/pci/host/Kconfig +1 -1
@@ -27,7 +27,7 @@ config PCI_TEGRA config PCI_RCAR_GEN2 bool "Renesas R-Car Gen2 Internal PCI controller" - depends on ARM && (ARCH_R8A7790 || ARCH_R8A7791 || COMPILE_TEST) + depends on ARCH_SHMOBILE || (ARM && COMPILE_TEST) select GENERIC_ALLOCATOR select DMABOUNCE select BOUNCE if HIGHMEM
Quoted 24 lines · Magnus Damm
PCI: rcar: Recent driver patches from Ben Dooks and me
[PATCH 01/08] PCI: rcar: check
platform_get_irq()return code [PATCH v2 02/08] PCI: rcar: add error interrupt handling [PATCH 03/08] PCI: rcar: fix bridge logic configuration accesses [PATCH v2 04/08] PCI: rcar: Register each instance independently [PATCH v2 05/08] PCI: rcar: Break out window size handling [PATCH v2 06/08] PCI: rcar: Add DMABOUNCE support
[PATCH 07/08] PCI: rcar: Enable BOUNCE in case of HIGHMEM [PATCH 08/08] PCI: rcar: Make theKconfigdependencies more genericThese patches update the
pci-rcar-gen2.cdriver with patches from Ben Dooks and me. The first 3 are written by Ben (thanks!) and are included here to show what I would like to have merged and what I rebased my patches on. The following 4 are updated versions of[PATCH 00/04] PCI: rcar: Driver model and physical address space update
The final patch is a new one that fixes up the
Kconfigdependencies.Patch 1-3:
Signed-off-by Ben Dooks <[email protected]>Patch 4-8:
Quoted 8 lines
Signed-off-by Magnus Damm <[email protected]>---
Written against renesas.git tag renesas-devel-v3.14-rc1-20140207
drivers/pci/host/Kconfig | 5 drivers/pci/host/pci-rcar-gen2.c | 445 ++++++++++++++++++++++++++++++++------ 2 files changed, 385 insertions(+), 65 deletions(-)
Bjorn,
I am happy with these.
Could you consider merging this series?
Quoted 34 lines · Simon Horman
Quoted 24 lines · Magnus Damm
PCI: rcar: Recent driver patches from Ben Dooks and me
[PATCH 01/08] PCI: rcar: check
platform_get_irq()return code [PATCH v2 02/08] PCI: rcar: add error interrupt handling [PATCH 03/08] PCI: rcar: fix bridge logic configuration accesses [PATCH v2 04/08] PCI: rcar: Register each instance independently [PATCH v2 05/08] PCI: rcar: Break out window size handling [PATCH v2 06/08] PCI: rcar: Add DMABOUNCE support
[PATCH 07/08] PCI: rcar: Enable BOUNCE in case of HIGHMEM [PATCH 08/08] PCI: rcar: Make theKconfigdependencies more genericThese patches update the
pci-rcar-gen2.cdriver with patches from Ben Dooks and me. The first 3 are written by Ben (thanks!) and are included here to show what I would like to have merged and what I rebased my patches on. The following 4 are updated versions of[PATCH 00/04] PCI: rcar: Driver model and physical address space update
The final patch is a new one that fixes up the
Kconfigdependencies.Patch 1-3:
Signed-off-by Ben Dooks <[email protected]>Patch 4-8:
Quoted 8 lines
Signed-off-by Magnus Damm <[email protected]>---
Written against renesas.git tag renesas-devel-v3.14-rc1-20140207
drivers/pci/host/Kconfig | 5 drivers/pci/host/pci-rcar-gen2.c | 445 ++++++++++++++++++++++++++++++++------ 2 files changed, 385 insertions(+), 65 deletions(-)
Quoted 6 lines
Bjorn,
I am happy with these.
Could you consider merging this series?Acked-by Simon Horman <[email protected]>
Applied to pci/host-rcar for v3.15, thanks!
Bjorn
Quoted 37 lines · Bjorn Helgaas
Quoted 36 lines · Simon Horman
Quoted 24 lines · Magnus Damm
PCI: rcar: Recent driver patches from Ben Dooks and me
[PATCH 01/08] PCI: rcar: check
platform_get_irq()return code [PATCH v2 02/08] PCI: rcar: add error interrupt handling [PATCH 03/08] PCI: rcar: fix bridge logic configuration accesses [PATCH v2 04/08] PCI: rcar: Register each instance independently [PATCH v2 05/08] PCI: rcar: Break out window size handling [PATCH v2 06/08] PCI: rcar: Add DMABOUNCE support
[PATCH 07/08] PCI: rcar: Enable BOUNCE in case of HIGHMEM [PATCH 08/08] PCI: rcar: Make theKconfigdependencies more genericThese patches update the
pci-rcar-gen2.cdriver with patches from Ben Dooks and me. The first 3 are written by Ben (thanks!) and are included here to show what I would like to have merged and what I rebased my patches on. The following 4 are updated versions of[PATCH 00/04] PCI: rcar: Driver model and physical address space update
The final patch is a new one that fixes up the
Kconfigdependencies.Patch 1-3:
Signed-off-by Ben Dooks <[email protected]>Patch 4-8:
Quoted 8 lines
Signed-off-by Magnus Damm <[email protected]>---
Written against renesas.git tag renesas-devel-v3.14-rc1-20140207
drivers/pci/host/Kconfig | 5 drivers/pci/host/pci-rcar-gen2.c | 445 ++++++++++++++++++++++++++++++++------ 2 files changed, 385 insertions(+), 65 deletions(-)Bjorn,
Quoted 8 lines
Quoted 4 lines
I am happy with these.
Could you consider merging this series?Acked-by Simon Horman <[email protected]>Applied to pci/host-rcar for v3.15, thanks!
Bjorn
Thanks!
Quoted 11 lines · Magnus Damm
PCI: rcar: Recent driver patches from Ben Dooks and me
[PATCH 01/08] PCI: rcar: check
platform_get_irq()return code [PATCH v2 02/08] PCI: rcar: add error interrupt handling [PATCH 03/08] PCI: rcar: fix bridge logic configuration accesses [PATCH v2 04/08] PCI: rcar: Register each instance independently [PATCH v2 05/08] PCI: rcar: Break out window size handling [PATCH v2 06/08] PCI: rcar: Add DMABOUNCE support
[PATCH 07/08] PCI: rcar: Enable BOUNCE in case of HIGHMEM [PATCH 08/08] PCI: rcar: Make theKconfigdependencies more generic
Quoted 8 lines
These patches update the
pci-rcar-gen2.cdriver with patches from Ben Dooks and me. The first 3 are written by Ben (thanks!) and are included here to show what I would like to have merged and what I rebased my patches on. The following 4 are updated versions of[PATCH 00/04] PCI: rcar: Driver model and physical address space update
The final patch is a new one that fixes up the
Kconfigdependencies.
Thanks. Is there any chance of getting this driver device-tree enabled too?
Signature · 2 lines
Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius
Magnus Damm
maintainerQuoted 18 lines · Ben Dooks
Quoted 17 lines · Magnus Damm
PCI: rcar: Recent driver patches from Ben Dooks and me
[PATCH 01/08] PCI: rcar: check
platform_get_irq()return code [PATCH v2 02/08] PCI: rcar: add error interrupt handling [PATCH 03/08] PCI: rcar: fix bridge logic configuration accesses [PATCH v2 04/08] PCI: rcar: Register each instance independently [PATCH v2 05/08] PCI: rcar: Break out window size handling [PATCH v2 06/08] PCI: rcar: Add DMABOUNCE support
[PATCH 07/08] PCI: rcar: Enable BOUNCE in case of HIGHMEM [PATCH 08/08] PCI: rcar: Make theKconfigdependencies more genericThese patches update the
pci-rcar-gen2.cdriver with patches from Ben Dooks and me. The first 3 are written by Ben (thanks!) and are included here to show what I would like to have merged and what I rebased my patches on. The following 4 are updated versions of
Quoted 7 lines
Quoted 3 lines
[PATCH 00/04] PCI: rcar: Driver model and physical address space update
The final patch is a new one that fixes up the
Kconfigdependencies.Thanks. Is there any chance of getting this driver device-tree enabled too?
I think so! The DT bindings proposed by you looked good for this device.
The only question is how to handle the PHY hardware in a sane way. The PHY is the central problematic point so to say, since it ties these PCI USB2.0 devices together with USBHS and for some SoCs USB 3.0 as well.
I'm thinking of something along these lines:
1) To use DT to describe the full hardware topology
2) Enable all or some device drivers in the kernel configuration
3) Have a sane default but use the bind interface to reassign driver-to-port configuration.
What is your intended use case?
Thanks,
/ magnus
Quoted 34 lines · Magnus Damm
Quoted 18 lines · Ben Dooks
Quoted 17 lines · Magnus Damm
PCI: rcar: Recent driver patches from Ben Dooks and me
[PATCH 01/08] PCI: rcar: check
platform_get_irq()return code [PATCH v2 02/08] PCI: rcar: add error interrupt handling [PATCH 03/08] PCI: rcar: fix bridge logic configuration accesses [PATCH v2 04/08] PCI: rcar: Register each instance independently [PATCH v2 05/08] PCI: rcar: Break out window size handling [PATCH v2 06/08] PCI: rcar: Add DMABOUNCE support
[PATCH 07/08] PCI: rcar: Enable BOUNCE in case of HIGHMEM [PATCH 08/08] PCI: rcar: Make theKconfigdependencies more genericThese patches update the
pci-rcar-gen2.cdriver with patches from Ben Dooks and me. The first 3 are written by Ben (thanks!) and are included here to show what I would like to have merged and what I rebased my patches on. The following 4 are updated versions ofQuoted 7 lines
Quoted 3 lines
[PATCH 00/04] PCI: rcar: Driver model and physical address space update
The final patch is a new one that fixes up the
Kconfigdependencies.Thanks. Is there any chance of getting this driver device-tree enabled too?
I think so! The DT bindings proposed by you looked good for this device.
The only question is how to handle the PHY hardware in a sane way. The PHY is the central problematic point so to say, since it ties these PCI USB2.0 devices together with USBHS and for some SoCs USB 3.0 as well.
Quoted 8 lines
I'm thinking of something along these lines:
1) To use DT to describe the full hardware topology
2) Enable all or some device drivers in the kernel configuration
3) Have a sane default but use the bind interface to reassign driver-to-port configuration.What is your intended use case?
I think we can describe this all from the PHY node or links to the PHY node. I was going to look at sorting out the bindings next week, due to this week being mostly consumed by chasing bugs.
Signature · 2 lines
Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius