|
@@ -1364,18 +1364,6 @@ static int hunt_pixies_and_undi_roms ( void ) {
|
1364
|
1364
|
return 0;
|
1365
|
1365
|
}
|
1366
|
1366
|
|
1367
|
|
-/* UNDI driver states that it is suitable for any PCI NIC (i.e. any
|
1368
|
|
- * PCI device of class PCI_CLASS_NETWORK_ETHERNET). If there are any
|
1369
|
|
- * obscure UNDI NICs that have the incorrect PCI class, add them to
|
1370
|
|
- * this list.
|
1371
|
|
- */
|
1372
|
|
-static struct pci_id undi_nics[] = {
|
1373
|
|
- PCI_ROM ( 0x0000, 0x0000, "undi", "UNDI driver support" ),
|
1374
|
|
-};
|
1375
|
|
-
|
1376
|
|
-static struct pci_driver undi_driver =
|
1377
|
|
- PCI_DRIVER ( "UNDI", undi_nics, PCI_CLASS_NETWORK_ETHERNET );
|
1378
|
|
-
|
1379
|
1367
|
static struct nic_operations undi_operations = {
|
1380
|
1368
|
.connect = dummy_connect,
|
1381
|
1369
|
.poll = undi_poll,
|
|
@@ -1387,17 +1375,12 @@ static struct nic_operations undi_operations = {
|
1387
|
1375
|
/* The actual Etherboot probe routine.
|
1388
|
1376
|
*/
|
1389
|
1377
|
|
1390
|
|
-static int undi_probe ( struct dev *dev ) {
|
|
1378
|
+static int undi_probe ( struct dev *dev, struct pci_device *pci ) {
|
1391
|
1379
|
struct nic *nic = nic_device ( dev );
|
1392
|
|
- struct pci_device *pci = pci_device ( dev );
|
1393
|
1380
|
|
1394
|
1381
|
/* Zero out global undi structure */
|
1395
|
1382
|
memset ( &undi, 0, sizeof(undi) );
|
1396
|
1383
|
|
1397
|
|
- /* Scan PCI bus for a suitable device */
|
1398
|
|
- if ( ! find_pci_device ( pci, &undi_driver ) )
|
1399
|
|
- return 0;
|
1400
|
|
-
|
1401
|
1384
|
/* Store PCI parameters; we will need them to initialize the
|
1402
|
1385
|
* UNDI driver later. If not a PCI device, leave as 0.
|
1403
|
1386
|
*/
|
|
@@ -1455,6 +1438,18 @@ static int undi_probe ( struct dev *dev ) {
|
1455
|
1438
|
return 0;
|
1456
|
1439
|
}
|
1457
|
1440
|
|
1458
|
|
-BOOT_DRIVER ( "UNDI", undi_probe );
|
|
1441
|
+/* UNDI driver states that it is suitable for any PCI NIC (i.e. any
|
|
1442
|
+ * PCI device of class PCI_CLASS_NETWORK_ETHERNET). If there are any
|
|
1443
|
+ * obscure UNDI NICs that have the incorrect PCI class, add them to
|
|
1444
|
+ * this list.
|
|
1445
|
+ */
|
|
1446
|
+static struct pci_id undi_nics[] = {
|
|
1447
|
+ PCI_ROM ( 0x0000, 0x0000, "undi", "UNDI driver support" ),
|
|
1448
|
+};
|
|
1449
|
+
|
|
1450
|
+static struct pci_driver undi_driver =
|
|
1451
|
+ PCI_DRIVER ( "UNDI", undi_nics, PCI_CLASS_NETWORK_ETHERNET );
|
|
1452
|
+
|
|
1453
|
+BOOT_DRIVER ( "UNDI", find_pci_boot_device, undi_driver, undi_probe );
|
1459
|
1454
|
|
1460
|
1455
|
#endif /* PCBIOS */
|