* [patch 1/4] pci: store PCI_INTERRUPT_PIN in pci_dev
[not found] <20051103001540.365407000@whizzy>
@ 2005-11-03 0:24 ` Kristen Accardi
2005-11-03 0:24 ` [patch 2/4] apci: use pin stored " Kristen Accardi
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Kristen Accardi @ 2005-11-03 0:24 UTC (permalink / raw)
To: pcihpd-discuss, acpi-devel, linux-kernel, rajesh.shah, greg,
len.brown
plain text document attachment (patch-interrupt-pin)
Store the value of the INTERRUPT_PIN in the pci_dev structure
so that it can be retrieved later.
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
drivers/pci/probe.c | 1 +
include/linux/pci.h | 1 +
2 files changed, 2 insertions(+)
Index: linux-2.6.13/drivers/pci/probe.c
===================================================================
--- linux-2.6.13.orig/drivers/pci/probe.c
+++ linux-2.6.13/drivers/pci/probe.c
@@ -571,6 +571,7 @@ static void pci_read_irq(struct pci_dev
unsigned char irq;
pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &irq);
+ dev->pin = irq;
if (irq)
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
dev->irq = irq;
Index: linux-2.6.13/include/linux/pci.h
===================================================================
--- linux-2.6.13.orig/include/linux/pci.h
+++ linux-2.6.13/include/linux/pci.h
@@ -98,6 +98,7 @@ struct pci_dev {
unsigned int class; /* 3 bytes: (base,sub,prog-if) */
u8 hdr_type; /* PCI header type (`multi' flag masked out) */
u8 rom_base_reg; /* which config register controls the ROM */
+ u8 pin; /* which interrupt pin this device uses */
struct pci_driver *driver; /* which driver has allocated this device */
u64 dma_mask; /* Mask of the bits of bus address this
--
^ permalink raw reply [flat|nested] 5+ messages in thread
* [patch 2/4] apci: use pin stored in pci_dev
[not found] <20051103001540.365407000@whizzy>
2005-11-03 0:24 ` [patch 1/4] pci: store PCI_INTERRUPT_PIN in pci_dev Kristen Accardi
@ 2005-11-03 0:24 ` Kristen Accardi
2005-11-03 0:24 ` [patch 3/4] pci: " Kristen Accardi
2005-11-03 0:24 ` [patch 4/4] pci: call pci_read_irq for bridges Kristen Accardi
3 siblings, 0 replies; 5+ messages in thread
From: Kristen Accardi @ 2005-11-03 0:24 UTC (permalink / raw)
To: pcihpd-discuss, acpi-devel, linux-kernel, rajesh.shah, greg,
len.brown
Use the stored value of the Interrupt Pin, rather than try to read
it again.
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
drivers/acpi/pci_irq.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
Index: linux-2.6.13/drivers/acpi/pci_irq.c
===================================================================
--- linux-2.6.13.orig/drivers/acpi/pci_irq.c
+++ linux-2.6.13/drivers/acpi/pci_irq.c
@@ -361,8 +361,7 @@ acpi_pci_irq_derive(struct pci_dev *dev,
if ((bridge->class >> 8) == PCI_CLASS_BRIDGE_CARDBUS) {
/* PC card has the same IRQ as its cardbridge */
- pci_read_config_byte(bridge, PCI_INTERRUPT_PIN,
- &bridge_pin);
+ bridge_pin = bridge->pin;
if (!bridge_pin) {
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"No interrupt pin configured for device %s\n",
@@ -412,7 +411,7 @@ int acpi_pci_irq_enable(struct pci_dev *
if (!dev)
return_VALUE(-EINVAL);
- pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
+ pin = dev->pin;
if (!pin) {
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"No interrupt pin configured for device %s\n",
@@ -503,7 +502,7 @@ void acpi_pci_irq_disable(struct pci_dev
if (!dev || !dev->bus)
return_VOID;
- pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
+ pin = dev->pin;
if (!pin)
return_VOID;
pin--;
--
^ permalink raw reply [flat|nested] 5+ messages in thread
* [patch 3/4] pci: use pin stored in pci_dev
[not found] <20051103001540.365407000@whizzy>
2005-11-03 0:24 ` [patch 1/4] pci: store PCI_INTERRUPT_PIN in pci_dev Kristen Accardi
2005-11-03 0:24 ` [patch 2/4] apci: use pin stored " Kristen Accardi
@ 2005-11-03 0:24 ` Kristen Accardi
2005-11-03 0:24 ` [patch 4/4] pci: call pci_read_irq for bridges Kristen Accardi
3 siblings, 0 replies; 5+ messages in thread
From: Kristen Accardi @ 2005-11-03 0:24 UTC (permalink / raw)
To: pcihpd-discuss, acpi-devel, linux-kernel, rajesh.shah, greg,
len.brown
Use the stored value of the interrupt pin rather than try to read
the config again.
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
drivers/pci/pci.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6.13/drivers/pci/pci.c
===================================================================
--- linux-2.6.13.orig/drivers/pci/pci.c
+++ linux-2.6.13/drivers/pci/pci.c
@@ -567,7 +567,7 @@ pci_get_interrupt_pin(struct pci_dev *de
{
u8 pin;
- pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
+ pin = dev->pin;
if (!pin)
return -1;
pin--;
--
^ permalink raw reply [flat|nested] 5+ messages in thread
* [patch 4/4] pci: call pci_read_irq for bridges
[not found] <20051103001540.365407000@whizzy>
` (2 preceding siblings ...)
2005-11-03 0:24 ` [patch 3/4] pci: " Kristen Accardi
@ 2005-11-03 0:24 ` Kristen Accardi
2005-11-03 0:55 ` Kristen Accardi
3 siblings, 1 reply; 5+ messages in thread
From: Kristen Accardi @ 2005-11-03 0:24 UTC (permalink / raw)
To: pcihpd-discuss, acpi-devel, linux-kernel, rajesh.shah, greg,
len.brown
Call pci_read_irq() for bridges too, this ensures that the pin
value is stored for later use for bridges that require interrupts.
drivers/pci/probe.c | 1 +
1 files changed, 1 insertion(+)
Index: linux-2.6.13/drivers/pci/probe.c
===================================================================
--- linux-2.6.13.orig/drivers/pci/probe.c
+++ linux-2.6.13/drivers/pci/probe.c
@@ -624,6 +624,7 @@ static int pci_setup_device(struct pci_d
/* The PCI-to-PCI bridge spec requires that subtractive
decoding (i.e. transparent) bridge must have programming
interface code of 0x01. */
+ pci_read_irq(dev);
dev->transparent = ((dev->class & 0xff) == 1);
pci_read_bases(dev, 2, PCI_ROM_ADDRESS1);
break;
--
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch 4/4] pci: call pci_read_irq for bridges
2005-11-03 0:24 ` [patch 4/4] pci: call pci_read_irq for bridges Kristen Accardi
@ 2005-11-03 0:55 ` Kristen Accardi
0 siblings, 0 replies; 5+ messages in thread
From: Kristen Accardi @ 2005-11-03 0:55 UTC (permalink / raw)
To: pcihpd-discuss; +Cc: acpi-devel, linux-kernel, rajesh.shah, greg, len.brown
Call pci_read_irq() for bridges too, so that the pin value
is stored for bridges that require interrupts.
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
drivers/pci/probe.c | 1 +
1 files changed, 1 insertion(+)
Index: linux-2.6.13/drivers/pci/probe.c
===================================================================
--- linux-2.6.13.orig/drivers/pci/probe.c
+++ linux-2.6.13/drivers/pci/probe.c
@@ -624,6 +624,7 @@ static int pci_setup_device(struct pci_d
/* The PCI-to-PCI bridge spec requires that subtractive
decoding (i.e. transparent) bridge must have programming
interface code of 0x01. */
+ pci_read_irq(dev);
dev->transparent = ((dev->class & 0xff) == 1);
pci_read_bases(dev, 2, PCI_ROM_ADDRESS1);
break;
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-11-03 0:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20051103001540.365407000@whizzy>
2005-11-03 0:24 ` [patch 1/4] pci: store PCI_INTERRUPT_PIN in pci_dev Kristen Accardi
2005-11-03 0:24 ` [patch 2/4] apci: use pin stored " Kristen Accardi
2005-11-03 0:24 ` [patch 3/4] pci: " Kristen Accardi
2005-11-03 0:24 ` [patch 4/4] pci: call pci_read_irq for bridges Kristen Accardi
2005-11-03 0:55 ` Kristen Accardi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox