Hi Pratyush Many thanks for quick replying > -----Original Message----- > From: Pratyush Anand [mailto:pratyush.anand@xxxxxxxxx] > Sent: 07 April 2016 07:59 > To: Gabriele Paoloni > Cc: Jisheng Zhang; jingoohan1@xxxxxxxxx; bhelgaas@xxxxxxxxxx; linux- > pci@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-arm- > kernel@xxxxxxxxxxxxxxxxxxx > Subject: Re: [PATCH v2] PCI: designware: move remaining rc setup code > to dw_pcie_setup_rc() > > Hi Gab, > > Thanks for bringing it. > > > On Wed, Apr 6, 2016 at 8:20 PM, Gabriele Paoloni > <gabriele.paoloni@xxxxxxxxxx> wrote: > > Hi, sorry to be late on this > > > >> -----Original Message----- > >> From: linux-kernel-owner@xxxxxxxxxxxxxxx [mailto:linux-kernel- > >> owner@xxxxxxxxxxxxxxx] On Behalf Of Jisheng Zhang > >> Sent: 16 March 2016 11:41 > >> To: jingoohan1@xxxxxxxxx; pratyush.anand@xxxxxxxxx; > bhelgaas@xxxxxxxxxx > >> Cc: linux-pci@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux- > arm- > >> kernel@xxxxxxxxxxxxxxxxxxx; Jisheng Zhang > >> Subject: [PATCH v2] PCI: designware: move remaining rc setup code to > >> dw_pcie_setup_rc() > >> > >> dw_pcie_setup_rc(), as its name indicates, setups the RC. But > current > >> dw_pcie_host_init() also contains some necessary rc setup code. > >> > >> Another reason: the host may lost power during suspend to ram, the > RC > >> need to be re-setup after resume. The rc can't be correctly resumed > >> without the rc setup code in dw_pcie_host_init(). > >> > >> So this patch moves the code to dw_pcie_setup_rc() to address the > above > >> two issues. After this patch, each pcie designware driver users > could > >> call dw_pcie_setup_rc() to re-setup rc when resume back. > > > > I think this patch breaks the Hisilicon driver... > > > > Our driver performs linkup setup in UEFI therefore we do not call > > dw_pcie_setup_rc(), we only call dw_pcie_host_init(). > > > > Maybe better to group the part of code to be moved in as separate > > function... > > > > Thanks and sorry for late reply. > > > > I am just wondering, should n't then what ever we do in > dw_pcie_setup_rc() be done in your boot loader and not just link up. Currently the HiSilicon driver does not call dw_pcie_setup_rc() at all; so everything is done in dw_pcie_setup_rc() is done in bootloader. I guess your question is if we can execute in bootloader the part of code the this patch has moved to in "dw_pcie_setup_rc()". I think the problem here is that even if it was possible we would break backward compatibility with previous bootloaders... Thanks Gab > > ~Pratyush ��.n��������+%������w��{.n�����{���"�)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥