* Re: 2.6.25-rc[12] Video4Linux Bttv Regression
[not found] <200802171036.19619.bonganilinux@mweb.co.za>
@ 2008-02-18 16:11 ` Mauro Carvalho Chehab
[not found] ` <200802182320.40732.bonganilinux@mweb.co.za>
0 siblings, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2008-02-18 16:11 UTC (permalink / raw)
To: Bongani Hlope; +Cc: video4linux-list, linux-kernel
On Sun, 17 Feb 2008 10:36:19 +0200
Bongani Hlope <bonganilinux@mweb.co.za> wrote:
> The bttv driver seems to be experiencing problems in the 2.6.25-rcX kernels. I
> have the divided by error that Robert Fitzsimons has already reported (I'll
> test his patch and see if it fixes it for me) and I have the following Oops
> when I try to use the radio:
Have you tested Robert's patch?
I can't see anything wrong on bttv_g_tuner lock. I suspect that the divide
error caused some bad effects at some data on bttv.
I've already applied his fix to my -git tree:
http://git.kernel.org/?p=linux/kernel/git/mchehab/v4l-dvb.git
Hopefully, Linus will pull soon the fixes there.
Cheers,
Mauro
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.25-rc[12] Video4Linux Bttv Regression
[not found] ` <200802190121.36280.bonganilinux@mweb.co.za>
@ 2008-02-19 14:16 ` Mauro Carvalho Chehab
2008-02-26 15:41 ` Robert Fitzsimons
0 siblings, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2008-02-19 14:16 UTC (permalink / raw)
To: Bongani Hlope; +Cc: video4linux-list, linux-kernel
On Tue, 19 Feb 2008 01:21:36 +0200
Bongani Hlope <bonganilinux@mweb.co.za> wrote:
> On Monday 18 February 2008 23:20:40 Bongani Hlope wrote:
> > On Monday 18 February 2008 18:11:25 Mauro Carvalho Chehab wrote:
> > > Have you tested Robert's patch?
> >
> > Sorry almost forgot, I have and it fixes the TV but not the radio.
> >
> > > I can't see anything wrong on bttv_g_tuner lock. I suspect that the
> > > divide error caused some bad effects at some data on bttv.
> >
> > The problems don't seem related because one is caused by opening the
> > "radio" application, the divide error is caused by using a TV viewing
> > application (I tried fbtv)
> >
> > > I've already applied his fix to my -git tree:
> >
> > Thanx, I'll try to bisect
>
> I tried to bisect but the V4L/DVB changes are not bisect friendly, on two
> occursions I just selected "git bisect bad" because the bttv driver wouldn't
> compile, so I couldn't pin-point what causes the oops and hang.
>
> Here are some few observations I made though (I started bisecting between
> 2.6.24 and 2.6.25-rc1, saved me ~1000 commits):
> 1. On the third bisect, there's no oops my PC just hangs a I can't use any
> open terminals
> 2. When I reached the V4L/DVB changes, my PC did not hag or oops, the radio
> just didn't work (something about invalid VID**AUD**). This made it harder to
> bisect, because it is not working and not breaking so is it good or bad...
Bisecting this won't be that easy. The support for the depreciated V4L1 API
were removed from bttv driver. Now, it uses v4l1-compat module, that translates
a V4L1 call into a V4L2 one. I'll try to seek for troubles at the current code.
Cheers,
Mauro
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.25-rc[12] Video4Linux Bttv Regression
2008-02-19 14:16 ` Mauro Carvalho Chehab
@ 2008-02-26 15:41 ` Robert Fitzsimons
2008-02-27 1:42 ` Robert Fitzsimons
0 siblings, 1 reply; 12+ messages in thread
From: Robert Fitzsimons @ 2008-02-26 15:41 UTC (permalink / raw)
To: Mauro Carvalho Chehab; +Cc: video4linux-list, linux-kernel, Bongani Hlope
> Bisecting this won't be that easy. The support for the depreciated V4L1 API
> were removed from bttv driver. Now, it uses v4l1-compat module, that translates
> a V4L1 call into a V4L2 one. I'll try to seek for troubles at the current code.
I think I might have seen this problem but it didn't cause a oops for
me, just that the radio program would hang waiting for the ioctl syscall
to return. I did tried looking for a new radio program that used the
V4L2 API but couldn't find one. I'll have a more in-depth look at the
bttv driver when I get home tonight.
Robert
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.25-rc[12] Video4Linux Bttv Regression
2008-02-26 15:41 ` Robert Fitzsimons
@ 2008-02-27 1:42 ` Robert Fitzsimons
2008-02-27 1:44 ` [PATCH] bttv: Re-enable radio tuner support for VIDIOCGFREQ/VIDIOCSFREQ ioctls Robert Fitzsimons
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Robert Fitzsimons @ 2008-02-27 1:42 UTC (permalink / raw)
To: Mauro Carvalho Chehab; +Cc: video4linux-list, linux-kernel, Bongani Hlope
> I think I might have seen this problem but it didn't cause a oops for
> me,
Ok, I found the cause of the oops. Some of radio tuner code was
expecting a struct bttv_fh to be allocated but this wasn't done in
radio_open. So it would dereference an invalid data structure, causing
a hang for me and an oops for Bongani. I also had to add support for
the radio tuner to some shared functions. Patches to follow.
Robert
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] bttv: Re-enable radio tuner support for VIDIOCGFREQ/VIDIOCSFREQ ioctls.
2008-02-27 1:42 ` Robert Fitzsimons
@ 2008-02-27 1:44 ` Robert Fitzsimons
2008-02-27 1:47 ` [PATCH] bttv: Re-enabling radio support requires the use of struct bttv_fh Robert Fitzsimons
[not found] ` <200803172351.56717.bonganilinux@mweb.co.za>
2 siblings, 0 replies; 12+ messages in thread
From: Robert Fitzsimons @ 2008-02-27 1:44 UTC (permalink / raw)
To: Mauro Carvalho Chehab; +Cc: video4linux-list, linux-kernel, Bongani Hlope
Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
---
drivers/media/video/bt8xx/bttv-driver.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index 5404fcc..817a961 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -1990,7 +1990,7 @@ static int bttv_g_frequency(struct file *file, void *priv,
if (0 != err)
return err;
- f->type = V4L2_TUNER_ANALOG_TV;
+ f->type = btv->radio_user ? V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV;
f->frequency = btv->freq;
return 0;
@@ -2009,7 +2009,8 @@ static int bttv_s_frequency(struct file *file, void *priv,
if (unlikely(f->tuner != 0))
return -EINVAL;
- if (unlikely(f->type != V4L2_TUNER_ANALOG_TV))
+ if (unlikely(f->type != (btv->radio_user
+ ? V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV)))
return -EINVAL;
mutex_lock(&btv->lock);
btv->freq = f->frequency;
--
1.5.4.34.g053d9
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH] bttv: Re-enabling radio support requires the use of struct bttv_fh.
2008-02-27 1:42 ` Robert Fitzsimons
2008-02-27 1:44 ` [PATCH] bttv: Re-enable radio tuner support for VIDIOCGFREQ/VIDIOCSFREQ ioctls Robert Fitzsimons
@ 2008-02-27 1:47 ` Robert Fitzsimons
2008-02-27 9:52 ` Mauro Carvalho Chehab
[not found] ` <200802272345.43209.bonganilinux@mweb.co.za>
[not found] ` <200803172351.56717.bonganilinux@mweb.co.za>
2 siblings, 2 replies; 12+ messages in thread
From: Robert Fitzsimons @ 2008-02-27 1:47 UTC (permalink / raw)
To: Mauro Carvalho Chehab; +Cc: video4linux-list, linux-kernel, Bongani Hlope
A number of the radio tuner ioctl functions are shared with the TV
tuner, these functions require a struct bttv_fh data structure to be
allocated and initialized.
Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
---
drivers/media/video/bt8xx/bttv-driver.c | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
Mauro, the radio_open function may want to do more initialisation then
the amount I copied from bttv_open.
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index 817a961..04a8263 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -3417,6 +3417,7 @@ static int radio_open(struct inode *inode, struct file *file)
{
int minor = iminor(inode);
struct bttv *btv = NULL;
+ struct bttv_fh *fh;
unsigned int i;
dprintk("bttv: open minor=%d\n",minor);
@@ -3431,12 +3432,19 @@ static int radio_open(struct inode *inode, struct file *file)
return -ENODEV;
dprintk("bttv%d: open called (radio)\n",btv->c.nr);
+
+ /* allocate per filehandle data */
+ fh = kmalloc(sizeof(*fh),GFP_KERNEL);
+ if (NULL == fh)
+ return -ENOMEM;
+ file->private_data = fh;
+ *fh = btv->init;
+ v4l2_prio_open(&btv->prio,&fh->prio);
+
mutex_lock(&btv->lock);
btv->radio_user++;
- file->private_data = btv;
-
bttv_call_i2c_clients(btv,AUDC_SET_RADIO,NULL);
audio_input(btv,TVAUDIO_INPUT_RADIO);
@@ -3446,7 +3454,8 @@ static int radio_open(struct inode *inode, struct file *file)
static int radio_release(struct inode *inode, struct file *file)
{
- struct bttv *btv = file->private_data;
+ struct bttv_fh *fh = file->private_data;
+ struct bttv *btv = fh->btv;
struct rds_command cmd;
btv->radio_user--;
@@ -3571,7 +3580,8 @@ static int radio_g_input(struct file *filp, void *priv, unsigned int *i)
static ssize_t radio_read(struct file *file, char __user *data,
size_t count, loff_t *ppos)
{
- struct bttv *btv = file->private_data;
+ struct bttv_fh *fh = file->private_data;
+ struct bttv *btv = fh->btv;
struct rds_command cmd;
cmd.block_count = count/3;
cmd.buffer = data;
@@ -3585,7 +3595,8 @@ static ssize_t radio_read(struct file *file, char __user *data,
static unsigned int radio_poll(struct file *file, poll_table *wait)
{
- struct bttv *btv = file->private_data;
+ struct bttv_fh *fh = file->private_data;
+ struct bttv *btv = fh->btv;
struct rds_command cmd;
cmd.instance = file;
cmd.event_list = wait;
--
1.5.4.34.g053d9
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] bttv: Re-enabling radio support requires the use of struct bttv_fh.
2008-02-27 1:47 ` [PATCH] bttv: Re-enabling radio support requires the use of struct bttv_fh Robert Fitzsimons
@ 2008-02-27 9:52 ` Mauro Carvalho Chehab
[not found] ` <200802272345.43209.bonganilinux@mweb.co.za>
1 sibling, 0 replies; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2008-02-27 9:52 UTC (permalink / raw)
To: Robert Fitzsimons; +Cc: video4linux-list, linux-kernel, Bongani Hlope
On Wed, 27 Feb 2008 01:47:29 +0000
Robert Fitzsimons <robfitz@273k.net> wrote:
> A number of the radio tuner ioctl functions are shared with the TV
> tuner, these functions require a struct bttv_fh data structure to be
> allocated and initialized.
>
> Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
> ---
> drivers/media/video/bt8xx/bttv-driver.c | 21 ++++++++++++++++-----
> 1 files changed, 16 insertions(+), 5 deletions(-)
>
>
> Mauro, the radio_open function may want to do more initialisation then
> the amount I copied from bttv_open.
Maybe, but the proper way would be to use just one open for both radio and
video, like cx88. This driver violates V4L2 API, since the spec says that
opening /dev/radio will select radio, by default, but it is possible to listen
video also on that interface (the opposite is valid also for /dev/video).
I'll apply the fixes, for now. The better would be if you could try to use the
same approach present on cx88.
Cheers,
Mauro
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] bttv: Re-enabling radio support requires the use of struct bttv_fh.
[not found] ` <200802272345.43209.bonganilinux@mweb.co.za>
@ 2008-02-28 9:25 ` Robert Fitzsimons
0 siblings, 0 replies; 12+ messages in thread
From: Robert Fitzsimons @ 2008-02-28 9:25 UTC (permalink / raw)
To: Bongani Hlope; +Cc: video4linux-list, linux-kernel, Mauro Carvalho Chehab
> I have applied both your patches and my radio works, but my TV doesn't work
> anymore (no picture or sound). But when I exit the radio program I get this
> oops:
I've had a quick look and nothing stands out as the cause of the oops,
but I did notice that I introduced a small memory leak. Over the next
day or so I'll have a look at Mauro's suggestion of combining the opens
like the cx88 driver.
Robert
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.25-rc[12] Video4Linux Bttv Regression
[not found] ` <200803172351.56717.bonganilinux@mweb.co.za>
@ 2008-03-20 17:22 ` Mauro Carvalho Chehab
[not found] ` <200803211655.31085.bonganilinux@mweb.co.za>
0 siblings, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2008-03-20 17:22 UTC (permalink / raw)
To: Bongani Hlope; +Cc: video4linux-list, linux-kernel
On Mon, 17 Mar 2008 23:51:56 +0200
Bongani Hlope <bonganilinux@mweb.co.za> wrote:
> On Wednesday 27 February 2008 03:42:38 Robert Fitzsimons wrote:
> > > I think I might have seen this problem but it didn't cause a oops for
> > > me,
> >
> > Ok, I found the cause of the oops. Some of radio tuner code was
> > expecting a struct bttv_fh to be allocated but this wasn't done in
> > radio_open. So it would dereference an invalid data structure, causing
> > a hang for me and an oops for Bongani. I also had to add support for
> > the radio tuner to some shared functions. Patches to follow.
> >
> > Robert
>
> More info...
>
> The Oops seems to be caused by a size mismatch that causes memset to write
> over other variables in the stack... The following debug hack moved oops to
> another point in the v4l1-compact code..
>
> So memset(&tun2,0,sizeof(tun2)) seems to be overwriting btv->lock->wait_list:
>
> --- drivers/media/video/v4l1-compat.c~ 2007-11-13 10:25:52.000000000 +0200
> +++ drivers/media/video/v4l1-compat.c 2008-03-17 23:17:38.000000000 +0200
> @@ -688,7 +688,7 @@
> {
> struct video_tuner *tun = arg;
>
> - memset(&tun2,0,sizeof(tun2));
> + memset(&tun2,-1,sizeof(tun2));
> err = drv(inode, file, VIDIOC_G_TUNER, &tun2);
> if (err < 0) {
> dprintk("VIDIOCGTUNER / VIDIOC_G_TUNER: %d\n",err);
>
> The new oops, where there's another memset(&tun2,0,sizeof(tun2)):
>
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
> IP: [<ffffffff8045a329>] __mutex_lock_slowpath+0x3b/0xb2
> PGD 699d9067 PUD 65837067 PMD 0
> Oops: 0002 [1] PREEMPT SMP
> CPU 1
> Modules linked in: snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq
> binfmt_misc loop nls_cp437 vfat fat nls_iso8859_1 ntfs thermal processor fan
> container button pcspkr snd_pcm_oss snd_mixer_oss snd_emu10k1 tuner tea5767
> tda8290 tuner_xc2028 tda9887 tuner_simple snd_rawmidi mt20xx snd_ac97_codec
> tea5761 bttv ac97_bus snd_pcm ir_common firewire_ohci snd_seq_device
> compat_ioctl32 firewire_core snd_timer uhci_hcd videodev ehci_hcd
> snd_page_alloc v4l1_compat crc_itu_t snd_util_mem usbcore v4l2_common
> snd_hwdep videobuf_dma_sg ohci1394 ide_cd_mod snd videobuf_core emu10k1_gp
> ieee1394 sr_mod btcx_risc evdev gameport i2c_viapro tveeprom cdrom sg tg3
> soundcore
> Pid: 4230, comm: radio Not tainted 2.6.25-rc5-dirty #46
> RIP: 0010:[<ffffffff8045a329>] [<ffffffff8045a329>]
> __mutex_lock_slowpath+0x3b/0xb2
> RSP: 0018:ffff8100658455e8 EFLAGS: 00010246
> RAX: ffff81007fbeff10 RBX: ffff81007fbeff08 RCX: 0000000000000000
> RDX: ffff8100658455e8 RSI: ffffffff8816711c RDI: ffff81007fbeff0c
> RBP: ffff810065845628 R08: ffffffff880e98df R09: 0000000000000002
> R10: ffff810065845f38 R11: 0000000000000246 R12: ffff81007fbeff0c
> R13: 0000000000000000 R14: ffff8100699d0d10 R15: ffffffff88167110
> FS: 00007f0c740e46f0(0000) GS:ffff81007fb6adc0(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000000000000 CR3: 0000000065835000 CR4: 00000000000006e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process radio (pid: 4230, threadinfo ffff810065844000, task ffff8100699d0d10)
> Stack: ffff81007fbeff10 ffff810065845774 0000000265845688 ffff810065845768
> ffff81007fbef800 ffff810065845c68 0000000000000000 ffff81007fbeff08
> ffff810065845638 ffffffff8045a16f ffff810065845668 ffffffff8814692f
> Call Trace:
> [<ffffffff8045a16f>] mutex_lock+0xe/0x10
> [<ffffffff8814692f>] :bttv:bttv_s_frequency+0x46/0x9f
> [<ffffffff880ec583>] :videodev:__video_do_ioctl+0x2ca4/0x2e16
> [<ffffffff8022b6fe>] ? hrtick_set+0xdf/0xe8
> [<ffffffff8020a003>] ? default_idle+0x0/0x5f
> [<ffffffff80459c51>] ? thread_return+0x6c/0xbf
> [<ffffffff880d52a9>] :v4l1_compat:v4l_compat_translate_ioctl+0x1116/0x1b01
> [<ffffffff802ff5bb>] ? generic_unplug_device+0x2c/0x30
> [<ffffffff880e98df>] ? :videodev:__video_do_ioctl+0x0/0x2e16
> [<ffffffff80266946>] ? mark_page_accessed+0x20/0x36
> [<ffffffff802a57af>] ? __find_get_block+0x153/0x165
> [<ffffffff802a57e1>] ? __getblk+0x20/0x22b
> [<ffffffff803021ff>] ? blk_recount_segments+0x3e/0x68
> [<ffffffff80260795>] ? mempool_alloc+0x48/0xf9
> [<ffffffff8028073b>] ? cache_alloc_refill+0x1cc/0x233
> [<ffffffff80302a5a>] ? blk_rq_map_sg+0x12b/0x24b
> [<ffffffff80238971>] ? lock_timer_base+0x26/0x4a
> [<ffffffff8038df34>] ? dma_timer_expiry+0x0/0x6d
> [<ffffffff80238b1c>] ? __mod_timer+0xc4/0xd6
> [<ffffffff80311a3b>] ? __delay+0x27/0x59
> [<ffffffff80311a3b>] ? __delay+0x27/0x59
> [<ffffffff80311a3b>] ? __delay+0x27/0x59
> [<ffffffff80311a3b>] ? __delay+0x27/0x59
> [<ffffffff80311a3b>] ? __delay+0x27/0x59
> [<ffffffff80311aef>] ? __udelay+0x40/0x42
> [<ffffffff803c1ba4>] ? i2c_stop+0x47/0x4b
> [<ffffffff803c236b>] ? bit_xfer+0x412/0x423
> [<ffffffff803c01ed>] ? i2c_transfer+0x79/0x85
> [<ffffffff881a3318>] ? :tuner_simple:simple_set_params+0x2b9/0xc18
> [<ffffffff8022589b>] ? enqueue_task_fair+0x179/0x186
> [<ffffffff80227ff2>] ? task_rq_lock+0x3d/0x73
> [<ffffffff802284b9>] ? try_to_wake_up+0x1ae/0x1bf
> [<ffffffff8021a49d>] ? smp_send_reschedule+0x1d/0x1f
> [<ffffffff802284d7>] ? default_wake_function+0xd/0xf
> [<ffffffff802246cc>] ? __wake_up_common+0x46/0x75
> [<ffffffff880e9a18>] :videodev:__video_do_ioctl+0x139/0x2e16
> [<ffffffff80357b8c>] ? n_tty_receive_buf+0xf18/0xf77
> [<ffffffff80260449>] ? filemap_fault+0x1fe/0x371
> [<ffffffff880eca95>] :videodev:video_ioctl2+0x1b8/0x259
> [<ffffffff802426de>] ? remove_wait_queue+0x3c/0x41
> [<ffffffff80226ea2>] ? __wake_up+0x43/0x4f
> [<ffffffff80291252>] vfs_ioctl+0x5e/0x77
> [<ffffffff802914b8>] do_vfs_ioctl+0x24d/0x262
> [<ffffffff8029150f>] sys_ioctl+0x42/0x67
> [<ffffffff802862af>] ? sys_write+0x47/0x70
> [<ffffffff8020b32b>] system_call_after_swapgs+0x7b/0x80
>
>
> Code: 89 fb 4c 89 e7 48 83 ec 20 65 4c 8b 34 25 00 00 00 00 e8 e5 0f 00 00 48
> 8d 43 08 48 8d 55 c0 48 8b 48 08 48 89 45 c0 48 89 50 08 <48> 89 11 48 83 ca
> ff 48 89 4d c8 4c 89 75 d0 48 89 d0 87 03 ff
> RIP [<ffffffff8045a329>] __mutex_lock_slowpath+0x3b/0xb2
> RSP <ffff8100658455e8>
> CR2: 0000000000000000
> ---[ end trace 821f8e64b81db17b ]---
Could you please test this small patch?
diff -r 134d43b48b4a linux/drivers/media/video/bt8xx/bttv-driver.c
--- a/linux/drivers/media/video/bt8xx/bttv-driver.c Tue Mar 18 23:46:37 2008 +0000
+++ b/linux/drivers/media/video/bt8xx/bttv-driver.c Thu Mar 20 14:20:54 2008 -0300
@@ -3288,6 +3288,7 @@ static int bttv_open(struct inode *inode
return -ENOMEM;
file->private_data = fh;
*fh = btv->init;
+ fh->btv = btv;
fh->type = type;
fh->ov.setup_ok = 0;
v4l2_prio_open(&btv->prio,&fh->prio);
Cheers,
Mauro
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] bttv: Add a radio compat_ioctl file operation.
[not found] ` <200803211655.31085.bonganilinux@mweb.co.za>
@ 2008-03-22 0:05 ` Robert Fitzsimons
[not found] ` <200803222017.40862.bonganilinux@mweb.co.za>
0 siblings, 1 reply; 12+ messages in thread
From: Robert Fitzsimons @ 2008-03-22 0:05 UTC (permalink / raw)
To: Bongani Hlope; +Cc: video4linux-list, linux-kernel, Mauro Carvalho Chehab
Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
---
drivers/media/video/bt8xx/bttv-driver.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Hi Bongani
I only noticed that you might be using a 32 bit userspace, so the radio
compat_ioctl needs to be implmented.
Robert
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index 5404fcc..1bdb726 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -3601,6 +3601,7 @@ static const struct file_operations radio_fops =
.read = radio_read,
.release = radio_release,
.ioctl = video_ioctl2,
+ .compat_ioctl = v4l_compat_ioctl32,
.llseek = no_llseek,
.poll = radio_poll,
};
--
1.5.4.3.484.g60e3
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] bttv: Add a radio compat_ioctl file operation.
[not found] ` <200803222017.40862.bonganilinux@mweb.co.za>
@ 2008-03-23 1:01 ` Mauro Carvalho Chehab
[not found] ` <200803231525.22278.bonganilinux@mweb.co.za>
0 siblings, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2008-03-23 1:01 UTC (permalink / raw)
To: Bongani Hlope; +Cc: video4linux-list, linux-kernel
On Sat, 22 Mar 2008, Bongani Hlope wrote:
> On Saturday 22 March 2008 02:05:57 Robert Fitzsimons wrote:
>> Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
>> ---
>> drivers/media/video/bt8xx/bttv-driver.c | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>>
>> Hi Bongani
>>
>> I only noticed that you might be using a 32 bit userspace, so the radio
>> compat_ioctl needs to be implmented.
>>
>> Robert
>>
>>
>>
>> diff --git a/drivers/media/video/bt8xx/bttv-driver.c
>> b/drivers/media/video/bt8xx/bttv-driver.c index 5404fcc..1bdb726 100644
>> --- a/drivers/media/video/bt8xx/bttv-driver.c
>> +++ b/drivers/media/video/bt8xx/bttv-driver.c
>> @@ -3601,6 +3601,7 @@ static const struct file_operations radio_fops =
>> .read = radio_read,
>> .release = radio_release,
>> .ioctl = video_ioctl2,
>> + .compat_ioctl = v4l_compat_ioctl32,
>> .llseek = no_llseek,
>> .poll = radio_poll,
>> };
>
> I run a 64-bit kernel and 64-bit user-space, only a chrooted version of
> mplayer and it's dependencies are 32 bit, and I don't use them that often.
>
> file /usr/bin/radio
> /usr/bin/radio: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for
> GNU/Linux 2.6.9, dynamically linked (uses shared libs), stripped
>
> That patch doesn't help also...
Unfortunately, I coudn't reproduce your bug here.
I tested with a bttv board, plus two radio applications - radio and kradio
(radio-3.95-7mdv2008.0 and kradio-1.0-0.r497.3mdv2008.0 packages). None of
them used V4L1 API. I also tested reading frequency, using
v4l-info /dev/radio0
I also used ioctl-test, running all V4L1 API calls, with this result
(I've enabled debug on v4l1-compat, and added a small patch to bttv to use
video_ioctl2 debug):
Linux video capture interface: v2.00
bttv: driver version 0.9.17 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
bttv0: Bt848 (rev 17) at 0000:05:06.0, irq: 16, latency: 32, mmio: 0xce000000
bttv0: using: STB, Gateway P/N 6000699 (bt848) [card=3,insmod option]
bttv0: gpio: en=00000000, out=00000000 in=00fbffff [init]
bttv0: tuner type=2
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: registered device radio0
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_STREAMOFF, dir=-w (0x40045613)
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_OVERLAY, dir=-w (0x4004560e)
v4l1-compat: VIDIOCCAPTURE / VIDIOC_PREVIEW: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_AUDIO, dir=r- (0x80345621)
BT848 radio (STB, Gateway P/N 6: Get for index=0
BT848 radio (STB, Gateway P/N 6: index=0, name=Radio, capability=0, mode=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=9963785, type=2, name=Mute, min/max=0/1, step=0, default=0, flags=0x00000000
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_CTRL, dir=rw (0xc008561b)
BT848 radio (STB, Gateway P/N 6: Enum for index=9963785
BT848 radio (STB, Gateway P/N 6: id=9963785, value=-32512
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_TUNER, dir=rw (0xc054561d)
BT848 radio (STB, Gateway P/N 6: index=0, name=Radio, type=1, capability=0, rangelow=0, rangehigh=0, signal=0, afc=0, rxsubchans=0, audmode=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCAP, dir=r- (0x80685600)
BT848 radio (STB, Gateway P/N 6: driver=bttv, card=BT848 radio (STB, Gateway P/N 6, bus=PCI:0000:05:06.0, version=0x00000911, capabilities=0x00010000
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_ENUMINPUT, dir=rw (0xc050561a)
BT848 radio (STB, Gateway P/N 6: index=0, name=Radio, type=1, audioset=0, tuner=0, std=00000000, status=0
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_ENUMINPUT, dir=rw (0xc050561a)
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_ENUM_FMT, dir=rw (0xc0405602)
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_ENUMINPUT, dir=rw (0xc050561a)
BT848 radio (STB, Gateway P/N 6: index=0, name=Radio, type=1, audioset=0, tuner=0, std=00000000, status=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_STD, dir=r- (0x80085617)
BT848 radio (STB, Gateway P/N 6: value=00000000
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FBUF, dir=r- (0x8030560a)
v4l1-compat: VIDIOCGFBUF / VIDIOC_G_FBUF: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FREQUENCY, dir=rw (0xc02c5638)
BT848 radio (STB, Gateway P/N 6: tuner=0, type=1, frequency=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
BT848 radio (STB, Gateway P/N 6: type=video-cap
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
v4l1-compat: VIDIOCGPICT / VIDIOC_G_FMT: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_TUNER, dir=rw (0xc054561d)
BT848 radio (STB, Gateway P/N 6: index=0, name=Radio, type=1, capability=0, rangelow=0, rangehigh=0, signal=0, afc=0, rxsubchans=0, audmode=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_STD, dir=r- (0x80085617)
BT848 radio (STB, Gateway P/N 6: value=00000000
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
BT848 radio (STB, Gateway P/N 6: type=vbi-cap
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
v4l1-compat: VIDIOCGVBIFMT / VIDIOC_G_FMT: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
BT848 radio (STB, Gateway P/N 6: type=video-over
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
v4l1-compat: VIDIOCGWIN / VIDIOC_G_WIN: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
BT848 radio (STB, Gateway P/N 6: type=video-cap
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
v4l1-compat: VIDIOCGWIN / VIDIOC_G_FMT: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
BT848 radio (STB, Gateway P/N 6: type=video-cap
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
v4l1-compat: VIDIOCMCAPTURE / VIDIOC_G_FMT: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_AUDIO, dir=-w (0x40345622)
BT848 radio (STB, Gateway P/N 6: index=0, name=, capability=0, mode=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=9963785, type=2, name=Mute, min/max=0/1, step=0, default=0, flags=0x00000000
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_CTRL, dir=rw (0xc008561c)
BT848 radio (STB, Gateway P/N 6: id=9963785, value=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_TUNER, dir=rw (0xc054561d)
BT848 radio (STB, Gateway P/N 6: index=0, name=Radio, type=1, capability=0, rangelow=0, rangehigh=0, signal=0, afc=0, rxsubchans=0, audmode=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_TUNER, dir=-w (0x4054561e)
BT848 radio (STB, Gateway P/N 6: index=0, name=Radio, type=1, capability=0, rangelow=0, rangehigh=0, signal=0, afc=0, rxsubchans=0, audmode=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_INPUT, dir=rw (0xc0045627)
BT848 radio (STB, Gateway P/N 6: value=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_STD, dir=-w (0x40085618)
BT848 radio (STB, Gateway P/N 6: value=000000ff
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_FBUF, dir=-w (0x4030560b)
v4l1-compat: VIDIOCSFBUF / VIDIOC_S_FBUF: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FREQUENCY, dir=rw (0xc02c5638)
BT848 radio (STB, Gateway P/N 6: tuner=0, type=1, frequency=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_FREQUENCY, dir=-w (0x402c5639)
BT848 radio (STB, Gateway P/N 6: tuner=0, type=1, frequency=0
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
BT848 radio (STB, Gateway P/N 6: id=0, type=0, name=42, min/max=0/0, step=0, default=0, flags=0x00000001
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
BT848 radio (STB, Gateway P/N 6: type=video-cap
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
v4l1-compat: VIDIOCSPICT / VIDIOC_G_FMT: -22
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FBUF, dir=r- (0x8030560a)
v4l1-compat: VIDIOCSPICT / VIDIOC_G_FBUF: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_INPUT, dir=rw (0xc0045627)
BT848 radio (STB, Gateway P/N 6: value=0
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_STREAMOFF, dir=-w (0x40045613)
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
BT848 radio (STB, Gateway P/N 6: type=video-cap
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_G_FMT, dir=rw (0xc0d05604)
v4l1-compat: VIDIOCSWIN / VIDIOC_G_FMT: -22
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0d05605)
BT848 radio (STB, Gateway P/N 6: type=video-over
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0d05605)
v4l1-compat: VIDIOCSWIN / VIDIOC_S_FMT #2: -22
BT848 radio (STB, Gateway P/N 6: err:
BT848 radio (STB, Gateway P/N 6: v4l2 ioctl VIDIOC_QUERYBUF, dir=rw (0xc0585609)
v4l1-compat: VIDIOCSYNC / VIDIOC_QUERYBUF: -22
I got no oops. The tests were done also on a 64bit kernel, on a dual-core
machine.
Cheers,
Mauro
---
I've patched the ioctl-test program (at v4l2-apps/test dir, on v4l/dvb
development environment, available at http://linuxtv.org/hg/v4l-dvb) with
this diff:
diff -r f24051885fe9 v4l2-apps/test/ioctl-test.c
--- a/v4l2-apps/test/ioctl-test.c Tue Mar 18 18:10:06 2008 -0300
+++ b/v4l2-apps/test/ioctl-test.c Sat Mar 22 21:52:16 2008 -0300
@@ -47,6 +47,8 @@ typedef __u32 u32;
#else
typedef u_int32_t u32;
#endif
+
+#define CONFIG_VIDEO_V4L1_COMPAT
/* All possible parameters used on v4l ioctls */
union v4l_parms {
@@ -142,7 +144,7 @@ int ioctls[] = {
VIDIOCSYNC,/* int */
#endif
/* V4L2 ioctls */
-
+#if 0
VIDIOC_CROPCAP,/* struct v4l2_cropcap */
VIDIOC_DQBUF,/* struct v4l2_buffer */
VIDIOC_ENUMAUDIO,/* struct v4l2_audio */
@@ -173,7 +175,7 @@ int ioctls[] = {
VIDIOC_S_OUTPUT,/* int */
VIDIOC_S_PARM,/* struct v4l2_streamparm */
VIDIOC_TRY_FMT,/* struct v4l2_format */
-
+#endif
#if 0
VIDIOC_G_AUDIO_OLD,/* struct v4l2_audio */
VIDIOC_G_AUDOUT_OLD,/* struct v4l2_audioout */
@@ -214,7 +216,7 @@ int main (void)
{
int fd=0, ret=0;
unsigned i;
- char *device="/dev/video0";
+ char *device="/dev/radio0";
union v4l_parms p;
if ((fd = open(device, O_RDONLY)) < 0) {
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] bttv: Add a radio compat_ioctl file operation.
[not found] ` <200803231525.22278.bonganilinux@mweb.co.za>
@ 2008-03-23 13:50 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2008-03-23 13:50 UTC (permalink / raw)
To: Bongani Hlope; +Cc: video4linux-list, linux-kernel
On Sun, 23 Mar 2008 15:25:22 +0200
Bongani Hlope <bonganilinux@mweb.co.za> wrote:
>
> rpm -qa | grep radio
> radio-3.95-7mdv2008.0
Hmm... exactly the same version I have here.
> 00:00.0 Host bridge: VIA Technologies, Inc. VT8385 [K8T800 AGP] Host Bridge (rev 01)
> 00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI bridge [K8T800/K8T890 South]
> 00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]
It used to have some issues with VIA and PCI, if you're using overlay mode
(this is the default, for xawtv).
This is due to some issues on buggy VIA bridges, when handling PCI2PCI data
transfers, used in overlay mode. If a PCI2PCI conflicts with a PCI2MEM transfer
(or a MEM2PCI), you may suffer data loss.
Are you trying to use radio just after a clean reboot, or are you experiencing
those troubles after running a video application that might be using overlay
mode?
Could you please send me your .config? I'll try to run the same config as you,
with the latest -rc.
Cheers,
Mauro
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2008-03-23 13:51 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200802171036.19619.bonganilinux@mweb.co.za>
2008-02-18 16:11 ` 2.6.25-rc[12] Video4Linux Bttv Regression Mauro Carvalho Chehab
[not found] ` <200802182320.40732.bonganilinux@mweb.co.za>
[not found] ` <200802190121.36280.bonganilinux@mweb.co.za>
2008-02-19 14:16 ` Mauro Carvalho Chehab
2008-02-26 15:41 ` Robert Fitzsimons
2008-02-27 1:42 ` Robert Fitzsimons
2008-02-27 1:44 ` [PATCH] bttv: Re-enable radio tuner support for VIDIOCGFREQ/VIDIOCSFREQ ioctls Robert Fitzsimons
2008-02-27 1:47 ` [PATCH] bttv: Re-enabling radio support requires the use of struct bttv_fh Robert Fitzsimons
2008-02-27 9:52 ` Mauro Carvalho Chehab
[not found] ` <200802272345.43209.bonganilinux@mweb.co.za>
2008-02-28 9:25 ` Robert Fitzsimons
[not found] ` <200803172351.56717.bonganilinux@mweb.co.za>
2008-03-20 17:22 ` 2.6.25-rc[12] Video4Linux Bttv Regression Mauro Carvalho Chehab
[not found] ` <200803211655.31085.bonganilinux@mweb.co.za>
2008-03-22 0:05 ` [PATCH] bttv: Add a radio compat_ioctl file operation Robert Fitzsimons
[not found] ` <200803222017.40862.bonganilinux@mweb.co.za>
2008-03-23 1:01 ` Mauro Carvalho Chehab
[not found] ` <200803231525.22278.bonganilinux@mweb.co.za>
2008-03-23 13:50 ` Mauro Carvalho Chehab
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox