On 17/05/2017 13:33, Arnd Bergmann wrote:
On Wed, May 17, 2017 at 12:49 PM, John Garry <john.garry@xxxxxxxxxx> wrote:
> Add the code to initialise controller which is based on pci device
> in hisi_sas_pci_init.c
>
> The main functionality added is for probing and initialisation of
> the controller based on pci device.
>
> The core controller routines are still in hisi_sas_main.c; some
> common initialisation functions and structures are also exported from
> hisi_sas_main.c for pci init.
>
> For platform device-based controller, controller properties - like
> phy count - were read from the firmware. For pci-based controller this
> information is hard-coded in the driver, in new struct hisi_sas_pci_hw.
>
Do you plan to add further PCI based front-ends besides the v3 driver
in the future? If not, you can save one level of indirection here and merge
pci_init.c into the v3 implementation.
Arnd
Hi Arnd,
I think for now, any hw revisions will be very closely based on v3. And,
for future revisions, the driver has been well abstracted so we can
still support any updated features in another version of hisi_sas_hw in
v3 driver.
I actually kept v3 driver and pci_init.c separate as initially I thought
we could merge v2 and v3 driver eventually. But with different
functionality, register format, interrupts, I am not 100% confident. Now
my only concern is that layout differences between v1/2 and v3 driver,
but this is not critical. Anyway, I think we can merge them for now.
Cheers,
John