[PATCH] PCI: Unify ECAM constants in native PCI Express drivers
Krzysztof Wilczyński
kw at linux.com
Sat Sep 5 16:44:16 EDT 2020
Hello Jonathan,
Thank you for the review! Also, apologies for late reply.
On 20-08-28 10:08:43, Jonathan Cameron wrote:
[...]
>
> Might potentially be worth tidying up the masks as well?
> Or potentially drop them given I suspect that there are no cases
> in which the mask is actually doing anything...
Just to confirm - you have the following constants in mind?
drivers/pci/controller/pcie-rockchip.h:
#define PCIE_ECAM_BUS(x) (((x) & 0xff) << 20)
#define PCIE_ECAM_DEV(x) (((x) & 0x1f) << 15)
#define PCIE_ECAM_FUNC(x) (((x) & 0x7) << 12)
drivers/pci/controller/dwc/pcie-al.c:
#define PCIE_ECAM_DEVFN(x) (((x) & 0xff) << 12)
I can move PCIE_ECAM_BUS, PCIE_ECAM_DEV and PCIE_ECAM_FUNC (as
PCIE_ECAM_FUN) to the linux/pci-ecam.h file, as these seem useful, but
without the masks, and then update other files to use these. We could
then leverage these, for example:
pci_base_addr = (void __iomem *)((uintptr_t)pp->va_cfg0_base +
- (busnr_ecam << 20) +
- PCIE_ECAM_DEVFN(devfn));
+ PCIE_ECAM_BUS(busnr_ecam) +
+ PCIE_ECAM_FUN(devfn));
What do you think? Bjorn, would that be acceptable?
Krzysztof
More information about the Linux-rockchip
mailing list