#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/usb.h>
#include <linux/backlight.h>
#include <linux/timer.h>
#include <linux/workqueue.h>
#include <linux/atomic.h>
#define APPLE_VENDOR_ID …
#define USB_REQ_GET_REPORT …
#define USB_REQ_SET_REPORT …
#define ACD_USB_TIMEOUT …
#define ACD_USB_EDID …
#define ACD_USB_BRIGHTNESS …
#define ACD_BTN_NONE …
#define ACD_BTN_BRIGHT_UP …
#define ACD_BTN_BRIGHT_DOWN …
#define ACD_URB_BUFFER_LEN …
#define ACD_MSG_BUFFER_LEN …
#define APPLEDISPLAY_DEVICE(prod) …
static const struct usb_device_id appledisplay_table[] = …;
MODULE_DEVICE_TABLE(usb, appledisplay_table);
struct appledisplay { … };
static atomic_t count_displays = …;
static void appledisplay_complete(struct urb *urb)
{ … }
static int appledisplay_bl_update_status(struct backlight_device *bd)
{ … }
static int appledisplay_bl_get_brightness(struct backlight_device *bd)
{ … }
static const struct backlight_ops appledisplay_bl_data = …;
static void appledisplay_work(struct work_struct *work)
{ … }
static int appledisplay_probe(struct usb_interface *iface,
const struct usb_device_id *id)
{ … }
static void appledisplay_disconnect(struct usb_interface *iface)
{ … }
static struct usb_driver appledisplay_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;