]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
V4L/DVB (9589): Properly support capture start on em2874
authorDevin Heitmueller <devin.heitmueller@gmail.com>
Wed, 12 Nov 2008 05:05:24 +0000 (02:05 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 29 Dec 2008 19:53:32 +0000 (17:53 -0200)
Properly support capture start on em2874

The transport stream enable register moved in the em2874, so make it work
properly.

Thanks for Ray Lu from Empia for providing the em2874 datasheet.

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/em28xx/em28xx-core.c
drivers/media/video/em28xx/em28xx-reg.h

index 094548903cb9bd7916b3a4c7ed6db0e620d571a2..d4dee8480e9f202b9526cc7a5ee2713d51f59b01 100644 (file)
@@ -373,6 +373,24 @@ int em28xx_colorlevels_set_default(struct em28xx *dev)
 int em28xx_capture_start(struct em28xx *dev, int start)
 {
        int rc;
+
+       if (dev->chip_id == CHIP_ID_EM2874) {
+               /* The Transport Stream Enable Register moved in em2874 */
+               if (!start) {
+                       rc = em28xx_write_reg_bits(dev, EM2874_R5F_TS_ENABLE,
+                                                  0x00,
+                                                  EM2874_TS1_CAPTURE_ENABLE);
+                       return rc;
+               }
+
+               /* Enable Transport Stream */
+               rc = em28xx_write_reg_bits(dev, EM2874_R5F_TS_ENABLE,
+                                          EM2874_TS1_CAPTURE_ENABLE,
+                                          EM2874_TS1_CAPTURE_ENABLE);
+               return rc;
+       }
+
+
        /* FIXME: which is the best order? */
        /* video registers are sampled by VREF */
        rc = em28xx_write_reg_bits(dev, EM28XX_R0C_USBSUSP,
index 1f0e8a34e8c9b1fa9f88b2343a07c8d68c7fa8bc..50d1790d84fca013286916e88873d0db4cf28042 100644 (file)
 #define EM28XX_R14_VIDEO_AC97  0x14
 
 /* em2874 registers */
+#define EM2874_R5F_TS_ENABLE    0x5f
 #define EM2874_R80_GPIO         0x80
 
+/* em2874 Transport Stream Enable Register (0x5f) */
+#define EM2874_TS1_CAPTURE_ENABLE (1 << 0)
+#define EM2874_TS1_FILTER_ENABLE  (1 << 1)
+#define EM2874_TS1_NULL_DISCARD   (1 << 2)
+#define EM2874_TS2_CAPTURE_ENABLE (1 << 4)
+#define EM2874_TS2_FILTER_ENABLE  (1 << 5)
+#define EM2874_TS2_NULL_DISCARD   (1 << 6)
+
 /* register settings */
 #define EM2800_AUDIO_SRC_TUNER  0x0d
 #define EM2800_AUDIO_SRC_LINE   0x0c