The patch number 9758 was added via Mauro Carvalho Chehab <[EMAIL PROTECTED]>
to http://linuxtv.org/hg/v4l-dvb master development tree.

Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel

If anyone has any objections, please let us know by sending a message to:
        [EMAIL PROTECTED]

------

From: Mauro Carvalho Chehab  <[EMAIL PROTECTED]>
em28xx: replace some magic by register descriptions where known


Replaces all occurrences of em28xx_write_regs_req() and em28xx_write_reg()
used to setup register names by em28xx_write_reg().

Also, documents the register names that are known.

This patch were generated by this small perl script:

my %reg_map = (
        # Register table - the same as defined on parse_em28xx.pl script
);

while (<>) {
        if 
(m/(.*)em28xx_write_regs_req\(dev\,\s*0x00\,\s*(.*)\,\s*\"\\x(..)\",\s*1\)\;(.*)/)
 {
                my $reg = $2;
                my $val = $3;
                $val =~ tr/A-f/a-f/;
                $reg = $reg_map{$reg} if defined($reg_map{$reg});
                printf "$1em28xx_write_reg(dev, %s, 0x%s);$4\n", $reg, $val;
        } elsif 
(m/(.*)em28xx_write_regs\(dev\,\s*(.*)\,\s*\"\\x(..)\",\s*1\)\;(.*)/) {
                my $reg = $2;
                my $val = $3;
                $val =~ tr/A-f/a-f/;
                $reg = $reg_map{$reg} if defined($reg_map{$reg});
                printf "$1em28xx_write_reg(dev, %s, 0x%s);$4\n", $reg, $val;
        } else {
                print $_;
        }
}

Priority: normal

Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>


---

 linux/drivers/media/video/em28xx/em28xx-core.c  |   48 ++++++++--------
 linux/drivers/media/video/em28xx/em28xx-video.c |   12 ++--
 linux/drivers/media/video/em28xx/em28xx.h       |    2 
 3 files changed, 31 insertions(+), 31 deletions(-)

diff -r e8c3de051811 -r cc78a29fc2a8 
linux/drivers/media/video/em28xx/em28xx-core.c
--- a/linux/drivers/media/video/em28xx/em28xx-core.c    Wed Nov 26 12:30:47 
2008 -0200
+++ b/linux/drivers/media/video/em28xx/em28xx-core.c    Wed Nov 26 17:28:42 
2008 -0200
@@ -558,20 +558,20 @@ EXPORT_SYMBOL_GPL(em28xx_audio_setup);
 
 int em28xx_colorlevels_set_default(struct em28xx *dev)
 {
-       em28xx_write_regs(dev, EM28XX_R20_YGAIN, "\x10", 1);    /* contrast */
-       em28xx_write_regs(dev, EM28XX_R21_YOFFSET, "\x00", 1);  /* brightness */
-       em28xx_write_regs(dev, EM28XX_R22_UVGAIN, "\x10", 1);   /* saturation */
-       em28xx_write_regs(dev, EM28XX_R23_UOFFSET, "\x00", 1);
-       em28xx_write_regs(dev, EM28XX_R24_VOFFSET, "\x00", 1);
-       em28xx_write_regs(dev, EM28XX_R25_SHARPNESS, "\x00", 1);
-
-       em28xx_write_regs(dev, EM28XX_R14_GAMMA, "\x20", 1);
-       em28xx_write_regs(dev, EM28XX_R15_RGAIN, "\x20", 1);
-       em28xx_write_regs(dev, EM28XX_R16_GGAIN, "\x20", 1);
-       em28xx_write_regs(dev, EM28XX_R17_BGAIN, "\x20", 1);
-       em28xx_write_regs(dev, EM28XX_R18_ROFFSET, "\x00", 1);
-       em28xx_write_regs(dev, EM28XX_R19_GOFFSET, "\x00", 1);
-       return em28xx_write_regs(dev, EM28XX_R1A_BOFFSET, "\x00", 1);
+       em28xx_write_reg(dev, EM28XX_R20_YGAIN, 0x10);  /* contrast */
+       em28xx_write_reg(dev, EM28XX_R21_YOFFSET, 0x00);        /* brightness */
+       em28xx_write_reg(dev, EM28XX_R22_UVGAIN, 0x10); /* saturation */
+       em28xx_write_reg(dev, EM28XX_R23_UOFFSET, 0x00);
+       em28xx_write_reg(dev, EM28XX_R24_VOFFSET, 0x00);
+       em28xx_write_reg(dev, EM28XX_R25_SHARPNESS, 0x00);
+
+       em28xx_write_reg(dev, EM28XX_R14_GAMMA, 0x20);
+       em28xx_write_reg(dev, EM28XX_R15_RGAIN, 0x20);
+       em28xx_write_reg(dev, EM28XX_R16_GGAIN, 0x20);
+       em28xx_write_reg(dev, EM28XX_R17_BGAIN, 0x20);
+       em28xx_write_reg(dev, EM28XX_R18_ROFFSET, 0x00);
+       em28xx_write_reg(dev, EM28XX_R19_GOFFSET, 0x00);
+       return em28xx_write_reg(dev, EM28XX_R1A_BOFFSET, 0x00);
 }
 
 int em28xx_capture_start(struct em28xx *dev, int start)
@@ -604,17 +604,17 @@ int em28xx_capture_start(struct em28xx *
 
        if (!start) {
                /* disable video capture */
-               rc = em28xx_write_regs(dev, EM28XX_R12_VINENABLE, "\x27", 1);
+               rc = em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x27);
                return rc;
        }
 
        /* enable video capture */
-       rc = em28xx_write_regs_req(dev, 0x00, 0x48, "\x00", 1);
+       rc = em28xx_write_reg(dev, 0x48, 0x00);
 
        if (dev->mode == EM28XX_ANALOG_MODE)
-               rc = em28xx_write_regs(dev, EM28XX_R12_VINENABLE, "\x67", 1);
+               rc = em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x67);
        else
-               rc = em28xx_write_regs(dev, EM28XX_R12_VINENABLE, "\x37", 1);
+               rc = em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x37);
 
        msleep(6);
 
@@ -623,9 +623,9 @@ int em28xx_capture_start(struct em28xx *
 
 int em28xx_outfmt_set_yuv422(struct em28xx *dev)
 {
-       em28xx_write_regs(dev, EM28XX_R27_OUTFMT, "\x34", 1);
-       em28xx_write_regs(dev, EM28XX_R10_VINMODE, "\x10", 1);
-       return em28xx_write_regs(dev, EM28XX_R11_VINCTRL, "\x11", 1);
+       em28xx_write_reg(dev, EM28XX_R27_OUTFMT, 0x34);
+       em28xx_write_reg(dev, EM28XX_R10_VINMODE, 0x10);
+       return em28xx_write_reg(dev, EM28XX_R11_VINCTRL, 0x11);
 }
 
 static int em28xx_accumulator_set(struct em28xx *dev, u8 xmin, u8 xmax,
@@ -741,11 +741,11 @@ int em28xx_gpio_set(struct em28xx *dev, 
        if (!gpio)
                return rc;
 
-       dev->em28xx_write_regs_req(dev, 0x00, 0x48, "\x00", 1);
+       em28xx_write_reg(dev, 0x48, 0x00);
        if (dev->mode == EM28XX_ANALOG_MODE)
-               dev->em28xx_write_regs_req(dev, 0x00, 0x12, "\x67", 1);
+               em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x67);
        else
-               dev->em28xx_write_regs_req(dev, 0x00, 0x12, "\x37", 1);
+               em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x37);
        msleep(6);
 
        /* Send GPIO reset sequences specified at board entry */
diff -r e8c3de051811 -r cc78a29fc2a8 
linux/drivers/media/video/em28xx/em28xx-video.c
--- a/linux/drivers/media/video/em28xx/em28xx-video.c   Wed Nov 26 12:30:47 
2008 -0200
+++ b/linux/drivers/media/video/em28xx/em28xx-video.c   Wed Nov 26 17:28:42 
2008 -0200
@@ -522,7 +522,7 @@ static int em28xx_config(struct em28xx *
 
        /* Sets I2C speed to 100 KHz */
        if (!dev->board.is_em2800) {
-               retval = em28xx_write_regs_req(dev, 0x00, 0x06, "\x40", 1);
+               retval = em28xx_write_reg(dev, EM28XX_R06_I2C_CLK, 0x40);
                if (retval < 0) {
                        em28xx_errdev("%s: em28xx_write_regs_req failed! retval 
[%d]\n",
                                __func__, retval);
@@ -533,9 +533,9 @@ static int em28xx_config(struct em28xx *
 #if 1
        /* enable vbi capturing */
 
-/*     em28xx_write_regs_req(dev, 0x00, 0x0e, "\xC0", 1); audio register */
-/*     em28xx_write_regs_req(dev, 0x00, 0x0f, "\x80", 1); clk register */
-       em28xx_write_regs_req(dev, 0x00, 0x11, "\x51", 1);
+/*     em28xx_write_reg(dev, EM28XX_R0E_AUDIOSRC, 0xc0); audio register */
+/*     em28xx_write_reg(dev, EM28XX_R0F_XCLK, 0x80); clk register */
+       em28xx_write_reg(dev, EM28XX_R11_VINCTRL, 0x51);
 #endif
 
        dev->mute = 1;          /* maybe not the right place... */
@@ -2165,7 +2165,7 @@ static int em28xx_init_dev(struct em28xx
 
        if (dev->board.has_msp34xx) {
                /* Send a reset to other chips via gpio */
-               errCode = em28xx_write_regs_req(dev, 0x00, 0x08, "\xf7", 1);
+               errCode = em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xf7);
                if (errCode < 0) {
                        em28xx_errdev("%s: em28xx_write_regs_req - msp34xx(1) 
failed! errCode [%d]\n",
                                __func__, errCode);
@@ -2173,7 +2173,7 @@ static int em28xx_init_dev(struct em28xx
                }
                msleep(3);
 
-               errCode = em28xx_write_regs_req(dev, 0x00, 0x08, "\xff", 1);
+               errCode = em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xff);
                if (errCode < 0) {
                        em28xx_errdev("%s: em28xx_write_regs_req - msp34xx(2) 
failed! errCode [%d]\n",
                                __func__, errCode);
diff -r e8c3de051811 -r cc78a29fc2a8 linux/drivers/media/video/em28xx/em28xx.h
--- a/linux/drivers/media/video/em28xx/em28xx.h Wed Nov 26 12:30:47 2008 -0200
+++ b/linux/drivers/media/video/em28xx/em28xx.h Wed Nov 26 17:28:42 2008 -0200
@@ -630,7 +630,7 @@ static inline int em28xx_compression_dis
 static inline int em28xx_compression_disable(struct em28xx *dev)
 {
        /* side effect of disabling scaler and mixer */
-       return em28xx_write_regs(dev, EM28XX_R26_COMPR, "\x00", 1);
+       return em28xx_write_reg(dev, EM28XX_R26_COMPR, 0x00);
 }
 
 static inline int em28xx_contrast_get(struct em28xx *dev)


---

Patch is available at: 
http://linuxtv.org/hg/v4l-dvb/rev/cc78a29fc2a835d8af2f6fa9a4815c06cdc31b28

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to