Thread (15 messages) 15 messages, 3 authors, 2016-02-08

[RFC PATCH 0/4] Add ACPI support for HiSilicon PCIe Host Controllers

From: Gabriele Paoloni <hidden>
Date: 2016-02-08 13:18:20
Also in: linux-acpi, linux-pci, lkml

-----Original Message-----
From: Arnd Bergmann [mailto:arnd at arndb.de]
Sent: 04 February 2016 17:02
To: Gabriele Paoloni
Cc: Guohanjun (Hanjun Guo); Wangzhou (B); liudongdong (C); Linuxarm;
qiujiang; bhelgaas at google.com; Lorenzo.Pieralisi at arm.com;
tn at semihalf.com; zhangjukuo; xuwei (O); Liguozhu (Kenneth); linux-
pci at vger.kernel.org; linux-arm-kernel at lists.infradead.org; linux-
acpi at vger.kernel.org; linux-kernel at vger.kernel.org; jcm at redhat.com
Subject: Re: [RFC PATCH 0/4] Add ACPI support for HiSilicon PCIe Host
Controllers

On Thursday 04 February 2016 16:44:12 Gabriele Paoloni wrote:
quoted
Effectively the ACPI version of the HiSilicon driver does not rely on
Designware as much as the DT version (that calls
dw_pcie_host_init());
quoted
however in order to do what you suggest I'd need to copy and paste
and
quoted
modify dw_pcie_rd_conf and dw_pcie_wr_conf.
Also I'd need to declare duplicate version of the functions in
pcie-hisi-common.c (if I do not want to split the object across
different paths "drivers/pci/host" and "drivers/acpi/")

Now I can do it but I thought it was more correct to pass
&dw_pcie_ops
quoted
as input pointer in DECLARE_ACPI_MCFG_FIXUP(); this is also because
maybe in
quoted
future other Designware based controllers may need to support ACPI
and it
quoted
would be easier for them to reuse their DT based driver functions

Honestly I am a bit confused...
I don't think you can use the dw_pcie_ops as-is anyway, as they in
turn rely on the device driver structure, and you also don't need
those as they seem to be written for the generic case of a 32-bit
architecture that does not have enough space to map the entire
config space into MMIO. Just set up all those mapping registers from
the firmware and pass the config space base address as you'd normally
do on ACPI.
Hi Arnd

I have now sent out patchset v2.

Now I have removed the dependency from designware but I still think
the best location for the code is in "drivers/pci/host/":
the ACPI quirks share the config read/write functions with the DT
driver, moreover for other hosts in future I think it makes sense
to stay in "drivers/pci/host/" as they could even share more init
code with their respective DT versions...

Cheers

Gab
	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help