summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorGerd Knorr <devnull@localhost>2004-07-23 01:06:12 +0000
committerGerd Knorr <devnull@localhost>2004-07-23 01:06:12 +0000
commit2a3e3f58e72cc7698a97a1a9071cbc93854e19da (patch)
tree96af0024469e09b1b6acf81864040fc7e5b27822 /linux
parent0acaf65c34f98f42ed85fbd98aa34beaa542c6da (diff)
downloadmediapointer-dvb-s2-2a3e3f58e72cc7698a97a1a9071cbc93854e19da.tar.gz
mediapointer-dvb-s2-2a3e3f58e72cc7698a97a1a9071cbc93854e19da.tar.bz2
- add range check for cx88 card= insmod option.
- make cx88 tvaudio less verbose.
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/video/cx88/cx88-tvaudio.c9
-rw-r--r--linux/drivers/media/video/cx88/cx88-video.c10
-rw-r--r--linux/drivers/media/video/cx88/cx88.h1
3 files changed, 13 insertions, 7 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-tvaudio.c b/linux/drivers/media/video/cx88/cx88-tvaudio.c
index 0b9198ecb..06faebd3a 100644
--- a/linux/drivers/media/video/cx88/cx88-tvaudio.c
+++ b/linux/drivers/media/video/cx88/cx88-tvaudio.c
@@ -670,9 +670,12 @@ void cx88_get_stereo(struct cx8800_dev *dev, struct v4l2_tuner *t)
reg = cx_read(AUD_STATUS);
mode = reg & 0x03;
pilot = (reg >> 2) & 0x03;
- dprintk("AUD_STATUS: 0x%x [%s/%s] ctl=%s\n",
- reg, m[mode], p[pilot],
- aud_ctl_names[cx_read(AUD_CTL) & 63]);
+
+ if (dev->astat != reg)
+ dprintk("AUD_STATUS: 0x%x [%s/%s] ctl=%s\n",
+ reg, m[mode], p[pilot],
+ aud_ctl_names[cx_read(AUD_CTL) & 63]);
+ dev->astat = reg;
t->capability = V4L2_TUNER_CAP_STEREO | V4L2_TUNER_CAP_SAP |
V4L2_TUNER_CAP_LANG1 | V4L2_TUNER_CAP_LANG2;
diff --git a/linux/drivers/media/video/cx88/cx88-video.c b/linux/drivers/media/video/cx88/cx88-video.c
index c96f97fbd..910ef7c82 100644
--- a/linux/drivers/media/video/cx88/cx88-video.c
+++ b/linux/drivers/media/video/cx88/cx88-video.c
@@ -674,8 +674,10 @@ static int set_scale(struct cx8800_dev *dev, unsigned int width, unsigned int he
// setup filters
value = 0;
value |= (1 << 19); // CFILT (default)
- if (dev->tvnorm->id & V4L2_STD_SECAM)
+ if (dev->tvnorm->id & V4L2_STD_SECAM) {
value |= (1 << 15);
+ value |= (1 << 16);
+ }
if (INPUT(dev->input)->type == CX88_VMUX_SVIDEO)
value |= (1 << 13) | (1 << 5);
if (V4L2_FIELD_INTERLACED == field)
@@ -684,8 +686,6 @@ static int set_scale(struct cx8800_dev *dev, unsigned int width, unsigned int he
value |= (1 << 0); // 3-tap interpolation
if (width < 193)
value |= (1 << 1); // 5-tap interpolation
- if (dev->tvnorm->id & V4L2_STD_SECAM)
- value |= (1 << 16);
cx_write(MO_FILTER_EVEN, value);
cx_write(MO_FILTER_ODD, value);
@@ -2382,7 +2382,9 @@ static int __devinit cx8800_initdev(struct pci_dev *pci_dev,
}
/* board config */
- dev->board = card[cx8800_devcount];
+ dev->board = UNSET;
+ if (card[cx8800_devcount] < cx88_bcount)
+ dev->board = card[cx8800_devcount];
for (i = 0; UNSET == dev->board && i < cx88_idcount; i++)
if (pci_dev->subsystem_vendor == cx88_subids[i].subvendor &&
pci_dev->subsystem_device == cx88_subids[i].subdevice)
diff --git a/linux/drivers/media/video/cx88/cx88.h b/linux/drivers/media/video/cx88/cx88.h
index 9d4cd4037..715cdf520 100644
--- a/linux/drivers/media/video/cx88/cx88.h
+++ b/linux/drivers/media/video/cx88/cx88.h
@@ -290,6 +290,7 @@ struct cx8800_dev {
pid_t tpid;
struct completion texit;
struct cx8800_suspend_state state;
+ u32 astat;
};
/* ----------------------------------------------------------- */