• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/media/video/

Lines Matching refs:cam

135 \tcam 1 to parport3 and search every parport for cam 2 etc...");
154 static inline void w9966_setState(struct w9966_dev* cam, int mask, int val);
155 static inline int w9966_getState(struct w9966_dev* cam, int mask, int val);
159 static int w9966_rReg(struct w9966_dev* cam, int reg);
160 static int w9966_wReg(struct w9966_dev* cam, int reg, int data);
161 static int w9966_wReg_i2c(struct w9966_dev* cam, int reg, int data);
164 static int w9966_setup(struct w9966_dev* cam, int x1, int y1, int x2, int y2, int w, int h);
166 static int w9966_init(struct w9966_dev* cam, struct parport* port);
167 static void w9966_term(struct w9966_dev* cam);
169 static inline void w9966_i2c_setsda(struct w9966_dev* cam, int state);
170 static inline int w9966_i2c_setscl(struct w9966_dev* cam, int state);
171 static inline int w9966_i2c_getsda(struct w9966_dev* cam);
172 static inline int w9966_i2c_getscl(struct w9966_dev* cam);
173 static int w9966_i2c_wbyte(struct w9966_dev* cam, int data);
203 static inline void w9966_setState(struct w9966_dev* cam, int mask, int val)
205 cam->dev_state = (cam->dev_state & ~mask) ^ val;
209 static inline int w9966_getState(struct w9966_dev* cam, int mask, int val)
211 return ((cam->dev_state & mask) == val);
215 static inline void w9966_pdev_claim(struct w9966_dev* cam)
217 if (w9966_getState(cam, W9966_STATE_CLAIMED, W9966_STATE_CLAIMED))
219 parport_claim_or_block(cam->pdev);
220 w9966_setState(cam, W9966_STATE_CLAIMED, W9966_STATE_CLAIMED);
224 static inline void w9966_pdev_release(struct w9966_dev* cam)
226 if (w9966_getState(cam, W9966_STATE_CLAIMED, 0))
228 parport_release(cam->pdev);
229 w9966_setState(cam, W9966_STATE_CLAIMED, 0);
235 static int w9966_rReg(struct w9966_dev* cam, int reg)
241 if (parport_negotiate(cam->pport, cam->ppmode | IEEE1284_ADDR) != 0)
243 if (parport_write(cam->pport, &addr, 1) != 1)
245 if (parport_negotiate(cam->pport, cam->ppmode | IEEE1284_DATA) != 0)
247 if (parport_read(cam->pport, &val, 1) != 1)
256 static int w9966_wReg(struct w9966_dev* cam, int reg, int data)
262 if (parport_negotiate(cam->pport, cam->ppmode | IEEE1284_ADDR) != 0)
264 if (parport_write(cam->pport, &addr, 1) != 1)
266 if (parport_negotiate(cam->pport, cam->ppmode | IEEE1284_DATA) != 0)
268 if (parport_write(cam->pport, &val, 1) != 1)
278 static int w9966_init(struct w9966_dev* cam, struct parport* port)
280 if (cam->dev_state != 0)
283 cam->pport = port;
284 cam->brightness = 128;
285 cam->contrast = 64;
286 cam->color = 64;
287 cam->hue = 0;
295 cam->ppmode = IEEE1284_MODE_ECP;
297 cam->ppmode = IEEE1284_MODE_EPP;
299 cam->ppmode = IEEE1284_MODE_ECP;
302 cam->ppmode = IEEE1284_MODE_ECP;
305 cam->ppmode = IEEE1284_MODE_EPP;
310 cam->pdev = parport_register_device(port, "w9966", NULL, NULL, NULL, 0, NULL);
311 if (cam->pdev == NULL) {
315 w9966_setState(cam, W9966_STATE_PDEV, W9966_STATE_PDEV);
317 w9966_pdev_claim(cam);
320 if (w9966_setup(cam, 0, 0, 1023, 1023, 200, 160) != 0) {
325 w9966_pdev_release(cam);
328 memcpy(&cam->vdev, &w9966_template, sizeof(struct video_device));
329 cam->vdev.priv = cam;
331 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, video_nr) == -1)
334 w9966_setState(cam, W9966_STATE_VDEV, W9966_STATE_VDEV);
339 cam->pport->name
346 static void w9966_term(struct w9966_dev* cam)
349 if (w9966_getState(cam, W9966_STATE_VDEV, W9966_STATE_VDEV)) {
350 video_unregister_device(&cam->vdev);
351 w9966_setState(cam, W9966_STATE_VDEV, 0);
355 if (w9966_getState(cam, W9966_STATE_PDEV, W9966_STATE_PDEV)) {
356 w9966_pdev_claim(cam);
357 parport_negotiate(cam->pport, IEEE1284_MODE_COMPAT);
358 w9966_pdev_release(cam);
362 if (w9966_getState(cam, W9966_STATE_PDEV, W9966_STATE_PDEV)) {
363 parport_unregister_device(cam->pdev);
364 w9966_setState(cam, W9966_STATE_PDEV, 0);
438 static int w9966_setup(struct w9966_dev* cam, int x1, int y1, int x2, int y2, int w, int h)
464 cam->width = w;
465 cam->height = h;
509 regs[0x18] = cam->i2c_state = 0x00; // Serial bus
515 saa7111_regs[0x0a] = cam->brightness;
516 saa7111_regs[0x0b] = cam->contrast;
517 saa7111_regs[0x0c] = cam->color;
518 saa7111_regs[0x0d] = cam->hue;
521 if (w9966_wReg(cam, 0x00, 0x03) == -1)
526 if (w9966_wReg(cam, i, regs[i]) == -1)
531 if (w9966_wReg_i2c(cam, i, saa7111_regs[i]) == -1)
543 static inline void w9966_i2c_setsda(struct w9966_dev* cam, int state)
546 cam->i2c_state |= W9966_I2C_W_DATA;
548 cam->i2c_state &= ~W9966_I2C_W_DATA;
550 w9966_wReg(cam, 0x18, cam->i2c_state);
556 static inline int w9966_i2c_getscl(struct w9966_dev* cam)
558 const unsigned char state = w9966_rReg(cam, 0x18);
564 static inline int w9966_i2c_setscl(struct w9966_dev* cam, int state)
569 cam->i2c_state |= W9966_I2C_W_CLOCK;
571 cam->i2c_state &= ~W9966_I2C_W_CLOCK;
573 w9966_wReg(cam, 0x18, cam->i2c_state);
579 while (!w9966_i2c_getscl(cam)) {
589 static inline int w9966_i2c_getsda(struct w9966_dev* cam)
591 const unsigned char state = w9966_rReg(cam, 0x18);
597 static int w9966_i2c_wbyte(struct w9966_dev* cam, int data)
602 w9966_i2c_setsda(cam, (data >> i) & 0x01);
604 if (w9966_i2c_setscl(cam, 1) == -1)
606 w9966_i2c_setscl(cam, 0);
609 w9966_i2c_setsda(cam, 1);
611 if (w9966_i2c_setscl(cam, 1) == -1)
613 w9966_i2c_setscl(cam, 0);
626 static int w9966_wReg_i2c(struct w9966_dev* cam, int reg, int data)
628 w9966_i2c_setsda(cam, 0);
629 w9966_i2c_setscl(cam, 0);
632 w9966_i2c_wbyte(cam, W9966_I2C_W_ID) == -1 ||
633 w9966_i2c_wbyte(cam, reg) == -1 ||
634 w9966_i2c_wbyte(cam, data) == -1
638 w9966_i2c_setsda(cam, 0);
639 if (w9966_i2c_setscl(cam, 1) == -1)
642 w9966_i2c_setsda(cam, 1);
655 struct w9966_dev *cam = vdev->priv;
716 cam->brightness << 8, // brightness
717 (cam->hue + 128) << 8, // hue
718 cam->color << 9, // color
719 cam->contrast << 9, // contrast
733 cam->brightness = vpic->brightness >> 8;
734 cam->hue = (vpic->hue >> 8) - 128;
735 cam->color = vpic->colour >> 9;
736 cam->contrast = vpic->contrast >> 9;
738 w9966_pdev_claim(cam);
741 w9966_wReg_i2c(cam, 0x0a, cam->brightness) == -1 ||
742 w9966_wReg_i2c(cam, 0x0b, cam->contrast) == -1 ||
743 w9966_wReg_i2c(cam, 0x0c, cam->color) == -1 ||
744 w9966_wReg_i2c(cam, 0x0d, cam->hue) == -1
746 w9966_pdev_release(cam);
750 w9966_pdev_release(cam);
768 w9966_pdev_claim(cam);
769 ret = w9966_setup(cam, 0, 0, 1023, 1023, vwin->width, vwin->height);
770 w9966_pdev_release(cam);
783 vwin->width = cam->width;
784 vwin->height = cam->height;
814 struct w9966_dev *cam = vdev->priv;
821 if (count > cam->width * cam->height * 2)
824 w9966_pdev_claim(cam);
825 w9966_wReg(cam, 0x00, 0x02); // Reset ECP-FIFO buffer
826 w9966_wReg(cam, 0x00, 0x00); // Return to normal operation
827 w9966_wReg(cam, 0x01, 0x98); // Enable capture
831 (parport_negotiate(cam->pport, cam->ppmode|IEEE1284_ADDR) != 0 )||
832 (parport_write(cam->pport, &addr, 1) != 1 )||
833 (parport_negotiate(cam->pport, cam->ppmode|IEEE1284_DATA) != 0 )
835 w9966_pdev_release(cam);
849 if (parport_read(cam->pport, tbuf, tsize) < tsize) {
861 w9966_wReg(cam, 0x01, 0x18); // Disable capture
865 w9966_pdev_release(cam);