summaryrefslogtreecommitdiffstats
path: root/src/drivers/net
diff options
context:
space:
mode:
authorMichael Brown2015-09-14 18:52:25 +0200
committerMichael Brown2015-09-14 22:56:40 +0200
commit668dc73d526fa67957b9c10100f9ca5f2ab60522 (patch)
treecf6887506d5ac016fd04497cbd568463292903de /src/drivers/net
parent[usb] Select preferred USB device configuration based on driver score (diff)
downloadipxe-668dc73d526fa67957b9c10100f9ca5f2ab60522.tar.gz
ipxe-668dc73d526fa67957b9c10100f9ca5f2ab60522.tar.xz
ipxe-668dc73d526fa67957b9c10100f9ca5f2ab60522.zip
[usb] Allow for wildcard USB class IDs
Make the class ID a property of the USB driver (rather than a property of the USB device ID), and allow USB drivers to specify a wildcard ID for any of the three component IDs (class, subclass, or protocol). Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net')
-rw-r--r--src/drivers/net/dm96xx.c1
-rw-r--r--src/drivers/net/ecm.c6
-rw-r--r--src/drivers/net/ncm.c6
-rw-r--r--src/drivers/net/smsc75xx.c3
4 files changed, 4 insertions, 12 deletions
diff --git a/src/drivers/net/dm96xx.c b/src/drivers/net/dm96xx.c
index b4eff50a..817a84a2 100644
--- a/src/drivers/net/dm96xx.c
+++ b/src/drivers/net/dm96xx.c
@@ -666,6 +666,7 @@ static struct usb_device_id dm96xx_ids[] = {
struct usb_driver dm96xx_driver __usb_driver = {
.ids = dm96xx_ids,
.id_count = ( sizeof ( dm96xx_ids ) / sizeof ( dm96xx_ids[0] ) ),
+ .class = USB_CLASS_ID ( USB_ANY_ID, USB_ANY_ID, USB_ANY_ID ),
.score = USB_SCORE_NORMAL,
.probe = dm96xx_probe,
.remove = dm96xx_remove,
diff --git a/src/drivers/net/ecm.c b/src/drivers/net/ecm.c
index f24a435a..371611d5 100644
--- a/src/drivers/net/ecm.c
+++ b/src/drivers/net/ecm.c
@@ -503,11 +503,6 @@ static struct usb_device_id ecm_ids[] = {
.name = "cdc-ecm",
.vendor = USB_ANY_ID,
.product = USB_ANY_ID,
- .class = {
- .class = USB_CLASS_CDC,
- .subclass = USB_SUBCLASS_CDC_ECM,
- .protocol = 0,
- },
},
};
@@ -515,6 +510,7 @@ static struct usb_device_id ecm_ids[] = {
struct usb_driver ecm_driver __usb_driver = {
.ids = ecm_ids,
.id_count = ( sizeof ( ecm_ids ) / sizeof ( ecm_ids[0] ) ),
+ .class = USB_CLASS_ID ( USB_CLASS_CDC, USB_SUBCLASS_CDC_ECM, 0 ),
.score = USB_SCORE_NORMAL,
.probe = ecm_probe,
.remove = ecm_remove,
diff --git a/src/drivers/net/ncm.c b/src/drivers/net/ncm.c
index 3c3ab90f..afa794ea 100644
--- a/src/drivers/net/ncm.c
+++ b/src/drivers/net/ncm.c
@@ -655,11 +655,6 @@ static struct usb_device_id ncm_ids[] = {
.name = "cdc-ncm",
.vendor = USB_ANY_ID,
.product = USB_ANY_ID,
- .class = {
- .class = USB_CLASS_CDC,
- .subclass = USB_SUBCLASS_CDC_NCM,
- .protocol = 0,
- },
},
};
@@ -667,6 +662,7 @@ static struct usb_device_id ncm_ids[] = {
struct usb_driver ncm_driver __usb_driver = {
.ids = ncm_ids,
.id_count = ( sizeof ( ncm_ids ) / sizeof ( ncm_ids[0] ) ),
+ .class = USB_CLASS_ID ( USB_CLASS_CDC, USB_SUBCLASS_CDC_NCM, 0 ),
.score = USB_SCORE_NORMAL,
.probe = ncm_probe,
.remove = ncm_remove,
diff --git a/src/drivers/net/smsc75xx.c b/src/drivers/net/smsc75xx.c
index 854329c5..5e4e0e12 100644
--- a/src/drivers/net/smsc75xx.c
+++ b/src/drivers/net/smsc75xx.c
@@ -1038,13 +1038,11 @@ static struct usb_device_id smsc75xx_ids[] = {
.name = "smsc7500",
.vendor = 0x0424,
.product = 0x7500,
- .class = { 0xff, 0x00, 0xff },
},
{
.name = "smsc7505",
.vendor = 0x0424,
.product = 0x7505,
- .class = { 0xff, 0x00, 0xff },
},
};
@@ -1052,6 +1050,7 @@ static struct usb_device_id smsc75xx_ids[] = {
struct usb_driver smsc75xx_driver __usb_driver = {
.ids = smsc75xx_ids,
.id_count = ( sizeof ( smsc75xx_ids ) / sizeof ( smsc75xx_ids[0] ) ),
+ .class = USB_CLASS_ID ( 0xff, 0x00, 0xff ),
.score = USB_SCORE_NORMAL,
.probe = smsc75xx_probe,
.remove = smsc75xx_remove,