Re: [PATCH 02/12][v3] pci: fsl: add structure fsl_pci

2013-10-28 Thread Scott Wood
On Fri, 2013-10-25 at 13:58 +0800, Lian Minghuan-b31939 wrote:
 Hi Kumar,
 
 please see my comment inline.
 
 On 10/24/2013 12:11 PM, Kumar Gala wrote:
  On Oct 23, 2013, at 5:41 AM, Minghuan Lian wrote:
 
  PowerPC uses structure pci_controller to describe PCI controller,
  but ARM uses structure pci_sys_data. In order to support PowerPC
  and ARM simultaneously, the patch adds a structure fsl_pci that
  contains most of the members of the pci_controller and pci_sys_data.
  Meanwhile, it defines a interface fsl_arch_sys_to_pci() which should
  be implemented in architecture-specific PCI controller driver to
  convert pci_controller or pci_sys_data to fsl_pci.
 
  Signed-off-by: Minghuan Lian minghuan.l...@freescale.com
  ---
  change log:
  v1-v3:
  Derived from http://patchwork.ozlabs.org/patch/278965/
 
  Based on upstream master.
  Based on the discussion of RFC version here
  http://patchwork.ozlabs.org/patch/274487/
 
  include/linux/fsl/pci-common.h | 41 
  +
  1 file changed, 41 insertions(+)
  NAK.
 
  We discussed this some at the ARM Summit this week and the feeling is we 
  need to move to a common interface between the various ARCHs.
 [Minghuan] Do you mean we will use the common interface instead of 
 arch/powerpc/kernel/pci-common.c...
 and arch/arm/kernel/bios32.c?  Who will do the code movement and when 
 will the work be completed? The patches just move the common functions 
 of FSL PCI controller operation which can be re-used by PowerPC and ARM. 
 LS1 is coming, I worry about not having enough time to wait for the move 
 is completed.

I agree -- it can take quite a while to get from the feeling is we need
to move to a common interface to actually having something we can use.
If and when this unification is achieved, we can drop this extra layer.
It's a better interim solution than just duplicating the entire driver
and letting them drift apart.

-Scott



___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 02/12][v3] pci: fsl: add structure fsl_pci

2013-10-24 Thread Lian Minghuan-b31939

Hi Kumar,

please see my comment inline.

On 10/24/2013 12:11 PM, Kumar Gala wrote:

On Oct 23, 2013, at 5:41 AM, Minghuan Lian wrote:


PowerPC uses structure pci_controller to describe PCI controller,
but ARM uses structure pci_sys_data. In order to support PowerPC
and ARM simultaneously, the patch adds a structure fsl_pci that
contains most of the members of the pci_controller and pci_sys_data.
Meanwhile, it defines a interface fsl_arch_sys_to_pci() which should
be implemented in architecture-specific PCI controller driver to
convert pci_controller or pci_sys_data to fsl_pci.

Signed-off-by: Minghuan Lian minghuan.l...@freescale.com
---
change log:
v1-v3:
Derived from http://patchwork.ozlabs.org/patch/278965/

Based on upstream master.
Based on the discussion of RFC version here
http://patchwork.ozlabs.org/patch/274487/

include/linux/fsl/pci-common.h | 41 +
1 file changed, 41 insertions(+)

NAK.

We discussed this some at the ARM Summit this week and the feeling is we need 
to move to a common interface between the various ARCHs.
[Minghuan] Do you mean we will use the common interface instead of 
arch/powerpc/kernel/pci-common.c...
and arch/arm/kernel/bios32.c?  Who will do the code movement and when 
will the work be completed? The patches just move the common functions 
of FSL PCI controller operation which can be re-used by PowerPC and ARM. 
LS1 is coming, I worry about not having enough time to wait for the move 
is completed.



- k


diff --git a/include/linux/fsl/pci-common.h b/include/linux/fsl/pci-common.h
index 5e4f683..e56a040 100644
--- a/include/linux/fsl/pci-common.h
+++ b/include/linux/fsl/pci-common.h
@@ -102,5 +102,46 @@ struct ccsr_pci {

};

+/*
+ * Structure of a PCI controller (host bridge)
+ */
+struct fsl_pci {
+   struct list_head node;
+   bool is_pcie;
+   struct device_node *dn;
+   struct device *dev;
+
+   int first_busno;
+   int last_busno;
+   int self_busno;
+   struct resource busn;
+
+   struct pci_ops *ops;
+   struct ccsr_pci __iomem *regs;
+
+   u32 indirect_type;
+
+   struct resource io_resource;
+   resource_size_t io_base_phys;
+   resource_size_t pci_io_size;
+
+   struct resource mem_resources[3];
+   resource_size_t mem_offset[3];
+
+   int global_number;  /* PCI domain number */
+
+   resource_size_t dma_window_base_cur;
+   resource_size_t dma_window_size;
+
+   void *sys;
+};
+
+/*
+ * Convert architecture specific pci controller structure to fsl_pci
+ * PowerPC uses structure pci_controller and ARM uses structure pci_sys_data
+ * to describe pci controller.
+ */
+extern struct fsl_pci *fsl_arch_sys_to_pci(void *sys);
+
#endif /* __PCI_COMMON_H */
#endif /* __KERNEL__ */
--
1.8.1.2






___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH 02/12][v3] pci: fsl: add structure fsl_pci

2013-10-23 Thread Minghuan Lian
PowerPC uses structure pci_controller to describe PCI controller,
but ARM uses structure pci_sys_data. In order to support PowerPC
and ARM simultaneously, the patch adds a structure fsl_pci that
contains most of the members of the pci_controller and pci_sys_data.
Meanwhile, it defines a interface fsl_arch_sys_to_pci() which should
be implemented in architecture-specific PCI controller driver to
convert pci_controller or pci_sys_data to fsl_pci.

Signed-off-by: Minghuan Lian minghuan.l...@freescale.com
---
change log:
v1-v3:
Derived from http://patchwork.ozlabs.org/patch/278965/

Based on upstream master.
Based on the discussion of RFC version here
http://patchwork.ozlabs.org/patch/274487/

 include/linux/fsl/pci-common.h | 41 +
 1 file changed, 41 insertions(+)

diff --git a/include/linux/fsl/pci-common.h b/include/linux/fsl/pci-common.h
index 5e4f683..e56a040 100644
--- a/include/linux/fsl/pci-common.h
+++ b/include/linux/fsl/pci-common.h
@@ -102,5 +102,46 @@ struct ccsr_pci {
 
 };
 
+/*
+ * Structure of a PCI controller (host bridge)
+ */
+struct fsl_pci {
+   struct list_head node;
+   bool is_pcie;
+   struct device_node *dn;
+   struct device *dev;
+
+   int first_busno;
+   int last_busno;
+   int self_busno;
+   struct resource busn;
+
+   struct pci_ops *ops;
+   struct ccsr_pci __iomem *regs;
+
+   u32 indirect_type;
+
+   struct resource io_resource;
+   resource_size_t io_base_phys;
+   resource_size_t pci_io_size;
+
+   struct resource mem_resources[3];
+   resource_size_t mem_offset[3];
+
+   int global_number;  /* PCI domain number */
+
+   resource_size_t dma_window_base_cur;
+   resource_size_t dma_window_size;
+
+   void *sys;
+};
+
+/*
+ * Convert architecture specific pci controller structure to fsl_pci
+ * PowerPC uses structure pci_controller and ARM uses structure pci_sys_data
+ * to describe pci controller.
+ */
+extern struct fsl_pci *fsl_arch_sys_to_pci(void *sys);
+
 #endif /* __PCI_COMMON_H */
 #endif /* __KERNEL__ */
-- 
1.8.1.2


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 02/12][v3] pci: fsl: add structure fsl_pci

2013-10-23 Thread Kumar Gala

On Oct 23, 2013, at 5:41 AM, Minghuan Lian wrote:

 PowerPC uses structure pci_controller to describe PCI controller,
 but ARM uses structure pci_sys_data. In order to support PowerPC
 and ARM simultaneously, the patch adds a structure fsl_pci that
 contains most of the members of the pci_controller and pci_sys_data.
 Meanwhile, it defines a interface fsl_arch_sys_to_pci() which should
 be implemented in architecture-specific PCI controller driver to
 convert pci_controller or pci_sys_data to fsl_pci.
 
 Signed-off-by: Minghuan Lian minghuan.l...@freescale.com
 ---
 change log:
 v1-v3:
 Derived from http://patchwork.ozlabs.org/patch/278965/
 
 Based on upstream master.
 Based on the discussion of RFC version here
 http://patchwork.ozlabs.org/patch/274487/
 
 include/linux/fsl/pci-common.h | 41 +
 1 file changed, 41 insertions(+)

NAK.

We discussed this some at the ARM Summit this week and the feeling is we need 
to move to a common interface between the various ARCHs.

- k

 
 diff --git a/include/linux/fsl/pci-common.h b/include/linux/fsl/pci-common.h
 index 5e4f683..e56a040 100644
 --- a/include/linux/fsl/pci-common.h
 +++ b/include/linux/fsl/pci-common.h
 @@ -102,5 +102,46 @@ struct ccsr_pci {
 
 };
 
 +/*
 + * Structure of a PCI controller (host bridge)
 + */
 +struct fsl_pci {
 + struct list_head node;
 + bool is_pcie;
 + struct device_node *dn;
 + struct device *dev;
 +
 + int first_busno;
 + int last_busno;
 + int self_busno;
 + struct resource busn;
 +
 + struct pci_ops *ops;
 + struct ccsr_pci __iomem *regs;
 +
 + u32 indirect_type;
 +
 + struct resource io_resource;
 + resource_size_t io_base_phys;
 + resource_size_t pci_io_size;
 +
 + struct resource mem_resources[3];
 + resource_size_t mem_offset[3];
 +
 + int global_number;  /* PCI domain number */
 +
 + resource_size_t dma_window_base_cur;
 + resource_size_t dma_window_size;
 +
 + void *sys;
 +};
 +
 +/*
 + * Convert architecture specific pci controller structure to fsl_pci
 + * PowerPC uses structure pci_controller and ARM uses structure pci_sys_data
 + * to describe pci controller.
 + */
 +extern struct fsl_pci *fsl_arch_sys_to_pci(void *sys);
 +
 #endif /* __PCI_COMMON_H */
 #endif /* __KERNEL__ */
 -- 
 1.8.1.2
 

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


RE: [PATCH 02/12][v3] pci: fsl: add structure fsl_pci

2013-10-23 Thread Zang Roy-R61911


 -Original Message-
 From: Kumar Gala [mailto:ga...@kernel.crashing.org]
 Sent: Wednesday, October 23, 2013 11:11 PM
 To: Lian Minghuan-B31939
 Cc: linuxppc-dev@lists.ozlabs.org list; Arnd Bergmann; Zang Roy-R61911;
 Wood Scott-B07421; Bjorn Helgaas; linux-...@vger.kernel.org; linux-arm-
 ker...@lists.infradead.org
 Subject: Re: [PATCH 02/12][v3] pci: fsl: add structure fsl_pci
 
 
 On Oct 23, 2013, at 5:41 AM, Minghuan Lian wrote:
 
  PowerPC uses structure pci_controller to describe PCI controller, but
  ARM uses structure pci_sys_data. In order to support PowerPC and ARM
  simultaneously, the patch adds a structure fsl_pci that contains most
  of the members of the pci_controller and pci_sys_data.
  Meanwhile, it defines a interface fsl_arch_sys_to_pci() which should
  be implemented in architecture-specific PCI controller driver to
  convert pci_controller or pci_sys_data to fsl_pci.
 
  Signed-off-by: Minghuan Lian minghuan.l...@freescale.com
  ---
  change log:
  v1-v3:
  Derived from http://patchwork.ozlabs.org/patch/278965/
 
  Based on upstream master.
  Based on the discussion of RFC version here
  http://patchwork.ozlabs.org/patch/274487/
 
  include/linux/fsl/pci-common.h | 41
  +
  1 file changed, 41 insertions(+)
 
 NAK.
 
 We discussed this some at the ARM Summit this week and the feeling is we
 need to move to a common interface between the various ARCHs.

Can you share more about the *common interface*?
Any plan to implement the  * common interface*?
Thanks.
Roy


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev