Messages in this thread | | | Date | Fri, 18 Mar 2005 13:44:36 -0500 (EST) | From | linux-os <> | Subject | Re: Questions about request_irq and reading PCI_INTERRUPT_LINE |
| |
On Fri, 18 Mar 2005, Le Wen wrote:
> Hi, there, > > I have problem to grab video from my ati all-in-wonder card. The card is in a > PII Celeron machine with an on board video card (ATI Technologies Inc 3D Rage > IIC AGP). there is no monitor connected with the on board video card. I only > hook my AIW card with a monitor. > > I use km-0.6 from gatos project. I load this km_drv module, but kernel always > complains: > > km: IRQ 0 busy > > I checked code: > km_probe(struct pci_dev *dev, const struct pci_device_id *pci_id) > > here dev->irq with a value 0. > > When km_probe gets called, it try to request an IRQ0 returns a -EBUSY: > kms_irq=dev.irq; > result=request_irq(kms->irq, handler, SA_SHIRQ, tag, (void *)kms); > > if(result==-EBUSY){ > printk(KERN_ERR "km: IRQ %ld busy\n", kms->irq); > goto fail; > } > > > So I tried to get right IRQ number using: > u8 myirq; > int rtn=pci_read_config_byte(dev,PCI_INTERRUPT_LINE, &myirq); > dev->irq=myirq; > kms->irq=dev_irq; > result=request_irq(kms->irq, handler, SA_SHIRQ, tag, (void *)kms); > > if(result==-EBUSY){ > printk(KERN_ERR "km: IRQ %ld busy\n", kms->irq); > goto fail; > } > if(result<0){ > printk(KERN_ERR "km: could not install irq handler: > result=%d\n",result); > goto fail; > } > But this time I got: > > km: kms->irq=24 > km: could not install irq handler: result=-38 > > > My questions are: > 1. I don't know why dev->irq has value of 0? >
The PCI interface now needs to be enabled first. The IRQ value returned is BAD until after one calls pci_enable_device(). This is a BUG, now considered a FEATURE so it's unlikely to be fixed! There are lots of people who have encountered this problem with modules that are not in the "distribution".
> 2. Is an IRQ number of 24 valid for a Intel PII Celeron? >
Could be, but it;s probably invalid considering the way you got it.
> 3. What does this result=-38 mean? >
Probably errno 38, i.e., ENOSYS
> > Wen, Le >
Cheers, Dick Johnson Penguin : Linux version 2.6.11 on an i686 machine (5537.79 BogoMips). Notice : All mail here is now cached for review by Dictator Bush. 98.36% of all statistics are fiction. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |