[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<CH2PPF4D26F8E1C0BE70D4B6BB9B3A334D9A2C6A@CH2PPF4D26F8E1C.namprd07.prod.outlook.com>
Date: Sun, 2 Nov 2025 05:51:05 +0000
From: Manikandan Karunakaran Pillai <mpillai@...ence.com>
To: Manivannan Sadhasivam <mani@...nel.org>
CC: "hans.zhang@...tech.com" <hans.zhang@...tech.com>,
"bhelgaas@...gle.com"
<bhelgaas@...gle.com>,
"helgaas@...nel.org" <helgaas@...nel.org>,
"lpieralisi@...nel.org" <lpieralisi@...nel.org>,
"kw@...ux.com"
<kw@...ux.com>, "robh@...nel.org" <robh@...nel.org>,
"kwilczynski@...nel.org"
<kwilczynski@...nel.org>,
"krzk+dt@...nel.org" <krzk+dt@...nel.org>,
"conor+dt@...nel.org" <conor+dt@...nel.org>,
"fugang.duan@...tech.com"
<fugang.duan@...tech.com>,
"guoyin.chen@...tech.com"
<guoyin.chen@...tech.com>,
"peter.chen@...tech.com" <peter.chen@...tech.com>,
"cix-kernel-upstream@...tech.com" <cix-kernel-upstream@...tech.com>,
"linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v10 04/10] PCI: cadence: Add support for High Perf
Architecture (HPA) controller
Hi Mani,
Pls find my comments below.
>> >> + value |=
>> >HPA_LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar);
>> >> + } else {
>> >> + value |= HPA_LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar);
>> >> + if ((flags & IORESOURCE_PREFETCH))
>> >> + value |=
>> >HPA_LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar);
>> >> + }
>> >> +
>> >> + value |= HPA_LM_RC_BAR_CFG_APERTURE(bar, aperture);
>> >> + cdns_pcie_hpa_writel(pcie, REG_BANK_IP_CFG_CTRL_REG,
>> >CDNS_PCIE_HPA_LM_RC_BAR_CFG, value);
>> >> +
>> >> + return 0;
>> >> +}
>> >> +
>> >> +static int cdns_pcie_hpa_host_bar_config(struct cdns_pcie_rc *rc,
>> >> + struct resource_entry *entry)
>> >
>> >This and other functions are almost same as in 'pcie-cadence-host'. Why
>don't
>> >you reuse them in a common library?
>>
>> The function cdns_pcie_hpa_host_bar_config() calls functions
>cdns_pcie_hpa_host_bar_ib_config()
>> which is not common. All functions that are common between the two
>architecture are moved to the
>> common library file based on earlier comments.
>>
>
>This is not a good reason to duplicate the whole function. You could just make
>the common function accept the callback ib_config() and pass either
>cdns_pcie_host_bar_ib_config() or cdns_pcie_hpa_host_bar_ib_config().
>
>This pattern could be done for other functions as well. Please audit all of them
>and move them to common library. Currently, I could see a lot of duplications
>that could be avoided.
The very first patch for this feature included an ops struct which was registered (very similar to a callback). Are are asking me to again implement the same design which was earlier rejected ?
Secondly except the names of the functions, the registers and their offset written and the sequence also changes for the implementations.
>
>- Mani
>
>--
>மணிவண்ணன் சதாசிவம்
Powered by blists - more mailing lists