arch/mips/pci/fixup-sni.c

Source file repositories/reference/linux-study-clean/arch/mips/pci/fixup-sni.c

File Facts

System
Linux kernel
Corpus path
arch/mips/pci/fixup-sni.c
Extension
.c
Size
4912 bytes
Lines
170
Domain
Architecture Layer
Bucket
arch/mips
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

if (slot == 4) {
			/*
			 * SNI messed up interrupt wiring for onboard
			 * PCI bus 1; we need to fix this up here
			 */
			while (dev && dev->bus->number != 1)
				dev = dev->bus->self;
			if (dev && dev->devfn >= PCI_DEVFN(4, 0))
				slot = 5;
		}
		return irq_tab_pcit_cplus[slot][pin];
	case SNI_BRD_PCI_TOWER:
		return irq_tab_pcit[slot][pin];

	case SNI_BRD_PCI_MTOWER:
		if (is_rm300_revd())
			return irq_tab_rm300d[slot][pin];
		fallthrough;
	case SNI_BRD_PCI_DESKTOP:
		return irq_tab_rm200[slot][pin];

	case SNI_BRD_PCI_MTOWER_CPLUS:
		return irq_tab_rm300e[slot][pin];
	}

	return 0;
}

/* Do platform specific device initialization at pci_enable_device() time */
int pcibios_plat_dev_init(struct pci_dev *dev)
{
	return 0;
}

Annotation

Implementation Notes