The patch number 9971 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]>
v4l2-dbg: allow debug tvp5150 registers


Signed-off-by: Mauro Carvalho Chehab <[email protected]>


---

 v4l2-apps/util/v4l2-dbg-tvp5150.h |   97 ++++++++++++++++++++++++++++++
 v4l2-apps/util/v4l2-dbg.cpp       |   21 ++++++
 2 files changed, 117 insertions(+), 1 deletion(-)

diff -r 1828ab260dbe -r d5d6a563fa68 v4l2-apps/util/v4l2-dbg-tvp5150.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/v4l2-apps/util/v4l2-dbg-tvp5150.h Mon Dec 22 22:00:03 2008 -0200
@@ -0,0 +1,97 @@
+/*
+    Copyright (C) 2008 Mauro Carvalho Chehab <[email protected]>
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include "v4l2-dbg.h"
+
+#define TVP5150_IDENT "tvp5150"
+
+/* Register name prefix */
+#define TVP5150_PREFIX "TVP5150_"
+
+static struct board_regs tvp5150_regs[] = {
+       {0x00, TVP5150_PREFIX "VD_IN_SRC_SEL_1", 1},
+       {0x01, TVP5150_PREFIX "ANAL_CHL_CTL", 1},
+       {0x02, TVP5150_PREFIX "OP_MODE_CTL", 1},
+       {0x03, TVP5150_PREFIX "MISC_CTL", 1},
+       {0x04, TVP5150_PREFIX "AUTOSW_MSK", 1},
+       {0x06, TVP5150_PREFIX "COLOR_KIL_THSH_CTL", 1},
+       {0x07, TVP5150_PREFIX "LUMA_PROC_CTL_1", 1},
+       {0x08, TVP5150_PREFIX "LUMA_PROC_CTL_2", 1},
+       {0x09, TVP5150_PREFIX "BRIGHT_CTL", 1},
+       {0x0a, TVP5150_PREFIX "SATURATION_CTL", 1},
+       {0x0b, TVP5150_PREFIX "HUE_CTL", 1},
+       {0x0c, TVP5150_PREFIX "CONTRAST_CTL", 1},
+       {0x0d, TVP5150_PREFIX "DATA_RATE_SEL", 1},
+       {0x0e, TVP5150_PREFIX "LUMA_PROC_CTL_3", 1},
+       {0x0f, TVP5150_PREFIX "CONF_SHARED_PIN", 1},
+       {0x11, TVP5150_PREFIX "ACT_VD_CROP_ST_MSB", 1},
+       {0x12, TVP5150_PREFIX "ACT_VD_CROP_ST_LSB", 1},
+       {0x13, TVP5150_PREFIX "ACT_VD_CROP_STP_MSB", 1},
+       {0x14, TVP5150_PREFIX "ACT_VD_CROP_STP_LSB", 1},
+       {0x15, TVP5150_PREFIX "GENLOCK", 1},
+       {0x16, TVP5150_PREFIX "HORIZ_SYNC_START", 1},
+       {0x18, TVP5150_PREFIX "VERT_BLANKING_START", 1},
+       {0x19, TVP5150_PREFIX "VERT_BLANKING_STOP", 1},
+       {0x1a, TVP5150_PREFIX "CHROMA_PROC_CTL_1", 1},
+       {0x1b, TVP5150_PREFIX "CHROMA_PROC_CTL_2", 1},
+       {0x1c, TVP5150_PREFIX "INT_RESET_REG_B", 1},
+       {0x1d, TVP5150_PREFIX "INT_ENABLE_REG_B", 1},
+       {0x1e, TVP5150_PREFIX "INTT_CONFIG_REG_B", 1},
+       {0x28, TVP5150_PREFIX "VIDEO_STD", 1},
+       {0x2c, TVP5150_PREFIX "CB_GAIN_FACT", 1},
+       {0x2d, TVP5150_PREFIX "CR_GAIN_FACTOR", 1},
+       {0x2e, TVP5150_PREFIX "MACROVISION_ON_CTR", 1},
+       {0x2f, TVP5150_PREFIX "MACROVISION_OFF_CTR", 1},
+       {0x30, TVP5150_PREFIX "REV_SELECT", 1},
+       {0x80, TVP5150_PREFIX "MSB_DEV_ID", 1},
+       {0x81, TVP5150_PREFIX "LSB_DEV_ID", 1},
+       {0x82, TVP5150_PREFIX "ROM_MAJOR_VER", 1},
+       {0x83, TVP5150_PREFIX "ROM_MINOR_VER", 1},
+       {0x84, TVP5150_PREFIX "VERT_LN_COUNT_MSB", 1},
+       {0x85, TVP5150_PREFIX "VERT_LN_COUNT_LSB", 1},
+       {0x86, TVP5150_PREFIX "INT_STATUS_REG_B", 1},
+       {0x87, TVP5150_PREFIX "INT_ACTIVE_REG_B", 1},
+       {0x88, TVP5150_PREFIX "STATUS_REG_1", 1},
+       {0x89, TVP5150_PREFIX "STATUS_REG_2", 1},
+       {0x8a, TVP5150_PREFIX "STATUS_REG_3", 1},
+       {0x8b, TVP5150_PREFIX "STATUS_REG_4", 1},
+       {0x8c, TVP5150_PREFIX "STATUS_REG_5", 1},
+       {0x90, TVP5150_PREFIX "CC_DATA", 4},
+       {0x94, TVP5150_PREFIX "WSS_DATA", 6},
+       {0x9a, TVP5150_PREFIX "VPS_DATA", 13},
+       {0xa7, TVP5150_PREFIX "VITC_DATA", 9},
+       {0xb0, TVP5150_PREFIX "VBI_FIFO_READ_DATA", 1},
+       {0xb1, TVP5150_PREFIX "TELETEXT_FIL1", 5},
+       {0xb6, TVP5150_PREFIX "TELETEXT_FIL2", 5},
+       {0xbb, TVP5150_PREFIX "TELETEXT_FIL_ENA", 1},
+       {0xc0, TVP5150_PREFIX "INT_STATUS_REG_A", 1},
+       {0xc1, TVP5150_PREFIX "INT_ENABLE_REG_A", 1},
+       {0xc2, TVP5150_PREFIX "INT_CONF", 1},
+       {0xc3, TVP5150_PREFIX "VDP_CONF_RAM_DATA", 1},
+       {0xc4, TVP5150_PREFIX "CONF_RAM_ADDR_LOW", 1},
+       {0xc5, TVP5150_PREFIX "CONF_RAM_ADDR_HIGH", 1},
+       {0xc6, TVP5150_PREFIX "VDP_STATUS_REG", 1},
+       {0xc7, TVP5150_PREFIX "FIFO_WORD_COUNT", 1},
+       {0xc8, TVP5150_PREFIX "FIFO_INT_THRESHOLD", 1},
+       {0xc9, TVP5150_PREFIX "FIFO_RESET", 1},
+       {0xca, TVP5150_PREFIX "LINE_NUMBER_INT", 1},
+       {0xcb, TVP5150_PREFIX "PIX_ALIGN_REG_LOW", 1},
+       {0xcc, TVP5150_PREFIX "PIX_ALIGN_REG_HIGH", 1},
+       {0xcd, TVP5150_PREFIX "FIFO_OUT_CTRL", 1},
+       {0xcf, TVP5150_PREFIX "FULL_FIELD_ENA", 1},
+       {0xd0, TVP5150_PREFIX "LINE_MODE", 43},
+       {0xfc, TVP5150_PREFIX "FULL_FIELD_MODE_REG", 1},
+};
diff -r 1828ab260dbe -r d5d6a563fa68 v4l2-apps/util/v4l2-dbg.cpp
--- a/v4l2-apps/util/v4l2-dbg.cpp       Mon Dec 22 21:58:41 2008 -0200
+++ b/v4l2-apps/util/v4l2-dbg.cpp       Mon Dec 22 22:00:03 2008 -0200
@@ -46,6 +46,7 @@
 #include "v4l2-dbg-saa7134.h"
 #include "v4l2-dbg-em28xx.h"
 #include "v4l2-dbg-ac97.h"
+#include "v4l2-dbg-tvp5150.h"
 
 #define ARRAY_SIZE(arr) ((int)(sizeof(arr) / sizeof((arr)[0])))
 
@@ -92,6 +93,14 @@ static const struct board_list boards[] 
                em28xx_alt_regs,
                ARRAY_SIZE(em28xx_alt_regs),
        },
+       {                               /* From tvp5150-dbg.h */
+               TVP5150_IDENT,
+               sizeof(TVP5150_PREFIX) - 1,
+               tvp5150_regs,
+               ARRAY_SIZE(tvp5150_regs),
+               NULL,
+               0,
+       },
 };
 
 struct driverid {
@@ -406,6 +415,7 @@ int main(int argc, char **argv)
        std::vector<std::string> get_regs;
        int match_type = V4L2_CHIP_MATCH_HOST;
        int match_chip = 0;
+       char driver[255];
 
        memset(&set_reg, 0, sizeof(set_reg));
        memset(&get_reg, 0, sizeof(get_reg));
@@ -464,6 +474,7 @@ int main(int argc, char **argv)
                                break;
                        }
                        match_type = V4L2_CHIP_MATCH_I2C_DRIVER;
+                       strcpy(driver, optarg);
                        match_chip = parse_chip(optarg);
                        if (!match_chip) {
                                fprintf(stderr, "unknown driver ID %s\n", 
optarg);
@@ -549,9 +560,16 @@ int main(int argc, char **argv)
 
        if (match_type == V4L2_CHIP_MATCH_AC97) {
                curr_bd = &boards[AC97_BOARD];
-       } else {
+       } else if (match_type == V4L2_CHIP_MATCH_HOST) {
                for (int board = ARRAY_SIZE(boards) - 1; board >= 0; board--) {
                        if (!strcasecmp((char *)vcap.driver, 
boards[board].name)) {
+                               curr_bd = &boards[board];
+                               break;
+                       }
+               }
+       } else if (match_type == V4L2_CHIP_MATCH_I2C_DRIVER) {
+               for (int board = ARRAY_SIZE(boards) - 1; board >= 0; board--) {
+                       if (!strcasecmp(driver, boards[board].name)) {
                                curr_bd = &boards[board];
                                break;
                        }
@@ -651,6 +669,7 @@ int main(int argc, char **argv)
 
                get_reg.match_type = match_type;
                get_reg.match_chip = match_chip;
+
                if (forcedstride) {
                        stride = forcedstride;
                } else {


---

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

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

Reply via email to