home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lxapi32.zip / PCI / pci-irq.c < prev    next >
C/C++ Source or Header  |  2002-04-26  |  2KB  |  73 lines

  1. /* $Id: pci-irq.c,v 1.2 2002/04/26 23:09:34 smilcke Exp $ */
  2.  
  3. /*
  4.  * pci-irq.c
  5.  * Autor:               Stefan Milcke
  6.  * Erstellt am:         01.11.2001
  7.  * Letzte Aenderung am: 20.11.2001
  8.  *
  9. */
  10.  
  11. #include <linux/config.h>
  12. #include <linux/types.h>
  13. #include <linux/kernel.h>
  14. #include <linux/mm.h>
  15. #include <linux/init.h>
  16. #include <linux/pci.h>
  17.  
  18. struct irq_router {
  19.     char *name;
  20.     u16 vendor, device;
  21.     int (*get)(struct pci_dev *router, struct pci_dev *dev, int pirq);
  22.     int (*set)(struct pci_dev *router, struct pci_dev *dev, int pirq, int new);
  23. };
  24.  
  25. static struct irq_routing_table *pirq_table=NULL;
  26. static struct irq_router *pirq_router=NULL;
  27.  
  28. //----------------------------- pcibios_lookup_irq -----------------------------
  29. static int pcibios_lookup_irq(struct pci_dev *dev,int assign)
  30. {
  31.  u8 pin;
  32.  struct irq_info *info;
  33.  int i,pirq,newirq;
  34.  int irq=0;
  35.  u32 mask;
  36.  struct irq_router *r=pirq_router;
  37.  struct pci_dev *dev2;
  38.  char *msg=NULL;
  39.  if(!pirq_table)
  40.   return 0;
  41.  return 0;
  42.  // Incomplete (SM)
  43. }
  44.  
  45. //------------------------------ pcibios_irq_init ------------------------------
  46. void __init pcibios_irq_init(void)
  47. {
  48.  // DBG("PCI: IRQ init\n");
  49.  // Incomplete (SM)
  50. }
  51.  
  52. //----------------------------- pcibios_enable_irq -----------------------------
  53. void pcibios_enable_irq(struct pci_dev *dev)
  54. {
  55.  u8 pin;
  56.  pci_read_config_byte(dev,PCI_INTERRUPT_PIN,&pin);
  57.  if(pin&&!pcibios_lookup_irq(dev,1)&&!dev->irq)
  58.  {
  59.   // Incomplete (SM)
  60.   /*
  61.         char *msg;
  62.         if (io_apic_assign_pci_irqs)
  63.             msg = " Probably buggy MP table.";
  64.         else if (pci_probe & PCI_BIOS_IRQ_SCAN)
  65.             msg = "";
  66.         else
  67.             msg = " Please try using pci=biosirq.";
  68.         printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s.%s\n",
  69.                'A' + pin - 1, dev->slot_name, msg);
  70.   */
  71.  }
  72. }
  73.