[PATCH 1/2] PCI: dwc: Align register macros with Synopsys documentation
Bjorn Helgaas
helgaas at kernel.org
Mon Sep 28 14:50:07 PDT 2026
On Sat, Sep 12, 2026 at 12:25:36AM +0800, Hans Zhang wrote:
> The DWC PCIe register and field macros are inconsistently named and
> often do not match the Synopsys DesignWare PCIe Controller Reference
> Manual. This makes it harder to cross-reference the code with the
> documentation when debugging or maintaining the driver.
> +#define PORT_AFAC_L0S_ELS 24 /* L0s Entrance Latency shift */
> +#define PORT_AFAC_L0S_ELM GENMASK(26, 24) /* L0s Entrance Latency mask */
> +#define PORT_AFAC_L1_ELS 27 /* L1 Entrance Latency shift */
> +#define PORT_AFAC_L1_ELM GENMASK(29, 27) /* L1 Entrance Latency mask */
Surely we don't need both the shift and the mask? Maybe a separate
patch convert to FIELD_PREP()?
> +#define GEN3_CTRL_RATE_SHADOW_SEL_SHIFT 24 /* Rate Shadow Select shift */
> +#define GEN3_CTRL_RATE_SHADOW_SEL_MASK GENMASK(25, 24) /* Rate Shadow Select mask */
Ditto.
> +#define MSIX_DOORBELL 0x948
> +#define MSIX_DOORBELL_PF_SHIFT 24
Probably would be better to define a mask so we have the position
*and* the width.
> @@ -621,15 +621,15 @@ static inline u32 event_counter_prog(struct tegra_pcie_dw *pcie, u32 event)
> u32 val;
>
> val = dw_pcie_readl_dbi(&pcie->pci, pcie->ras_des_cap +
> - PCIE_RAS_DES_EVENT_COUNTER_CONTROL);
> + RAS_DES_EVENT_COUNTER_CONTROL);
> val &= ~(EVENT_COUNTER_EVENT_SEL_MASK << EVENT_COUNTER_EVENT_SEL_SHIFT);
> val |= EVENT_COUNTER_GROUP_5 << EVENT_COUNTER_GROUP_SEL_SHIFT;
> val |= event << EVENT_COUNTER_EVENT_SEL_SHIFT;
> val |= EVENT_COUNTER_ENABLE_ALL << EVENT_COUNTER_ENABLE_SHIFT;
Probably a good chance to convert these to FIELD_PREP() etc. as well,
maybe in a separate patch.
More information about the Linux-rockchip
mailing list