Re: [RFC PATCH 09/16] PCI: Associate .get_msi_ctrl() with pci_host_bridge

2014-11-17 Thread Lorenzo Pieralisi
On Mon, Nov 17, 2014 at 10:21:43AM +, Yijing Wang wrote:
> From: Yijing Wang 
> 
> Signed-off-by: Yijing Wang 
> ---
>  drivers/pci/host-bridge.c |1 +
>  include/linux/pci.h   |2 ++
>  2 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
> index 49b6c21..872cae1 100644
> --- a/drivers/pci/host-bridge.c
> +++ b/drivers/pci/host-bridge.c
> @@ -58,6 +58,7 @@ struct pci_host_bridge *pci_create_host_bridge(
>   host->dev.parent = parent;
>   INIT_LIST_HEAD(>windows);
>   host->dev.release = pci_release_host_bridge_dev;
> + host->get_msi_ctrl = info->get_msi_ctrl;
>  
>   /* this is hack, just for build, will be removed later*/
>   b = kzalloc(sizeof(*b), GFP_KERNEL);
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index a51f5f5..af1ee86 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -408,6 +408,7 @@ struct pci_host_bridge {
>   int domain;
>   void *sysdata;
>   struct pci_ops *ops;
> + struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
>   void (*release_fn)(struct pci_host_bridge *);
>   void *release_data;
>  };
> @@ -416,6 +417,7 @@ struct pci_host_info {
>   u8 res_type;
>   void *arg;
>   struct list_head *resources; /*just for build, will clean up later */
> + struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
>   int (*init_res)(struct pci_host_bridge *host, 
>   struct pci_host_info *info);
>  };

Where would you use the get_msi_ctrl pointer then ? Wasn't it better
to wait for this patchset to take shape before adding more churn to
the ARM (and other archs) pci_sys_data structure and consequently add
another pcibios call to achieve what the get_msi_ctrl pointer is there to
achieve (ie making msi_controller retrieval arch independent ?)

I just do not see what the pci_sys_data intermediate step buys you if
we consider the approach taken in this patch as the proper solution.

Thanks,
Lorenzo

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RFC PATCH 09/16] PCI: Associate .get_msi_ctrl() with pci_host_bridge

2014-11-17 Thread Yijing Wang
From: Yijing Wang 

Signed-off-by: Yijing Wang 
---
 drivers/pci/host-bridge.c |1 +
 include/linux/pci.h   |2 ++
 2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
index 49b6c21..872cae1 100644
--- a/drivers/pci/host-bridge.c
+++ b/drivers/pci/host-bridge.c
@@ -58,6 +58,7 @@ struct pci_host_bridge *pci_create_host_bridge(
host->dev.parent = parent;
INIT_LIST_HEAD(>windows);
host->dev.release = pci_release_host_bridge_dev;
+   host->get_msi_ctrl = info->get_msi_ctrl;
 
/* this is hack, just for build, will be removed later*/
b = kzalloc(sizeof(*b), GFP_KERNEL);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index a51f5f5..af1ee86 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -408,6 +408,7 @@ struct pci_host_bridge {
int domain;
void *sysdata;
struct pci_ops *ops;
+   struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
void (*release_fn)(struct pci_host_bridge *);
void *release_data;
 };
@@ -416,6 +417,7 @@ struct pci_host_info {
u8 res_type;
void *arg;
struct list_head *resources; /*just for build, will clean up later */
+   struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
int (*init_res)(struct pci_host_bridge *host, 
struct pci_host_info *info);
 };
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RFC PATCH 09/16] PCI: Associate .get_msi_ctrl() with pci_host_bridge

2014-11-17 Thread Yijing Wang
From: Yijing Wang wangyijing0...@gmail.com

Signed-off-by: Yijing Wang wangyij...@huawei.com
---
 drivers/pci/host-bridge.c |1 +
 include/linux/pci.h   |2 ++
 2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
index 49b6c21..872cae1 100644
--- a/drivers/pci/host-bridge.c
+++ b/drivers/pci/host-bridge.c
@@ -58,6 +58,7 @@ struct pci_host_bridge *pci_create_host_bridge(
host-dev.parent = parent;
INIT_LIST_HEAD(host-windows);
host-dev.release = pci_release_host_bridge_dev;
+   host-get_msi_ctrl = info-get_msi_ctrl;
 
/* this is hack, just for build, will be removed later*/
b = kzalloc(sizeof(*b), GFP_KERNEL);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index a51f5f5..af1ee86 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -408,6 +408,7 @@ struct pci_host_bridge {
int domain;
void *sysdata;
struct pci_ops *ops;
+   struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
void (*release_fn)(struct pci_host_bridge *);
void *release_data;
 };
@@ -416,6 +417,7 @@ struct pci_host_info {
u8 res_type;
void *arg;
struct list_head *resources; /*just for build, will clean up later */
+   struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
int (*init_res)(struct pci_host_bridge *host, 
struct pci_host_info *info);
 };
-- 
1.7.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 09/16] PCI: Associate .get_msi_ctrl() with pci_host_bridge

2014-11-17 Thread Lorenzo Pieralisi
On Mon, Nov 17, 2014 at 10:21:43AM +, Yijing Wang wrote:
 From: Yijing Wang wangyijing0...@gmail.com
 
 Signed-off-by: Yijing Wang wangyij...@huawei.com
 ---
  drivers/pci/host-bridge.c |1 +
  include/linux/pci.h   |2 ++
  2 files changed, 3 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
 index 49b6c21..872cae1 100644
 --- a/drivers/pci/host-bridge.c
 +++ b/drivers/pci/host-bridge.c
 @@ -58,6 +58,7 @@ struct pci_host_bridge *pci_create_host_bridge(
   host-dev.parent = parent;
   INIT_LIST_HEAD(host-windows);
   host-dev.release = pci_release_host_bridge_dev;
 + host-get_msi_ctrl = info-get_msi_ctrl;
  
   /* this is hack, just for build, will be removed later*/
   b = kzalloc(sizeof(*b), GFP_KERNEL);
 diff --git a/include/linux/pci.h b/include/linux/pci.h
 index a51f5f5..af1ee86 100644
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
 @@ -408,6 +408,7 @@ struct pci_host_bridge {
   int domain;
   void *sysdata;
   struct pci_ops *ops;
 + struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
   void (*release_fn)(struct pci_host_bridge *);
   void *release_data;
  };
 @@ -416,6 +417,7 @@ struct pci_host_info {
   u8 res_type;
   void *arg;
   struct list_head *resources; /*just for build, will clean up later */
 + struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
   int (*init_res)(struct pci_host_bridge *host, 
   struct pci_host_info *info);
  };

Where would you use the get_msi_ctrl pointer then ? Wasn't it better
to wait for this patchset to take shape before adding more churn to
the ARM (and other archs) pci_sys_data structure and consequently add
another pcibios call to achieve what the get_msi_ctrl pointer is there to
achieve (ie making msi_controller retrieval arch independent ?)

I just do not see what the pci_sys_data intermediate step buys you if
we consider the approach taken in this patch as the proper solution.

Thanks,
Lorenzo

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/