From: David Vrabel <dvrabel@arcom.com>
To: Greg KH <greg@kroah.com>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [patch] PCI: Add is_bridge to pci_dev to allow fixups to disable bridge functionality.
Date: Mon, 01 Nov 2004 10:59:13 +0000 [thread overview]
Message-ID: <41861701.3020008@arcom.com> (raw)
In-Reply-To: <20041030032357.GA1441@kroah.com>
[-- Attachment #1: Type: text/plain, Size: 1164 bytes --]
Greg KH wrote:
> On Tue, Oct 19, 2004 at 12:22:49PM +0100, David Vrabel wrote:
>
>>The plan was to make the CardBus driver (drivers/pcmcia/yenta_socket.c)
>>honour the is_bridge flag and not bother with CardBus stuff if it's cleared.
>
> But why can't any code that wants to check this, just look at the
> dev->hdr_type instead? I don't think we need to add a new bit for this
> because of that, right?
Using the is_bridge flag allows PCI device fixups to disable the CardBus
portion of the driver. And you obviously can't tweak the hdr_type since
the device header is still a CardBus/bridge type header.
e.g., I have:
static void __devinit pci_fixup_mercury_pci1520(struct pci_dev *dev)
{
if (!machine_is_arcom_mercury())
return;
dev->is_bridge = 0;
}
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1520,
pci_fixup_mercury_pci1520);
> Also, your patch was linewrapped :(
Hmm. Looks fine here. I've attached it instead this time.
David Vrabel
--
David Vrabel, Design Engineer
Arcom, Clifton Road Tel: +44 (0)1223 411200 ext. 3233
Cambridge CB1 7EA, UK Web: http://www.arcom.com/
[-- Attachment #2: pci-allow-is_bridge-fixup --]
[-- Type: text/plain, Size: 1604 bytes --]
Index: linux-2.6-armbe/drivers/pci/probe.c
===================================================================
--- linux-2.6-armbe.orig/drivers/pci/probe.c 2004-10-14 11:26:38.000000000 +0100
+++ linux-2.6-armbe/drivers/pci/probe.c 2004-10-19 12:00:00.000000000 +0100
@@ -610,6 +610,8 @@
dev->devfn = devfn;
dev->hdr_type = hdr_type & 0x7f;
dev->multifunction = !!(hdr_type & 0x80);
+ dev->is_bridge = (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE
+ || dev->hdr_type == PCI_HEADER_TYPE_CARDBUS);
dev->vendor = l & 0xffff;
dev->device = (l >> 16) & 0xffff;
dev->cfg_size = pci_cfg_space_size(dev);
@@ -718,8 +720,7 @@
pcibios_fixup_bus(bus);
for (pass=0; pass < 2; pass++)
list_for_each_entry(dev, &bus->devices, bus_list) {
- if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE ||
- dev->hdr_type == PCI_HEADER_TYPE_CARDBUS)
+ if (dev->is_bridge)
max = pci_scan_bridge(bus, dev, max, pass);
}
Index: linux-2.6-armbe/include/linux/pci.h
===================================================================
--- linux-2.6-armbe.orig/include/linux/pci.h 2004-10-14 11:26:38.000000000 +0100
+++ linux-2.6-armbe/include/linux/pci.h 2004-10-14 11:43:24.000000000 +0100
@@ -532,6 +532,7 @@
/* These fields are used by common fixups */
unsigned int transparent:1; /* Transparent PCI bridge */
unsigned int multifunction:1;/* Part of multi-function device */
+ unsigned int is_bridge:1; /* A PCI or CardBus bridge */
/* keep track of device state */
unsigned int is_enabled:1; /* pci_enable_device has been called */
unsigned int is_busmaster:1; /* device is busmaster */
next prev parent reply other threads:[~2004-11-01 10:59 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-19 11:22 David Vrabel
2004-10-30 3:23 ` Greg KH
2004-11-01 10:59 ` David Vrabel [this message]
2004-11-01 11:34 ` Russell King
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=41861701.3020008@arcom.com \
--to=dvrabel@arcom.com \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.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
Powered by JetHome