Hi Lorenzo, On Tue, 2020-01-14 at 17:11 +0000, Lorenzo Pieralisi wrote: > On Mon, Dec 16, 2019 at 12:01:09PM +0100, Nicolas Saenz Julienne wrote: > > From: Jim Quinlan <james.quinlan@xxxxxxxxxxxx> > > > > This adds a basic driver for Broadcom's STB PCIe controller, for now > > aimed at Raspberry Pi 4's SoC, bcm2711. > > > > Signed-off-by: Jim Quinlan <james.quinlan@xxxxxxxxxxxx> > > Co-developed-by: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx> > > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx> > > Reviewed-by: Andrew Murray <andrew.murray@xxxxxxx> > > Reviewed-by: Jeremy Linton <jeremy.linton@xxxxxxx> > > > > --- > > > > Changes since v3: > > - Update commit message > > - rollback roundup_pow_two usage, it'll be updated later down the line > > - Remove comment in register definition > > > > Changes since v2: > > - Correct rc_bar2_offset sign > > In relation to this change. > > [...] > > > +static inline int brcm_pcie_get_rc_bar2_size_and_offset(struct brcm_pcie > > *pcie, > > + u64 *rc_bar2_size, > > + u64 *rc_bar2_offset) > > +{ > > + struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie); > > + struct device *dev = pcie->dev; > > + struct resource_entry *entry; > > + > > + entry = resource_list_first_type(&bridge->dma_ranges, IORESOURCE_MEM); > > + if (!entry) > > + return -ENODEV; > > + > > + *rc_bar2_offset = -entry->offset; > > I think this deserves a comment - I guess it has to do with how the > controller expects CPU<->PCI offsets to be expressed compared to how it > is computed in dma_ranges entries. You're right, OF code calculates it by doing: offset = cpu_start_addr - pci_start_addr (see devm_of_pci_get_host_bridge_resources()) While the RC_BAR2_CONFIG register expects the opposite subtraction. I'll add a comment on the next revision. > I will try to complete the review shortly and try to apply it given > that it has already been reviewed by others. Thanks! Regards, Nicolas > Lorenzo >
Attachment:
signature.asc
Description: This is a digitally signed message part