[ivtv-users] video "features" - how to remove?

Andy Walls awalls at radix.net
Sat Jan 23 02:08:03 CET 2010


On Fri, 2010-01-22 at 14:02 -0800, Tony Ross wrote:

> May I ask please how one "looks" at, or sets the register settings? I see
> that "v4l2-ctl --set-ctrl=<ctrl>=<val>[,<ctrl>=<val>...]" allows one to
> alter the value of various controls returned by the "-l" (ell) option, but I
> don't see any obvious way to list or set the values of the various registers
> on the chip.

v4l-dbg, with debugging compiled into the ivtv, cx25840, cx18, and
videodev modules is the easiest way.  You have to be root to use it.

Just so you know, an HVR-1600 will show this:

# v4l2-dbg -d /dev/video0 -S
host0: cx23418    revision 0x01010000
host1: cx23418_843 revision 0x00008430
i2c 0x4c: cs5345     revision 0x00000000

# v4l2-dbg -d /dev/video0 -c host1 --list-registers=min=0x100,max=0x11f
ioctl: VIDIOC_DBG_G_REGISTER

                00       04       08       0C       10       14       18       1C
00000100: 76028430 07005d00 160e040f 002be2fe 005227ad 00078c00 00000002 00000000 
              ^^^^
(This indicates you're accessing the CX23418 integrated digitizer)


And a PVR-150 will show this:

# v4l2-dbg -d /dev/video1 -S
host0: cx23416    revision 0x00000000
i2c 0x1b: wm8775     revision 0x00000000
i2c 0x44: cx25843    revision 0x00008433

# v4l2-dbg -d /dev/video1 -c 0x44 --list-registers=min=0x100,max=0x10f
ioctl: VIDIOC_DBG_G_REGISTER

          00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000100: 33 84 02 76 80 dd 04 07 0f 04 0a 10 fe e2 2b 00
          ^^^^^
(This indicates you're accessing the CX25843)
 


But honestly, I'd recommend using my "technician controls" for the
HVR-1600 first.  They are in this oldish repository here:

http://linuxtv.org/hg/~awalls/v4l-dvb-ctls/ 

And an email on what they mean: 
http://ivtvdriver.org/pipermail/ivtv-users/2009-August/009513.html 

It saves much of the bit counting on a number of registers I recommended
you might twiddle.


> Of course I'd like to be able to somehow return to the current settings if
> something gets mucked up. <g>

Well, the CX25843 has a *cough* helpful *cough* autoconfig.  If you muck
with some registers, it reconfigures some others by itself.  The cx25840
driver leaves autoconfig on and cleans up after it when it happens.
(You will find that frustrating but can clean it up with a switch to
another input and then back IIRC).  The cx18 driver turns autoconfig off
(plus the chip appears to ignore it) and no auto register config
happens.

I have attached my notes on CX25843 register autoconfig.  It is all from
the datasheet, but just in one place.

Again, if you can test with the HVR-1600 and the "technician controls"
patches, I'd do that.

Regards,
Andy

-------------- next part --------------

3.4.1
	INPUT_MODE of VID_MODE_CTRL2 (0x401)
3.4.2
	INPUT_MODE of VID_MODE_CTRL2 (0x401)
3.4.2.2
	SQ_PIXEL of VID_MODE_CTRL1 (0x400)
	VID_FMT_SEL of VID_MODE_CTRL1 (0x400)
	ACFG_DIS of MISC_CHIP_CTLR (0x102), is set no autoconfig will be done.
3.22
5.6.3
	VID_FMT_SEL of VID_MODE_CTRL1 (0x400) by user or hw autoconfig
		sets regs 0x470-0x481
5.8 Video Mode autoconfig
	VID_FMT_SEL of VID_MODE_CTRL1 (0x400) if not set to auto, 
		won't do some auto stuff

cx18_av_write
cx18_av_and_or

Auto Configed	Trigger			Prevent
0x102		0x401 INPUT_MODE	0x102 CHIP_ACFG_DIS
0x104-0x106	0x401 INPUT_MODE	0x102 CHIP_ACFG_DIS

0x108-0x109	0x400 SQ_PIXEL		0x102 CHIP_ACFG_DIS
0x10c-0x10f	0x400 VID_FMT_SEL Write	0x102 CHIP_ACFG_DIS
		0x400 VID_FMT_SEL Auto	0x102 CHIP_ACFG_DIS, 0x400 VID_FMT_SEL

0x470-0x47f	0x400 VID_FMT_SEL Write	0x400 ACFG_DIS
		0x400 VID_FMT_SEL Auto	0x400 ACFG_DIS, 0x400 VID_FMT_SEL
		0x400 AFD_PAL_SEL	0x400 ACFG_DIS
		0x400 AFD_NTSC_SEL	0x400 ACFG_DIS


More information about the ivtv-users mailing list