mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
[PATCH] PCI: remove CONFIG_PCI_NAMES
This patch removes CONFIG_PCI_NAMES. Signed-off-by: Adrian Bunk <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
74d863ee8a
commit
982245f017
21 changed files with 32 additions and 10576 deletions
|
|
@ -30,23 +30,6 @@ config PCI_LEGACY_PROC
|
|||
|
||||
When in doubt, say N.
|
||||
|
||||
config PCI_NAMES
|
||||
bool "PCI device name database"
|
||||
depends on PCI
|
||||
---help---
|
||||
By default, the kernel contains a database of all known PCI device
|
||||
names to make the information in /proc/pci, /proc/ioports and
|
||||
similar files comprehensible to the user.
|
||||
|
||||
This database increases size of the kernel image by about 80KB. This
|
||||
memory is freed after the system boots up if CONFIG_HOTPLUG is not set.
|
||||
|
||||
Anyway, if you are building an installation floppy or kernel for an
|
||||
embedded system where kernel image size really matters, you can disable
|
||||
this feature and you'll get device ID numbers instead of names.
|
||||
|
||||
When in doubt, say Y.
|
||||
|
||||
config PCI_DEBUG
|
||||
bool "PCI Debugging"
|
||||
depends on PCI && DEBUG_KERNEL
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@
|
|||
#
|
||||
|
||||
obj-y += access.o bus.o probe.o remove.o pci.o quirks.o \
|
||||
names.o pci-driver.o search.o pci-sysfs.o \
|
||||
rom.o
|
||||
pci-driver.o search.o pci-sysfs.o rom.o
|
||||
obj-$(CONFIG_PROC_FS) += proc.o
|
||||
|
||||
ifndef CONFIG_SPARC64
|
||||
|
|
@ -46,21 +45,6 @@ ifeq ($(CONFIG_PCI_DEBUG),y)
|
|||
EXTRA_CFLAGS += -DDEBUG
|
||||
endif
|
||||
|
||||
hostprogs-y := gen-devlist
|
||||
|
||||
# Dependencies on generated files need to be listed explicitly
|
||||
$(obj)/names.o: $(obj)/devlist.h $(obj)/classlist.h
|
||||
$(obj)/classlist.h: $(obj)/devlist.h
|
||||
|
||||
# And that's how to generate them
|
||||
quiet_cmd_devlist = DEVLIST $@
|
||||
cmd_devlist = ( cd $(obj); ./gen-devlist ) < $<
|
||||
$(obj)/devlist.h: $(src)/pci.ids $(obj)/gen-devlist
|
||||
$(call cmd,devlist)
|
||||
|
||||
# Files generated that shall be removed upon make clean
|
||||
clean-files := devlist.h classlist.h
|
||||
|
||||
# Build PCI Express stuff if needed
|
||||
obj-$(CONFIG_PCIEPORTBUS) += pcie/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,132 +0,0 @@
|
|||
/*
|
||||
* Generate devlist.h and classlist.h from the PCI ID file.
|
||||
*
|
||||
* (c) 1999--2002 Martin Mares <mj@ucw.cz>
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#define MAX_NAME_SIZE 200
|
||||
|
||||
static void
|
||||
pq(FILE *f, const char *c, int len)
|
||||
{
|
||||
int i = 1;
|
||||
while (*c && i != len) {
|
||||
if (*c == '"')
|
||||
fprintf(f, "\\\"");
|
||||
else {
|
||||
fputc(*c, f);
|
||||
if (*c == '?' && c[1] == '?') {
|
||||
/* Avoid trigraphs */
|
||||
fprintf(f, "\" \"");
|
||||
}
|
||||
}
|
||||
c++;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
char line[1024], *c, *bra, vend[8];
|
||||
int vendors = 0;
|
||||
int mode = 0;
|
||||
int lino = 0;
|
||||
int vendor_len = 0;
|
||||
FILE *devf, *clsf;
|
||||
|
||||
devf = fopen("devlist.h", "w");
|
||||
clsf = fopen("classlist.h", "w");
|
||||
if (!devf || !clsf) {
|
||||
fprintf(stderr, "Cannot create output file!\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
while (fgets(line, sizeof(line)-1, stdin)) {
|
||||
lino++;
|
||||
if ((c = strchr(line, '\n')))
|
||||
*c = 0;
|
||||
if (!line[0] || line[0] == '#')
|
||||
continue;
|
||||
if (line[1] == ' ') {
|
||||
if (line[0] == 'C' && strlen(line) > 4 && line[4] == ' ') {
|
||||
vend[0] = line[2];
|
||||
vend[1] = line[3];
|
||||
vend[2] = 0;
|
||||
mode = 2;
|
||||
} else goto err;
|
||||
}
|
||||
else if (line[0] == '\t') {
|
||||
if (line[1] == '\t')
|
||||
continue;
|
||||
switch (mode) {
|
||||
case 1:
|
||||
if (strlen(line) > 5 && line[5] == ' ') {
|
||||
c = line + 5;
|
||||
while (*c == ' ')
|
||||
*c++ = 0;
|
||||
if (vendor_len + strlen(c) + 1 > MAX_NAME_SIZE) {
|
||||
/* Too long, try cutting off long description */
|
||||
bra = strchr(c, '[');
|
||||
if (bra && bra > c && bra[-1] == ' ')
|
||||
bra[-1] = 0;
|
||||
if (vendor_len + strlen(c) + 1 > MAX_NAME_SIZE) {
|
||||
fprintf(stderr, "Line %d: Device name too long. Name truncated.\n", lino);
|
||||
fprintf(stderr, "%s\n", c);
|
||||
/*return 1;*/
|
||||
}
|
||||
}
|
||||
fprintf(devf, "\tDEVICE(%s,%s,\"", vend, line+1);
|
||||
pq(devf, c, MAX_NAME_SIZE - vendor_len - 1);
|
||||
fputs("\")\n", devf);
|
||||
} else goto err;
|
||||
break;
|
||||
case 2:
|
||||
if (strlen(line) > 3 && line[3] == ' ') {
|
||||
c = line + 3;
|
||||
while (*c == ' ')
|
||||
*c++ = 0;
|
||||
fprintf(clsf, "CLASS(%s%s, \"%s\")\n", vend, line+1, c);
|
||||
} else goto err;
|
||||
break;
|
||||
default:
|
||||
goto err;
|
||||
}
|
||||
} else if (strlen(line) > 4 && line[4] == ' ') {
|
||||
c = line + 4;
|
||||
while (*c == ' ')
|
||||
*c++ = 0;
|
||||
if (vendors)
|
||||
fputs("ENDVENDOR()\n\n", devf);
|
||||
vendors++;
|
||||
strcpy(vend, line);
|
||||
vendor_len = strlen(c);
|
||||
if (vendor_len + 24 > MAX_NAME_SIZE) {
|
||||
fprintf(stderr, "Line %d: Vendor name too long\n", lino);
|
||||
return 1;
|
||||
}
|
||||
fprintf(devf, "VENDOR(%s,\"", vend);
|
||||
pq(devf, c, 0);
|
||||
fputs("\")\n", devf);
|
||||
mode = 1;
|
||||
} else {
|
||||
err:
|
||||
fprintf(stderr, "Line %d: Syntax error in mode %d: %s\n", lino, mode, line);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
fputs("ENDVENDOR()\n\
|
||||
\n\
|
||||
#undef VENDOR\n\
|
||||
#undef DEVICE\n\
|
||||
#undef ENDVENDOR\n", devf);
|
||||
fputs("\n#undef CLASS\n", clsf);
|
||||
|
||||
fclose(devf);
|
||||
fclose(clsf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,137 +0,0 @@
|
|||
/*
|
||||
* PCI Class and Device Name Tables
|
||||
*
|
||||
* Copyright 1993--1999 Drew Eckhardt, Frederic Potter,
|
||||
* David Mosberger-Tang, Martin Mares
|
||||
*/
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#ifdef CONFIG_PCI_NAMES
|
||||
|
||||
struct pci_device_info {
|
||||
unsigned short device;
|
||||
unsigned short seen;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
struct pci_vendor_info {
|
||||
unsigned short vendor;
|
||||
unsigned short nr;
|
||||
const char *name;
|
||||
struct pci_device_info *devices;
|
||||
};
|
||||
|
||||
/*
|
||||
* This is ridiculous, but we want the strings in
|
||||
* the .init section so that they don't take up
|
||||
* real memory.. Parse the same file multiple times
|
||||
* to get all the info.
|
||||
*/
|
||||
#define VENDOR( vendor, name ) static char __vendorstr_##vendor[] __devinitdata = name;
|
||||
#define ENDVENDOR()
|
||||
#define DEVICE( vendor, device, name ) static char __devicestr_##vendor##device[] __devinitdata = name;
|
||||
#include "devlist.h"
|
||||
|
||||
|
||||
#define VENDOR( vendor, name ) static struct pci_device_info __devices_##vendor[] __devinitdata = {
|
||||
#define ENDVENDOR() };
|
||||
#define DEVICE( vendor, device, name ) { 0x##device, 0, __devicestr_##vendor##device },
|
||||
#include "devlist.h"
|
||||
|
||||
static struct pci_vendor_info __devinitdata pci_vendor_list[] = {
|
||||
#define VENDOR( vendor, name ) { 0x##vendor, sizeof(__devices_##vendor) / sizeof(struct pci_device_info), __vendorstr_##vendor, __devices_##vendor },
|
||||
#define ENDVENDOR()
|
||||
#define DEVICE( vendor, device, name )
|
||||
#include "devlist.h"
|
||||
};
|
||||
|
||||
#define VENDORS (sizeof(pci_vendor_list)/sizeof(struct pci_vendor_info))
|
||||
|
||||
void __devinit pci_name_device(struct pci_dev *dev)
|
||||
{
|
||||
const struct pci_vendor_info *vendor_p = pci_vendor_list;
|
||||
int i = VENDORS;
|
||||
char *name = dev->pretty_name;
|
||||
|
||||
do {
|
||||
if (vendor_p->vendor == dev->vendor)
|
||||
goto match_vendor;
|
||||
vendor_p++;
|
||||
} while (--i);
|
||||
|
||||
/* Couldn't find either the vendor nor the device */
|
||||
sprintf(name, "PCI device %04x:%04x", dev->vendor, dev->device);
|
||||
return;
|
||||
|
||||
match_vendor: {
|
||||
struct pci_device_info *device_p = vendor_p->devices;
|
||||
int i = vendor_p->nr;
|
||||
|
||||
while (i > 0) {
|
||||
if (device_p->device == dev->device)
|
||||
goto match_device;
|
||||
device_p++;
|
||||
i--;
|
||||
}
|
||||
|
||||
/* Ok, found the vendor, but unknown device */
|
||||
sprintf(name, "PCI device %04x:%04x (%." PCI_NAME_HALF "s)",
|
||||
dev->vendor, dev->device, vendor_p->name);
|
||||
return;
|
||||
|
||||
/* Full match */
|
||||
match_device: {
|
||||
char *n = name + sprintf(name, "%s %s",
|
||||
vendor_p->name, device_p->name);
|
||||
int nr = device_p->seen + 1;
|
||||
device_p->seen = nr;
|
||||
if (nr > 1)
|
||||
sprintf(n, " (#%d)", nr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Class names. Not in .init section as they are needed in runtime.
|
||||
*/
|
||||
|
||||
static u16 pci_class_numbers[] = {
|
||||
#define CLASS(x,y) 0x##x,
|
||||
#include "classlist.h"
|
||||
};
|
||||
|
||||
static char *pci_class_names[] = {
|
||||
#define CLASS(x,y) y,
|
||||
#include "classlist.h"
|
||||
};
|
||||
|
||||
char *
|
||||
pci_class_name(u32 class)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i=0; i<sizeof(pci_class_numbers)/sizeof(pci_class_numbers[0]); i++)
|
||||
if (pci_class_numbers[i] == class)
|
||||
return pci_class_names[i];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void __devinit pci_name_device(struct pci_dev *dev)
|
||||
{
|
||||
}
|
||||
|
||||
char *
|
||||
pci_class_name(u32 class)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PCI_NAMES */
|
||||
|
||||
10180
drivers/pci/pci.ids
10180
drivers/pci/pci.ids
File diff suppressed because it is too large
Load diff
|
|
@ -757,8 +757,6 @@ pci_scan_device(struct pci_bus *bus, int devfn)
|
|||
dev->dev.release = pci_release_dev;
|
||||
pci_dev_get(dev);
|
||||
|
||||
pci_name_device(dev);
|
||||
|
||||
dev->dev.dma_mask = &dev->dma_mask;
|
||||
dev->dev.coherent_dma_mask = 0xffffffffull;
|
||||
|
||||
|
|
|
|||
|
|
@ -474,7 +474,7 @@ static int show_dev_config(struct seq_file *m, void *v)
|
|||
struct pci_dev *first_dev;
|
||||
struct pci_driver *drv;
|
||||
u32 class_rev;
|
||||
unsigned char latency, min_gnt, max_lat, *class;
|
||||
unsigned char latency, min_gnt, max_lat;
|
||||
int reg;
|
||||
|
||||
first_dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, NULL);
|
||||
|
|
@ -490,16 +490,8 @@ static int show_dev_config(struct seq_file *m, void *v)
|
|||
pci_read_config_byte (dev, PCI_MAX_LAT, &max_lat);
|
||||
seq_printf(m, " Bus %2d, device %3d, function %2d:\n",
|
||||
dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
|
||||
class = pci_class_name(class_rev >> 16);
|
||||
if (class)
|
||||
seq_printf(m, " %s", class);
|
||||
else
|
||||
seq_printf(m, " Class %04x", class_rev >> 16);
|
||||
#ifdef CONFIG_PCI_NAMES
|
||||
seq_printf(m, ": %s", dev->pretty_name);
|
||||
#else
|
||||
seq_printf(m, " Class %04x", class_rev >> 16);
|
||||
seq_printf(m, ": PCI device %04x:%04x", dev->vendor, dev->device);
|
||||
#endif
|
||||
seq_printf(m, " (rev %d).\n", class_rev & 0xff);
|
||||
|
||||
if (dev->irq)
|
||||
|
|
|
|||
Loading…
Reference in a new issue