linux/drivers/gpu/drm/udl/udl_drv.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2012 Red Hat
 */

#include <linux/module.h>

#include <drm/drm_drv.h>
#include <drm/drm_fbdev_shmem.h>
#include <drm/drm_file.h>
#include <drm/drm_gem_shmem_helper.h>
#include <drm/drm_managed.h>
#include <drm/drm_modeset_helper.h>
#include <drm/drm_ioctl.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_print.h>

#include "udl_drv.h"

static int udl_usb_suspend(struct usb_interface *interface,
			   pm_message_t message)
{}

static int udl_usb_resume(struct usb_interface *interface)
{}

static int udl_usb_reset_resume(struct usb_interface *interface)
{}

/*
 * FIXME: Dma-buf sharing requires DMA support by the importing device.
 *        This function is a workaround to make USB devices work as well.
 *        See todo.rst for how to fix the issue in the dma-buf framework.
 */
static struct drm_gem_object *udl_driver_gem_prime_import(struct drm_device *dev,
							  struct dma_buf *dma_buf)
{}

DEFINE_DRM_GEM_FOPS(udl_driver_fops);

static const struct drm_driver driver =;

static struct udl_device *udl_driver_create(struct usb_interface *interface)
{}

static int udl_usb_probe(struct usb_interface *interface,
			 const struct usb_device_id *id)
{}

static void udl_usb_disconnect(struct usb_interface *interface)
{}

/*
 * There are many DisplayLink-based graphics products, all with unique PIDs.
 * So we match on DisplayLink's VID + Vendor-Defined Interface Class (0xff)
 * We also require a match on SubClass (0x00) and Protocol (0x00),
 * which is compatible with all known USB 2.0 era graphics chips and firmware,
 * but allows DisplayLink to increment those for any future incompatible chips
 */
static const struct usb_device_id id_table[] =;
MODULE_DEVICE_TABLE(usb, id_table);

static struct usb_driver udl_driver =;
module_usb_driver();
MODULE_DESCRIPTION();
MODULE_LICENSE();