usb: gadget: fix wrong endpoint desc
authorEJ Hsu <ejh@nvidia.com>
Wed, 4 Dec 2019 07:34:56 +0000 (23:34 -0800)
committerFelipe Balbi <balbi@kernel.org>
Tue, 10 Dec 2019 12:56:10 +0000 (14:56 +0200)
commite5b5da96da50ef30abb39cb9f694e99366404d24
tree7a77ce5e287b2c1b0d023c2805e6b39cd23d34dd
parent2d7b78f59e020b07fc6338eefe286f54ee2d6773
usb: gadget: fix wrong endpoint desc

Gadget driver should always use config_ep_by_speed() to initialize
usb_ep struct according to usb device's operating speed. Otherwise,
usb_ep struct may be wrong if usb devcie's operating speed is changed.

The key point in this patch is that we want to make sure the desc pointer
in usb_ep struct will be set to NULL when gadget is disconnected.
This will force it to call config_ep_by_speed() to correctly initialize
usb_ep struct based on the new operating speed when gadget is
re-connected later.

Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: EJ Hsu <ejh@nvidia.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/gadget/function/f_ecm.c
drivers/usb/gadget/function/f_rndis.c