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?
2. Is an IRQ number of 24 valid for a Intel PII Celeron?
3. What does this result=-38 mean?
Wen, Le