PCI: dwc: all: Modify dbi accessors to access data of 4/2/1 bytes
Previously dbi accessors can be used to access data of size 4 bytes. But there might be situations (like accessing MSI_MESSAGE_CONTROL in order to set/get the number of required MSI interrupts in EP mode) where dbi accessors must be used to access data of size 2. This is in preparation for adding endpoint mode support to designware driver. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Niklas Cassel <niklas.cassel@axis.com> Cc: Jingoo Han <jingoohan1@gmail.com> Cc: Joao Pinto <Joao.Pinto@synopsys.com>
This commit is contained in:

committed by
Bjorn Helgaas

parent
b50b2db266
commit
a509d7d9af
@@ -521,25 +521,25 @@ static void exynos_pcie_enable_interrupts(struct exynos_pcie *ep)
|
||||
exynos_pcie_msi_init(ep);
|
||||
}
|
||||
|
||||
static u32 exynos_pcie_readl_dbi(struct dw_pcie *pci, void __iomem *base,
|
||||
u32 reg)
|
||||
static u32 exynos_pcie_read_dbi(struct dw_pcie *pci, void __iomem *base,
|
||||
u32 reg, size_t size)
|
||||
{
|
||||
struct exynos_pcie *ep = to_exynos_pcie(pci);
|
||||
u32 val;
|
||||
|
||||
exynos_pcie_sideband_dbi_r_mode(ep, true);
|
||||
val = readl(base + reg);
|
||||
dw_pcie_read(base + reg, size, &val);
|
||||
exynos_pcie_sideband_dbi_r_mode(ep, false);
|
||||
return val;
|
||||
}
|
||||
|
||||
static void exynos_pcie_writel_dbi(struct dw_pcie *pci, void __iomem *base,
|
||||
u32 reg, u32 val)
|
||||
static void exynos_pcie_write_dbi(struct dw_pcie *pci, void __iomem *base,
|
||||
u32 reg, size_t size, u32 val)
|
||||
{
|
||||
struct exynos_pcie *ep = to_exynos_pcie(pci);
|
||||
|
||||
exynos_pcie_sideband_dbi_w_mode(ep, true);
|
||||
writel(val, base + reg);
|
||||
dw_pcie_write(base + reg, size, val);
|
||||
exynos_pcie_sideband_dbi_w_mode(ep, false);
|
||||
}
|
||||
|
||||
@@ -646,8 +646,8 @@ static int __init exynos_add_pcie_port(struct exynos_pcie *ep,
|
||||
}
|
||||
|
||||
static const struct dw_pcie_ops dw_pcie_ops = {
|
||||
.readl_dbi = exynos_pcie_readl_dbi,
|
||||
.writel_dbi = exynos_pcie_writel_dbi,
|
||||
.read_dbi = exynos_pcie_read_dbi,
|
||||
.write_dbi = exynos_pcie_write_dbi,
|
||||
.link_up = exynos_pcie_link_up,
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user