Commit 923cfd08 authored by Ilpo Järvinen's avatar Ilpo Järvinen Committed by Thomas Bogendoerfer
Browse files

MIPS: PCI: Return PCIBIOS_* from tx4927_pci_config_read/write()



pci_ops .read/.write must return PCIBIOS_* codes but
tx4927_pci_config_read/write() return -1 when mkaddr() cannot find
devfn from the root bus. Return PCIBIOS_DEVICE_NOT_FOUND instead and
pass that onward in the call chain instead of overwriting the return
value.

Also converts 0 -> PCIBIOS_SUCCESSFUL which has only cosmetic impact.

Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: default avatarSergio Paracuellos <sergio.paracuellos@gmail.com>
Reviewed-by: default avatarSergio Paracuellos <sergio.paracuellos@gmal.com>
Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
parent 10e51ebc
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ static int mkaddr(struct pci_bus *bus, unsigned int devfn, int where,
{
	if (bus->parent == NULL &&
	    devfn >= PCI_DEVFN(TX4927_PCIC_MAX_DEVNU, 0))
		return -1;
		return PCIBIOS_DEVICE_NOT_FOUND;
	__raw_writel(((bus->number & 0xff) << 0x10)
		     | ((devfn & 0xff) << 0x08) | (where & 0xfc)
		     | (bus->parent ? 1 : 0),
@@ -69,7 +69,7 @@ static int mkaddr(struct pci_bus *bus, unsigned int devfn, int where,
	__raw_writel((__raw_readl(&pcicptr->pcistatus) & 0x0000ffff)
		     | (PCI_STATUS_REC_MASTER_ABORT << 16),
		     &pcicptr->pcistatus);
	return 0;
	return PCIBIOS_SUCCESSFUL;
}

static int check_abort(struct tx4927_pcic_reg __iomem *pcicptr)
@@ -140,10 +140,12 @@ static int tx4927_pci_config_read(struct pci_bus *bus, unsigned int devfn,
				  int where, int size, u32 *val)
{
	struct tx4927_pcic_reg __iomem *pcicptr = pci_bus_to_pcicptr(bus);
	int ret;

	if (mkaddr(bus, devfn, where, pcicptr)) {
	ret = mkaddr(bus, devfn, where, pcicptr);
	if (ret != PCIBIOS_SUCCESSFUL) {
		*val = 0xffffffff;
		return -1;
		return ret;
	}
	switch (size) {
	case 1:
@@ -162,9 +164,11 @@ static int tx4927_pci_config_write(struct pci_bus *bus, unsigned int devfn,
				   int where, int size, u32 val)
{
	struct tx4927_pcic_reg __iomem *pcicptr = pci_bus_to_pcicptr(bus);
	int ret;

	if (mkaddr(bus, devfn, where, pcicptr))
		return -1;
	ret = mkaddr(bus, devfn, where, pcicptr);
	if (ret != PCIBIOS_SUCCESSFUL)
		return ret;
	switch (size) {
	case 1:
		icd_writeb(val, where & 3, pcicptr);