Hi Bjorn
Many thanks for your review.
e( 2017/2/4 5:00, Bjorn Helgaas ei:
On Fri, Feb 03, 2017 at 02:40:42PM -0600, Bjorn Helgaas wrote:
On Thu, Jan 12, 2017 at 02:28:22PM +0800, Dongdong Liu wrote:
The PCIe controller in Hip06/Hip07 SoCs is not completely
ECAM-compliant. It is non-ECAM only for the RC bus config space; for
any other bus underneath the root bus it does support ECAM access.
This is to add the almost ECAM support in DT way.
Signed-off-by: Dongdong Liu <liudongdong3@xxxxxxxxxx>
Reviewed-by: Gabriele Paoloni <gabriele.paoloni@xxxxxxxxxx>
Reviewed-by: Zhou Wang <wangzhou1@xxxxxxxxxxxxx>
Applied to pci/host-hisi for v4.11, thanks!
Oops, I take this back, see below.
@@ -262,17 +264,23 @@ static int hisi_pcie_probe(struct platform_device *pdev)
const struct of_device_id *match;
struct resource *reg;
struct device_driver *driver;
+ struct pci_ecam_ops *ops;
int ret;
+ driver = dev->driver;
+ match = of_match_device(driver->of_match_table, dev);
+ if (!strcmp(match->compatible, "hisilicon,pcie-almost-ecam")) {
+ ops = (struct pci_ecam_ops *)match->data;
+ return pci_host_common_probe(pdev, ops);
+ }
Please make this a separate probe function() with a separate struct
platform_driver.
That way you won't have to strcmp() for "hisilicon,pcie-almost-ecam",
and you can use of_device_get_match_data() to get "ops", so you won't
need to use of_match_device() at all.
Good catch, will fix.
Thanks,
Dongdong