public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Sergio Monteiro Basto <sergio-qOf5bGQp09kptuEoxK/DLR2eb7JE58TQ@public.gmane.org>
To: Len Brown
	<lenb-g3qfMnKXm6l/wjb6y0L7XlrsPObopucw0e7PPNI6Mm0@public.gmane.org>
Cc: torvalds-3NddpPZAyC0@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	bjorn.helgaas-VXdhtT5mjnY@public.gmane.org
Subject: Re: [PATCH] VIA IRQ quirk for 2.6.12-rc5
Date: Fri, 27 May 2005 16:47:23 +0100	[thread overview]
Message-ID: <4297410B.7050905@sergiomb.no-ip.org> (raw)
In-Reply-To: <20050527082150.GA24428-g3qfMnKXm6l/wjb6y0L7XlrsPObopucw0e7PPNI6Mm0@public.gmane.org>

Hi Len,

Bjorn Helgaas has updated this issue on email [ACPI] [PATCH] PCI: do VIA IRQ fixup always, not just in PIC mode (resend)

My suggestion is reopen the bug 3319 
http://bugme.osdl.org/show_bug.cgi?id=3319
for track down better this issue .

thanks, 


Len Brown wrote:

>Linus,
>Please apply this patch to 2.6.12-rc5.
>It fixes a 2.6.11 regression in the VIA IRQ quirk
>on machines with mixed vendor chip-sets.
>
>thanks,
>Len
>
>
>Delete quirk_via_bridge(), restore quirk_via_irqpic() --
>but now improved to be invoked upon device ENABLE, and
>now only for VIA devices -- not all devices behind VIA bridges.
>
>Signed-off-by: Bjorn Helgaas <bjorn.helgaas-VXdhtT5mjnY@public.gmane.org>
>Signed-off-by: Len Brown <len.brown-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
>Signed-off-by: Andrew Morton <akpm-3NddpPZAyC0@public.gmane.org>
>
>
>diff -uprN -X dontdiff linux-2.6.12-rc5.orig/arch/i386/pci/irq.c linux-2.6.12-rc5/arch/i386/pci/irq.c
>--- linux-2.6.12-rc5.orig/arch/i386/pci/irq.c	2005-05-27 01:42:45.000000000 -0400
>+++ linux-2.6.12-rc5/arch/i386/pci/irq.c	2005-05-27 02:31:41.000000000 -0400
>@@ -1029,7 +1029,6 @@ void pcibios_penalize_isa_irq(int irq)
> static int pirq_enable_irq(struct pci_dev *dev)
> {
> 	u8 pin;
>-	extern int via_interrupt_line_quirk;
> 	struct pci_dev *temp_dev;
> 
> 	pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
>@@ -1084,10 +1083,6 @@ static int pirq_enable_irq(struct pci_de
> 		printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s.%s\n",
> 		       'A' + pin, pci_name(dev), msg);
> 	}
>-	/* VIA bridges use interrupt line for apic/pci steering across
>-	   the V-Link */
>-	else if (via_interrupt_line_quirk)
>-		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq & 15);
> 	return 0;
> }
> 
>diff -uprN -X dontdiff linux-2.6.12-rc5.orig/drivers/acpi/pci_irq.c linux-2.6.12-rc5/drivers/acpi/pci_irq.c
>--- linux-2.6.12-rc5.orig/drivers/acpi/pci_irq.c	2005-05-27 01:43:08.000000000 -0400
>+++ linux-2.6.12-rc5/drivers/acpi/pci_irq.c	2005-05-27 02:31:41.000000000 -0400
>@@ -391,7 +391,6 @@ acpi_pci_irq_enable (
> 	u8			pin = 0;
> 	int			edge_level = ACPI_LEVEL_SENSITIVE;
> 	int			active_high_low = ACPI_ACTIVE_LOW;
>-	extern int		via_interrupt_line_quirk;
> 	char			*link = NULL;
> 
> 	ACPI_FUNCTION_TRACE("acpi_pci_irq_enable");
>@@ -444,9 +443,6 @@ acpi_pci_irq_enable (
> 		}
>  	}
> 
>-	if (via_interrupt_line_quirk)
>-		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq & 15);
>-
> 	dev->irq = acpi_register_gsi(irq, edge_level, active_high_low);
> 
> 	printk(KERN_INFO PREFIX "PCI Interrupt %s[%c] -> ",
>diff -uprN -X dontdiff linux-2.6.12-rc5.orig/drivers/pci/quirks.c linux-2.6.12-rc5/drivers/pci/quirks.c
>--- linux-2.6.12-rc5.orig/drivers/pci/quirks.c	2005-05-27 01:43:34.000000000 -0400
>+++ linux-2.6.12-rc5/drivers/pci/quirks.c	2005-05-27 02:35:27.000000000 -0400
>@@ -18,6 +18,7 @@
> #include <linux/pci.h>
> #include <linux/init.h>
> #include <linux/delay.h>
>+#include <linux/acpi.h>
> #include "pci.h"
> 
> /* Deal with broken BIOS'es that neglect to enable passive release,
>@@ -467,9 +468,6 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AM
>  * non-x86 architectures (yes Via exists on PPC among other places),
>  * we must mask the PCI_INTERRUPT_LINE value versus 0xf to get
>  * interrupts delivered properly.
>- *
>- * TODO: When we have device-specific interrupt routers,
>- * quirk_via_irqpic will go away from quirks.
>  */
> 
> /*
>@@ -494,6 +492,29 @@ static void __devinit quirk_via_acpi(str
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C586_3,	quirk_via_acpi );
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C686_4,	quirk_via_acpi );
> 
>+static void __devinit quirk_via_irqpic(struct pci_dev *dev)
>+{
>+	u8 irq, new_irq;
>+
>+#ifdef CONFIG_X86_IO_APIC
>+	if (nr_ioapics && !skip_ioapic_setup)
>+		return;
>+#endif
>+#ifdef CONFIG_ACPI
>+	if (acpi_irq_model != ACPI_IRQ_MODEL_PIC)
>+		return;
>+#endif
>+	new_irq = dev->irq & 0xf;
>+	pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
>+	if (new_irq != irq) {
>+		printk(KERN_INFO "PCI: Via PIC IRQ fixup for %s, from %d to %d\n",
>+			pci_name(dev), irq, new_irq);
>+		udelay(15);	/* unknown if delay really needed */
>+		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
>+	}
>+}
>+DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_via_irqpic);
>+
> /*
>  * PIIX3 USB: We have to disable USB interrupts that are
>  * hardwired to PIRQD# and may be shared with an
>@@ -683,19 +704,6 @@ static void __init quirk_disable_pxb(str
> }
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_82454NX,	quirk_disable_pxb );
> 
>-/*
>- *	VIA northbridges care about PCI_INTERRUPT_LINE
>- */
>-int via_interrupt_line_quirk;
>-
>-static void __devinit quirk_via_bridge(struct pci_dev *pdev)
>-{
>-	if(pdev->devfn == 0) {
>-		printk(KERN_INFO "PCI: Via IRQ fixup\n");
>-		via_interrupt_line_quirk = 1;
>-	}
>-}
>-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA,	PCI_ANY_ID,                     quirk_via_bridge );
> 
> /*
>  *	Serverworks CSB5 IDE does not fully support native mode
>diff -uprN -X dontdiff linux-2.6.12-rc5.orig/include/linux/acpi.h linux-2.6.12-rc5/include/linux/acpi.h
>--- linux-2.6.12-rc5.orig/include/linux/acpi.h	2005-05-27 01:44:10.000000000 -0400
>+++ linux-2.6.12-rc5/include/linux/acpi.h	2005-05-27 02:47:04.000000000 -0400
>@@ -25,6 +25,8 @@
> #ifndef _LINUX_ACPI_H
> #define _LINUX_ACPI_H
> 
>+#ifdef	CONFIG_ACPI
>+
> #ifndef _LINUX
> #define _LINUX
> #endif
>@@ -533,4 +535,5 @@ static inline int acpi_get_pxm(acpi_hand
> 
> extern int pnpacpi_disabled;
> 
>-#endif /*_LINUX_ACPI_H*/
>+#endif	/* CONFIG_ACPI */
>+#endif	/*_LINUX_ACPI_H*/
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by Yahoo.
>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
>Search APIs Find out how you can build Yahoo! directly into your own
>Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
>_______________________________________________
>Acpi-devel mailing list
>Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>https://lists.sourceforge.net/lists/listinfo/acpi-devel
>  
>



-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005

      parent reply	other threads:[~2005-05-27 15:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-27  8:21 [PATCH] VIA IRQ quirk for 2.6.12-rc5 Len Brown
2005-05-27  8:53 ` [PATCH] ACPI build fix " Len Brown
2005-05-27 10:48   ` Alexander Nyberg
     [not found]   ` <20050527085326.GA29767-g3qfMnKXm6l/wjb6y0L7XlrsPObopucw0e7PPNI6Mm0@public.gmane.org>
2005-05-27 15:27     ` Linus Torvalds
2005-05-27 10:27 ` [PATCH] VIA IRQ quirk " Alexander Nyberg
     [not found] ` <20050527082150.GA24428-g3qfMnKXm6l/wjb6y0L7XlrsPObopucw0e7PPNI6Mm0@public.gmane.org>
2005-05-27 10:09   ` Alan Cox
     [not found]     ` <1117188546.5730.175.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2005-06-22 16:17       ` Bjorn Helgaas
2005-05-27 15:47   ` Sergio Monteiro Basto [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4297410B.7050905@sergiomb.no-ip.org \
    --to=sergio-qof5bgqp09kptueoxk/dlr2eb7je58tq@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=bjorn.helgaas-VXdhtT5mjnY@public.gmane.org \
    --cc=lenb-g3qfMnKXm6l/wjb6y0L7XlrsPObopucw0e7PPNI6Mm0@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=torvalds-3NddpPZAyC0@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox