[PATCH v1 5/9] PCI: microchip: Gather MSI information from hardware config registers
Bjorn Helgaas
helgaas at kernel.org
Wed Nov 16 08:41:35 PST 2022
On Wed, Nov 16, 2022 at 01:55:00PM +0000, daire.mcnamara at microchip.com wrote:
> From: Daire McNamara <daire.mcnamara at microchip.com>
>
> The PCIe root complex on PolarFire SoC is configured at bitstream creation
> time using Libero. Key MSI-related parameters include the number of
> MSIs (1/2/4/8/16/32) and the MSI address. In the device driver, extract
> this information from hw registers at init time, and use it to configure
> MSI system, including configuring MSI capability structure correctly in
> configuration space.
Minor nits for v2.
> + /* fixup msi enable flag */
s/msi/MSI/ here and comments below to match other usage.
> + reg = readw_relaxed(ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_FLAGS);
> + reg |= PCI_MSI_FLAGS_ENABLE;
> + writew_relaxed(reg, ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_FLAGS);
> +
> + /* fixup msi queue flags */
> + queue_size = reg & PCI_MSI_FLAGS_QMASK;
> + queue_size >>= 1;
> + reg &= ~PCI_MSI_FLAGS_QSIZE;
> + reg |= queue_size << 4;
> + writew_relaxed(reg, ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_FLAGS);
> +
> + /* fixup msi addr fields */
> + /* allow enabling msi by disabling msi-x */
s/msi-x/MSI-X/
More information about the linux-riscv
mailing list