diff options
author | Rob Herring <robh@kernel.org> | 2015-01-09 21:34:47 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2015-01-30 17:14:43 -0500 |
commit | b44923b78d11175d80a1693deb82bdcd13070ba9 (patch) | |
tree | 210ff42733821c16a2a48e806d7742f585572c8d /drivers/pci | |
parent | 21186728865ec0485fe874a175f99b375c859f2b (diff) |
PCI: rcar: Convert to use generic config accessors
Convert the rcar-gen2 host PCI driver to use the generic config access
functions.
This changes the I/O accessors from io(read|write)X to readX/writeX
variants which are equivalent on ARM.
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
CC: Simon Horman <horms@verge.net.au>
CC: linux-sh@vger.kernel.org
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/host/pci-rcar-gen2.c | 51 |
1 files changed, 3 insertions, 48 deletions
diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c index d9c042febb1a..dd6b84e6206c 100644 --- a/drivers/pci/host/pci-rcar-gen2.c +++ b/drivers/pci/host/pci-rcar-gen2.c | |||
@@ -131,52 +131,6 @@ static void __iomem *rcar_pci_cfg_base(struct pci_bus *bus, unsigned int devfn, | |||
131 | return priv->reg + (slot >> 1) * 0x100 + where; | 131 | return priv->reg + (slot >> 1) * 0x100 + where; |
132 | } | 132 | } |
133 | 133 | ||
134 | static int rcar_pci_read_config(struct pci_bus *bus, unsigned int devfn, | ||
135 | int where, int size, u32 *val) | ||
136 | { | ||
137 | void __iomem *reg = rcar_pci_cfg_base(bus, devfn, where); | ||
138 | |||
139 | if (!reg) | ||
140 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
141 | |||
142 | switch (size) { | ||
143 | case 1: | ||
144 | *val = ioread8(reg); | ||
145 | break; | ||
146 | case 2: | ||
147 | *val = ioread16(reg); | ||
148 | break; | ||
149 | default: | ||
150 | *val = ioread32(reg); | ||
151 | break; | ||
152 | } | ||
153 | |||
154 | return PCIBIOS_SUCCESSFUL; | ||
155 | } | ||
156 | |||
157 | static int rcar_pci_write_config(struct pci_bus *bus, unsigned int devfn, | ||
158 | int where, int size, u32 val) | ||
159 | { | ||
160 | void __iomem *reg = rcar_pci_cfg_base(bus, devfn, where); | ||
161 | |||
162 | if (!reg) | ||
163 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
164 | |||
165 | switch (size) { | ||
166 | case 1: | ||
167 | iowrite8(val, reg); | ||
168 | break; | ||
169 | case 2: | ||
170 | iowrite16(val, reg); | ||
171 | break; | ||
172 | default: | ||
173 | iowrite32(val, reg); | ||
174 | break; | ||
175 | } | ||
176 | |||
177 | return PCIBIOS_SUCCESSFUL; | ||
178 | } | ||
179 | |||
180 | /* PCI interrupt mapping */ | 134 | /* PCI interrupt mapping */ |
181 | static int rcar_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | 135 | static int rcar_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
182 | { | 136 | { |
@@ -325,8 +279,9 @@ static int rcar_pci_setup(int nr, struct pci_sys_data *sys) | |||
325 | } | 279 | } |
326 | 280 | ||
327 | static struct pci_ops rcar_pci_ops = { | 281 | static struct pci_ops rcar_pci_ops = { |
328 | .read = rcar_pci_read_config, | 282 | .map_bus = rcar_pci_cfg_base, |
329 | .write = rcar_pci_write_config, | 283 | .read = pci_generic_config_read, |
284 | .write = pci_generic_config_write, | ||
330 | }; | 285 | }; |
331 | 286 | ||
332 | static int rcar_pci_probe(struct platform_device *pdev) | 287 | static int rcar_pci_probe(struct platform_device *pdev) |