[PATCH v2] PCI: dwc: ep: Use FIELD_GET()

Hans Zhang posted 1 patch 9 months, 2 weeks ago
drivers/pci/controller/dwc/pcie-designware-ep.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
[PATCH v2] PCI: dwc: ep: Use FIELD_GET()
Posted by Hans Zhang 9 months, 2 weeks ago
Use FIELD_GET() to remove dependences on the field position, i.e., the
shift value. No functional change intended.

Signed-off-by: Hans Zhang <18255117159@163.com>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
---
Changes for v2:
- The patch commit message were modified.
---
 drivers/pci/controller/dwc/pcie-designware-ep.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c
index 1a0bf9341542..f3daf46b5e63 100644
--- a/drivers/pci/controller/dwc/pcie-designware-ep.c
+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c
@@ -256,11 +256,11 @@ static unsigned int dw_pcie_ep_get_rebar_offset(struct dw_pcie *pci,
 		return offset;
 
 	reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
-	nbars = (reg & PCI_REBAR_CTRL_NBAR_MASK) >> PCI_REBAR_CTRL_NBAR_SHIFT;
+	nbars = FIELD_GET(PCI_REBAR_CTRL_NBAR_MASK, reg);
 
 	for (i = 0; i < nbars; i++, offset += PCI_REBAR_CTRL) {
 		reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
-		bar_index = reg & PCI_REBAR_CTRL_BAR_IDX;
+		bar_index = FIELD_GET(PCI_REBAR_CTRL_BAR_IDX, reg);
 		if (bar_index == bar)
 			return offset;
 	}
@@ -875,8 +875,7 @@ static void dw_pcie_ep_init_non_sticky_registers(struct dw_pcie *pci)
 
 	if (offset) {
 		reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
-		nbars = (reg & PCI_REBAR_CTRL_NBAR_MASK) >>
-			PCI_REBAR_CTRL_NBAR_SHIFT;
+		nbars = FIELD_GET(PCI_REBAR_CTRL_NBAR_MASK, reg);
 
 		/*
 		 * PCIe r6.0, sec 7.8.6.2 require us to support at least one
@@ -897,7 +896,7 @@ static void dw_pcie_ep_init_non_sticky_registers(struct dw_pcie *pci)
 			 * is why RESBAR_CAP_REG is written here.
 			 */
 			val = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
-			bar = val & PCI_REBAR_CTRL_BAR_IDX;
+			bar = FIELD_GET(PCI_REBAR_CTRL_BAR_IDX, val);
 			if (ep->epf_bar[bar])
 				pci_epc_bar_size_to_rebar_cap(ep->epf_bar[bar]->size, &val);
 			else

base-commit: b4432656b36e5cc1d50a1f2dc15357543add530e
-- 
2.25.1
Re: [PATCH v2] PCI: dwc: ep: Use FIELD_GET()
Posted by Manivannan Sadhasivam 9 months ago
On Mon, Apr 28, 2025 at 08:42:30PM +0800, Hans Zhang wrote:
> Use FIELD_GET() to remove dependences on the field position, i.e., the
> shift value. No functional change intended.
> 
> Signed-off-by: Hans Zhang <18255117159@163.com>
> Reviewed-by: Niklas Cassel <cassel@kernel.org>

Applied to controller/dwc-ep!

- Mani

> ---
> Changes for v2:
> - The patch commit message were modified.
> ---
>  drivers/pci/controller/dwc/pcie-designware-ep.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c
> index 1a0bf9341542..f3daf46b5e63 100644
> --- a/drivers/pci/controller/dwc/pcie-designware-ep.c
> +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c
> @@ -256,11 +256,11 @@ static unsigned int dw_pcie_ep_get_rebar_offset(struct dw_pcie *pci,
>  		return offset;
>  
>  	reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
> -	nbars = (reg & PCI_REBAR_CTRL_NBAR_MASK) >> PCI_REBAR_CTRL_NBAR_SHIFT;
> +	nbars = FIELD_GET(PCI_REBAR_CTRL_NBAR_MASK, reg);
>  
>  	for (i = 0; i < nbars; i++, offset += PCI_REBAR_CTRL) {
>  		reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
> -		bar_index = reg & PCI_REBAR_CTRL_BAR_IDX;
> +		bar_index = FIELD_GET(PCI_REBAR_CTRL_BAR_IDX, reg);
>  		if (bar_index == bar)
>  			return offset;
>  	}
> @@ -875,8 +875,7 @@ static void dw_pcie_ep_init_non_sticky_registers(struct dw_pcie *pci)
>  
>  	if (offset) {
>  		reg = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
> -		nbars = (reg & PCI_REBAR_CTRL_NBAR_MASK) >>
> -			PCI_REBAR_CTRL_NBAR_SHIFT;
> +		nbars = FIELD_GET(PCI_REBAR_CTRL_NBAR_MASK, reg);
>  
>  		/*
>  		 * PCIe r6.0, sec 7.8.6.2 require us to support at least one
> @@ -897,7 +896,7 @@ static void dw_pcie_ep_init_non_sticky_registers(struct dw_pcie *pci)
>  			 * is why RESBAR_CAP_REG is written here.
>  			 */
>  			val = dw_pcie_readl_dbi(pci, offset + PCI_REBAR_CTRL);
> -			bar = val & PCI_REBAR_CTRL_BAR_IDX;
> +			bar = FIELD_GET(PCI_REBAR_CTRL_BAR_IDX, val);
>  			if (ep->epf_bar[bar])
>  				pci_epc_bar_size_to_rebar_cap(ep->epf_bar[bar]->size, &val);
>  			else
> 
> base-commit: b4432656b36e5cc1d50a1f2dc15357543add530e
> -- 
> 2.25.1
> 

-- 
மணிவண்ணன் சதாசிவம்