Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: gadget: dummy: implement ->udc_set_speed()

Move the code which was part of pullup() to the newly introduced
method.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>

+23 -16
+23 -16
drivers/usb/gadget/udc/dummy_hcd.c
··· 888 888 unsigned long flags; 889 889 890 890 dum = gadget_dev_to_dummy(&_gadget->dev); 891 - 892 - if (value && dum->driver) { 893 - if (mod_data.is_super_speed) 894 - dum->gadget.speed = dum->driver->max_speed; 895 - else if (mod_data.is_high_speed) 896 - dum->gadget.speed = min_t(u8, USB_SPEED_HIGH, 897 - dum->driver->max_speed); 898 - else 899 - dum->gadget.speed = USB_SPEED_FULL; 900 - dummy_udc_update_ep0(dum); 901 - 902 - if (dum->gadget.speed < dum->driver->max_speed) 903 - dev_dbg(udc_dev(dum), "This device can perform faster" 904 - " if you connect it to a %s port...\n", 905 - usb_speed_string(dum->driver->max_speed)); 906 - } 907 891 dum_hcd = gadget_to_dummy_hcd(_gadget); 908 892 909 893 spin_lock_irqsave(&dum->lock, flags); ··· 897 913 898 914 usb_hcd_poll_rh_status(dummy_hcd_to_hcd(dum_hcd)); 899 915 return 0; 916 + } 917 + 918 + static void dummy_udc_set_speed(struct usb_gadget *_gadget, 919 + enum usb_device_speed speed) 920 + { 921 + struct dummy *dum; 922 + 923 + dum = gadget_dev_to_dummy(&_gadget->dev); 924 + 925 + if (mod_data.is_super_speed) 926 + dum->gadget.speed = min_t(u8, USB_SPEED_SUPER, speed); 927 + else if (mod_data.is_high_speed) 928 + dum->gadget.speed = min_t(u8, USB_SPEED_HIGH, speed); 929 + else 930 + dum->gadget.speed = USB_SPEED_FULL; 931 + 932 + dummy_udc_update_ep0(dum); 933 + 934 + if (dum->gadget.speed < speed) 935 + dev_dbg(udc_dev(dum), "This device can perform faster" 936 + " if you connect it to a %s port...\n", 937 + usb_speed_string(speed)); 900 938 } 901 939 902 940 static int dummy_udc_start(struct usb_gadget *g, ··· 932 926 .pullup = dummy_pullup, 933 927 .udc_start = dummy_udc_start, 934 928 .udc_stop = dummy_udc_stop, 929 + .udc_set_speed = dummy_udc_set_speed, 935 930 }; 936 931 937 932 /*-------------------------------------------------------------------------*/