]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - drivers/staging/udlfb/udlfb.h
Staging: udlfb: reorganize function order
[mirror_ubuntu-bionic-kernel.git] / drivers / staging / udlfb / udlfb.h
CommitLineData
39e7df5d
GKH
1#ifndef UDLFB_H
2#define UDLFB_H
88e58b1a 3
39e7df5d
GKH
4/* as libdlo */
5#define BUF_HIGH_WATER_MARK 1024
6#define BUF_SIZE (64*1024)
88e58b1a
RDI
7
8struct dlfb_data {
9 struct usb_device *udev;
10 struct usb_interface *interface;
11 struct urb *tx_urb, *ctrl_urb;
12 struct usb_ctrlrequest dr;
13 struct fb_info *info;
14 char *buf;
15 char *bufend;
16 char *backing_buffer;
17 struct mutex bulk_mutex;
18 char edid[128];
19 int screen_size;
20 int line_length;
21 struct completion done;
22 int base16;
7316bc55 23 int base16d;
88e58b1a 24 int base8;
7316bc55 25 int base8d;
59277b67 26 u32 pseudo_palette[256];
88e58b1a
RDI
27};
28
cc403dc6
BT
29#define NR_USB_REQUEST_I2C_SUB_IO 0x02
30#define NR_USB_REQUEST_CHANNEL 0x12
31
88e58b1a
RDI
32static void dlfb_bulk_callback(struct urb *urb)
33{
88e58b1a
RDI
34 struct dlfb_data *dev_info = urb->context;
35 complete(&dev_info->done);
88e58b1a
RDI
36}
37
7316bc55
RDI
38static void dlfb_edid(struct dlfb_data *dev_info)
39{
40 int i;
41 int ret;
42 char rbuf[2];
43
44 for (i = 0; i < 128; i++) {
45 ret =
46 usb_control_msg(dev_info->udev,
47 usb_rcvctrlpipe(dev_info->udev, 0), (0x02),
48 (0x80 | (0x02 << 5)), i << 8, 0xA1, rbuf, 2,
49 0);
7316bc55
RDI
50 dev_info->edid[i] = rbuf[1];
51 }
52
53}
54
88e58b1a
RDI
55static int dlfb_bulk_msg(struct dlfb_data *dev_info, int len)
56{
88e58b1a
RDI
57 int ret;
58
59 init_completion(&dev_info->done);
60
61 dev_info->tx_urb->actual_length = 0;
62 dev_info->tx_urb->transfer_buffer_length = len;
63
64 ret = usb_submit_urb(dev_info->tx_urb, GFP_KERNEL);
65 if (!wait_for_completion_timeout(&dev_info->done, 1000)) {
66 usb_kill_urb(dev_info->tx_urb);
67 printk("usb timeout !!!\n");
68 }
69
70 return dev_info->tx_urb->actual_length;
88e58b1a
RDI
71}
72
59277b67 73#define dlfb_set_register insert_command
39e7df5d
GKH
74
75#endif