Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 85797 Details for
Bug 131715
sys-libs/libkudzu-1.2.41 (version bump)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
pciutils-devicetype.patch
pciutils-devicetype.patch (text/plain), 5.79 KB, created by
Dick Marinus
on 2006-04-29 14:57:07 UTC
(
hide
)
Description:
pciutils-devicetype.patch
Filename:
MIME Type:
Creator:
Dick Marinus
Created:
2006-04-29 14:57:07 UTC
Size:
5.79 KB
patch
obsolete
>--- pciutils-2.2.1/lib/sysfs.c.devicetype 2005-09-21 07:51:00.000000000 -0400 >+++ pciutils-2.2.1/lib/sysfs.c 2005-12-13 17:02:12.000000000 -0500 >@@ -164,7 +164,6 @@ > sysfs_get_resources(d); > d->irq = sysfs_get_value(d, "irq"); > d->known_fields = PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE | PCI_FILL_SIZES; >-#if 0 > /* > * We prefer reading these from the config registers, it's faster. > * However, it would be possible and maybe even useful to hack the kernel >@@ -173,8 +172,8 @@ > */ > d->vendor_id = sysfs_get_value(d, "vendor"); > d->device_id = sysfs_get_value(d, "device"); >- d->known_fields |= PCI_FILL_IDENT; >-#endif >+ d->device_class = sysfs_get_value(d, "class") >> 8; >+ d->known_fields |= PCI_FILL_IDENT | PCI_FILL_CLASS; > } > pci_link_dev(a, d); > } >--- pciutils-2.2.1/lib/pci.h.devicetype 2005-09-10 08:10:54.000000000 -0400 >+++ pciutils-2.2.1/lib/pci.h 2005-12-13 17:02:12.000000000 -0500 >@@ -84,6 +84,7 @@ > /* These fields are set by pci_fill_info() */ > int known_fields; /* Set of info fields already known */ > u16 vendor_id, device_id; /* Identity of the device */ >+ u16 device_class; /* PCI device class */ > int irq; /* IRQ number */ > pciaddr_t base_addr[6]; /* Base addresses */ > pciaddr_t size[6]; /* Region sizes */ >@@ -118,6 +119,7 @@ > #define PCI_FILL_BASES 4 > #define PCI_FILL_ROM_BASE 8 > #define PCI_FILL_SIZES 16 >+#define PCI_FILL_CLASS 32 > #define PCI_FILL_RESCAN 0x10000 > > void pci_setup_cache(struct pci_dev *, u8 *cache, int len); >--- pciutils-2.2.1/lib/generic.c.devicetype 2004-08-13 16:15:23.000000000 -0400 >+++ pciutils-2.2.1/lib/generic.c 2005-12-13 17:02:12.000000000 -0500 >@@ -46,7 +46,8 @@ > d->func = t->func; > d->vendor_id = vd & 0xffff; > d->device_id = vd >> 16U; >- d->known_fields = PCI_FILL_IDENT; >+ d->device_class = pci_read_byte(t,PCI_CLASS_DEVICE+1) << 8 | pci_read_byte(t, PCI_CLASS_DEVICE); >+ d->known_fields = PCI_FILL_IDENT | PCI_FILL_CLASS; > d->hdrtype = ht; > pci_link_dev(a, d); > switch (ht) >@@ -86,6 +87,8 @@ > d->vendor_id = pci_read_word(d, PCI_VENDOR_ID); > d->device_id = pci_read_word(d, PCI_DEVICE_ID); > } >+ if (flags & PCI_FILL_CLASS) >+ d->device_class = pci_read_byte(d, PCI_CLASS_DEVICE+1) << 8 | pci_read_byte(d, PCI_CLASS_DEVICE); > if (flags & PCI_FILL_IRQ) > d->irq = pci_read_byte(d, PCI_INTERRUPT_LINE); > if (flags & PCI_FILL_BASES) >--- pciutils-2.2.1/lib/example.c.devicetype 2000-03-09 03:38:33.000000000 -0500 >+++ pciutils-2.2.1/lib/example.c 2005-12-13 17:02:12.000000000 -0500 >@@ -21,7 +21,7 @@ > pci_scan_bus(pacc); /* We want to get the list of devices */ > for(dev=pacc->devices; dev; dev=dev->next) /* Iterate over all devices */ > { >- pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES); /* Fill in header info we need */ >+ pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES | PCI_FILL_CLASS); /* Fill in header info we need */ > c = pci_read_word(dev, PCI_CLASS_DEVICE); /* Read config register directly */ > printf("%02x:%02x.%d vendor=%04x device=%04x class=%04x irq=%d base0=%lx\n", > dev->bus, dev->dev, dev->func, dev->vendor_id, dev->device_id, >--- pciutils-2.2.1/lspci.c.devicetype 2005-11-26 06:48:29.000000000 -0500 >+++ pciutils-2.2.1/lspci.c 2005-12-13 17:04:39.000000000 -0500 >@@ -123,7 +123,7 @@ > d->config_cached += 64; > } > pci_setup_cache(p, d->config, d->config_cached); >- pci_fill_info(p, PCI_FILL_IDENT | PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE | PCI_FILL_SIZES); >+ pci_fill_info(p, PCI_FILL_IDENT | PCI_FILL_CLASS | PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE | PCI_FILL_SIZES); > return d; > } > >@@ -255,7 +255,7 @@ > printf(" %s: %s", > pci_lookup_name(pacc, classbuf, sizeof(classbuf), > PCI_LOOKUP_CLASS, >- get_conf_word(d, PCI_CLASS_DEVICE)), >+ p->device_class), > pci_lookup_name(pacc, devbuf, sizeof(devbuf), > PCI_LOOKUP_VENDOR | PCI_LOOKUP_DEVICE, > p->vendor_id, p->device_id)); >@@ -267,7 +267,7 @@ > c = get_conf_byte(d, PCI_CLASS_PROG); > x = pci_lookup_name(pacc, devbuf, sizeof(devbuf), > PCI_LOOKUP_PROGIF | PCI_LOOKUP_NO_NUMBERS, >- get_conf_word(d, PCI_CLASS_DEVICE), c); >+ p->device_class, c); > if (c || x) > { > printf(" (prog-if %02x", c); >@@ -1585,7 +1585,7 @@ > struct pci_dev *p = d->dev; > word status = get_conf_word(d, PCI_STATUS); > word cmd = get_conf_word(d, PCI_COMMAND); >- word class = get_conf_word(d, PCI_CLASS_DEVICE); >+ word class = p->device_class; > byte bist = get_conf_byte(d, PCI_BIST); > byte htype = get_conf_byte(d, PCI_HEADER_TYPE) & 0x7f; > byte latency = get_conf_byte(d, PCI_LATENCY_TIMER); >@@ -1783,7 +1783,7 @@ > show_slot_name(d); > putchar('\n'); > printf("Class:\t%s\n", >- pci_lookup_name(pacc, classbuf, sizeof(classbuf), PCI_LOOKUP_CLASS, get_conf_word(d, PCI_CLASS_DEVICE))); >+ pci_lookup_name(pacc, classbuf, sizeof(classbuf), PCI_LOOKUP_CLASS, p->device_class)); > printf("Vendor:\t%s\n", > pci_lookup_name(pacc, vendbuf, sizeof(vendbuf), PCI_LOOKUP_VENDOR, p->vendor_id, p->device_id)); > printf("Device:\t%s\n", >@@ -1805,7 +1805,7 @@ > show_slot_name(d); > printf(" \"%s\" \"%s\" \"%s\"", > pci_lookup_name(pacc, classbuf, sizeof(classbuf), PCI_LOOKUP_CLASS, >- get_conf_word(d, PCI_CLASS_DEVICE)), >+ p->device_class), > pci_lookup_name(pacc, vendbuf, sizeof(vendbuf), PCI_LOOKUP_VENDOR, > p->vendor_id, p->device_id), > pci_lookup_name(pacc, devbuf, sizeof(devbuf), PCI_LOOKUP_DEVICE, >@@ -1929,7 +1929,7 @@ > last_br = &host_bridge.chain; > for(d=first_dev; d; d=d->next) > { >- word class = get_conf_word(d, PCI_CLASS_DEVICE); >+ word class = d->dev->device_class; > byte ht = get_conf_byte(d, PCI_HEADER_TYPE) & 0x7f; > if (class == PCI_CLASS_BRIDGE_PCI && > (ht == PCI_HEADER_TYPE_BRIDGE || ht == PCI_HEADER_TYPE_CARDBUS))
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 131715
:
85793
|
85794
| 85797 |
93598
|
93599