Lines Matching refs:gspca_dev
24 struct gspca_dev gspca_dev; /* !! must be the first item */
38 static void setbrightness(struct gspca_dev *gspca_dev, s32 val);
39 static void setcolors(struct gspca_dev *gspca_dev, s32 val);
40 static void setgamma(struct gspca_dev *gspca_dev, s32 val);
41 static void setsharpness(struct gspca_dev *gspca_dev, s32 val);
67 /* write <len> bytes from gspca_dev->usb_buf */
68 static void reg_w(struct gspca_dev *gspca_dev,
73 if (gspca_dev->usb_err < 0)
76 ret = usb_bulk_msg(gspca_dev->dev,
77 usb_sndbulkpipe(gspca_dev->dev, 4),
78 gspca_dev->usb_buf,
84 gspca_dev->usb_buf[0], ret);
85 gspca_dev->usb_err = ret;
89 static void mi_w(struct gspca_dev *gspca_dev,
93 gspca_dev->usb_buf[0] = 0x1f;
94 gspca_dev->usb_buf[1] = 0; /* control byte */
95 gspca_dev->usb_buf[2] = addr;
96 gspca_dev->usb_buf[3] = value;
98 reg_w(gspca_dev, 4);
101 static void setbrightness(struct gspca_dev *gspca_dev, s32 val)
103 gspca_dev->usb_buf[0] = 0x61;
104 gspca_dev->usb_buf[1] = val;
105 reg_w(gspca_dev, 2);
108 static void setcolors(struct gspca_dev *gspca_dev, s32 val)
110 gspca_dev->usb_buf[0] = 0x5f;
111 gspca_dev->usb_buf[1] = val << 3;
112 gspca_dev->usb_buf[2] = ((val >> 2) & 0xf8) | 0x04;
113 reg_w(gspca_dev, 3);
116 static void setgamma(struct gspca_dev *gspca_dev, s32 val)
118 gspca_dev->usb_buf[0] = 0x06;
119 gspca_dev->usb_buf[1] = val * 0x40;
120 reg_w(gspca_dev, 2);
123 static void setsharpness(struct gspca_dev *gspca_dev, s32 val)
125 gspca_dev->usb_buf[0] = 0x67;
126 gspca_dev->usb_buf[1] = val * 4 + 3;
127 reg_w(gspca_dev, 2);
130 static void setilluminators(struct gspca_dev *gspca_dev, bool top, bool bottom)
133 gspca_dev->usb_buf[0] = 0x22;
135 gspca_dev->usb_buf[1] = 0x76;
137 gspca_dev->usb_buf[1] = 0x7a;
139 gspca_dev->usb_buf[1] = 0x7e;
140 reg_w(gspca_dev, 2);
145 struct gspca_dev *gspca_dev =
146 container_of(ctrl->handler, struct gspca_dev, ctrl_handler);
147 struct sd *sd = (struct sd *)gspca_dev;
149 gspca_dev->usb_err = 0;
159 if (!gspca_dev->streaming)
164 setbrightness(gspca_dev, ctrl->val);
167 setcolors(gspca_dev, ctrl->val);
170 setgamma(gspca_dev, ctrl->val);
173 setilluminators(gspca_dev, sd->illum_top->val,
177 setsharpness(gspca_dev, ctrl->val);
182 return gspca_dev->usb_err;
190 static int sd_init_controls(struct gspca_dev *gspca_dev)
192 struct sd *sd = (struct sd *) gspca_dev;
193 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler;
195 gspca_dev->vdev.ctrl_handler = hdl;
220 static int sd_config(struct gspca_dev *gspca_dev,
225 cam = &gspca_dev->cam;
232 static int sd_init(struct gspca_dev *gspca_dev)
237 static int sd_start(struct gspca_dev *gspca_dev)
239 struct sd *sd = (struct sd *) gspca_dev;
244 jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height,
245 gspca_dev->pixfmt.width,
249 data = gspca_dev->usb_buf;
253 reg_w(gspca_dev, 2);
261 data[3] = gspca_dev->pixfmt.width / 8; /* h_size , reg 2 */
262 data[4] = gspca_dev->pixfmt.height / 8; /* v_size , reg 3 */
275 reg_w(gspca_dev, 11);
280 reg_w(gspca_dev, 2);
283 /* if (gspca_dev->width == 1280) */
289 reg_w(gspca_dev, 2);
303 reg_w(gspca_dev, 6);
309 reg_w(gspca_dev, 3);
315 reg_w(gspca_dev, 4);
319 reg_w(gspca_dev, 2);
324 mi_w(gspca_dev, i + 1, mi_data[i]);
328 reg_w(gspca_dev, 2);
330 setilluminators(gspca_dev, v4l2_ctrl_g_ctrl(sd->illum_top),
333 return gspca_dev->usb_err;
336 static void sd_stopN(struct gspca_dev *gspca_dev)
338 struct sd *sd = (struct sd *) gspca_dev;
342 setilluminators(gspca_dev, false, false);
346 gspca_dev->usb_buf[0] = 1;
347 gspca_dev->usb_buf[1] = 0;
348 reg_w(gspca_dev, 2);
351 static void sd_pkt_scan(struct gspca_dev *gspca_dev,
355 struct sd *sd = (struct sd *) gspca_dev;
359 /* gspca_dev->last_packet_type = DISCARD_PACKET; */
372 gspca_dbg(gspca_dev, D_PACK, "sof offset: %d len: %d\n",
374 gspca_frame_add(gspca_dev, LAST_PACKET,
378 gspca_frame_add(gspca_dev, FIRST_PACKET,
386 gspca_frame_add(gspca_dev, INTER_PACKET, data, len);