Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Linux: Kernel

Is it possible to change IRQ for certain device?

 

 

Linux kernel RSS feed   Index | Next | Previous | View Threaded


linux at hazard

Jan 10, 2008, 3:05 AM

Post #1 of 10 (19704 views)
Permalink
Is it possible to change IRQ for certain device?

Hello lkml,

I have problem with my computer: I have motherboard with AMD690G chipset
and nVidia VGA card. But I cannot set BIOS, to assign for VGA unique
IRQ. VGA card is sharing IRQ with two ohci_hcd (USB 1.1 controllers).
But when I want use for X proprietary nvidia driver, X didn't work with
this errors:

In dmesg:

NVRM: RmInitAdapter failed! (0x23:0xffffffff:678)
NVRM: rm_init_adapter(0) failed

and in /var/log/Xorg.0.log:

(II) Setting vga for screen 0.
(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
(==) NVIDIA(0): RGB weight 888
(==) NVIDIA(0): Default visual is TrueColor
(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
(**) NVIDIA(0): Enabling RENDER acceleration
(II) NVIDIA(0): Support for GLX with the Damage and Composite X
extensions is
(II) NVIDIA(0): enabled.
(EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device
PCI:1:0:0.
(EE) NVIDIA(0): Please see the COMMON PROBLEMS section in the
README for
(EE) NVIDIA(0): additional information.
(EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device!
(EE) NVIDIA(0): *** Aborting ***
(II) UnloadModule: "nvidia"
(II) UnloadModule: "fb"
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found

I've found in README for NVIDIA, that VGA has to have unique IRQ. I've
tried to set INTERRUPT_LINE and INTERRUPT_PIN with setpci tool, set
pci=routeirq, pci=noacpi as the kernel boot parameters, but IRQ
is still the same.

Is there a way to change IRQ for VGA (or for ohci_hcd instead of VGA)
directly in Linux?

Thanks a lot.

Sincerely
Jan Marek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


andi at firstfloor

Jan 10, 2008, 3:23 AM

Post #2 of 10 (19564 views)
Permalink
Re: Is it possible to change IRQ for certain device? [In reply to]

Jan Marek <linux [at] hazard> writes:
>
> Is there a way to change IRQ for VGA (or for ohci_hcd instead of VGA)
> directly in Linux?

Linux normally cannot change the interrupts assigned by the BIOS
because it often requires chipset specific knowledge.

-Andi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


linux-os at analogic

Jan 10, 2008, 6:01 AM

Post #3 of 10 (19545 views)
Permalink
Re: Is it possible to change IRQ for certain device? [In reply to]

On Thu, 10 Jan 2008, Jan Marek wrote:

> Hello lkml,
>
> I have problem with my computer: I have motherboard with AMD690G chipset
> and nVidia VGA card. But I cannot set BIOS, to assign for VGA unique
> IRQ. VGA card is sharing IRQ with two ohci_hcd (USB 1.1 controllers).
> But when I want use for X proprietary nvidia driver, X didn't work with
> this errors:
>
> In dmesg:
>
> NVRM: RmInitAdapter failed! (0x23:0xffffffff:678)
> NVRM: rm_init_adapter(0) failed
>
> and in /var/log/Xorg.0.log:
>
> (II) Setting vga for screen 0.
> (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
> (==) NVIDIA(0): RGB weight 888
> (==) NVIDIA(0): Default visual is TrueColor
> (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
> (**) NVIDIA(0): Enabling RENDER acceleration
> (II) NVIDIA(0): Support for GLX with the Damage and Composite X
> extensions is
> (II) NVIDIA(0): enabled.
> (EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device
> PCI:1:0:0.
> (EE) NVIDIA(0): Please see the COMMON PROBLEMS section in the
> README for
> (EE) NVIDIA(0): additional information.
> (EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device!
> (EE) NVIDIA(0): *** Aborting ***
> (II) UnloadModule: "nvidia"
> (II) UnloadModule: "fb"
> (EE) Screen(s) found, but none have a usable configuration.
>
> Fatal server error:
> no screens found
>
> I've found in README for NVIDIA, that VGA has to have unique IRQ. I've
> tried to set INTERRUPT_LINE and INTERRUPT_PIN with setpci tool, set
> pci=routeirq, pci=noacpi as the kernel boot parameters, but IRQ
> is still the same.
>
> Is there a way to change IRQ for VGA (or for ohci_hcd instead of VGA)
> directly in Linux?
>
> Thanks a lot.
>
> Sincerely
> Jan Marek

The interrupt lines are set by the traces on the PC board and
the contents of various "glue" chips and FPGAs. Many lap-tops,
for instance, only have one IRQ serving any PCI devices. If
your screen card can't share the only IRQ you have, it is
broken. Contact the vendor of both your motherboard (they
may have a BIOS upgrade) and the screen card (they may
have a fix).


Cheers,
Dick Johnson
Penguin : Linux version 2.6.22.1 on an i686 machine (5588.29 BogoMips).
My book : http://www.AbominableFirebug.com/
_


****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors [at] analogic - and destroy all copies of this information, including any attachments, without reading or disclosing them.

Thank you.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


lenb at kernel

Jan 10, 2008, 3:43 PM

Post #4 of 10 (19557 views)
Permalink
Re: Is it possible to change IRQ for certain device? [In reply to]

On Thursday 10 January 2008 09:01, linux-os (Dick Johnson) wrote:
>
> On Thu, 10 Jan 2008, Jan Marek wrote:
>
> > Hello lkml,
> >
> > I have problem with my computer: I have motherboard with AMD690G chipset
> > and nVidia VGA card. But I cannot set BIOS, to assign for VGA unique
> > IRQ. VGA card is sharing IRQ with two ohci_hcd (USB 1.1 controllers).
> > But when I want use for X proprietary nvidia driver, X didn't work with
> > this errors:
> >
> > In dmesg:
> >
> > NVRM: RmInitAdapter failed! (0x23:0xffffffff:678)
> > NVRM: rm_init_adapter(0) failed
> >
> > and in /var/log/Xorg.0.log:
> >
> > (II) Setting vga for screen 0.
> > (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
> > (==) NVIDIA(0): RGB weight 888
> > (==) NVIDIA(0): Default visual is TrueColor
> > (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
> > (**) NVIDIA(0): Enabling RENDER acceleration
> > (II) NVIDIA(0): Support for GLX with the Damage and Composite X
> > extensions is
> > (II) NVIDIA(0): enabled.
> > (EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device
> > PCI:1:0:0.
> > (EE) NVIDIA(0): Please see the COMMON PROBLEMS section in the
> > README for
> > (EE) NVIDIA(0): additional information.
> > (EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device!
> > (EE) NVIDIA(0): *** Aborting ***
> > (II) UnloadModule: "nvidia"
> > (II) UnloadModule: "fb"
> > (EE) Screen(s) found, but none have a usable configuration.
> >
> > Fatal server error:
> > no screens found
> >
> > I've found in README for NVIDIA, that VGA has to have unique IRQ. I've
> > tried to set INTERRUPT_LINE and INTERRUPT_PIN with setpci tool, set
> > pci=routeirq, pci=noacpi as the kernel boot parameters, but IRQ
> > is still the same.
> >
> > Is there a way to change IRQ for VGA (or for ohci_hcd instead of VGA)
> > directly in Linux?
> >
> > Thanks a lot.
> >
> > Sincerely
> > Jan Marek
>
> The interrupt lines are set by the traces on the PC board and
> the contents of various "glue" chips and FPGAs. Many lap-tops,
> for instance, only have one IRQ serving any PCI devices. If
> your screen card can't share the only IRQ you have, it is
> broken. Contact the vendor of both your motherboard (they
> may have a BIOS upgrade) and the screen card (they may
> have a fix).


What Dick writes is true.
If you can move devices between slots, you can often get onto a different
physical interrupt wire.

However, if your system has an IOAPIC but you're not using IOAPIC mode,
often that programs the "glue" above so spread interrutps out.
See if your BIOS setup has any IRQ options, and see if your kernel
has the IOAPIC enabled. dmesg would tell.

cheers,
-Len
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


hancockr at shaw

Jan 10, 2008, 9:18 PM

Post #5 of 10 (19553 views)
Permalink
Re: Is it possible to change IRQ for certain device? [In reply to]

Jan Marek wrote:
> Hello lkml,
>
> I have problem with my computer: I have motherboard with AMD690G chipset
> and nVidia VGA card. But I cannot set BIOS, to assign for VGA unique
> IRQ. VGA card is sharing IRQ with two ohci_hcd (USB 1.1 controllers).
> But when I want use for X proprietary nvidia driver, X didn't work with
> this errors:
>
> In dmesg:
>
> NVRM: RmInitAdapter failed! (0x23:0xffffffff:678)
> NVRM: rm_init_adapter(0) failed
>
> and in /var/log/Xorg.0.log:
>
> (II) Setting vga for screen 0.
> (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
> (==) NVIDIA(0): RGB weight 888
> (==) NVIDIA(0): Default visual is TrueColor
> (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
> (**) NVIDIA(0): Enabling RENDER acceleration
> (II) NVIDIA(0): Support for GLX with the Damage and Composite X
> extensions is
> (II) NVIDIA(0): enabled.
> (EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device
> PCI:1:0:0.
> (EE) NVIDIA(0): Please see the COMMON PROBLEMS section in the
> README for
> (EE) NVIDIA(0): additional information.
> (EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device!
> (EE) NVIDIA(0): *** Aborting ***
> (II) UnloadModule: "nvidia"
> (II) UnloadModule: "fb"
> (EE) Screen(s) found, but none have a usable configuration.
>
> Fatal server error:
> no screens found
>
> I've found in README for NVIDIA, that VGA has to have unique IRQ. I've
> tried to set INTERRUPT_LINE and INTERRUPT_PIN with setpci tool, set
> pci=routeirq, pci=noacpi as the kernel boot parameters, but IRQ
> is still the same.
>
> Is there a way to change IRQ for VGA (or for ohci_hcd instead of VGA)
> directly in Linux?

The kernel has no control over IRQ assignments. Often they are hardwired
in the motherboard and can't be changed at all. You could check for any
relevant BIOS settings (Assign IRQ to VGA, also see if it has an APIC
mode setting that needs to be enabled).

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr [at] nospamshaw
Home Page: http://www.roberthancock.com/

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


linux at hazard

Jan 11, 2008, 8:57 AM

Post #6 of 10 (19538 views)
Permalink
Re: Is it possible to change IRQ for certain device? [In reply to]

Hello,

thanks a lot for replies.

But...
On Thu, Jan 10, 2008 at 09:01:37AM -0500, linux-os (Dick Johnson) wrote:
>
> On Thu, 10 Jan 2008, Jan Marek wrote:
>
> > Hello lkml,
> >
> > I have problem with my computer: I have motherboard with AMD690G chipset
> > and nVidia VGA card. But I cannot set BIOS, to assign for VGA unique
> > IRQ. VGA card is sharing IRQ with two ohci_hcd (USB 1.1 controllers).
> > But when I want use for X proprietary nvidia driver, X didn't work with
> > this errors:
> >
> > In dmesg:
> >
> > NVRM: RmInitAdapter failed! (0x23:0xffffffff:678)
> > NVRM: rm_init_adapter(0) failed
> >
> > and in /var/log/Xorg.0.log:
> >
> > (II) Setting vga for screen 0.
> > (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
> > (==) NVIDIA(0): RGB weight 888
> > (==) NVIDIA(0): Default visual is TrueColor
> > (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
> > (**) NVIDIA(0): Enabling RENDER acceleration
> > (II) NVIDIA(0): Support for GLX with the Damage and Composite X
> > extensions is
> > (II) NVIDIA(0): enabled.
> > (EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device
> > PCI:1:0:0.
> > (EE) NVIDIA(0): Please see the COMMON PROBLEMS section in the
> > README for
> > (EE) NVIDIA(0): additional information.
> > (EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device!
> > (EE) NVIDIA(0): *** Aborting ***
> > (II) UnloadModule: "nvidia"
> > (II) UnloadModule: "fb"
> > (EE) Screen(s) found, but none have a usable configuration.
> >
> > Fatal server error:
> > no screens found
> >
> > I've found in README for NVIDIA, that VGA has to have unique IRQ. I've
> > tried to set INTERRUPT_LINE and INTERRUPT_PIN with setpci tool, set
> > pci=routeirq, pci=noacpi as the kernel boot parameters, but IRQ
> > is still the same.
> >
> > Is there a way to change IRQ for VGA (or for ohci_hcd instead of VGA)
> > directly in Linux?
> >
> > Thanks a lot.
> >
> > Sincerely
> > Jan Marek
>
> The interrupt lines are set by the traces on the PC board and
> the contents of various "glue" chips and FPGAs. Many lap-tops,
> for instance, only have one IRQ serving any PCI devices. If
> your screen card can't share the only IRQ you have, it is
> broken. Contact the vendor of both your motherboard (they
> may have a BIOS upgrade) and the screen card (they may
> have a fix).

I know, that interrupt lines are hardwired, but IMHO IOAPIC can assign
for every device on every hardwired line another IRQ. Am I right? I
think, that in this process can do some work BIOS. But I though, that
Linux can do similar work, when initializing hardware and can reassign
IRQ for certain device to another "number".

In BIOS of my motherboard there is no options like "IRQ for VGA" or
similar... :-( It's Gigabyte MA69G-S3H. I have already flashed newest
BIOS, which is on the Gigabyte web pages...

I suppose, that VGA card does not need unique IRQ, but programmers,
which wrote driver, want it. I can imagine, that VGA card have many
interrupts, especially in the OpenGL games, but I cannot assign unique
IRQ for VGA card at all :-(

But thank you for advice: I will try to send e-mail to Gigabyte and ask
they, if it possible to do change in the BIOS.

BTW: it is interesting: I had a Biostar TA690G motherboard and it behave
similar as Gigabyte: I cannnot assign unique IRQ to the external
graphics card... Chipsets of this motherboards are the same...

I've tried to solve this problem by bought of new motherboard: Gigabyte
MA790FX-DS5. I will see, if this board will behave as previous board...

>
> Cheers,
> Dick Johnson
> Penguin : Linux version 2.6.22.1 on an i686 machine (5588.29 BogoMips).
> My book : http://www.AbominableFirebug.com/

Sincerely
Jan Marek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


rlrevell at joe-job

Jan 13, 2008, 7:57 PM

Post #7 of 10 (19554 views)
Permalink
Re: Is it possible to change IRQ for certain device? [In reply to]

On Jan 11, 2008 11:57 AM, Jan Marek <linux [at] hazard> wrote:
> I suppose, that VGA card does not need unique IRQ, but programmers,
> which wrote driver, want it. I can imagine, that VGA card have many
> interrupts, especially in the OpenGL games, but I cannot assign unique
> IRQ for VGA card at all :-(
>
> But thank you for advice: I will try to send e-mail to Gigabyte and ask
> they, if it possible to do change in the BIOS.
>
> BTW: it is interesting: I had a Biostar TA690G motherboard and it behave
> similar as Gigabyte: I cannnot assign unique IRQ to the external
> graphics card... Chipsets of this motherboards are the same...
>
> I've tried to solve this problem by bought of new motherboard: Gigabyte
> MA790FX-DS5. I will see, if this board will behave as previous board...

Why is a shared IRQ a problem for you? IRQ handlers are supposed to
be fast enough that disabling an IRQ line for the duration of the
handler execution should not be a problem even if the IRQ is shared.
VGA interrupts in particular should only fire once per frame and only
need to flip some bits to wake up any processes waiting on vsync.

If you have issues with a shared VGA interrupt then the bug is that
some IRQ handler runs for too long and should be deferring work to a
bottom half.

Lee
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


bdonlan at gmail

Jan 13, 2008, 9:30 PM

Post #8 of 10 (19530 views)
Permalink
Re: Is it possible to change IRQ for certain device? [In reply to]

On Jan 13, 2008 10:57 PM, Lee Revell <rlrevell [at] joe-job> wrote:
> On Jan 11, 2008 11:57 AM, Jan Marek <linux [at] hazard> wrote:
> > I suppose, that VGA card does not need unique IRQ, but programmers,
> > which wrote driver, want it. I can imagine, that VGA card have many
> > interrupts, especially in the OpenGL games, but I cannot assign unique
> > IRQ for VGA card at all :-(
> >
> > But thank you for advice: I will try to send e-mail to Gigabyte and ask
> > they, if it possible to do change in the BIOS.
> >
> > BTW: it is interesting: I had a Biostar TA690G motherboard and it behave
> > similar as Gigabyte: I cannnot assign unique IRQ to the external
> > graphics card... Chipsets of this motherboards are the same...
> >
> > I've tried to solve this problem by bought of new motherboard: Gigabyte
> > MA790FX-DS5. I will see, if this board will behave as previous board...
>
> Why is a shared IRQ a problem for you? IRQ handlers are supposed to
> be fast enough that disabling an IRQ line for the duration of the
> handler execution should not be a problem even if the IRQ is shared.
> VGA interrupts in particular should only fire once per frame and only
> need to flip some bits to wake up any processes waiting on vsync.
>
> If you have issues with a shared VGA interrupt then the bug is that
> some IRQ handler runs for too long and should be deferring work to a
> bottom half.

Jan is apparently using the nvidia binary driver, so I doubt it will
be possible to fix the bug that prevents it from sharing IRQs.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


rlrevell at joe-job

Jan 13, 2008, 10:04 PM

Post #9 of 10 (19534 views)
Permalink
Re: Is it possible to change IRQ for certain device? [In reply to]

On Jan 14, 2008 12:30 AM, Bryan Donlan <bdonlan [at] gmail> wrote:
>
> On Jan 13, 2008 10:57 PM, Lee Revell <rlrevell [at] joe-job> wrote:
> > On Jan 11, 2008 11:57 AM, Jan Marek <linux [at] hazard> wrote:
> > Why is a shared IRQ a problem for you? IRQ handlers are supposed to
> > be fast enough that disabling an IRQ line for the duration of the
> > handler execution should not be a problem even if the IRQ is shared.
> > VGA interrupts in particular should only fire once per frame and only
> > need to flip some bits to wake up any processes waiting on vsync.
> >
> > If you have issues with a shared VGA interrupt then the bug is that
> > some IRQ handler runs for too long and should be deferring work to a
> > bottom half.
>
> Jan is apparently using the nvidia binary driver, so I doubt it will
> be possible to fix the bug that prevents it from sharing IRQs.
>

Ah, of course, stupid me. Thought I was on linux-audio-user where
this is a FAQ (for completely different reasons) and not LKML.

But this is strange - I'm sure I've seen people using that driver with
a shared IRQ before.

Jan, maybe you can blacklist ohci-hcd as a workaround? In any case
let's take this discussion off LKML so as not to spam the list with
binary only driver issues.

Lee
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


folkert at vanheusden

Jan 15, 2008, 1:33 PM

Post #10 of 10 (19527 views)
Permalink
Re: Is it possible to change IRQ for certain device? [In reply to]

> Why is a shared IRQ a problem for you? IRQ handlers are supposed to
> be fast enough that disabling an IRQ line for the duration of the
> handler execution should not be a problem even if the IRQ is shared.

Take the 'zaptel' driver for example, for FXO cards for Asterisk for
example. They hate to share their irq. In fact: they refuse to work when
their irq is shared.


Folkert van Heusden

--
MultiTail na wan makriki wrokosani fu tan luku den logfile nanga san
den commando spiti puru. Piki puru spesrutu sani, wroko nanga difrenti
kroru, tya kon makandra, nanga wan lo moro.
http://www.vanheusden.com/multitail/
----------------------------------------------------------------------
Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Linux kernel RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.