Browse Source

Updated to new device probing API

tags/v0.9.3
Michael Brown 20 years ago
parent
commit
628444af86
1 changed files with 20 additions and 13 deletions
  1. 20
    13
      src/drivers/net/sis900.c

+ 20
- 13
src/drivers/net/sis900.c View File

120
 		"SIS 85C503/5513 PCI to ISA bridge"},
120
 		"SIS 85C503/5513 PCI to ISA bridge"},
121
 };
121
 };
122
 
122
 
123
-
124
-
125
-static struct pci_driver sis_bridge_driver =
123
+static struct pci_driver sis_bridge_pci_driver =
126
 	PCI_DRIVER ( pci_isa_bridge_list, PCI_NO_CLASS );
124
 	PCI_DRIVER ( pci_isa_bridge_list, PCI_NO_CLASS );
127
 
125
 
126
+static struct device_driver sis_bridge_driver = {
127
+    .name = "SIS ISA bridge",
128
+    .bus_driver = &pci_driver,
129
+    .bus_driver_info = ( struct bus_driver_info * ) &sis_bridge_pci_driver,
130
+};
131
+
128
 /* Function Prototypes */
132
 /* Function Prototypes */
129
 
133
 
130
 static int sis900_probe(struct nic *nic,struct pci_device *pci);
134
 static int sis900_probe(struct nic *nic,struct pci_device *pci);
239
 {
243
 {
240
 	u8 reg;
244
 	u8 reg;
241
 	int i;
245
 	int i;
242
-	struct pci_device	isa_bridge;
246
+	struct bus_loc bus_loc;
247
+	union {
248
+	    struct bus_dev bus_dev;
249
+	    struct pci_device isa_bridge;
250
+	} u;
243
 
251
 
244
 	/* find PCI to ISA bridge */
252
 	/* find PCI to ISA bridge */
245
-	memset(&isa_bridge, 0, sizeof(isa_bridge));
246
-	if ( ! find_pci_device ( &isa_bridge, &sis_bridge_driver ) )
253
+	memset(&bus_loc, 0, sizeof(bus_loc));
254
+	if ( ! find_by_driver ( &bus_loc, &u.bus_dev, &sis_bridge_driver, 0 ) )
247
 	    return 0;
255
 	    return 0;
248
 
256
 
249
-	pci_read_config_byte(&isa_bridge, 0x48, &reg);
250
-	pci_write_config_byte(&isa_bridge, 0x48, reg | 0x40);
257
+	pci_read_config_byte(&u.isa_bridge, 0x48, &reg);
258
+	pci_write_config_byte(&u.isa_bridge, 0x48, reg | 0x40);
251
 
259
 
252
 	for (i = 0; i < ETH_ALEN; i++)
260
 	for (i = 0; i < ETH_ALEN; i++)
253
 	{
261
 	{
254
 		outb(0x09 + i, 0x70);
262
 		outb(0x09 + i, 0x70);
255
 		((u8 *)(nic->node_addr))[i] = inb(0x71);
263
 		((u8 *)(nic->node_addr))[i] = inb(0x71);
256
 	}
264
 	}
257
-	pci_write_config_byte(&isa_bridge, 0x48, reg & ~0x40);
265
+	pci_write_config_byte(&u.isa_bridge, 0x48, reg & ~0x40);
258
 
266
 
259
 	return 1;
267
 	return 1;
260
 }
268
 }
324
     pci_fill_nic ( nic, pci );
332
     pci_fill_nic ( nic, pci );
325
     nic->ioaddr = pci->ioaddr;
333
     nic->ioaddr = pci->ioaddr;
326
     ioaddr  = pci->ioaddr;
334
     ioaddr  = pci->ioaddr;
327
-    vendor  = pci->vendor;
328
-    dev_id  = pci->dev_id;
335
+    vendor  = pci->vendor_id;
336
+    dev_id  = pci->device_id;
329
 
337
 
330
     /* wakeup chip */
338
     /* wakeup chip */
331
     pci_write_config_dword(pci, 0x40, 0x00000000);
339
     pci_write_config_dword(pci, 0x40, 0x00000000);
1251
 	.poll		= sis900_poll,
1259
 	.poll		= sis900_poll,
1252
 	.transmit	= sis900_transmit,
1260
 	.transmit	= sis900_transmit,
1253
 	.irq		= sis900_irq,
1261
 	.irq		= sis900_irq,
1254
-
1255
 };
1262
 };
1256
 
1263
 
1257
 static struct pci_id sis900_nics[] = {
1264
 static struct pci_id sis900_nics[] = {
1260
 };
1267
 };
1261
 
1268
 
1262
 static struct pci_driver sis900_driver =
1269
 static struct pci_driver sis900_driver =
1263
-	PCI_DRIVER ( "SIS900", sis900_nics, PCI_NO_CLASS );
1270
+	PCI_DRIVER ( sis900_nics, PCI_NO_CLASS );
1264
 
1271
 
1265
 DRIVER ( "SIS900", nic_driver, pci_driver, sis900_driver,
1272
 DRIVER ( "SIS900", nic_driver, pci_driver, sis900_driver,
1266
 	 sis900_probe, sis900_disable );
1273
 	 sis900_probe, sis900_disable );

Loading…
Cancel
Save