linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* MPC7448_HPC2 question
@ 2006-10-25  5:20 Benjamin Herrenschmidt
  2006-10-25  5:31 ` Zang Roy-r61911
  2006-10-25  9:31 ` Zang Roy-r61911
  0 siblings, 2 replies; 5+ messages in thread
From: Benjamin Herrenschmidt @ 2006-10-25  5:20 UTC (permalink / raw)
  To: Roy Zang; +Cc: linuxppc-dev list

Any reason why that:

void mpc7448_hpc2_fixup_irq(struct pci_dev *dev)
{
	struct pci_controller *hose;
	struct device_node *node;
	const unsigned int *interrupt;
	int busnr;
	int len;
	u8 slot;
	u8 pin;

	/* Lookup the hose */
	busnr = dev->bus->number;
	hose = pci_bus_to_hose(busnr);
	if (!hose)
		printk(KERN_ERR "No pci hose found\n");

	/* Check it has an OF node associated */
	node = (struct device_node *) hose->arch_data;
	if (!node)
		printk(KERN_ERR "No pci node found\n");

	interrupt = get_property(node, "interrupt-map", &len);
	slot = find_slot_by_devfn(interrupt, dev->devfn);
	pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
	if (pin == 0 || pin > 4)
		pin = 1;
	pin--;
	dev->irq  = interrupt[slot*4*7 + pin*7 + 5];
	DBG("TSI_PCI: dev->irq = 0x%x\n", dev->irq);
}

Cannot be replaced by:

	pci_read_irq_line(dev);

I'm about to make pci_read_irq_line() called by default by the PCI
code (with a new ppc_md.pci_irq_fixup for platforms that really need
something else done) and so while "fixing" all platforms, I stumbled
accross the code above which is a bit shocking :)

Cheers,

Ben.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-10-26  7:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-25  5:20 MPC7448_HPC2 question Benjamin Herrenschmidt
2006-10-25  5:31 ` Zang Roy-r61911
2006-10-25  9:31 ` Zang Roy-r61911
2006-10-25 13:45   ` Benjamin Herrenschmidt
2006-10-26  7:59     ` Zang Roy-r61911

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).