mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-17 07:13:58 -05:00
drm/udl: Add reset_resume
Implement the reset_resume callback of struct usb_driver. Set the standard channel when called. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20220908095115.23396-3-tiwai@suse.de
This commit is contained in:
@@ -32,6 +32,16 @@ static int udl_usb_resume(struct usb_interface *interface)
|
||||
return drm_mode_config_helper_resume(dev);
|
||||
}
|
||||
|
||||
static int udl_usb_reset_resume(struct usb_interface *interface)
|
||||
{
|
||||
struct drm_device *dev = usb_get_intfdata(interface);
|
||||
struct udl_device *udl = to_udl(dev);
|
||||
|
||||
udl_select_std_channel(udl);
|
||||
|
||||
return drm_mode_config_helper_resume(dev);
|
||||
}
|
||||
|
||||
/*
|
||||
* FIXME: Dma-buf sharing requires DMA support by the importing device.
|
||||
* This function is a workaround to make USB devices work as well.
|
||||
@@ -140,6 +150,7 @@ static struct usb_driver udl_driver = {
|
||||
.disconnect = udl_usb_disconnect,
|
||||
.suspend = udl_usb_suspend,
|
||||
.resume = udl_usb_resume,
|
||||
.reset_resume = udl_usb_reset_resume,
|
||||
.id_table = id_table,
|
||||
};
|
||||
module_usb_driver(udl_driver);
|
||||
|
||||
@@ -95,6 +95,7 @@ int udl_render_hline(struct drm_device *dev, int log_bpp, struct urb **urb_ptr,
|
||||
u32 byte_offset, u32 device_byte_offset, u32 byte_width);
|
||||
|
||||
int udl_drop_usb(struct drm_device *dev);
|
||||
int udl_select_std_channel(struct udl_device *udl);
|
||||
|
||||
#define CMD_WRITE_RAW8 "\xAF\x60" /**< 8 bit raw write command. */
|
||||
#define CMD_WRITE_RL8 "\xAF\x61" /**< 8 bit run length command. */
|
||||
|
||||
@@ -92,7 +92,7 @@ static int udl_parse_vendor_descriptor(struct udl_device *udl)
|
||||
/*
|
||||
* Need to ensure a channel is selected before submitting URBs
|
||||
*/
|
||||
static int udl_select_std_channel(struct udl_device *udl)
|
||||
int udl_select_std_channel(struct udl_device *udl)
|
||||
{
|
||||
static const u8 set_def_chn[] = {0x57, 0xCD, 0xDC, 0xA7,
|
||||
0x1C, 0x88, 0x5E, 0x15,
|
||||
|
||||
Reference in New Issue
Block a user