2006-03-17 23:01:10

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 00/21] V4L/DVB fixes

This patch series is also available under v4l-dvb.git tree at:
kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git

Linus, please pull these from master branch.

It contains the following stuff:

- Nskips maybe used uninitialized in bttv_risc_overlay
- Fix cx88 error messages on balance change
- Correct gpio values for Aver 303 Studio in v4l-dvb tree
- Fix typo in enum name and use enum in struct dmxdev_filter
- Added no_overlay option and quirks to saa7134
- Cx88-cards.c: fix values of gpio0 for card CX88_BOARD_PROLINK_PLAYTVPVR
- Cx88-input.c: add IR remote control support to CX88_BOARD_PROLINK_PLAYTVPVR
- Cx88 default picture controls values
- Cleanup mangled whitespace
- BUG_ON() Conversion in drivers/video/media
- Snd_cx88_create: don't dereference NULL core
- Kconfig: select VIDEO_CX25840 to build cx25840 a/v decoder module
- Whitespace: fix incorrect indentation of curly bracket
- Cinergy T2 dmx cleanup on disconnect
- Restore tuning capabilities in v4l2 mxb driver
- Kconfig: swap VIDEO_CX88_ALSA and VIDEO_CX88_DVB
- Kconfig: fix ATSC frontend menu item names by manufacturer
- Fix a bug when more than MAXBOARDS were plugged on em28xx
- Cpia2: move Kconfig build logic into cpia2/Kconfig
- VIDEO_CPIA2 must depend on USB
- Fixed em28xx based system lockup

Cheers,
Mauro.

V4L/DVB development is hosted at http://linuxtv.org
Development Mercurial trees are available at http://linuxtv.org/hg
---

drivers/media/common/saa7146_core.c | 3 -
drivers/media/common/saa7146_fops.c | 6 +--
drivers/media/dvb/cinergyT2/cinergyT2.c | 4 ++
drivers/media/dvb/dvb-core/dmxdev.h | 4 +-
drivers/media/dvb/frontends/Kconfig | 6 +--
drivers/media/dvb/ttpci/av7110.c | 6 +--
drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | 3 -
drivers/media/video/Kconfig | 5 ++
drivers/media/video/Makefile | 3 +
drivers/media/video/bttv-cards.c | 10 +++--
drivers/media/video/bttv-risc.c | 5 +-
drivers/media/video/cpia2/Kconfig | 11 +++++
drivers/media/video/cx25840/Kconfig | 9 ++++
drivers/media/video/cx25840/Makefile | 2 -
drivers/media/video/cx88/Kconfig | 28 +++++++-------
drivers/media/video/cx88/cx88-alsa.c | 10 ++---
drivers/media/video/cx88/cx88-cards.c | 23 ++++++-----
drivers/media/video/cx88/cx88-core.c | 3 -
drivers/media/video/cx88/cx88-input.c | 1
drivers/media/video/cx88/cx88-video.c | 17 ++++----
drivers/media/video/cx88/cx88.h | 2 -
drivers/media/video/em28xx/em28xx-video.c | 5 ++
drivers/media/video/mxb.c | 4 ++
drivers/media/video/saa7134/saa7134-alsa.c | 3 -
drivers/media/video/saa7134/saa7134-cards.c | 2 -
drivers/media/video/saa7134/saa7134-core.c | 24 +++++++++++-
drivers/media/video/saa7134/saa7134-oss.c | 6 +--
drivers/media/video/saa7134/saa7134-video.c | 3 -
drivers/media/video/video-buf.c | 3 -
29 files changed, 130 insertions(+), 81 deletions(-)


2006-03-17 20:56:33

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 08/21] Cx88 default picture controls values


From: Marcin Rudowski <[email protected]>
Date: 1142132627 \-0300

This patch fixes default values for some picture controls:
- brightness set to 50% by default (now is 0%)
- hue set to 50% by default (now is 0%)
- sets saturation to datasheet value
- volume set to 0dB (now is -32dB)
and some left small fixes:
- twice offset adding
- balance didn't follow datasheet (bits[0:5] = attenuation;
bit[6] = channel to provide attenuation)

Signed-off-by: Marcin Rudowski <[email protected]>
Signed-off-by: Ian Pickworth <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---

drivers/media/video/cx88/cx88-video.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
index 073494c..39328bb 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -227,7 +227,7 @@ static struct cx88_ctrl cx8800_ctls[] =
.minimum = 0x00,
.maximum = 0xff,
.step = 1,
- .default_value = 0,
+ .default_value = 0x7f,
.type = V4L2_CTRL_TYPE_INTEGER,
},
.off = 128,
@@ -255,7 +255,7 @@ static struct cx88_ctrl cx8800_ctls[] =
.minimum = 0,
.maximum = 0xff,
.step = 1,
- .default_value = 0,
+ .default_value = 0x7f,
.type = V4L2_CTRL_TYPE_INTEGER,
},
.off = 128,
@@ -300,7 +300,7 @@ static struct cx88_ctrl cx8800_ctls[] =
.minimum = 0,
.maximum = 0x3f,
.step = 1,
- .default_value = 0x1f,
+ .default_value = 0x3f,
.type = V4L2_CTRL_TYPE_INTEGER,
},
.reg = AUD_VOL_CTL,
@@ -909,7 +909,8 @@ static int get_control(struct cx88_core
value = c->sreg ? cx_sread(c->sreg) : cx_read(c->reg);
switch (ctl->id) {
case V4L2_CID_AUDIO_BALANCE:
- ctl->value = (value & 0x40) ? (value & 0x3f) : (0x40 - (value & 0x3f));
+ ctl->value = ((value & 0x7f) < 0x40) ? ((value & 0x7f) + 0x40)
+ : (0x7f - (value & 0x7f));
break;
case V4L2_CID_AUDIO_VOLUME:
ctl->value = 0x3f - (value & 0x3f);
@@ -946,7 +947,7 @@ static int set_control(struct cx88_core
mask=c->mask;
switch (ctl->id) {
case V4L2_CID_AUDIO_BALANCE:
- value = (ctl->value < 0x40) ? (0x40 - ctl->value) : ctl->value;
+ value = (ctl->value < 0x40) ? (0x7f - ctl->value) : (ctl->value - 0x40);
break;
case V4L2_CID_AUDIO_VOLUME:
value = 0x3f - (ctl->value & 0x3f);
@@ -987,8 +988,7 @@ static void init_controls(struct cx88_co

for (i = 0; i < CX8800_CTLS; i++) {
ctrl.id=cx8800_ctls[i].v.id;
- ctrl.value=cx8800_ctls[i].v.default_value
- +cx8800_ctls[i].off;
+ ctrl.value=cx8800_ctls[i].v.default_value;
set_control(core, &ctrl);
}
}

2006-03-17 20:56:45

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 19/21] Cpia2: move Kconfig build logic into cpia2/Kconfig


From: Michael Krufky <[email protected]>
Date: 1142308340 \-0300

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

drivers/media/video/Kconfig | 2 ++
drivers/media/video/cpia2/Kconfig | 9 +++++++++
2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index 995f033..ee0eed4 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -142,6 +142,8 @@ config VIDEO_CPIA_USB
otherwise say N. This will not work with the Creative Webcam III.
It is also available as a module (cpia_usb).

+source "drivers/media/video/cpia2/Kconfig"
+
config VIDEO_SAA5246A
tristate "SAA5246A, SAA5281 Teletext processor"
depends on VIDEO_DEV && I2C
diff --git a/drivers/media/video/cpia2/Kconfig b/drivers/media/video/cpia2/Kconfig
new file mode 100644
index 0000000..1c09ef9
--- /dev/null
+++ b/drivers/media/video/cpia2/Kconfig
@@ -0,0 +1,9 @@
+config VIDEO_CPIA2
+ tristate "CPiA2 Video For Linux"
+ depends on VIDEO_DEV
+ ---help---
+ This is the video4linux driver for cameras based on Vision's CPiA2
+ (Colour Processor Interface ASIC), such as the Digital Blue QX5
+ Microscope. If you have one of these cameras, say Y here
+
+ This driver is also available as a module (cpia2).

2006-03-17 20:56:12

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 09/21] Cleanup mangled whitespace


From: Michael Krufky <[email protected]>
Date: 1142232104 \-0300

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

drivers/media/video/cx88/cx88-cards.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index 7471a7d..0e518e8 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -323,19 +323,19 @@ struct cx88_board cx88_boards[] = {
.input = {{
.type = CX88_VMUX_TELEVISION,
.vmux = 0,
- .gpio0 = 0xbff0,
+ .gpio0 = 0xbff0,
},{
.type = CX88_VMUX_COMPOSITE1,
.vmux = 1,
- .gpio0 = 0xbff3,
+ .gpio0 = 0xbff3,
},{
.type = CX88_VMUX_SVIDEO,
.vmux = 2,
- .gpio0 = 0xbff3,
+ .gpio0 = 0xbff3,
}},
.radio = {
.type = CX88_RADIO,
- .gpio0 = 0xbff0,
+ .gpio0 = 0xbff0,
},
},
[CX88_BOARD_ASUS_PVR_416] = {

2006-03-17 20:56:18

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 20/21] VIDEO_CPIA2 must depend on USB


From: Adrian Bunk <[email protected]>
Date: 1142524433 \-0300

CONFIG_VIDEO_CPIA2=y, CONFIG_USB=n results in the following compile
<-- snip -->
...
LD .tmp_vmlinux1
drivers/built-in.o: In function `set_alternate':cpia2_usb.c:(.text+0x443aa2): undefined reference to `usb_set_interface'
drivers/built-in.o: In function `cpia2_usb_stream_resume': undefined reference to `usb_alloc_urb'
drivers/built-in.o: In function `cpia2_usb_stream_resume': undefined reference to `usb_submit_urb'
drivers/built-in.o: In function `cpia2_usb_stream_pause': undefined reference to `usb_kill_urb'
drivers/built-in.o: In function `cpia2_usb_stream_pause': undefined reference to `usb_free_urb'
drivers/built-in.o: In function `cpia2_usb_disconnect':cpia2_usb.c:(.text+0x443e14): undefined reference to `usb_driver_release_interface'
drivers/built-in.o: In function `cpia2_usb_transfer_cmd': undefined reference to `usb_control_msg'
drivers/built-in.o: In function `cpia2_usb_transfer_cmd': undefined reference to `usb_control_msg'
drivers/built-in.o: In function `cpia2_usb_complete':cpia2_usb.c:(.text+0x444836): undefined reference to `usb_submit_urb'
drivers/built-in.o: In function `cpia2_usb_cleanup': undefined reference to `usb_deregister'
drivers/built-in.o: In function `cpia2_usb_init': undefined reference to `usb_register_driver'

Signed-off-by: Adrian Bunk <[email protected]>
Signed-off-by: Michael Krufky <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---

drivers/media/video/cpia2/Kconfig | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/cpia2/Kconfig b/drivers/media/video/cpia2/Kconfig
index 1c09ef9..513cc09 100644
--- a/drivers/media/video/cpia2/Kconfig
+++ b/drivers/media/video/cpia2/Kconfig
@@ -1,6 +1,6 @@
config VIDEO_CPIA2
tristate "CPiA2 Video For Linux"
- depends on VIDEO_DEV
+ depends on VIDEO_DEV && USB
---help---
This is the video4linux driver for cameras based on Vision's CPiA2
(Colour Processor Interface ASIC), such as the Digital Blue QX5

2006-03-17 20:57:08

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 07/21] Cx88-input.c: add IR remote control support to CX88_BOARD_PROLINK_PLAYTVPVR


From: Matheus Izvekov <[email protected]>
Date: 1142132098 \-0300

This patch adds support for the IR remote control found in the card
CX88_BOARD_PROLINK_PLAYTVPVR.

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

drivers/media/video/cx88/cx88-input.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index 165d948..0b7c812 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/drivers/media/video/cx88/cx88-input.c
@@ -517,6 +517,7 @@ int cx88_ir_init(struct cx88_core *core,
ir->mask_keydown = 0x02;
ir->polling = 5; /* ms */
break;
+ case CX88_BOARD_PROLINK_PLAYTVPVR:
case CX88_BOARD_PIXELVIEW_PLAYTV_ULTRA_PRO:
ir_codes = ir_codes_pixelview;
ir->gpio_addr = MO_GP1_IO;

2006-03-17 20:57:25

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 06/21] Cx88-cards.c: fix values of gpio0 for card CX88_BOARD_PROLINK_PLAYTVPVR


From: Matheus Izvekov <[email protected]>
Date: 1142132064 \-0300

This patch changes the gpio0 values for the card CX88_BOARD_PROLINK_PLAYTVPVR
to the ones observed using RegSpy from the dscaler project.

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

drivers/media/video/cx88/cx88-cards.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index 9e29df3..7471a7d 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -323,19 +323,19 @@ struct cx88_board cx88_boards[] = {
.input = {{
.type = CX88_VMUX_TELEVISION,
.vmux = 0,
- .gpio0 = 0xff00,
+ .gpio0 = 0xbff0,
},{
.type = CX88_VMUX_COMPOSITE1,
.vmux = 1,
- .gpio0 = 0xff03,
+ .gpio0 = 0xbff3,
},{
.type = CX88_VMUX_SVIDEO,
.vmux = 2,
- .gpio0 = 0xff03,
+ .gpio0 = 0xbff3,
}},
.radio = {
.type = CX88_RADIO,
- .gpio0 = 0xff00,
+ .gpio0 = 0xbff0,
},
},
[CX88_BOARD_ASUS_PVR_416] = {

2006-03-17 20:58:42

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 02/21] Fix cx88 error messages on balance change


From: Ian Pickworth <[email protected]>
Date: 1141916620 \-0300

There is an error in the cx88 code that causes this message in the syslog when
balance is changed at full volume:
Mar 4 18:35:08 ian2 kernel: cx88[0]: irq pci [0x1] vid*
Mar 4 18:35:39 ian2 last message repeated 348 times
Mar 4 18:36:01 ian2 last message repeated 564 times
... and so on
The attached patch cures this problem.

Signed-off-by: Ian Pickworth <[email protected]>
Signed-off-by: Marcin Rudowski <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---

drivers/media/video/cx88/cx88.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index e9fd55b..613d227 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -62,7 +62,7 @@
/* need "shadow" registers for some write-only ones ... */
#define SHADOW_AUD_VOL_CTL 1
#define SHADOW_AUD_BAL_CTL 2
-#define SHADOW_MAX 2
+#define SHADOW_MAX 3

/* FM Radio deemphasis type */
enum cx88_deemph_type {

2006-03-17 20:57:57

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 04/21] Fix typo in enum name and use enum in struct dmxdev_filter


From: Andreas Oberritter <[email protected]>
Date: 1142014918 \-0300

Rename 'enum dmxdevype' to 'enum dmxdev_type' and use this enum instead
of int for the member 'type' of struct dmxdev_filter.

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

drivers/media/dvb/dvb-core/dmxdev.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb/dvb-core/dmxdev.h b/drivers/media/dvb/dvb-core/dmxdev.h
index fd72920..6b63577 100644
--- a/drivers/media/dvb/dvb-core/dmxdev.h
+++ b/drivers/media/dvb/dvb-core/dmxdev.h
@@ -37,7 +37,7 @@
#include "dvbdev.h"
#include "demux.h"

-enum dmxdevype {
+enum dmxdev_type {
DMXDEV_TYPE_NONE,
DMXDEV_TYPE_SEC,
DMXDEV_TYPE_PES,
@@ -78,7 +78,7 @@ struct dmxdev_filter {
struct dmx_pes_filter_params pes;
} params;

- int type;
+ enum dmxdev_type type;
enum dmxdev_state state;
struct dmxdev *dev;
struct dmxdev_buffer buffer;

2006-03-17 20:58:41

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 14/21] Cinergy T2 dmx cleanup on disconnect


From: Markus Rechberger <[email protected]>
Date: 1142425891 \-0300

Detaching the device didn't clean up several device files in /dev/dvb,
after applying that patch all dvb devices disappeared as expected.

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

drivers/media/dvb/cinergyT2/cinergyT2.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/media/dvb/cinergyT2/cinergyT2.c b/drivers/media/dvb/cinergyT2/cinergyT2.c
index c4b4c5b..4ef54c7 100644
--- a/drivers/media/dvb/cinergyT2/cinergyT2.c
+++ b/drivers/media/dvb/cinergyT2/cinergyT2.c
@@ -505,6 +505,9 @@ static int cinergyt2_open (struct inode

static void cinergyt2_unregister(struct cinergyt2 *cinergyt2)
{
+ dvb_net_release(&cinergyt2->dvbnet);
+ dvb_dmxdev_release(&cinergyt2->dmxdev);
+ dvb_dmx_release(&cinergyt2->demux);
dvb_unregister_device(cinergyt2->fedev);
dvb_unregister_adapter(&cinergyt2->adapter);

@@ -937,6 +940,7 @@ static int cinergyt2_probe (struct usb_i
return 0;

bailout:
+ dvb_net_release(&cinergyt2->dvbnet);
dvb_dmxdev_release(&cinergyt2->dmxdev);
dvb_dmx_release(&cinergyt2->demux);
dvb_unregister_adapter(&cinergyt2->adapter);

2006-03-17 20:57:59

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 15/21] Restore tuning capabilities in v4l2 mxb driver


From: Michael Hunold <[email protected]>
Date: 1142446742 \-0300

The behaviour of the all-in-one Video4Linux tuner driver apparently
changed. It now wants to know the tv standard, otherwise it refuses to
tune.
Restore tuning functionality in my driver for the "Multimedia eXtension
Board". The all-in-one tuner driver apparently changed its behaviour.

Signed-off-by: Michael Hunold <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---

drivers/media/video/mxb.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/mxb.c b/drivers/media/video/mxb.c
index 8416cef..e2b36ce 100644
--- a/drivers/media/video/mxb.c
+++ b/drivers/media/video/mxb.c
@@ -327,6 +327,7 @@ static int mxb_init_done(struct saa7146_
struct video_decoder_init init;
struct i2c_msg msg;
struct tuner_setup tun_setup;
+ v4l2_std_id std = V4L2_STD_PAL_BG;

int i = 0, err = 0;
struct tea6415c_multiplex vm;
@@ -361,6 +362,9 @@ static int mxb_init_done(struct saa7146_
mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_FREQUENCY,
&mxb->cur_freq);

+ /* set a default video standard */
+ mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std);
+
/* mute audio on tea6420s */
mxb->tea6420_1->driver->command(mxb->tea6420_1,TEA6420_SWITCH, &TEA6420_line[6][0]);
mxb->tea6420_2->driver->command(mxb->tea6420_2,TEA6420_SWITCH, &TEA6420_line[6][1]);

2006-03-17 20:58:00

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 03/21] Correct gpio values for Aver 303 Studio in v4l-dvb tree


From: Marcin Rudowski <[email protected]>
Date: 1141931391 \-0300

Old values generally works in A2 mono, but new ones allows:
- detect and use Nicam stereo
- mute in tv
- use radio FM

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

drivers/media/video/cx88/cx88-cards.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index 1bc9992..9e29df3 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -184,17 +184,18 @@ struct cx88_board cx88_boards[] = {
.input = {{
.type = CX88_VMUX_TELEVISION,
.vmux = 0,
- .gpio1 = 0x309f,
+ .gpio1 = 0xe09f,
},{
.type = CX88_VMUX_COMPOSITE1,
.vmux = 1,
- .gpio1 = 0x305f,
+ .gpio1 = 0xe05f,
},{
.type = CX88_VMUX_SVIDEO,
.vmux = 2,
- .gpio1 = 0x305f,
+ .gpio1 = 0xe05f,
}},
.radio = {
+ .gpio1 = 0xe0df,
.type = CX88_RADIO,
},
},

2006-03-17 20:59:33

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 13/21] Whitespace: fix incorrect indentation of curly bracket


From: Michael Krufky <[email protected]>
Date: 1142363929 \-0300

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

drivers/media/video/saa7134/saa7134-cards.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index 6bc63a4..5b5e378 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -536,7 +536,7 @@ struct saa7134_board saa7134_boards[] =
.radio = {
.name = name_radio,
.amux = LINE2,
- },
+ },
},
[SAA7134_BOARD_MD7134] = {
.name = "Medion 7134",

2006-03-17 20:57:25

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 17/21] Kconfig: fix ATSC frontend menu item names by manufacturer


From: Michael Krufky <[email protected]>
Date: 1142525905 \-0300

- Corrected typo for NxtWave NXT200X
- Added "Oren" manufacturer name to menu items for OR51132 and OR51211
- Removed "(pcHDTV HDx000 card)" from Oren frontends menu item names,
This isn't necessary, as these frontends are selected by the card drivers,
build configuration (DVB_BT8XX and VIDEO_CX88_DVB).

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

drivers/media/dvb/frontends/Kconfig | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/media/dvb/frontends/Kconfig b/drivers/media/dvb/frontends/Kconfig
index c676b1e..ff077eb 100644
--- a/drivers/media/dvb/frontends/Kconfig
+++ b/drivers/media/dvb/frontends/Kconfig
@@ -155,7 +155,7 @@ comment "ATSC (North American/Korean Ter
depends on DVB_CORE

config DVB_NXT200X
- tristate "Nextwave NXT2002/NXT2004 based"
+ tristate "NxtWave Communications NXT2002/NXT2004 based"
depends on DVB_CORE
select FW_LOADER
help
@@ -169,14 +169,14 @@ config DVB_NXT200X
or /lib/firmware (depending on configuration of firmware hotplug).

config DVB_OR51211
- tristate "or51211 based (pcHDTV HD2000 card)"
+ tristate "Oren OR51211 based"
depends on DVB_CORE
select FW_LOADER
help
An ATSC 8VSB tuner module. Say Y when you want to support this frontend.

config DVB_OR51132
- tristate "OR51132 based (pcHDTV HD3000 card)"
+ tristate "Oren OR51132 based"
depends on DVB_CORE
select FW_LOADER
help

2006-03-17 21:00:25

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 01/21] Nskips maybe used uninitialized in bttv_risc_overlay


From: Duncan Sands <[email protected]>
Date: 1141914014 \-0300

The Coverity checker (previously Stanford checker) noticed that
the value of nskips could be read even if it was never written.

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

drivers/media/video/bttv-risc.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/bttv-risc.c b/drivers/media/video/bttv-risc.c
index b40e973..af66a8d 100644
--- a/drivers/media/video/bttv-risc.c
+++ b/drivers/media/video/bttv-risc.c
@@ -274,6 +274,8 @@ bttv_risc_overlay(struct bttv *btv, stru
if (line > maxy)
btcx_calc_skips(line, ov->w.width, &maxy,
skips, &nskips, ov->clips, ov->nclips);
+ else
+ nskips = 0;

/* write out risc code */
for (start = 0, skip = 0; start < ov->w.width; start = end) {

2006-03-17 20:57:58

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 12/21] Kconfig: select VIDEO_CX25840 to build cx25840 a/v decoder module


From: Michael Krufky <[email protected]>
Date: 1142307307 \-0300

The cx25840 module requires external firmware in order to function,
so it must select FW_LOADER, but saa7115 and saa7129 do not require it.
This patch creates VIDEO_CX25840, and alters VIDEO_DECODER to select it.

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

drivers/media/video/Kconfig | 3 +++
drivers/media/video/Makefile | 3 ++-
drivers/media/video/cx25840/Kconfig | 9 +++++++++
drivers/media/video/cx25840/Makefile | 2 +-
4 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index d82c8a3..995f033 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -349,8 +349,11 @@ config VIDEO_AUDIO_DECODER
config VIDEO_DECODER
tristate "Add support for additional video chipsets"
depends on VIDEO_DEV && I2C && EXPERIMENTAL
+ select VIDEO_CX25840
---help---
Say Y here to compile drivers for SAA7115, SAA7127 and CX25840
video decoders.

+source "drivers/media/video/cx25840/Kconfig"
+
endmenu
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index faf7283..d36b145 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -61,6 +61,7 @@ obj-$(CONFIG_VIDEO_TVEEPROM) += tveeprom

obj-$(CONFIG_VIDEO_M32R_AR_M64278) += arv.o

-obj-$(CONFIG_VIDEO_DECODER) += saa7115.o cx25840/ saa7127.o
+obj-$(CONFIG_VIDEO_DECODER) += saa7115.o saa7127.o
+obj-$(CONFIG_VIDEO_CX25840) += cx25840/

EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core
diff --git a/drivers/media/video/cx25840/Kconfig b/drivers/media/video/cx25840/Kconfig
new file mode 100644
index 0000000..854264e
--- /dev/null
+++ b/drivers/media/video/cx25840/Kconfig
@@ -0,0 +1,9 @@
+config VIDEO_CX25840
+ tristate "Conexant CX2584x audio/video decoders"
+ depends on VIDEO_DEV && I2C && EXPERIMENTAL
+ select FW_LOADER
+ ---help---
+ Support for the Conexant CX2584x audio/video decoders.
+
+ To compile this driver as a module, choose M here: the
+ module will be called cx25840
diff --git a/drivers/media/video/cx25840/Makefile b/drivers/media/video/cx25840/Makefile
index 543ebac..32a896c 100644
--- a/drivers/media/video/cx25840/Makefile
+++ b/drivers/media/video/cx25840/Makefile
@@ -1,6 +1,6 @@
cx25840-objs := cx25840-core.o cx25840-audio.o cx25840-firmware.o \
cx25840-vbi.o

-obj-$(CONFIG_VIDEO_DECODER) += cx25840.o
+obj-$(CONFIG_VIDEO_CX25840) += cx25840.o

EXTRA_CFLAGS += -I$(src)/..

2006-03-17 20:57:09

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 16/21] Kconfig: swap VIDEO_CX88_ALSA and VIDEO_CX88_DVB


From: Michael Krufky <[email protected]>
Date: 1142400973 \-0300

VIDEO_CX88_ALSA should not be between
VIDEO_CX88_DVB and VIDEO_CX88_DVB_ALL_FRONTENDS
When cx88-alsa was added to cx88/Kconfig, it was
added in between VIDEO_CX88_DVB and
VIDEO_CX88_DVB_ALL_FRONTENDS. This caused
undesireable effects to the appearance of the menu
options in menuconfig.
This fix reorders cx88-alsa and cx88-dvb in Kconfig,
to match saa7134, and restore the correct menuconfig
appearance.

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

drivers/media/video/cx88/Kconfig | 28 ++++++++++++++--------------
1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/media/video/cx88/Kconfig b/drivers/media/video/cx88/Kconfig
index e99dfbb..87d79df 100644
--- a/drivers/media/video/cx88/Kconfig
+++ b/drivers/media/video/cx88/Kconfig
@@ -15,20 +15,6 @@ config VIDEO_CX88
To compile this driver as a module, choose M here: the
module will be called cx8800

-config VIDEO_CX88_DVB
- tristate "DVB/ATSC Support for cx2388x based TV cards"
- depends on VIDEO_CX88 && DVB_CORE
- select VIDEO_BUF_DVB
- ---help---
- This adds support for DVB/ATSC cards based on the
- Connexant 2388x chip.
-
- To compile this driver as a module, choose M here: the
- module will be called cx88-dvb.
-
- You must also select one or more DVB/ATSC demodulators.
- If you are unsure which you need, choose all of them.
-
config VIDEO_CX88_ALSA
tristate "ALSA DMA audio support"
depends on VIDEO_CX88 && SND && EXPERIMENTAL
@@ -44,6 +30,20 @@ config VIDEO_CX88_ALSA
To compile this driver as a module, choose M here: the
module will be called cx88-alsa.

+config VIDEO_CX88_DVB
+ tristate "DVB/ATSC Support for cx2388x based TV cards"
+ depends on VIDEO_CX88 && DVB_CORE
+ select VIDEO_BUF_DVB
+ ---help---
+ This adds support for DVB/ATSC cards based on the
+ Connexant 2388x chip.
+
+ To compile this driver as a module, choose M here: the
+ module will be called cx88-dvb.
+
+ You must also select one or more DVB/ATSC demodulators.
+ If you are unsure which you need, choose all of them.
+
config VIDEO_CX88_DVB_ALL_FRONTENDS
bool "Build all supported frontends for cx2388x based TV cards"
default y

2006-03-17 21:01:57

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 05/21] Added no_overlay option and quirks to saa7134


From: Mauro Carvalho Chehab <[email protected]>
Date: 1142020010 \-0300

Some chipsets have several problems when pci to pci transfers are activated
on overlay mode. the option no_overlay allows disabling such feature of
the driver, in favor of keeping the system stable.
The default is to use pcipci_fail flag defined on drivers/pci/quirks.c.
It also allows the user to override it by forcing disable overlay or forcing
enable. Forcing enable may generate PCI transfer corruption, including disk
mass corruption, so should be used with care.
Added a text description to this option and make messages looks the same at
both bttv and saa7134 drivers.

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

drivers/media/video/bttv-cards.c | 10 +++++++---
drivers/media/video/saa7134/saa7134-core.c | 21 +++++++++++++++++++++
2 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/drivers/media/video/bttv-cards.c b/drivers/media/video/bttv-cards.c
index 9749d6e..ffbc848 100644
--- a/drivers/media/video/bttv-cards.c
+++ b/drivers/media/video/bttv-cards.c
@@ -137,6 +137,8 @@ MODULE_PARM_DESC(card,"specify TV/grabbe
MODULE_PARM_DESC(pll,"specify installed crystal (0=none, 28=28 MHz, 35=35 MHz)");
MODULE_PARM_DESC(tuner,"specify installed tuner type");
MODULE_PARM_DESC(autoload,"automatically load i2c modules like tuner.o, default is 1 (yes)");
+MODULE_PARM_DESC(no_overlay,"allow override overlay default (0 disables, 1 enables)"
+ " [some VIA/SIS chipsets are known to have problem with overlay]");

/* ----------------------------------------------------------------------- */
/* list of card IDs for bt878+ cards */
@@ -4944,12 +4946,14 @@ void __devinit bttv_check_chipset(void)
if (vsfx)
printk(KERN_INFO "bttv: Host bridge needs VSFX enabled.\n");
if (pcipci_fail) {
- printk(KERN_WARNING "bttv: BT848 and your chipset may not work together.\n");
+ printk(KERN_INFO "bttv: bttv and your chipset may not work "
+ "together.\n");
if (!no_overlay) {
- printk(KERN_WARNING "bttv: overlay will be disabled.\n");
+ printk(KERN_INFO "bttv: overlay will be disabled.\n");
no_overlay = 1;
} else {
- printk(KERN_WARNING "bttv: overlay forced. Use this option at your own risk.\n");
+ printk(KERN_INFO "bttv: overlay forced. Use this "
+ "option at your own risk.\n");
}
}
if (UNSET != latency)
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c
index 028904b..996b5ee 100644
--- a/drivers/media/video/saa7134/saa7134-core.c
+++ b/drivers/media/video/saa7134/saa7134-core.c
@@ -66,6 +66,11 @@ static unsigned int latency = UNSET;
module_param(latency, int, 0444);
MODULE_PARM_DESC(latency,"pci latency timer");

+static int no_overlay=-1;
+module_param(no_overlay, int, 0444);
+MODULE_PARM_DESC(no_overlay,"allow override overlay default (0 disables, 1 enables)"
+ " [some VIA/SIS chipsets are known to have problem with overlay]");
+
static unsigned int video_nr[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET };
static unsigned int vbi_nr[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET };
static unsigned int radio_nr[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET };
@@ -835,6 +840,22 @@ static int __devinit saa7134_initdev(str
latency = 0x0A;
}
#endif
+ if (pci_pci_problems & PCIPCI_FAIL) {
+ printk(KERN_INFO "%s: quirk: this driver and your "
+ "chipset may not work together"
+ " in overlay mode.\n",dev->name);
+ if (!no_overlay) {
+ printk(KERN_INFO "%s: quirk: overlay "
+ "mode will be disabled.\n",
+ dev->name);
+ no_overlay = 1;
+ } else {
+ printk(KERN_INFO "%s: quirk: overlay "
+ "mode will be forced. Use this"
+ " option at your own risk.\n",
+ dev->name);
+ }
+ }
}
if (UNSET != latency) {
printk(KERN_INFO "%s: setting pci latency timer to %d\n",

2006-03-17 21:01:58

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 18/21] Fix a bug when more than MAXBOARDS were plugged on em28xx


From: Mauro Carvalho Chehab <[email protected]>
Date: 1142367897 \-0300

Coverity reported a bug at checking max number of supported boards by
em28xx init code.

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

drivers/media/video/em28xx/em28xx-video.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
index 94a14a2..d58a12c 100644
--- a/drivers/media/video/em28xx/em28xx-video.c
+++ b/drivers/media/video/em28xx/em28xx-video.c
@@ -1859,7 +1859,7 @@ static int em28xx_usb_probe(struct usb_i
model=id->driver_info;
nr=interface->minor;

- if (nr>EM28XX_MAXBOARDS) {
+ if (nr >= EM28XX_MAXBOARDS) {
printk (DRIVER_NAME ": Supports only %i em28xx boards.\n",EM28XX_MAXBOARDS);
return -ENOMEM;
}

2006-03-17 21:10:19

by Lee Revell

[permalink] [raw]
Subject: Re: [PATCH 08/21] Cx88 default picture controls values

On Fri, 2006-03-17 at 17:54 -0300, [email protected] wrote:
> - volume set to 0dB (now is -32dB)

Shouldn't volumes default to muted so as not to damage people's speakers
and/or hearing?

Lee

2006-03-17 23:02:22

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 10/21] BUG_ON() Conversion in drivers/video/media


From: Eric Sesterhenn <[email protected]>
Date: 1142266631 \-0300

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

drivers/media/common/saa7146_core.c | 3 +--
drivers/media/common/saa7146_fops.c | 6 ++----
drivers/media/dvb/ttpci/av7110.c | 6 ++----
drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | 3 +--
drivers/media/video/bttv-risc.c | 3 +--
drivers/media/video/cx88/cx88-core.c | 3 +--
drivers/media/video/cx88/cx88-video.c | 3 +--
drivers/media/video/saa7134/saa7134-alsa.c | 3 +--
drivers/media/video/saa7134/saa7134-core.c | 3 +--
drivers/media/video/saa7134/saa7134-oss.c | 6 ++----
drivers/media/video/saa7134/saa7134-video.c | 3 +--
drivers/media/video/video-buf.c | 3 +--
12 files changed, 15 insertions(+), 30 deletions(-)

diff --git a/drivers/media/common/saa7146_core.c b/drivers/media/common/saa7146_core.c
index 04c1938..98c4322 100644
--- a/drivers/media/common/saa7146_core.c
+++ b/drivers/media/common/saa7146_core.c
@@ -116,8 +116,7 @@ static struct scatterlist* vmalloc_to_sg
pg = vmalloc_to_page(virt);
if (NULL == pg)
goto err;
- if (PageHighMem(pg))
- BUG();
+ BUG_ON(PageHighMem(pg));
sglist[i].page = pg;
sglist[i].length = PAGE_SIZE;
}
diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c
index f8cf73e..c53fd69 100644
--- a/drivers/media/common/saa7146_fops.c
+++ b/drivers/media/common/saa7146_fops.c
@@ -37,8 +37,7 @@ void saa7146_res_free(struct saa7146_fh
struct saa7146_dev *dev = fh->dev;
struct saa7146_vv *vv = dev->vv_data;

- if ((fh->resources & bits) != bits)
- BUG();
+ BUG_ON((fh->resources & bits) != bits);

down(&dev->lock);
fh->resources &= ~bits;
@@ -55,8 +54,7 @@ void saa7146_dma_free(struct saa7146_dev
{
DEB_EE(("dev:%p, buf:%p\n",dev,buf));

- if (in_interrupt())
- BUG();
+ BUG_ON(in_interrupt());

videobuf_waiton(&buf->vb,0,0);
videobuf_dma_pci_unmap(dev->pci, &buf->vb.dma);
diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c
index 7c6ccb9..d5ef440 100644
--- a/drivers/media/dvb/ttpci/av7110.c
+++ b/drivers/media/dvb/ttpci/av7110.c
@@ -1088,11 +1088,9 @@ static int dvb_get_stc(struct dmx_demux
struct av7110 *av7110;

/* pointer casting paranoia... */
- if (!demux)
- BUG();
+ BUG_ON(!demux);
dvbdemux = (struct dvb_demux *) demux->priv;
- if (!dvbdemux)
- BUG();
+ BUG_ON(!dvbdemux);
av7110 = (struct av7110 *) dvbdemux->priv;

dprintk(4, "%p\n", av7110);
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
index 5a13c47..182b68b 100644
--- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
@@ -689,8 +689,7 @@ static void ttusb_process_frame(struct t
memcpy(ttusb->muxpack + ttusb->muxpack_ptr,
data, avail);
ttusb->muxpack_ptr += avail;
- if (ttusb->muxpack_ptr > 264)
- BUG();
+ BUG_ON(ttusb->muxpack_ptr > 264);
data += avail;
len -= avail;
/* determine length */
diff --git a/drivers/media/video/bttv-risc.c b/drivers/media/video/bttv-risc.c
index af66a8d..952f1be 100644
--- a/drivers/media/video/bttv-risc.c
+++ b/drivers/media/video/bttv-risc.c
@@ -509,8 +509,7 @@ bttv_risc_hook(struct bttv *btv, int slo
void
bttv_dma_free(struct bttv *btv, struct bttv_buffer *buf)
{
- if (in_interrupt())
- BUG();
+ BUG_ON(in_interrupt());
videobuf_waiton(&buf->vb,0,0);
videobuf_dma_pci_unmap(btv->c.pci, &buf->vb.dma);
videobuf_dma_free(&buf->vb.dma);
diff --git a/drivers/media/video/cx88/cx88-core.c b/drivers/media/video/cx88/cx88-core.c
index 3720f24..db3882b 100644
--- a/drivers/media/video/cx88/cx88-core.c
+++ b/drivers/media/video/cx88/cx88-core.c
@@ -215,8 +215,7 @@ int cx88_risc_stopper(struct pci_dev *pc
void
cx88_free_buffer(struct pci_dev *pci, struct cx88_buffer *buf)
{
- if (in_interrupt())
- BUG();
+ BUG_ON(in_interrupt());
videobuf_waiton(&buf->vb,0,0);
videobuf_dma_pci_unmap(pci, &buf->vb.dma);
videobuf_dma_free(&buf->vb.dma);
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
index 39328bb..5f69980 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -366,8 +366,7 @@ static
void res_free(struct cx8800_dev *dev, struct cx8800_fh *fh, unsigned int bits)
{
struct cx88_core *core = dev->core;
- if ((fh->resources & bits) != bits)
- BUG();
+ BUG_ON((fh->resources & bits) != bits);

down(&core->lock);
fh->resources &= ~bits;
diff --git a/drivers/media/video/saa7134/saa7134-alsa.c b/drivers/media/video/saa7134/saa7134-alsa.c
index 7df5e08..900541f 100644
--- a/drivers/media/video/saa7134/saa7134-alsa.c
+++ b/drivers/media/video/saa7134/saa7134-alsa.c
@@ -308,8 +308,7 @@ static int dsp_buffer_init(struct saa713

static int dsp_buffer_free(struct saa7134_dev *dev)
{
- if (!dev->dmasound.blksize)
- BUG();
+ BUG_ON(!dev->dmasound.blksize);

videobuf_dma_free(&dev->dmasound.dma);

diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c
index 996b5ee..3880234 100644
--- a/drivers/media/video/saa7134/saa7134-core.c
+++ b/drivers/media/video/saa7134/saa7134-core.c
@@ -256,8 +256,7 @@ void saa7134_pgtable_free(struct pci_dev

void saa7134_dma_free(struct saa7134_dev *dev,struct saa7134_buf *buf)
{
- if (in_interrupt())
- BUG();
+ BUG_ON(in_interrupt());

videobuf_waiton(&buf->vb,0,0);
videobuf_dma_pci_unmap(dev->pci, &buf->vb.dma);
diff --git a/drivers/media/video/saa7134/saa7134-oss.c b/drivers/media/video/saa7134/saa7134-oss.c
index 7448e38..1667d51 100644
--- a/drivers/media/video/saa7134/saa7134-oss.c
+++ b/drivers/media/video/saa7134/saa7134-oss.c
@@ -84,8 +84,7 @@ static int dsp_buffer_init(struct saa713
{
int err;

- if (!dev->dmasound.bufsize)
- BUG();
+ BUG_ON(!dev->dmasound.bufsize);
videobuf_dma_init(&dev->dmasound.dma);
err = videobuf_dma_init_kernel(&dev->dmasound.dma, PCI_DMA_FROMDEVICE,
(dev->dmasound.bufsize + PAGE_SIZE) >> PAGE_SHIFT);
@@ -96,8 +95,7 @@ static int dsp_buffer_init(struct saa713

static int dsp_buffer_free(struct saa7134_dev *dev)
{
- if (!dev->dmasound.blksize)
- BUG();
+ BUG_ON(!dev->dmasound.blksize);
videobuf_dma_free(&dev->dmasound.dma);
dev->dmasound.blocks = 0;
dev->dmasound.blksize = 0;
diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c
index e97426b..e0480ea 100644
--- a/drivers/media/video/saa7134/saa7134-video.c
+++ b/drivers/media/video/saa7134/saa7134-video.c
@@ -489,8 +489,7 @@ int res_locked(struct saa7134_dev *dev,
static
void res_free(struct saa7134_dev *dev, struct saa7134_fh *fh, unsigned int bits)
{
- if ((fh->resources & bits) != bits)
- BUG();
+ BUG_ON((fh->resources & bits) != bits);

down(&dev->lock);
fh->resources &= ~bits;
diff --git a/drivers/media/video/video-buf.c b/drivers/media/video/video-buf.c
index 9ef4775..ced1419 100644
--- a/drivers/media/video/video-buf.c
+++ b/drivers/media/video/video-buf.c
@@ -59,8 +59,7 @@ videobuf_vmalloc_to_sg(unsigned char *vi
pg = vmalloc_to_page(virt);
if (NULL == pg)
goto err;
- if (PageHighMem(pg))
- BUG();
+ BUG_ON(PageHighMem(pg));
sglist[i].page = pg;
sglist[i].length = PAGE_SIZE;
}

2006-03-17 23:02:57

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 21/21] Fixed em28xx based system lockup


From: Markus Rechberger <[email protected]>
Date: Tue, 7 Feb 2006 08:49:13 +0000 (-0200)

Fixed em28xx based system lockup, device needs to be initialized
before starting the isoc transfer otherwise the system will completly lock up.

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

drivers/media/video/em28xx/em28xx-video.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
index d58a12c..385d22a 100644
--- a/drivers/media/video/em28xx/em28xx-video.c
+++ b/drivers/media/video/em28xx/em28xx-video.c
@@ -367,6 +367,9 @@ static int em28xx_v4l2_open(struct inode
em28xx_capture_start(dev, 1);
em28xx_resolution_set(dev);

+ /* device needs to be initialized before isoc transfer */
+ video_mux(dev, 0);
+
/* start the transfer */
errCode = em28xx_init_isoc(dev);
if (errCode)

2006-03-17 23:07:49

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH 00/21] V4L/DVB fixes



On Fri, 17 Mar 2006, [email protected] wrote:
>
> This patch series is also available under v4l-dvb.git tree at:
> kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git
>
> Linus, please pull these from master branch.

Not this close before 2.6.16.

I'll happily take individual patches that come with some explanation for
why they are really critical at this point, but I don't want to do a pull
of what seems to be at least partly just cleanups.

Linus

2006-03-17 23:07:19

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 11/21] Snd_cx88_create: don't dereference NULL core


From: Duncan Sands <[email protected]>
Date: 1142349159 \-0300

If the call to cx88_core_get returns a NULL value, it is dereferenced
by cx88_reset, and perhaps by cx88_core_put. Spotted by the Coverity
checker.

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

drivers/media/video/cx88/cx88-alsa.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/media/video/cx88/cx88-alsa.c b/drivers/media/video/cx88/cx88-alsa.c
index 2acccd6..bffef1d 100644
--- a/drivers/media/video/cx88/cx88-alsa.c
+++ b/drivers/media/video/cx88/cx88-alsa.c
@@ -672,6 +672,11 @@ static int __devinit snd_cx88_create(snd
chip = (snd_cx88_card_t *) card->private_data;

core = cx88_core_get(pci);
+ if (NULL == core) {
+ err = -EINVAL;
+ kfree (chip);
+ return err;
+ }

if (!pci_dma_supported(pci,0xffffffff)) {
dprintk(0, "%s/1: Oops: no 32bit PCI DMA ???\n",core->name);
@@ -688,11 +693,6 @@ static int __devinit snd_cx88_create(snd
spin_lock_init(&chip->reg_lock);

cx88_reset(core);
- if (NULL == core) {
- err = -EINVAL;
- kfree (chip);
- return err;
- }
chip->core = core;

/* get irq */

2006-03-17 23:13:20

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH 00/21] V4L/DVB fixes

Em Sex, 2006-03-17 ?s 15:07 -0800, Linus Torvalds escreveu:
>
> On Fri, 17 Mar 2006, [email protected] wrote:
> >
> > This patch series is also available under v4l-dvb.git tree at:
> > kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git
> >
> > Linus, please pull these from master branch.
>
> Not this close before 2.6.16.
>
> I'll happily take individual patches that come with some explanation for
> why they are really critical at this point, but I don't want to do a pull
> of what seems to be at least partly just cleanups.
Ok, I'll send you via e-mail the critical ones.
> Linus
Cheers,
Mauro.

2006-03-17 23:25:00

by Adrian Bunk

[permalink] [raw]
Subject: Re: [PATCH 05/21] Added no_overlay option and quirks to saa7134

On Fri, Mar 17, 2006 at 05:54:34PM -0300, [email protected] wrote:
>
> From: Mauro Carvalho Chehab <[email protected]>
> Date: 1142020010 \-0300
>
> Some chipsets have several problems when pci to pci transfers are activated
> on overlay mode. the option no_overlay allows disabling such feature of
> the driver, in favor of keeping the system stable.
> The default is to use pcipci_fail flag defined on drivers/pci/quirks.c.
> It also allows the user to override it by forcing disable overlay or forcing
> enable. Forcing enable may generate PCI transfer corruption, including disk
> mass corruption, so should be used with care.
> Added a text description to this option and make messages looks the same at
> both bttv and saa7134 drivers.
>...

As far as I can see, the the no_overlay option in the saa7134 driver
doesn't change anything (except for a printk).

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2006-03-18 00:04:40

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [v4l-dvb-maintainer] Re: [PATCH 05/21] Added no_overlay option and quirks to saa7134

Adrian,

Argh! I just forgot to add the important part of the patch! I'm
enclosing it. Please, test. I'll add to both devel and master branch of
v4l-dvb.git tree.

Cheers,
Mauro.

Em S?b, 2006-03-18 ?s 00:24 +0100, Adrian Bunk escreveu:
> On Fri, Mar 17, 2006 at 05:54:34PM -0300, [email protected] wrote:
> >
> > From: Mauro Carvalho Chehab <[email protected]>
> > Date: 1142020010 \-0300
> >
> > Some chipsets have several problems when pci to pci transfers are activated
> > on overlay mode. the option no_overlay allows disabling such feature of
> > the driver, in favor of keeping the system stable.
> > The default is to use pcipci_fail flag defined on drivers/pci/quirks.c.
> > It also allows the user to override it by forcing disable overlay or forcing
> > enable. Forcing enable may generate PCI transfer corruption, including disk
> > mass corruption, so should be used with care.
> > Added a text description to this option and make messages looks the same at
> > both bttv and saa7134 drivers.
> >...
>
> As far as I can see, the the no_overlay option in the saa7134 driver
> doesn't change anything (except for a printk).
>
> cu
> Adrian
>
Cheers,
Mauro.


Attachments:
no_overlay_fix.patch (5.63 kB)

2006-03-18 00:26:07

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH 08/21] Cx88 default picture controls values

Em Sex, 2006-03-17 ?s 16:10 -0500, Lee Revell escreveu:
> On Fri, 2006-03-17 at 17:54 -0300, [email protected] wrote:
> > - volume set to 0dB (now is -32dB)
>
> Shouldn't volumes default to muted so as not to damage people's speakers
> and/or hearing?
Good point. Generally, video devices starts with an open volume when the
user opens the video application. After closed, it turns off audio. In
fact, for most applications, this is really not important, since default
is also stored at the application itself. If we compare with a TV set,
when people turn TV on, they expect to listen something.

About cx88, in the past, we were starting with a low volume, but people
complained that this is bad, since they don't know for sure if the audio
is working fine.

If we decide to change to start without volume, we will need to patch
all other devices, since current V4L default is to start at maximum
volume (except for msp3400, that starts at about 90% of max scale, due
troubles with maximum volume on some boards).

>
> Lee
>
Cheers,
Mauro.

2006-03-18 19:59:19

by Michael Ira Krufky

[permalink] [raw]
Subject: Re: [PATCH 16/21] Kconfig: swap VIDEO_CX88_ALSA and VIDEO_CX88_DVB

Linus,

Please apply this one. When VIDEO_CX88_ALSA was added, it was put in
the wrong place, and caused the VIDEO_CX88_DVB stuff to get split up,
making the menu harder to understand. Swapping these two menu items
fixes the problem.

Thank you,

Michael Krufky


[email protected] wrote:
> From: Michael Krufky <[email protected]>
> Date: 1142400973 \-0300
>
> VIDEO_CX88_ALSA should not be between
> VIDEO_CX88_DVB and VIDEO_CX88_DVB_ALL_FRONTENDS
> When cx88-alsa was added to cx88/Kconfig, it was
> added in between VIDEO_CX88_DVB and
> VIDEO_CX88_DVB_ALL_FRONTENDS. This caused
> undesireable effects to the appearance of the menu
> options in menuconfig.
> This fix reorders cx88-alsa and cx88-dvb in Kconfig,
> to match saa7134, and restore the correct menuconfig
> appearance.
>
> Signed-off-by: Michael Krufky <[email protected]>
> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
> ---
>
> drivers/media/video/cx88/Kconfig | 28 ++++++++++++++--------------
> 1 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/media/video/cx88/Kconfig b/drivers/media/video/cx88/Kconfig
> index e99dfbb..87d79df 100644
> --- a/drivers/media/video/cx88/Kconfig
> +++ b/drivers/media/video/cx88/Kconfig
> @@ -15,20 +15,6 @@ config VIDEO_CX88
> To compile this driver as a module, choose M here: the
> module will be called cx8800
>
> -config VIDEO_CX88_DVB
> - tristate "DVB/ATSC Support for cx2388x based TV cards"
> - depends on VIDEO_CX88 && DVB_CORE
> - select VIDEO_BUF_DVB
> - ---help---
> - This adds support for DVB/ATSC cards based on the
> - Connexant 2388x chip.
> -
> - To compile this driver as a module, choose M here: the
> - module will be called cx88-dvb.
> -
> - You must also select one or more DVB/ATSC demodulators.
> - If you are unsure which you need, choose all of them.
> -
> config VIDEO_CX88_ALSA
> tristate "ALSA DMA audio support"
> depends on VIDEO_CX88 && SND && EXPERIMENTAL
> @@ -44,6 +30,20 @@ config VIDEO_CX88_ALSA
> To compile this driver as a module, choose M here: the
> module will be called cx88-alsa.
>
> +config VIDEO_CX88_DVB
> + tristate "DVB/ATSC Support for cx2388x based TV cards"
> + depends on VIDEO_CX88 && DVB_CORE
> + select VIDEO_BUF_DVB
> + ---help---
> + This adds support for DVB/ATSC cards based on the
> + Connexant 2388x chip.
> +
> + To compile this driver as a module, choose M here: the
> + module will be called cx88-dvb.
> +
> + You must also select one or more DVB/ATSC demodulators.
> + If you are unsure which you need, choose all of them.
> +
> config VIDEO_CX88_DVB_ALL_FRONTENDS
> bool "Build all supported frontends for cx2388x based TV cards"
> default y
>

2006-03-18 20:15:11

by Michael Ira Krufky

[permalink] [raw]
Subject: [2.6.16 PATCH] Kconfig: swap VIDEO_CX88_ALSA and VIDEO_CX88_DVB

Linus,

I'm sorry to email this twice. The prior email has the patch included
as a quote, this one contains the patch inline.

Please apply this one. When VIDEO_CX88_ALSA was added, it was put in
the wrong place, and caused the VIDEO_CX88_DVB stuff to get split up,
making the menu harder to understand. Swapping these two menu items
fixes the problem.

Thank you,

Michael Krufky


From: Michael Krufky <[email protected]>
Date: 1142400973 \-0300

VIDEO_CX88_ALSA should not be between
VIDEO_CX88_DVB and VIDEO_CX88_DVB_ALL_FRONTENDS
When cx88-alsa was added to cx88/Kconfig, it was
added in between VIDEO_CX88_DVB and
VIDEO_CX88_DVB_ALL_FRONTENDS. This caused
undesireable effects to the appearance of the menu
options in menuconfig.
This fix reorders cx88-alsa and cx88-dvb in Kconfig,
to match saa7134, and restore the correct menuconfig
appearance.

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

drivers/media/video/cx88/Kconfig | 28 ++++++++++++++--------------
1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/media/video/cx88/Kconfig
b/drivers/media/video/cx88/Kconfig
index e99dfbb..87d79df 100644
--- a/drivers/media/video/cx88/Kconfig
+++ b/drivers/media/video/cx88/Kconfig
@@ -15,20 +15,6 @@ config VIDEO_CX88
To compile this driver as a module, choose M here: the
module will be called cx8800

-config VIDEO_CX88_DVB
- tristate "DVB/ATSC Support for cx2388x based TV cards"
- depends on VIDEO_CX88 && DVB_CORE
- select VIDEO_BUF_DVB
- ---help---
- This adds support for DVB/ATSC cards based on the
- Connexant 2388x chip.
-
- To compile this driver as a module, choose M here: the
- module will be called cx88-dvb.
-
- You must also select one or more DVB/ATSC demodulators.
- If you are unsure which you need, choose all of them.
-
config VIDEO_CX88_ALSA
tristate "ALSA DMA audio support"
depends on VIDEO_CX88 && SND && EXPERIMENTAL
@@ -44,6 +30,20 @@ config VIDEO_CX88_ALSA
To compile this driver as a module, choose M here: the
module will be called cx88-alsa.

+config VIDEO_CX88_DVB
+ tristate "DVB/ATSC Support for cx2388x based TV cards"
+ depends on VIDEO_CX88 && DVB_CORE
+ select VIDEO_BUF_DVB
+ ---help---
+ This adds support for DVB/ATSC cards based on the
+ Connexant 2388x chip.
+
+ To compile this driver as a module, choose M here: the
+ module will be called cx88-dvb.
+
+ You must also select one or more DVB/ATSC demodulators.
+ If you are unsure which you need, choose all of them.
+
config VIDEO_CX88_DVB_ALL_FRONTENDS
bool "Build all supported frontends for cx2388x based TV cards"
default y