Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8cfaf453 authored by Giuseppe Sacco's avatar Giuseppe Sacco Committed by Ralf Baechle
Browse files

[MIPS] IP32: Enable PCI bridges



Fixe MACE PCI addressing by adding the bus number parameter.
Remove check of the used slot since every slot should be valid.
Converted mkaddr from #define to inline function.

Signed-off-by: default avatarGiuseppe Sacco <eppesuig@debian.org>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 804b3f9a
Loading
Loading
Loading
Loading
+9 −12
Original line number Diff line number Diff line
@@ -29,22 +29,20 @@
 * 4  N/C
 */

#define chkslot(_bus,_devfn)					\
do {							        \
	if ((_bus)->number > 0 || PCI_SLOT (_devfn) < 1	\
	    || PCI_SLOT (_devfn) > 3)			        \
		return PCIBIOS_DEVICE_NOT_FOUND;		\
} while (0)
static inline int mkaddr(struct pci_bus *bus, unsigned int devfn,
	unsigned int reg)
{
	return ((bus->number & 0xff) << 16) |
		(devfn & 0xff) << 8) |
		(reg & 0xfc);
}

#define mkaddr(_devfn, _reg) \
((((_devfn) & 0xffUL) << 8) | ((_reg) & 0xfcUL))

static int
mace_pci_read_config(struct pci_bus *bus, unsigned int devfn,
		     int reg, int size, u32 *val)
{
	chkslot(bus, devfn);
	mace->pci.config_addr = mkaddr(devfn, reg);
	mace->pci.config_addr = mkaddr(bus, devfn, reg);
	switch (size) {
	case 1:
		*val = mace->pci.config_data.b[(reg & 3) ^ 3];
@@ -66,8 +64,7 @@ static int
mace_pci_write_config(struct pci_bus *bus, unsigned int devfn,
		      int reg, int size, u32 val)
{
	chkslot(bus, devfn);
	mace->pci.config_addr = mkaddr(devfn, reg);
	mace->pci.config_addr = mkaddr(bus, devfn, reg);
	switch (size) {
	case 1:
		mace->pci.config_data.b[(reg & 3) ^ 3] = val;