Lines Matching refs:gspca_dev

34 	struct gspca_dev gspca_dev;	/* !! must be the first item */  member
62 static void reg_r(struct gspca_dev *gspca_dev, in reg_r() argument
70 struct usb_device *dev = gspca_dev->dev; in reg_r()
73 if (gspca_dev->usb_err < 0) in reg_r()
80 gspca_dev->usb_buf, len, in reg_r()
83 gspca_dev->usb_buf[0]); in reg_r()
86 gspca_dev->usb_err = ret; in reg_r()
90 static void reg_w(struct gspca_dev *gspca_dev, in reg_w() argument
95 struct usb_device *dev = gspca_dev->dev; in reg_w()
98 if (gspca_dev->usb_err < 0) in reg_w()
108 gspca_dev->usb_err = ret; in reg_w()
112 static void reg_wb(struct gspca_dev *gspca_dev, in reg_wb() argument
118 struct usb_device *dev = gspca_dev->dev; in reg_wb()
121 if (gspca_dev->usb_err < 0) in reg_wb()
124 gspca_dev->usb_buf[0] = byte; in reg_wb()
129 gspca_dev->usb_buf, 1, 500); in reg_wb()
132 gspca_dev->usb_err = ret; in reg_wb()
136 static void wait_status_0(struct gspca_dev *gspca_dev) in wait_status_0() argument
143 reg_r(gspca_dev, 0x21, 0x0000, 1); in wait_status_0()
144 if (gspca_dev->usb_buf[0] == 0) in wait_status_0()
150 gspca_dev->usb_err = -ETIME; in wait_status_0()
153 static void wait_status_1(struct gspca_dev *gspca_dev) in wait_status_1() argument
159 reg_r(gspca_dev, 0x21, 0x0001, 1); in wait_status_1()
161 if (gspca_dev->usb_buf[0] == 1) { in wait_status_1()
162 reg_wb(gspca_dev, 0x21, 0x0000, 0x0001, 0x00); in wait_status_1()
163 reg_r(gspca_dev, 0x21, 0x0001, 1); in wait_status_1()
168 gspca_dev->usb_err = -ETIME; in wait_status_1()
171 static void setbrightness(struct gspca_dev *gspca_dev, s32 val) in setbrightness() argument
173 reg_wb(gspca_dev, 0xc0, 0x0000, 0x00c0, val); in setbrightness()
176 static void setcontrast(struct gspca_dev *gspca_dev, s32 val) in setcontrast() argument
178 reg_wb(gspca_dev, 0xc1, 0x0000, 0x00c1, val); in setcontrast()
181 static void sethue(struct gspca_dev *gspca_dev, s32 val) in sethue() argument
183 reg_wb(gspca_dev, 0xc2, 0x0000, 0x0000, val); in sethue()
186 static void setcolor(struct gspca_dev *gspca_dev, s32 val) in setcolor() argument
188 reg_wb(gspca_dev, 0xc3, 0x0000, 0x00c3, val); in setcolor()
191 static void setsharpness(struct gspca_dev *gspca_dev, s32 val) in setsharpness() argument
193 reg_wb(gspca_dev, 0xc4, 0x0000, 0x00c4, val); in setsharpness()
197 static int sd_config(struct gspca_dev *gspca_dev, in sd_config() argument
200 gspca_dev->cam.cam_mode = vga_mode; in sd_config()
201 gspca_dev->cam.nmodes = ARRAY_SIZE(vga_mode); in sd_config()
202 gspca_dev->cam.npkt = 128; /* number of packets per ISOC message */ in sd_config()
209 static int sd_init(struct gspca_dev *gspca_dev) in sd_init() argument
211 reg_w(gspca_dev, 0x00, 0x0001, 0x2067); in sd_init()
212 reg_w(gspca_dev, 0x00, 0x00d0, 0x206b); in sd_init()
213 reg_w(gspca_dev, 0x00, 0x0000, 0x206c); in sd_init()
214 reg_w(gspca_dev, 0x00, 0x0001, 0x2069); in sd_init()
216 reg_w(gspca_dev, 0x00, 0x00c0, 0x206b); in sd_init()
217 reg_w(gspca_dev, 0x00, 0x0000, 0x206c); in sd_init()
218 reg_w(gspca_dev, 0x00, 0x0001, 0x2069); in sd_init()
220 reg_r(gspca_dev, 0x20, 0x0000, 1); in sd_init()
221 reg_r(gspca_dev, 0x20, 0x0000, 5); in sd_init()
222 reg_r(gspca_dev, 0x23, 0x0000, 64); in sd_init()
223 PDEBUG(D_PROBE, "%s%s", &gspca_dev->usb_buf[0x1c], in sd_init()
224 &gspca_dev->usb_buf[0x30]); in sd_init()
225 reg_r(gspca_dev, 0x23, 0x0001, 64); in sd_init()
226 return gspca_dev->usb_err; in sd_init()
230 static int sd_isoc_init(struct gspca_dev *gspca_dev) in sd_isoc_init() argument
234 reg_r(gspca_dev, 0x00, 0x2520, 1); in sd_isoc_init()
235 wait_status_0(gspca_dev); in sd_isoc_init()
236 reg_w(gspca_dev, 0xc5, 0x0003, 0x0000); in sd_isoc_init()
237 wait_status_1(gspca_dev); in sd_isoc_init()
239 wait_status_0(gspca_dev); in sd_isoc_init()
240 mode = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].priv; in sd_isoc_init()
241 reg_wb(gspca_dev, 0x25, 0x0000, 0x0004, mode); in sd_isoc_init()
242 reg_r(gspca_dev, 0x25, 0x0004, 1); in sd_isoc_init()
243 reg_wb(gspca_dev, 0x27, 0x0000, 0x0000, 0x06); /* 420 */ in sd_isoc_init()
244 reg_r(gspca_dev, 0x27, 0x0000, 1); in sd_isoc_init()
249 return gspca_dev->usb_err; in sd_isoc_init()
253 static int sd_start(struct gspca_dev *gspca_dev) in sd_start() argument
255 struct sd *sd = (struct sd *) gspca_dev; in sd_start()
258 jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, in sd_start()
259 gspca_dev->pixfmt.width, in sd_start()
265 reg_r(gspca_dev, 0x00, 0x2520, 1); in sd_start()
269 wait_status_0(gspca_dev); in sd_start()
270 reg_w(gspca_dev, 0x31, 0x0000, 0x0004); /* start request */ in sd_start()
271 wait_status_1(gspca_dev); in sd_start()
272 wait_status_0(gspca_dev); in sd_start()
276 return gspca_dev->usb_err; in sd_start()
279 static void sd_stopN(struct gspca_dev *gspca_dev) in sd_stopN() argument
282 wait_status_0(gspca_dev); in sd_stopN()
283 reg_w(gspca_dev, 0x31, 0x0000, 0x0000); /* stop request */ in sd_stopN()
284 wait_status_1(gspca_dev); in sd_stopN()
285 wait_status_0(gspca_dev); in sd_stopN()
289 static void add_packet(struct gspca_dev *gspca_dev, in add_packet() argument
298 gspca_frame_add(gspca_dev, INTER_PACKET, in add_packet()
306 gspca_frame_add(gspca_dev, INTER_PACKET, data, len); in add_packet()
309 static void sd_pkt_scan(struct gspca_dev *gspca_dev, in sd_pkt_scan() argument
313 struct sd *sd = (struct sd *) gspca_dev; in sd_pkt_scan()
327 add_packet(gspca_dev, data + 2, len - 2); in sd_pkt_scan()
328 gspca_frame_add(gspca_dev, LAST_PACKET, in sd_pkt_scan()
334 if (gspca_dev->last_packet_type == LAST_PACKET) in sd_pkt_scan()
335 gspca_frame_add(gspca_dev, FIRST_PACKET, in sd_pkt_scan()
337 add_packet(gspca_dev, data + 2, len - 2); in sd_pkt_scan()
341 gspca_dev->last_packet_type = DISCARD_PACKET; in sd_pkt_scan()
346 struct gspca_dev *gspca_dev = in sd_s_ctrl() local
347 container_of(ctrl->handler, struct gspca_dev, ctrl_handler); in sd_s_ctrl()
349 gspca_dev->usb_err = 0; in sd_s_ctrl()
351 if (!gspca_dev->streaming) in sd_s_ctrl()
356 setbrightness(gspca_dev, ctrl->val); in sd_s_ctrl()
359 setcontrast(gspca_dev, ctrl->val); in sd_s_ctrl()
362 sethue(gspca_dev, ctrl->val); in sd_s_ctrl()
365 setcolor(gspca_dev, ctrl->val); in sd_s_ctrl()
368 setsharpness(gspca_dev, ctrl->val); in sd_s_ctrl()
371 return gspca_dev->usb_err; in sd_s_ctrl()
378 static int sd_init_controls(struct gspca_dev *gspca_dev) in sd_init_controls() argument
380 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler; in sd_init_controls()
382 gspca_dev->vdev.ctrl_handler = hdl; in sd_init_controls()