USB: core: Use device_driver directly in struct usb_driver and usb_device_driver
authorYajun Deng <yajun.deng@linux.dev>
Thu, 4 Jan 2024 03:28:22 +0000 (11:28 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Jan 2024 15:06:32 +0000 (16:06 +0100)
commit49a78b05d5ca1e23fd737747a8757b8bdc319b30
tree9b6c082d0f6101495782b1501710d9771f0c4cea
parent33d4137d57997476404bc968fcc5b2ed5639a22f
USB: core: Use device_driver directly in struct usb_driver and usb_device_driver

There is usbdrv_wrap in struct usb_driver and usb_device_driver, it
contains device_driver and for_devices. for_devices is used to
distinguish between device drivers and interface drivers.

Like the is_usb_device(), it tests the type of the device. We can test
that if the probe of device_driver is equal to usb_probe_device in
is_usb_device_driver(), and then the struct usbdrv_wrap is no longer
needed.

Clean up struct usbdrv_wrap, use device_driver directly in struct
usb_driver and usb_device_driver. This makes the code cleaner.

Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/20240104032822.1896596-1-yajun.deng@linux.dev
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
13 files changed:
drivers/bluetooth/btusb.c
drivers/net/can/usb/peak_usb/pcan_usb_core.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
drivers/net/wireless/marvell/mwifiex/usb.c
drivers/usb/core/driver.c
drivers/usb/core/usb.c
drivers/usb/core/usb.h
drivers/usb/misc/onboard_usb_hub.c
drivers/usb/serial/bus.c
drivers/usb/serial/usb-serial.c
drivers/usb/storage/uas.c
drivers/usb/usbip/stub_main.c
include/linux/usb.h