RE: [PATCH v14 3/3] PCI: amd-mdb: Add AMD MDB Root Port driver
From: Havalige, Thippeswamy
Date: Tue Feb 25 2025 - 06:47:28 EST
[AMD Official Use Only - AMD Internal Distribution Only]
Hi Bjorn,
Thanks for reviewing, will update all comments in next patch.
Regards,
Thippeswamy H
> -----Original Message-----
> From: Bjorn Helgaas <helgaas@xxxxxxxxxx>
> Sent: Tuesday, February 25, 2025 1:33 AM
> To: Havalige, Thippeswamy <thippeswamy.havalige@xxxxxxx>
> Cc: bhelgaas@xxxxxxxxxx; lpieralisi@xxxxxxxxxx; kw@xxxxxxxxx;
> manivannan.sadhasivam@xxxxxxxxxx; robh@xxxxxxxxxx; krzk+dt@xxxxxxxxxx;
> conor+dt@xxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; Simek, Michal <michal.simek@xxxxxxx>;
> Gogada, Bharat Kumar <bharat.kumar.gogada@xxxxxxx>;
> jingoohan1@xxxxxxxxx
> Subject: Re: [PATCH v14 3/3] PCI: amd-mdb: Add AMD MDB Root Port driver
>
> On Mon, Feb 24, 2025 at 01:01:17PM +0530, Thippeswamy Havalige wrote:
> > Add support for AMD MDB (Multimedia DMA Bridge) IP core as Root Port.
> >
> > The Versal2 devices include MDB Module. The integrated block for MDB
> > along with the integrated bridge can function as PCIe Root Port
> > controller at
> > Gen5 32-Gb/s operation per lane.
> >
> > Bridge supports error and legacy interrupts and are handled using
> > platform specific interrupt line in Versal2.
>
> s/legacy/INTx/ (I assume that's what you mean here)
>
> > +config PCIE_AMD_MDB
> > + bool "AMD MDB Versal2 PCIe Host controller"
> > + depends on OF || COMPILE_TEST
> > + depends on PCI && PCI_MSI
> > + select PCIE_DW_HOST
> > + help
> > + Say Y here if you want to enable PCIe controller support on AMD
> > + Versal2 SoCs. The AMD MDB Versal2 PCIe controller is based on
> > + DesignWare IP and therefore the driver re-uses the Designware core
> > + functions to implement the driver.
>
> s/Designware/DesignWare/
>
> > +static void amd_mdb_intx_irq_unmask(struct irq_data *data) {
> > + struct amd_mdb_pcie *pcie = irq_data_get_irq_chip_data(data);
> > + struct dw_pcie *pci = &pcie->pci;
> > + struct dw_pcie_rp *port = &pci->pp;
> > + unsigned long flags;
> > + u32 val;
> > +
> > + raw_spin_lock_irqsave(&port->lock, flags);
> > + val = FIELD_PREP(AMD_MDB_TLP_PCIE_INTX_MASK,
> > + AMD_MDB_PCIE_INTR_INTX_ASSERT(data->hwirq));
> > +
> > + /*
> > + * Writing '1' to a bit in AMD_MDB_TLP_IR_ENABLE_MISC enables that
> interrupt.
> > + * Writing '0' has no effect.
>
> Wrap to fit in 80 columns like the rest of the file.
>
> > + */
> > + pcie_write(pcie, val, AMD_MDB_TLP_IR_ENABLE_MISC);
> > + raw_spin_unlock_irqrestore(&port->lock, flags); }