From 549a0caabb2f239fc702ccea3c1825518e13d121 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 14 Sep 2015 16:53:05 +0100 Subject: [usb] Select preferred USB device configuration based on driver score Generate a score for each possible USB device configuration based on the available driver support, and select the configuration with the highest score. This will allow us to prefer ECM over RNDIS (for devices which support both) and will allow us to meaningfully select a configuration even when we have drivers available for all functions (e.g. when exposing unused functions via EFI_USB_IO_PROTOCOL). Signed-off-by: Michael Brown --- src/drivers/net/dm96xx.c | 1 + src/drivers/net/ecm.c | 1 + src/drivers/net/ncm.c | 1 + src/drivers/net/smsc75xx.c | 1 + 4 files changed, 4 insertions(+) (limited to 'src/drivers/net') diff --git a/src/drivers/net/dm96xx.c b/src/drivers/net/dm96xx.c index 58d8dd964..b4eff50ab 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] ) ), + .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 8c84ea9e9..f24a435a5 100644 --- a/src/drivers/net/ecm.c +++ b/src/drivers/net/ecm.c @@ -515,6 +515,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] ) ), + .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 10728d2a1..3c3ab90f1 100644 --- a/src/drivers/net/ncm.c +++ b/src/drivers/net/ncm.c @@ -667,6 +667,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] ) ), + .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 017e02a59..854329c5c 100644 --- a/src/drivers/net/smsc75xx.c +++ b/src/drivers/net/smsc75xx.c @@ -1052,6 +1052,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] ) ), + .score = USB_SCORE_NORMAL, .probe = smsc75xx_probe, .remove = smsc75xx_remove, }; -- cgit v1.2.3-55-g7522