PNP driver changes for 2.5.50
Subsystems (8)
PATCH 1/1 PNP driver changes for 2.5.50
Here's a set of updated PNP driver patches from Adam Belay.
Please pull from: bk://linuxusb.bkbits.net/pnp-2.5
thanks,
greg k-h
drivers/input/gameport/ns558.c | 132 ++++++--------- drivers/net/e100/e100_main.c | 4 drivers/parport/parport_pc.c | 3 drivers/pnp/Kconfig | 15 + drivers/pnp/Makefile | 6 drivers/pnp/base.h | 3 drivers/pnp/card.c | 342 +++++++++++++++++++++++++++++++++++++++++ drivers/pnp/core.c | 87 +++++----- drivers/pnp/driver.c | 86 +++------- drivers/pnp/interface.c | 8 drivers/pnp/isapnp/Makefile | 4 drivers/pnp/isapnp/core.c | 39 +--- drivers/pnp/isapnp/proc.c | 2 drivers/pnp/names.c | 2 drivers/pnp/pnpbios/core.c | 49 +++-- drivers/pnp/quirks.c | 2 drivers/pnp/system.c | 10 - drivers/serial/8250_pnp.c | 22 -- include/linux/pnp.h | 230 ++++++++++++++++++++++----- include/linux/pnpbios.h | 13 + include/linux/sunrpc/stats.h | 18 +- sound/isa/opl3sa2.c | 131 ++++++--------- sound/oss/opl3sa2.c | 6 23 files changed, 818 insertions(+), 396 deletions(-)
-----
[email protected], 2002-12-06 10:08:34-06:00, [email protected]
[PATCH] PnP gameport driver update
This trivial patch updates the gameport driver to the new id scheme.
drivers/input/gameport/ns558.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
------
[email protected], 2002-12-05 23:31:41-06:00, [email protected]
[PATCH] PnP bugfix
I forgot the errno.h. Without this patch, things may not compile when pnp support or pnp card support is disabled.
Hope you had a good trip. I noticed a small mistake in pnp 0.93 and I have a fix for it.
include/linux/pnp.h | 1 + 1 files changed, 1 insertion(+)
------
[email protected], 2002-12-05 23:31:21-06:00, [email protected]
[PATCH] Linux PnP Support V0.93 - 2.5.50
Attached is a patch, that updates the 2.5.50 to the latest pnp version. It includes all 9 of the previously submitted patches.
Highlights are as follows:
-PnP BIOS fixes
-Several new macros
-PnP Card Services
-Various bug fixes
-more drivers converted to the new APIs
drivers/input/gameport/ns558.c | 128 ++++++--------- drivers/net/e100/e100_main.c | 4 drivers/parport/parport_pc.c | 3 drivers/pnp/Kconfig | 15 + drivers/pnp/Makefile | 6 drivers/pnp/base.h | 3 drivers/pnp/card.c | 342 +++++++++++++++++++++++++++++++++++++++++ drivers/pnp/core.c | 87 +++++----- drivers/pnp/driver.c | 86 +++------- drivers/pnp/interface.c | 8 drivers/pnp/isapnp/Makefile | 4 drivers/pnp/isapnp/core.c | 39 +--- drivers/pnp/isapnp/proc.c | 2 drivers/pnp/names.c | 2 drivers/pnp/pnpbios/core.c | 49 +++-- drivers/pnp/quirks.c | 2 drivers/pnp/system.c | 10 - drivers/serial/8250_pnp.c | 22 -- include/linux/pnp.h | 229 ++++++++++++++++++++++----- include/linux/pnpbios.h | 13 + include/linux/sunrpc/stats.h | 18 +- sound/isa/opl3sa2.c | 131 ++++++--------- sound/oss/opl3sa2.c | 6 23 files changed, 815 insertions(+), 394 deletions(-)
------
PATCH 1/1 PNP driver changes for 2.5.50
ChangeSet 1.837.4.1, 2002/12/05 23:31:21-06:00, [email protected]
[PATCH] Linux PnP Support V0.93 - 2.5.50
Attached is a patch, that updates the 2.5.50 to the latest pnp version. It includes all 9 of the previously submitted patches.
Highlights are as follows:
-PnP BIOS fixes
-Several new macros
-PnP Card Services
-Various bug fixes
-more drivers converted to the new APIs
drivers/input/gameport/ns558.c +53 -75
@@ -37,7 +37,7 @@#include <linux/init.h> #include <linux/gameport.h> #include <linux/slab.h> -#include <linux/isapnp.h> +#include <linux/pnp.h> MODULE_AUTHOR ("Vojtech Pavlik <[email protected]>" );MODULE_DESCRIPTION ("Classic gameport (ISA/PnP) driver" );
@@ -52,7 +52,7 @@struct ns558 {int type;int size; -struct pci_dev *dev; +struct pnp_dev *dev;struct list_head node;struct gameport gameport;char phys[32 ];
@@ -159,67 +159,55 @@list_add (&port->node, &ns558_list); } -#ifdef __ISAPNP__ +#ifdef CONFIG_PNP -#define NS558_DEVICE (a,b,c,d)\ - .card_vendor = ISAPNP_ANY_ID, card_device: ISAPNP_ANY_ID,\ - .vendor = ISAPNP_VENDOR(a,b,c), function: ISAPNP_DEVICE(d) - -static struct isapnp_device_id pnp_devids[] = { - {NS558_DEVICE ('@' ,'P' ,'@' ,0x0001 ) },/* ALS 100 */ - {NS558_DEVICE ('@' ,'P' ,'@' ,0x0020 ) },/* ALS 200 */ - {NS558_DEVICE ('@' ,'P' ,'@' ,0x1001 ) },/* ALS 100+ */ - {NS558_DEVICE ('@' ,'P' ,'@' ,0x2001 ) },/* ALS 120 */ - {NS558_DEVICE ('A' ,'S' ,'B' ,0x16fd ) },/* AdLib NSC16 */ - {NS558_DEVICE ('A' ,'Z' ,'T' ,0x3001 ) },/* AZT1008 */ - {NS558_DEVICE ('C' ,'D' ,'C' ,0x0001 ) },/* Opl3-SAx */ - {NS558_DEVICE ('C' ,'S' ,'C' ,0x0001 ) },/* CS4232 */ - {NS558_DEVICE ('C' ,'S' ,'C' ,0x000f ) },/* CS4236 */ - {NS558_DEVICE ('C' ,'S' ,'C' ,0x0101 ) },/* CS4327 */ - {NS558_DEVICE ('C' ,'T' ,'L' ,0x7001 ) },/* SB16 */ - {NS558_DEVICE ('C' ,'T' ,'L' ,0x7002 ) },/* AWE64 */ - {NS558_DEVICE ('C' ,'T' ,'L' ,0x7005 ) },/* Vibra16 */ - {NS558_DEVICE ('E' ,'N' ,'S' ,0x2020 ) },/* SoundscapeVIVO */ - {NS558_DEVICE ('E' ,'S' ,'S' ,0x0001 ) },/* ES1869 */ - {NS558_DEVICE ('E' ,'S' ,'S' ,0x0005 ) },/* ES1878 */ - {NS558_DEVICE ('E' ,'S' ,'S' ,0x6880 ) },/* ES688 */ - {NS558_DEVICE ('I' ,'B' ,'M' ,0x0012 ) },/* CS4232 */ - {NS558_DEVICE ('O' ,'P' ,'T' ,0x0001 ) },/* OPTi Audio16 */ - {NS558_DEVICE ('Y' ,'M' ,'H' ,0x0006 ) },/* Opl3-SA */ - {NS558_DEVICE ('Y' ,'M' ,'H' ,0x0022 ) },/* Opl3-SAx */ - {NS558_DEVICE ('P' ,'N' ,'P' ,0xb02f ) },/* Generic */ - {0 , }, +static struct pnp_id pnp_devids[] = { + { .id ="@P@0001" , .driver_data =0 },/* ALS 100 */ + { .id ="@P@0020" , .driver_data =0 },/* ALS 200 */ + { .id ="@P@1001" , .driver_data =0 },/* ALS 100+ */ + { .id ="@P@2001" , .driver_data =0 },/* ALS 120 */ + { .id ="ASB16fd" , .driver_data =0 },/* AdLib NSC16 */ + { .id ="AZT3001" , .driver_data =0 },/* AZT1008 */ + { .id ="CDC0001" , .driver_data =0 },/* Opl3-SAx */ + { .id ="CSC0001" , .driver_data =0 },/* CS4232 */ + { .id ="CSC000f" , .driver_data =0 },/* CS4236 */ + { .id ="CSC0101" , .driver_data =0 },/* CS4327 */ + { .id ="CTL7001" , .driver_data =0 },/* SB16 */ + { .id ="CTL7002" , .driver_data =0 },/* AWE64 */ + { .id ="CTL7005" , .driver_data =0 },/* Vibra16 */ + { .id ="ENS2020" , .driver_data =0 },/* SoundscapeVIVO */ + { .id ="ESS0001" , .driver_data =0 },/* ES1869 */ + { .id ="ESS0005" , .driver_data =0 },/* ES1878 */ + { .id ="ESS6880" , .driver_data =0 },/* ES688 */ + { .id ="IBM0012" , .driver_data =0 },/* CS4232 */ + { .id ="OPT0001" , .driver_data =0 },/* OPTi Audio16 */ + { .id ="YMH0006" , .driver_data =0 },/* Opl3-SA */ + { .id ="YMH0022" , .driver_data =0 },/* Opl3-SAx */ + { .id ="PNPb02f" , .driver_data =0 },/* Generic */ + { .id ="" , }, }; -MODULE_DEVICE_TABLE (isapnp, pnp_devids); +MODULE_DEVICE_TABLE (pnp, pnp_devids); -static void ns558_pnp_probe (struct pci_dev *dev) +static int ns558_pnp_probe (struct pnp_dev *dev,const struct pnp_id *cid,const struct pnp_id *did) {int ioport, iolen;struct ns558 *port; -if (dev->prepare && dev->prepare (dev) <0 ) -return ; -if (!(dev->resource[0 ].flags &IORESOURCE_IO )) {printk (KERN_WARNING "ns558: No i/o ports on a gameport? Weird\n" ); -return ; +return -ENODEV ; } -if (dev->activate && dev->activate (dev) <0 ) { -printk (KERN_ERR "ns558: PnP resource allocation failed\n" ); -return ; - } - - ioport =pci_resource_start (dev,0 ); - iolen =pci_resource_len (dev,0 ); + ioport =pnp_port_start (dev,0 ); + iolen =pnp_port_len (dev,0 );if (!request_region (ioport, iolen,"ns558-pnp" )) - goto deactivate; +return -EBUSY ;if (!(port =kmalloc (sizeof (struct ns558 ),GFP_KERNEL ))) {printk (KERN_ERR "ns558: Memory allocation failed.\n" ); - goto deactivate; +return -ENOMEM ; }memset (port,0 ,sizeof (struct ns558 ));
@@ -231,54 +219,46 @@ port->gameport.phys = port->phys; port->gameport.name = port->name; port->gameport.id.bustype =BUS_ISAPNP ; - port->gameport.id.vendor = dev->vendor; - port->gameport.id.product = dev->device; port->gameport.id.version =0x100 ; -sprintf (port->phys,"isapnp%d.%d/gameport0" ,PCI_SLOT (dev->devfn),PCI_FUNC (dev->devfn)); +sprintf (port->phys,"pnp%s/gameport0" , dev->dev.bus_id);sprintf (port->name,"%s" , dev->dev.name[0 ] ? dev->dev.name :"NS558 PnP Gameport" );gameport_register_port (&port->gameport); -printk (KERN_INFO "gameport: NS558 PnP at isapnp%d.%d io %#x" , -PCI_SLOT (dev->devfn),PCI_FUNC (dev->devfn), port->gameport.io); +printk (KERN_INFO "gameport: NS558 PnP at pnp%s io %#x" , + dev->dev.bus_id, port->gameport.io);if (iolen >1 )printk (" size %d" , iolen);printk (" speed %d kHz\n" , port->gameport.speed);list_add_tail (&port->node, &ns558_list); -return ; - -deactivate: -if (dev->deactivate) - dev->deactivate(dev); + return 0; } + +static struct pnp_driver ns558_pnp_driver = { + .name ="ns558" , + .id_table = pnp_devids, + .probe = ns558_pnp_probe, +}; + +#else + +static const struct pnp_driver ns558_pnp_driver; +#endif int __init ns558_init (void ) {int i =0 ; -#ifdef __ISAPNP__ -struct isapnp_device_id *devid; -struct pci_dev *dev =NULL ; -#endif /* * Probe for ISA ports. */ -while (ns558_isa_portlist[i]) +while (ns558_isa_portlist[i])ns558_isa_probe (ns558_isa_portlist[i++]); -/* -* Probe for PnP ports. -*/ - -#ifdef __ISAPNP__ -for (devid = pnp_devids; devid->vendor; devid++) -while ((dev =isapnp_find_dev (NULL , devid->vendor, devid->function, dev))) -ns558_pnp_probe (dev); -#endif - +pnp_register_driver (&ns558_pnp_driver);return list_empty (&ns558_list) ? -ENODEV :0 ; }
@@ -290,13 +270,10 @@gameport_unregister_port (&port->gameport);switch (port->type) { -#ifdef __ISAPNP__ +#ifdef CONFIG_PNP case NS558_PNP : -if (port->dev->deactivate) - port->dev->deactivate (port->dev);/* fall through */ #endif -case NS558_ISA :release_region (port->gameport.io, port->size);break ;
@@ -305,6 +282,7 @@break ; } } +pnp_unregister_driver (&ns558_pnp_driver); }module_init (ns558_init);
drivers/net/e100/e100_main.c +2 -2
@@ -87,8 +87,8 @@extern int e100_create_proc_subdir (struct e100_private *,char *);extern void e100_remove_proc_subdir (struct e100_private *,char *);#else -#define e100_create_proc_subdir (X ) 0 -#define e100_remove_proc_subdir (X ) do {} while(0) +#define e100_create_proc_subdir (X ,Y ) 0 +#define e100_remove_proc_subdir (X ,Y ) do {} while(0)#endif static int e100_do_ethtool_ioctl (struct net_device *,struct ifreq *);
drivers/parport/parport_pc.c +1 -2
@@ -2973,7 +2973,7 @@#endif /* CONFIG_PCI */ #ifdef CONFIG_PNP -static const struct pnp_id pnp_dev_table[] = { +static const struct pnp_device_id pnp_dev_table[] = {/* Standard LPT Printer Port */ {.id ="PNP0400" , .driver_data =0 }, /* ECP Printer Port */
@@ -2984,7 +2984,6 @@/* we only need the pnp layer to activate the device, at least for now */ static struct pnp_driver parport_pc_pnp_driver = { .name ="parport_pc" , - .card_id_table =NULL , .id_table = pnp_dev_table, };#else
drivers/pnp/Kconfig +12 -3
@@ -2,7 +2,7 @@ # Plug and Play configuration # -menu "Plug and Play configuration" +menu "Plug and Play support" config PNP bool "Plug and Play support"
@@ -30,11 +30,20 @@ If unsure, say Y. +config PNP_CARD + bool "Plug and Play card services" + depends on PNP + help + Select Y if you want the PnP Layer to manage cards. Cards are groups + of PnP devices. Some drivers, especially PnP sound card drivers, use + these cards. If you want to use the protocol ISAPNP you will need to + say Y here. + config PNP_DEBUG bool "PnP Debug Messages" depends on PNP help - Say Y if you want the Plug and Play Layer to print debug messages. + Say Y if you want the Plug and Play Layer to print debug messages. This is useful if you are developing a PnP driver or troubleshooting. comment "Protocols"
@@ -42,7 +51,7 @@ config ISAPNP bool "ISA Plug and Play support (EXPERIMENTAL)" - depends on PNP && EXPERIMENTAL + depends on PNP && EXPERIMENTAL && PNP_CARD help Say Y here if you would like support for ISA Plug and Play devices. Some information is in <file:Documentation/isapnp.txt>.
drivers/pnp/Makefile +4 -2
@@ -2,11 +2,13 @@ # Makefile for the Linux Plug-and-Play Support. # -obj-y := core.o driver.o resource.o interface.o quirks.o names.o system.o +pnp-card-$(CONFIG_PNP_CARD) = card.o + +obj-y := core.o driver.o resource.o interface.o quirks.o names.o system.o $(pnp-card-y) obj-$(CONFIG_PNPBIOS) += pnpbios/ obj-$(CONFIG_ISAPNP) += isapnp/ -export-objs := core.o driver.o resource.o +export-objs := core.o driver.o resource.o $(pnp-card-y) include $(TOPDIR)/Rules.make
drivers/pnp/base.h +2 -1
@@ -4,5 +4,6 @@extern int pnp_interface_attach_device (struct pnp_dev *dev);extern void pnp_name_device (struct pnp_dev *dev);extern void pnp_fixup_device (struct pnp_dev *dev); -extern void pnp_free_ids (struct pnp_dev *dev);extern void pnp_free_resources (struct pnp_resources *resources); +extern int __pnp_add_device (struct pnp_dev *dev); +extern void __pnp_remove_device (struct pnp_dev *dev);
drivers/pnp/card.c new file +342 -0
342 lines not on this page · raw message
drivers/pnp/core.c +48 -39
159 lines not on this page · raw message
drivers/pnp/driver.c +27 -59
145 lines not on this page · raw message
drivers/pnp/interface.c +4 -4
@@ -321,13 +321,13 @@static ssize_t pnp_show_current_ids (struct device *dmdev,char *buf,size_t count,loff_t off) {char *str = buf; -struct list_head * pos;struct pnp_dev *dev =to_pnp_dev (dmdev); +struct pnp_id * pos = dev->id;if (off)return 0 ; -list_for_each (pos,&dev->ids) { -struct pnp_id * cur =to_pnp_id (pos); - str +=sprintf (str,"%s\n" , cur->id); +while (pos) { + str +=sprintf (str,"%s\n" , pos->id); + pos = pos->next; }return (str - buf); }
drivers/pnp/isapnp/Makefile +2 -2
@@ -2,10 +2,10 @@ # Makefile for the kernel ISAPNP driver. # -export-objs := core.o compat.o +export-objs := core.o isapnp-proc-$(CONFIG_PROC_FS) = proc.o -obj-y := core.o compat.o $(isapnp-proc-y) +obj-y := core.o $(isapnp-proc-y) include $(TOPDIR)/Rules.make
drivers/pnp/isapnp/core.c +9 -30
@@ -449,13 +449,13 @@ dev =isapnp_alloc (sizeof (struct pnp_dev ));if (!dev)return NULL ; -pnp_init_device (dev); dev->number = number;isapnp_parse_id (dev, (tmp[1 ] <<8 ) | tmp[0 ], (tmp[3 ] <<8 ) | tmp[2 ]); dev->regs = tmp[4 ]; dev->card = card;if (size >5 ) dev->regs |= tmp[5 ] <<8 ; + dev->protocol = &isapnp_protocol;return dev; }
@@ -640,7 +640,7 @@return 1 ;if (pnp_build_resource (dev,0 ) ==NULL )return 1 ; -list_add_tail (&dev->card_list, &card->devices); +pnpc_add_device (card,dev);while (1 ) {if (isapnp_read_tag (&type, &size)<0 )return 1 ;
@@ -653,7 +653,7 @@if ((dev =isapnp_parse_device (card, size, number++)) ==NULL )return 1 ;pnp_build_resource (dev,0 ); -list_add_tail (&dev->card_list, &card->devices); +pnpc_add_device (card,dev); size =0 ; skip =0 ; }else {
@@ -848,7 +848,7 @@ device &0x0f , (device >>12 ) &0x0f , (device >> 8) & 0x0f); -list_add_tail (&id->id_list,&card->ids); +pnpc_add_id (id,card); }/*
@@ -879,12 +879,11 @@ ; else if (checksum == 0x00 || checksum != header[8]) /* not valid CSN */continue ; -if ((card =isapnp_alloc (sizeof (struct pci_bus ))) ==NULL ) +if ((card =isapnp_alloc (sizeof (struct pnp_card ))) ==NULL )continue ; card->number = csn;INIT_LIST_HEAD (&card->devices); -INIT_LIST_HEAD (&card->ids);isapnp_parse_card_id (card, (header[1 ] <<8 ) | header[0 ], (header[3 ] <<8 ) | header[2 ]); card->serial = (header[7 ] <<24 ) | (header[6 ] <<16 ) | (header[5 ] <<8 ) | header[4 ]; isapnp_checksum_value =0x00 ;
@@ -892,8 +891,8 @@if (isapnp_checksum_value !=0x00 )printk (KERN_ERR "isapnp: checksum for device %i is not valid (0x%x)\n" , csn, isapnp_checksum_value); card->checksum = isapnp_checksum_value; - -list_add_tail (&card->node, &isapnp_cards); + card->protocol = &isapnp_protocol; +pnpc_add_card (card); }return 0 ; }
@@ -1061,25 +1060,6 @@ .disable = isapnp_disable_resources, }; -static inline int isapnp_init_device_tree (void ) -{ - -struct pnp_card *card; - -isapnp_for_each_card (card) { -struct list_head *devlist; -for (devlist = card->devices.next; devlist != &card->devices; devlist = devlist->next) { -struct pnp_dev *dev =card_to_pnp_dev (devlist); -snprintf (dev->dev.name,sizeof (dev->dev.name),"%s" , dev->name); - dev->card = card; - dev->protocol = &isapnp_protocol; -pnp_add_device (dev); - } - } - -return 0 ; -} -int __init isapnp_init (void ) {int cards;
@@ -1104,7 +1084,7 @@return -EBUSY ; } -if (pnp_protocol_register (&isapnp_protocol)<0 ) +if (pnp_register_protocol (&isapnp_protocol)<0 )return -EBUSY ;/*
@@ -1143,7 +1123,7 @@isapnp_build_device_list (); cards =0 ; -isapnp_for_each_card (card) { +protocol_for_each_card (&isapnp_protocol,card) { cards++;if (isapnp_verbose) {struct list_head *devlist;
@@ -1162,7 +1142,6 @@printk (KERN_INFO "isapnp: No Plug & Play card found\n" ); } -isapnp_init_device_tree ();isapnp_proc_init ();return 0 ; }
drivers/pnp/isapnp/proc.c +1 -1
@@ -146,7 +146,7 @@ {struct pnp_dev *dev; isapnp_proc_bus_dir =proc_mkdir ("isapnp" , proc_bus); -isapnp_for_each_dev (dev) { +protocol_for_each_dev (&isapnp_protocol,dev) {isapnp_proc_attach_device (dev); }return 0 ;
drivers/pnp/names.c +1 -1
@@ -32,7 +32,7 @@int i;char *name = dev->name;for (i=0 ; i<sizeof (pnp_id_eisaid)/sizeof (pnp_id_eisaid[0 ]); i++){ -if (compare_pnp_id (&dev->ids,pnp_id_eisaid[i])){ +if (compare_pnp_id (dev->id,pnp_id_eisaid[i])){sprintf (name,"%s" , pnp_id_names[i]);return ; }
drivers/pnp/pnpbios/core.c +30 -19
126 lines not on this page · raw message
drivers/pnp/quirks.c +1 -1
@@ -157,7 +157,7 @@int i =0 ;while (*pnp_fixups[i].id) { -if (compare_pnp_id (&dev->ids,pnp_fixups[i].id)) { +if (compare_pnp_id (dev->id,pnp_fixups[i].id)) {pnp_dbg ("Calling quirk for %s" , dev->dev.bus_id); pnp_fixups[i].quirk_function (dev);
drivers/pnp/system.c +2 -8
@@ -13,12 +13,7 @@#include <linux/kernel.h> #include <linux/ioport.h> -static const struct pnp_id pnp_card_table[] = { - {"ANYDEVS" ,0 }, - {"" ,0 } -}; - -static const struct pnp_id pnp_dev_table[] = { +static const struct pnp_device_id pnp_dev_table[] = {/* General ID for reserving resources */ {"PNP0c02" ,0 },/* memory controller */
@@ -101,7 +96,7 @@return ; } -static int system_pnp_probe (struct pnp_dev * dev,const struct pnp_id *card_id,const struct pnp_id *dev_id) +static int system_pnp_probe (struct pnp_dev * dev,const struct pnp_device_id *dev_id) {reserve_resources_of_dev (dev);return 0 ;
@@ -109,7 +104,6 @@static struct pnp_driver system_pnp_driver = { .name ="system" , - .card_id_table = pnp_card_table, .id_table = pnp_dev_table, .probe = system_pnp_probe, .remove =NULL ,
drivers/serial/8250_pnp.c +8 -14
@@ -33,12 +33,7 @@#define UNKNOWN_DEV 0x3000 -static const struct pnp_id pnp_card_table[] = { - {"ANYDEVS" ,0 }, - {"" ,0 } -}; - -static const struct pnp_id pnp_dev_table[] = { +static const struct pnp_device_id pnp_dev_table[] = {/* Archtek America Corp. */ /* Archtek SmartLink Modem 3334BT Plug & Play */ {"AAC000F" ,0 },
@@ -316,6 +311,8 @@ { "", 0 } }; +MODULE_DEVICE_TABLE (pnp, pnp_dev_table); +static void inline avoid_irq_share (struct pnp_dev *dev) {unsigned int map =0x1FF8 ;
@@ -384,7 +381,7 @@ }static int -serial_pnp_probe (struct pnp_dev * dev,const struct pnp_id *card_id,const struct pnp_id *dev_id) +serial_pnp_probe (struct pnp_dev * dev,const struct pnp_device_id *dev_id) {struct serial_struct serial_req;int ret, line, flags = dev_id->driver_data;
@@ -393,10 +390,10 @@if (flags &SPCI_FL_NO_SHIRQ )avoid_irq_share (dev);memset (&serial_req,0 ,sizeof (serial_req)); - serial_req.irq = dev->irq_resource[0 ].start; - serial_req.port =pci_resource_start (dev,0 ); + serial_req.irq =pnp_irq (dev,0 ); + serial_req.port =pnp_port_start (dev,0 );if (HIGH_BITS_OFFSET ) - serial_req.port = dev->resource[0 ].start >>HIGH_BITS_OFFSET ; + serial_req.port =pnp_port_start (dev,0 ) >>HIGH_BITS_OFFSET ;#ifdef SERIAL_DEBUG_PNP printk ("Setup PNP port: port %x, irq %d, type %d\n" , serial_req.port, serial_req.irq, serial_req.io_type);
@@ -407,7 +404,7 @@ line =register_serial (&serial_req);if (line >=0 ) - dev->driver_data = (void *)(line +1 ); +pnp_set_drvdata (dev, (void *)(line +1 ));return line >=0 ?0 : -ENODEV ; }
@@ -419,7 +416,6 @@static struct pnp_driver serial_pnp_driver = { .name ="serial" , - .card_id_table = pnp_card_table, .id_table = pnp_dev_table, .probe = serial_pnp_probe, .remove = serial_pnp_remove,
@@ -442,5 +438,3 @@MODULE_LICENSE ("GPL" );MODULE_DESCRIPTION ("Generic 8250/16x50 PnP serial driver" ); -/* FIXME */ -/*MODULE_DEVICE_TABLE(pnpbios, pnp_dev_table);*/
include/linux/pnp.h +189 -40
354 lines not on this page · raw message
include/linux/pnpbios.h +13 -0
@@ -75,6 +75,19 @@#define PNPMSG_POWER_OFF 0x41#define PNPMSG_PNP_OS_ACTIVE 0x42#define PNPMSG_PNP_OS_INACTIVE 0x43 +/* +* Plug and Play BIOS flags +*/ +#define PNP_NO_DISABLE 0x0001 +#define PNP_NO_CONFIG 0x0002 +#define PNP_OUTPUT 0x0004 +#define PNP_INPUT 0x0008 +#define PNP_BOOTABLE 0x0010 +#define PNP_DOCK 0x0020 +#define PNP_REMOVABLE 0x0040 +#define pnp_is_static (x) (x->flags & 0x0100) == 0x0000 +#define pnp_is_dynamic (x) x->flags & 0x0080 +/* 0x8000 through 0xffff are OEM defined */ #pragma pack(1)
include/linux/sunrpc/stats.h +10 -8
@@ -61,16 +61,18 @@#else +static inline struct proc_dir_entry *rpc_proc_register (struct rpc_stat *s) {return NULL ; } +static inline void rpc_proc_unregister (const char *p) {} +static inline int rpc_proc_read (char *a,char **b,off_t c,int d,int *e,void *f) {return 0 ; } +static inline void rpc_proc_zero (struct rpc_program *p) {} + +static inline struct proc_dir_entry *svc_proc_register (struct svc_stat *s) {return NULL ; }static inline void svc_proc_unregister (const char *p) {} -static inline struct proc_dir_entry *svc_proc_register (struct svc_stat *s) -{ -return NULL ; -} +static inline int svc_proc_read (char *a,char **b,off_t c,int d,int *e,void *f) {return 0 ; } +static inline void svc_proc_zero (struct svc_program *p) {} + +#define proc_net_rpc NULL -static inline int svc_proc_read (char *a,char **b,off_t c,int d,int *e,void *f) -{ -return 0 ; -}#endif #endif /* _LINUX_SUNRPC_STATS_H */
sound/isa/opl3sa2.c +52 -79
237 lines not on this page · raw message
sound/oss/opl3sa2.c +2 -4
@@ -841,10 +841,9 @@ {.id = ""} }; -/*MODULE_DEVICE_TABLE(isapnp, isapnp_opl3sa2_list);*/ +MODULE_DEVICE_TABLE (pnp, pnp_opl3sa2_list); -static int opl3sa2_pnp_probe (struct pnp_dev *dev,const struct pnp_id *card_id, -const struct pnp_id *dev_id) +static int opl3sa2_pnp_probe (struct pnp_dev *dev,const struct pnp_id *dev_id) {int card = opl3sa2_cards_num;if (opl3sa2_cards_num ==OPL3SA2_CARDS_MAX )
@@ -883,7 +882,6 @@static struct pnp_driver opl3sa2_driver = { .name ="opl3sa2" , - .card_id_table =NULL , .id_table = pnp_opl3sa2_list, .probe = opl3sa2_pnp_probe, };
ChangeSet 1.837.4.2, 2002/12/05 23:31:41-06:00, [email protected]
[PATCH] PnP bugfix
I forgot the errno.h. Without this patch, things may not compile when pnp support or pnp card support is disabled.
Hope you had a good trip. I noticed a small mistake in pnp 0.93 and I have a fix for it.
include/linux/pnp.h +1 -0
@@ -11,6 +11,7 @@#include <linux/device.h> #include <linux/list.h> +#include <linux/errno.h> /*
ChangeSet 1.837.4.3, 2002/12/06 10:08:34-06:00, [email protected]
[PATCH] PnP gameport driver update
This trivial patch updates the gameport driver to the new id scheme.
drivers/input/gameport/ns558.c +2 -2
@@ -161,7 +161,7 @@#ifdef CONFIG_PNP -static struct pnp_id pnp_devids[] = { +static struct pnp_device_id pnp_devids[] = { { .id ="@P@0001" , .driver_data =0 },/* ALS 100 */ { .id ="@P@0020" , .driver_data =0 },/* ALS 200 */ { .id = "@P@1001", .driver_data = 0 }, /* ALS 100+ */
@@ -189,7 +189,7 @@MODULE_DEVICE_TABLE (pnp, pnp_devids); -static int ns558_pnp_probe (struct pnp_dev *dev,const struct pnp_id *cid,const struct pnp_id *did) +static int ns558_pnp_probe (struct pnp_dev *dev,const struct pnp_device_id *did) {int ioport, iolen;struct ns558 *port;