summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx18/cx18-av-core.h
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2008-06-13 23:58:08 -0400
committerAndy Walls <awalls@radix.net>2008-06-13 23:58:08 -0400
commit54084f7c52a77294a6947de1b8a9662c14385fed (patch)
treeb69b1f29896a216b839f0ecd87a110abad81efaa /linux/drivers/media/video/cx18/cx18-av-core.h
parentc659a9e10a6f0db8b970b782f20a32e52d80c30c (diff)
downloadmediapointer-dvb-s2-54084f7c52a77294a6947de1b8a9662c14385fed.tar.gz
mediapointer-dvb-s2-54084f7c52a77294a6947de1b8a9662c14385fed.tar.bz2
cx18: Fix unintended auto configurations in cx18-av-core
From: Andy Walls <awalls@radix.net> Change the cx18-av-core code so that accesses to cx23418 av core that cause auto-configuration will be adjusted to emulate the auto-configuration behavior of the cx25843. This fixes the VBI displayed as video at the top of the frame for NTSC and probably other things. Signed-off-by: Andy Walls <awalls@radix.net>
Diffstat (limited to 'linux/drivers/media/video/cx18/cx18-av-core.h')
-rw-r--r--linux/drivers/media/video/cx18/cx18-av-core.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/linux/drivers/media/video/cx18/cx18-av-core.h b/linux/drivers/media/video/cx18/cx18-av-core.h
index 39f3c9397..c172823ce 100644
--- a/linux/drivers/media/video/cx18/cx18-av-core.h
+++ b/linux/drivers/media/video/cx18/cx18-av-core.h
@@ -295,14 +295,24 @@ struct cx18_av_state {
#define CXADEC_SELECT_AUDIO_STANDARD_FM 0xF9 /* FM radio */
#define CXADEC_SELECT_AUDIO_STANDARD_AUTO 0xFF /* Auto detect */
+/* Flags on what to preserve on write to 0x400-0x403 with cx18_av_.*_no_acfg()*/
+#define CXADEC_NO_ACFG_AFE 0x01 /* Preserve 0x100-0x107 */
+#define CXADEC_NO_ACFG_PLL 0x02 /* Preserve 0x108-0x10f */
+#define CXADEC_NO_ACFG_VID 0x04 /* Preserve 0x470-0x47f */
+#define CXADEC_NO_ACFG_ALL 0x07
+
/* ----------------------------------------------------------------------- */
/* cx18_av-core.c */
int cx18_av_write(struct cx18 *cx, u16 addr, u8 value);
int cx18_av_write4(struct cx18 *cx, u16 addr, u32 value);
+int cx18_av_write_no_acfg(struct cx18 *cx, u16 addr, u8 value,
+ int no_acfg_mask);
u8 cx18_av_read(struct cx18 *cx, u16 addr);
u32 cx18_av_read4(struct cx18 *cx, u16 addr);
int cx18_av_and_or(struct cx18 *cx, u16 addr, unsigned mask, u8 value);
int cx18_av_and_or4(struct cx18 *cx, u16 addr, u32 mask, u32 value);
+int cx18_av_and_or_no_acfg(struct cx18 *cx, u16 addr, unsigned mask, u8 value,
+ int no_acfg_mask);
int cx18_av_cmd(struct cx18 *cx, unsigned int cmd, void *arg);
/* ----------------------------------------------------------------------- */