| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #include <linux/kernel.h>
 | 
					
						
							|  |  |  | #include <linux/init.h>
 | 
					
						
							|  |  |  | #include <linux/types.h>
 | 
					
						
							|  |  |  | #include <linux/pci.h>
 | 
					
						
							| 
									
										
										
										
											2012-05-18 17:42:29 +09:00
										 |  |  | #include <linux/sh_intc.h>
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-10 15:30:21 +01:00
										 |  |  | int __init pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | { | 
					
						
							|  |  |  | 	int irq; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if (dev->bus->number == 0) { | 
					
						
							|  |  |  | 		switch (slot) { | 
					
						
							| 
									
										
										
										
											2012-05-18 17:42:29 +09:00
										 |  |  | 		case 4: return evt2irq(0x2a0);	/* eth0       */ | 
					
						
							|  |  |  | 		case 8: return evt2irq(0x2a0);	/* eth1       */ | 
					
						
							|  |  |  | 		case 6: return evt2irq(0x240);	/* PCI bridge */ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 		default: | 
					
						
							| 
									
										
										
										
											2006-09-27 16:43:28 +09:00
										 |  |  | 			printk(KERN_ERR "PCI: Bad IRQ mapping request " | 
					
						
							|  |  |  | 					"for slot %d\n", slot); | 
					
						
							| 
									
										
										
										
											2012-05-18 17:42:29 +09:00
										 |  |  | 			return evt2irq(0x240); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		switch (pin) { | 
					
						
							| 
									
										
										
										
											2012-05-18 17:42:29 +09:00
										 |  |  | 		case 0:   irq =  evt2irq(0x240); break; | 
					
						
							|  |  |  | 		case 1:   irq =  evt2irq(0x240); break; | 
					
						
							|  |  |  | 		case 2:   irq =  evt2irq(0x240); break; | 
					
						
							|  |  |  | 		case 3:   irq =  evt2irq(0x240); break; | 
					
						
							|  |  |  | 		case 4:   irq =  evt2irq(0x240); break; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 		default:  irq = -1; break; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return irq; | 
					
						
							|  |  |  | } |