lkml.org 
[lkml]   [2005]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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/

\
 
 \ /
  Last update: 2005-03-22 14:11    [W:0.151 / U:0.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site