em8300 vs new I²C driver model -- please test

View: New views
11 Messages — Rating Filter:   Alert me  

em8300 vs new I²C driver model -- please test

by Nicolas Boullis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Some of you have noticed that the em8300 drivers fail to build with
linux 2.6.31. This is because of a major I²C API change, that was
started in 2.6.27.

I just found some time to (try to) port the em8300 driver to the new
API. Note that my current work blantantly breaks all compatibility with
old linux kernels (probably 2.6.25 and below). Hence, I haven't pushed
it to the main repository.

You can grab a tarball at
  http://people.debian.org/~nboullis/em8300-0.17.3-newi2c.tar.gz
and for those who are paranoid, there is a detached signature at
  http://people.debian.org/~nboullis/em8300-0.17.3-newi2c.tar.gz.sig

If you use linux 2.6.26 or above, please give it a try and report
whether it works for you. It'd be nice if your report could include the
output of "ls -l /sys/class/em8300/em8300-0/device/" and the relevant
part of the output of "dmesg".


Cheers,

Nicolas

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

Re: em8300 vs new I²C driver model -- please test

by Nicolas Boullis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

2 points I did not mention:
 - for those who are interested, the repository I am using for this work
   is published at:
     http://freehg.org/u/nboullis/em8300-newi2c/
   (when freehg.org works...)
 - It seems that linux 2.6.31 won't support the old I²C API anymore;
   hence this work will be required for the upcoming linux 2.6.31.

Cheers,

Nicolas

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

Re: em8300 vs new I²C driver model -- please test

by orzeh :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Great work!
i'll try on 31rc-9 and let you konw
regards
o.

2009/9/8 Nicolas Boullis <nboullis@...>:

> Hi,
>
> 2 points I did not mention:
>  - for those who are interested, the repository I am using for this work
>   is published at:
>     http://freehg.org/u/nboullis/em8300-newi2c/
>   (when freehg.org works...)
>  - It seems that linux 2.6.31 won't support the old I²C API anymore;
>   hence this work will be required for the upcoming linux 2.6.31.
>
> Cheers,
>
> Nicolas
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Dxr3-devel mailing list
> Dxr3-devel@...
> https://lists.sourceforge.net/lists/listinfo/dxr3-devel
>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

Re: em8300 vs new I²C driver model -- please test

by Nicolas Boullis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

On Tue, Sep 08, 2009 at 12:56:05AM +0200, orzeh wrote:
> Great work!
> i'll try on 31rc-9 and let you konw

Sorry for asking, but have you had the opportunity to try it?


Cheers,

Nicolas

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

Re: em8300 vs new I²C driver model -- please test

by Jan Willies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Nicolas,

Am 09.09.2009 23:01, schrieb Nicolas Boullis:
> On Tue, Sep 08, 2009 at 12:56:05AM +0200, orzeh wrote:
>> Great work!
>> i'll try on 31rc-9 and let you konw
>
> Sorry for asking, but have you had the opportunity to try it?

I tried it, here is the result:

[jan@server modules]$ LANG=C make
[ ! -x ./update_em8300_version.sh ] || ./update_em8300_version.sh
em8300_version.h
make -C /lib/modules/2.6.31/build
SUBDIRS=/usr/local/src/em8300-0.17.3-hg/modules modules
make[1]: Entering directory `/usr/src/linux-2.6.31'
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/adv717x.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/bt865.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_main.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_i2c.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_audio.o
/usr/local/src/em8300-0.17.3-hg/modules/em8300_audio.c: In function
'preprocess_digital':
/usr/local/src/em8300-0.17.3-hg/modules/em8300_audio.c:156: warning:
ignoring return value of 'copy_from_user', declared with attribute
warn_unused_result
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_fifo.o
/usr/local/src/em8300-0.17.3-hg/modules/em8300_fifo.c: In function
'em8300_fifo_write_nolock':
/usr/local/src/em8300-0.17.3-hg/modules/em8300_fifo.c:205: warning:
ignoring return value of 'copy_from_user', declared with attribute
warn_unused_result
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_video.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_misc.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_dicom.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_ucode.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_ioctl.o
/usr/local/src/em8300-0.17.3-hg/modules/em8300_ioctl.c: In function
'em8300_ioctl_getstatus':
/usr/local/src/em8300-0.17.3-hg/modules/em8300_ioctl.c:567: warning: the
frame size of 1428 bytes is larger than 1024 bytes
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_spu.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em9010.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_registration.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_procfs.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_devfs.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_udev.o
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_sysfs.o
/usr/local/src/em8300-0.17.3-hg/modules/em8300_sysfs.c: In function
'em8300_sysfs_register_card':
/usr/local/src/em8300-0.17.3-hg/modules/em8300_sysfs.c:303: warning:
ignoring return value of 'device_create_file', declared with attribute
warn_unused_result
/usr/local/src/em8300-0.17.3-hg/modules/em8300_sysfs.c:304: warning:
ignoring return value of 'device_create_file', declared with attribute
warn_unused_result
   CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.o
/usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.c:25:26: error:
sound/driver.h: No such file or directory
/usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.c: In function
'em8300_alsa_enable_card':
/usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.c:504: error:
implicit declaration of function 'snd_card_new'
/usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.c:504: warning:
assignment makes pointer from integer without a cast
make[2]: *** [/usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.o] Error 1
make[1]: *** [_module_/usr/local/src/em8300-0.17.3-hg/modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.31'
make: *** [build] Error 2

seems like something changed with the alsa headers.


best regards,

  - jan

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

Re: em8300 vs new I²C driver model -- please test

by Nicolas Boullis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Jan,

On Thu, Sep 10, 2009 at 09:58:38AM +0200, Jan Willies wrote:

> Hi Nicolas,
>
> Am 09.09.2009 23:01, schrieb Nicolas Boullis:
> > On Tue, Sep 08, 2009 at 12:56:05AM +0200, orzeh wrote:
> >> Great work!
> >> i'll try on 31rc-9 and let you konw
> >
> > Sorry for asking, but have you had the opportunity to try it?
>
> I tried it, here is the result:
>
(...)

>    CC [M]  /usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.o
> /usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.c:25:26: error:
> sound/driver.h: No such file or directory
> /usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.c: In function
> 'em8300_alsa_enable_card':
> /usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.c:504: error:
> implicit declaration of function 'snd_card_new'
> /usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.c:504: warning:
> assignment makes pointer from integer without a cast
> make[2]: *** [/usr/local/src/em8300-0.17.3-hg/modules/em8300_alsa.o] Error 1
> make[1]: *** [_module_/usr/local/src/em8300-0.17.3-hg/modules] Error 2
> make[1]: Leaving directory `/usr/src/linux-2.6.31'
> make: *** [build] Error 2
>
> seems like something changed with the alsa headers.

Hmmm, that's bad news, it means that something else (namely ALSA) has
changed incompatibly in 2.6.31. While I investigate this, can you try
with ALSA disabled, to check the I²C part?
To disable alsa, you should only have to change the line
  #if defined(CONFIG_SND) || defined(CONFIG_SND_MODULE)
in em8300_alsa.c to
  #if 0

But I definitely will have to fix this problem as well for a new
release... :-(


Thanks for your report,

Nicolas

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

Re: em8300 vs new I²C driver model -- please test

by Jan Willies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Nicolas,

Am 10.09.2009 22:33, schrieb Nicolas Boullis:
> On Thu, Sep 10, 2009 at 09:58:38AM +0200, Jan Willies wrote:
>> seems like something changed with the alsa headers.
>
> Hmmm, that's bad news, it means that something else (namely ALSA) has
> changed incompatibly in 2.6.31. While I investigate this, can you try
> with ALSA disabled, to check the I²C part?

Yup, it compiles and loads:

Sigma Designs EM8300 0000:02:05.0: PCI INT A -> GSI 17 (level, low) ->
IRQ 17
em8300-0: EM8300 8300 (rev 2)
bus: 2, devfn: 40, irq: 17,
memory: 0xf4100000.
em8300-0: mapped-memory at 0xd0d00000
em8300-0: using MTRR
IRQ 17/em8300: IRQF_DISABLED is not guaranteed on shared IRQs
em8300-0: unable to identify model...
em8300-0: Chip revision: 2
i2c-adapter i2c-5: sendbytes: NAK bailout.
adv717x.o: ADV7175A rev. 0 chip probed
Sigma Designs EM8300 0000:02:05.0: firmware: requesting em8300.bin
em8300-0: Microcode version 0x29 loaded

I can't test the actual TV-Output right now, but will check on the weekend.


regards,

  - jan

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

Re: em8300 vs new I²C driver model -- please test

by Jan Willies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

Am 10.09.2009 23:04, schrieb Jan Willies:

> Am 10.09.2009 22:33, schrieb Nicolas Boullis:
>> On Thu, Sep 10, 2009 at 09:58:38AM +0200, Jan Willies wrote:
>>> seems like something changed with the alsa headers.
>>
>> Hmmm, that's bad news, it means that something else (namely ALSA) has
>> changed incompatibly in 2.6.31. While I investigate this, can you try
>> with ALSA disabled, to check the I²C part?
>
> Yup, it compiles and loads:
>
> Sigma Designs EM8300 0000:02:05.0: PCI INT A -> GSI 17 (level, low) ->
> IRQ 17
> em8300-0: EM8300 8300 (rev 2)
> bus: 2, devfn: 40, irq: 17,
> memory: 0xf4100000.
> em8300-0: mapped-memory at 0xd0d00000
> em8300-0: using MTRR
> IRQ 17/em8300: IRQF_DISABLED is not guaranteed on shared IRQs
> em8300-0: unable to identify model...
> em8300-0: Chip revision: 2
> i2c-adapter i2c-5: sendbytes: NAK bailout.
> adv717x.o: ADV7175A rev. 0 chip probed
> Sigma Designs EM8300 0000:02:05.0: firmware: requesting em8300.bin
> em8300-0: Microcode version 0x29 loaded
>
> I can't test the actual TV-Output right now, but will check on the weekend.

Ok, osd-colors are a bit off (ie, yellow is black - but that might be
vdr-dxr3-plugins (git-version) fault, because the video is just fine)
and I got a segfault after playing a bit with the OSD:

dxr3: cSPUEncoder::Flush: OSD data size: 19356
em8300-0: Video Fifo timeout
vdr: [28227] dxr3: resuscitation: device failure or user initiated reset
vdr: [28219] dxr3: cSPUEncoder::Flush: OSD data size: 19356
kernel: em8300-0: FIFO sync timeout during sync
vdr: [28219] dxr3: resuscitation: device failure or user initiated reset
vdr: [28322] buffer usage: 70% (tid=28321)
vdr: [28322] buffer usage: 80% (tid=28321)
vdr: [28322] buffer usage: 90% (tid=28321)
vdr: [28322] buffer usage: 100% (tid=28321)
vdr: [28322] ERROR: 1 ring buffer overflow (177 bytes dropped)
vdr: [28321] clearing transfer buffer to avoid overflows
vdr: [28322] buffer usage: 0% (tid=28321)
BUG: unable to handle kernel NULL pointer dereference at 00000054

IP: [<d0c7ca90>] em8300_fifo_free+0x2c/0xc3 [em8300]
*pde = 00000000
Oops: 0000 [#1]
last sysfs file: /sys/devices/pci0000:00/0000:00:1e.0/0000:02:05.0/zoom
Modules linked in: lirc_serial lirc_dev em8300 adv717x i2c_algo_bit xts
gf128mul ext2 mt352 snd_mpu401_uart stv0299 snd_rawmidi 8250_pnp 8250
serial_core b2c2_flexcop_pci b2c2_flexcop cx24123 cx24113 s5h1420
snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device i2c_i801 uhci_hcd
evdev fan button aes_i586 aes_generic fuse dvb_core snd_ac97_codec
snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd soundcore
ac97_bus e100

Pid: 28227, comm: vdr Not tainted (2.6.31 #1) SCENIC xB
EIP: 0060:[<d0c7ca90>] EFLAGS: 00210206 CPU: 0
EIP is at em8300_fifo_free+0x2c/0xc3 [em8300]
EAX: 00000000 EBX: c51e8600 ECX: 00000001 EDX: 000003e7
ESI: 00012000 EDI: ca6e0000 EBP: ce735e40 ESP: ce735e24
  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
Process vdr (pid: 28227, ti=ce734000 task=c18a3b00 task.ti=ce734000)
Stack:
  ce735e40 0a6e0000 000001f4 c1169126 ce741800 00000000 00000000 ce735e6c
<0> d0c7f21a 01889d20 00000000 00000007 00000000 00000000 093f1928 0000666e
<0> 40084300 ce741800 ce735efc d0c7f6cf 00000000 00000000 c720b510 cf93d000
Call Trace:
  [<c1169126>] ? copy_from_user+0x2d/0x118
  [<d0c7f21a>] ? em8300_ioctl_init+0x7e/0x1cc [em8300]
  [<d0c7f6cf>] ? em8300_control_ioctl+0x367/0x988 [em8300]
  [<c111bbfa>] ? xfs_iunlock+0x69/0x81
  [<c11356f8>] ? xfs_free_eofblocks+0xfd/0x2aa
  [<d0c7a536>] ? em8300_io_ioctl+0x2b/0x56 [em8300]
  [<d0c7a50b>] ? em8300_io_ioctl+0x0/0x56 [em8300]
  [<c1073f50>] ? vfs_ioctl+0x50/0x52
  [<c1074482>] ? do_vfs_ioctl+0x68/0x536
  [<c107bc23>] ? mntput_no_expire+0x16/0x6b
  [<c106a8aa>] ? __fput+0x16e/0x1c9
  [<c106a919>] ? fput+0x14/0x1c
  [<c1074983>] ? sys_ioctl+0x33/0x4f
  [<c1002b48>] ? sysenter_do_call+0x12/0x26
Code: 89 e5 57 56 53 83 ec 10 89 c3 85 c0 74 7c 8b 48 04 85 c9 74 6e 8b
78 34 85 ff 74 5b 8b 40 58 89 45 e8 8b 73 18 0f af 73 0c 8b 03 <8b> 40
54 8d 50 58 c7 45 f0 00 00 00 00 85 c0 0f 44 55 f0 89 55
EIP: [<d0c7ca90>] em8300_fifo_free+0x2c/0xc3 [em8300] SS:ESP 0068:ce735e24
CR2: 0000000000000054
---[ end trace 49a6aee7965f933e ]---

I am currently running it in gdb but it refuses to segfault. Again, that
segfault might be vdr-dxr3-plugins fault. mplayer runs fine so far.


  - jan

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

Re: em8300 vs new I²C driver model -- please test

by Nicolas Boullis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all,

On Thu, Sep 10, 2009 at 10:33:13PM +0200, Nicolas Boullis wrote:

>
> Hmmm, that's bad news, it means that something else (namely ALSA) has
> changed incompatibly in 2.6.31. While I investigate this, can you try
> with ALSA disabled, to check the I²C part?
> To disable alsa, you should only have to change the line
>   #if defined(CONFIG_SND) || defined(CONFIG_SND_MODULE)
> in em8300_alsa.c to
>   #if 0
>
> But I definitely will have to fix this problem as well for a new
> release... :-(
The ALSA part wasn't very complex, here is a patch that fixes this
issue.

I'll prepare a new tarball when I've made some progress for the I²C side
of the problem...


Cheers,

Nicolas


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

em8300-newi2c_alsa.patch.gz (794 bytes) Download Attachment

Re: em8300 vs new I²C driver model -- please test

by Nicolas Boullis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Jan,

On Fri, Sep 11, 2009 at 09:44:10PM +0200, Jan Willies wrote:

>
> Ok, osd-colors are a bit off (ie, yellow is black - but that might be
> vdr-dxr3-plugins (git-version) fault, because the video is just fine)
> and I got a segfault after playing a bit with the OSD:
>
> dxr3: cSPUEncoder::Flush: OSD data size: 19356
> em8300-0: Video Fifo timeout
> vdr: [28227] dxr3: resuscitation: device failure or user initiated reset
> vdr: [28219] dxr3: cSPUEncoder::Flush: OSD data size: 19356
> kernel: em8300-0: FIFO sync timeout during sync
> vdr: [28219] dxr3: resuscitation: device failure or user initiated reset
> vdr: [28322] buffer usage: 70% (tid=28321)
> vdr: [28322] buffer usage: 80% (tid=28321)
> vdr: [28322] buffer usage: 90% (tid=28321)
> vdr: [28322] buffer usage: 100% (tid=28321)
> vdr: [28322] ERROR: 1 ring buffer overflow (177 bytes dropped)
> vdr: [28321] clearing transfer buffer to avoid overflows
> vdr: [28322] buffer usage: 0% (tid=28321)
> BUG: unable to handle kernel NULL pointer dereference at 00000054
>
> IP: [<d0c7ca90>] em8300_fifo_free+0x2c/0xc3 [em8300]
> *pde = 00000000
> Oops: 0000 [#1]
> last sysfs file: /sys/devices/pci0000:00/0000:00:1e.0/0000:02:05.0/zoom
> Modules linked in: lirc_serial lirc_dev em8300 adv717x i2c_algo_bit xts
> gf128mul ext2 mt352 snd_mpu401_uart stv0299 snd_rawmidi 8250_pnp 8250
> serial_core b2c2_flexcop_pci b2c2_flexcop cx24123 cx24113 s5h1420
> snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device i2c_i801 uhci_hcd
> evdev fan button aes_i586 aes_generic fuse dvb_core snd_ac97_codec
> snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd soundcore
> ac97_bus e100
>
> Pid: 28227, comm: vdr Not tainted (2.6.31 #1) SCENIC xB
> EIP: 0060:[<d0c7ca90>] EFLAGS: 00210206 CPU: 0
> EIP is at em8300_fifo_free+0x2c/0xc3 [em8300]
> EAX: 00000000 EBX: c51e8600 ECX: 00000001 EDX: 000003e7
> ESI: 00012000 EDI: ca6e0000 EBP: ce735e40 ESP: ce735e24
>   DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
> Process vdr (pid: 28227, ti=ce734000 task=c18a3b00 task.ti=ce734000)
> Stack:
>   ce735e40 0a6e0000 000001f4 c1169126 ce741800 00000000 00000000 ce735e6c
> <0> d0c7f21a 01889d20 00000000 00000007 00000000 00000000 093f1928 0000666e
> <0> 40084300 ce741800 ce735efc d0c7f6cf 00000000 00000000 c720b510 cf93d000
> Call Trace:
>   [<c1169126>] ? copy_from_user+0x2d/0x118
>   [<d0c7f21a>] ? em8300_ioctl_init+0x7e/0x1cc [em8300]
>   [<d0c7f6cf>] ? em8300_control_ioctl+0x367/0x988 [em8300]
>   [<c111bbfa>] ? xfs_iunlock+0x69/0x81
>   [<c11356f8>] ? xfs_free_eofblocks+0xfd/0x2aa
>   [<d0c7a536>] ? em8300_io_ioctl+0x2b/0x56 [em8300]
>   [<d0c7a50b>] ? em8300_io_ioctl+0x0/0x56 [em8300]
>   [<c1073f50>] ? vfs_ioctl+0x50/0x52
>   [<c1074482>] ? do_vfs_ioctl+0x68/0x536
>   [<c107bc23>] ? mntput_no_expire+0x16/0x6b
>   [<c106a8aa>] ? __fput+0x16e/0x1c9
>   [<c106a919>] ? fput+0x14/0x1c
>   [<c1074983>] ? sys_ioctl+0x33/0x4f
>   [<c1002b48>] ? sysenter_do_call+0x12/0x26
> Code: 89 e5 57 56 53 83 ec 10 89 c3 85 c0 74 7c 8b 48 04 85 c9 74 6e 8b
> 78 34 85 ff 74 5b 8b 40 58 89 45 e8 8b 73 18 0f af 73 0c 8b 03 <8b> 40
> 54 8d 50 58 c7 45 f0 00 00 00 00 85 c0 0f 44 55 f0 89 55
> EIP: [<d0c7ca90>] em8300_fifo_free+0x2c/0xc3 [em8300] SS:ESP 0068:ce735e24
> CR2: 0000000000000054
> ---[ end trace 49a6aee7965f933e ]---
>
> I am currently running it in gdb but it refuses to segfault. Again, that
> segfault might be vdr-dxr3-plugins fault. mplayer runs fine so far.

As I understand it, the SPU part of the em8300 was made to display
subtitles, and the way it is used by vdr-dxr3-plugin's OSD stresses it a
lot. For some reason I don't understand (if only someone could
reverse-engineer the microcode...) it sometimes leads to a lockup of the
em8300 chip, and the only solution that was found is to reset the em8300
chip.

As far as I can read your log (I'm really surprised to see some xfs
functions between em8300_io_ioctl and em8300_control_ioctl), the failure
occurred while resetting the chip.

As the bug occurs in kernel mode, it certainly is because of a bug (my
guess is a race condition somewhere) in the driver. But if it is related
to the chip reset, it may not be triggered by anything besides
vdr-dxr3-plugin.

If you find a reasonnable way to reproduce this failure, it would
certainly help to investigate...

Anyway, I can't imagine that this is related to the I²C change.


Cheers,

Nicolas

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel

Re: em8300 vs new I²C driver model -- please test

by Jan Willies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Nicolas,

Am 11.09.2009 22:25, schrieb Nicolas Boullis:
> As far as I can read your log (I'm really surprised to see some xfs
> functions between em8300_io_ioctl and em8300_control_ioctl), the failure
> occurred while resetting the chip.

Yes, I think you are right. Here's the log with timestamps:

Sep 11 20:53:14 server vdr: [28219] dxr3: cSPUEncoder::Flush: OSD data
size: 19356
Sep 11 20:53:15 server kernel: em8300-0: Video Fifo timeout
Sep 11 20:53:15 server vdr: [28227] dxr3: resuscitation: device failure
or user initiated reset
Sep 11 20:53:15 server vdr: [28219] dxr3: cSPUEncoder::Flush: OSD data
size: 19356
Sep 11 20:53:18 server kernel: em8300-0: FIFO sync timeout during sync
Sep 11 20:53:18 server vdr: [28219] dxr3: resuscitation: device failure
or user initiated reset
Sep 11 20:53:21 server vdr: [28322] buffer usage: 70% (tid=28321)
Sep 11 20:53:21 server vdr: [28322] buffer usage: 80% (tid=28321)
Sep 11 20:53:21 server vdr: [28322] buffer usage: 90% (tid=28321)
Sep 11 20:53:23 server vdr: [28322] buffer usage: 100% (tid=28321)
Sep 11 20:53:23 server vdr: [28322] ERROR: 1 ring buffer overflow (177
bytes dropped)
Sep 11 20:53:23 server vdr: [28321] clearing transfer buffer to avoid
overflows
Sep 11 20:53:18 server vdr: [28219] dxr3: resuscitation: device failure
or user initiated reset
Sep 11 20:53:21 server vdr: [28322] buffer usage: 70% (tid=28321)
Sep 11 20:53:21 server vdr: [28322] buffer usage: 80% (tid=28321)
Sep 11 20:53:21 server vdr: [28322] buffer usage: 90% (tid=28321)
Sep 11 20:53:23 server vdr: [28322] buffer usage: 100% (tid=28321)
Sep 11 20:53:23 server vdr: [28322] ERROR: 1 ring buffer overflow (177
bytes dropped)
Sep 11 20:53:23 server vdr: [28321] clearing transfer buffer to avoid
overflows
Sep 11 20:53:23 server vdr: [28322] buffer usage: 0% (tid=28321)
Sep 11 20:53:24 server kernel: BUG: unable to handle kernel NULL pointer
dereference at 00000054
Sep 11 20:53:24 server kernel: IP: [<d0c7ca90>]
em8300_fifo_free+0x2c/0xc3 [em8300]
Sep 11 20:53:24 server kernel: *pde = 00000000
Sep 11 20:53:24 server kernel: Oops: 0000 [#1]
Sep 11 20:53:24 server kernel: last sysfs file:
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:05.0/zoom
Sep 11 20:53:24 server kernel: Modules linked in: lirc_serial lirc_dev
em8300 adv717x i2c_algo_bit xts gf128mul ext2 mt352 snd_mpu401_uart
stv0299 snd_rawmidi 8250_pnp 8250 serial_core b2c2_flexcop_pci
b2c2_flexcop cx24123 cx24113 s5h1420 snd_seq_oss snd_seq_midi_event
snd_seq snd_seq_device i2c_i801 uhci_hcd evdev fan button aes_i586
aes_generic fuse dvb_core snd_ac97_codec snd_pcm_oss snd_pcm snd_timer
snd_page_alloc snd_mixer_oss snd soundcore ac97_bus e100
Sep 11 20:53:24 server kernel:
Sep 11 20:53:24 server kernel: Pid: 28227, comm: vdr Not tainted (2.6.31
#1) SCENIC xB
Sep 11 20:53:24 server kernel: EIP: 0060:[<d0c7ca90>] EFLAGS: 00210206
CPU: 0
Sep 11 20:53:24 server kernel: EIP is at em8300_fifo_free+0x2c/0xc3 [em8300]
Sep 11 20:53:24 server kernel: EAX: 00000000 EBX: c51e8600 ECX: 00000001
EDX: 000003e7
Sep 11 20:53:24 server kernel: ESI: 00012000 EDI: ca6e0000 EBP: ce735e40
ESP: ce735e24
Sep 11 20:53:24 server kernel: DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
Sep 11 20:53:24 server kernel: Process vdr (pid: 28227, ti=ce734000
task=c18a3b00 task.ti=ce734000)
Sep 11 20:53:24 server kernel: Stack:
Sep 11 20:53:24 server kernel: ce735e40 0a6e0000 000001f4 c1169126
ce741800 00000000 00000000 ce735e6c
Sep 11 20:53:24 server kernel: <0> d0c7f21a 01889d20 00000000 00000007
00000000 00000000 093f1928 0000666e
Sep 11 20:53:24 server kernel: <0> 40084300 ce741800 ce735efc d0c7f6cf
00000000 00000000 c720b510 cf93d000
Sep 11 20:53:24 server kernel: Call Trace:
Sep 11 20:53:24 server kernel: [<c1169126>] ? copy_from_user+0x2d/0x118
Sep 11 20:53:24 server vdr: [28219] dxr3: configure: video mode: PAL
Sep 11 20:53:24 server vdr: [28219] dxr3: configure:
brightness=650,contrast=550,saturation=500
Sep 11 20:53:24 server vdr: [28219] dxr3: intf:
brightness=650,contrast=550,saturation=500 at init
Sep 11 20:53:24 server vdr: [28219] dxr3: fatal: reopening devices took
too long
Sep 11 20:53:24 server kernel: [<d0c7f21a>] ?
em8300_ioctl_init+0x7e/0x1cc [em8300]
Sep 11 20:53:24 server kernel: [<d0c7f6cf>] ?
em8300_control_ioctl+0x367/0x988 [em8300]
Sep 11 20:53:24 server kernel: [<c111bbfa>] ? xfs_iunlock+0x69/0x81
Sep 11 20:53:24 server kernel: [<c11356f8>] ? xfs_free_eofblocks+0xfd/0x2aa
Sep 11 20:53:24 server kernel: [<d0c7a536>] ? em8300_io_ioctl+0x2b/0x56
[em8300]
Sep 11 20:53:24 server kernel: [<d0c7a50b>] ? em8300_io_ioctl+0x0/0x56
[em8300]
Sep 11 20:53:24 server kernel: [<c1073f50>] ? vfs_ioctl+0x50/0x52
Sep 11 20:53:24 server kernel: [<c1074482>] ? do_vfs_ioctl+0x68/0x536
Sep 11 20:53:24 server kernel: [<c107bc23>] ? mntput_no_expire+0x16/0x6b
Sep 11 20:53:24 server kernel: [<c106a8aa>] ? __fput+0x16e/0x1c9
Sep 11 20:53:24 server kernel: [<c106a919>] ? fput+0x14/0x1c
Sep 11 20:53:24 server kernel: [<c1074983>] ? sys_ioctl+0x33/0x4f
Sep 11 20:53:24 server kernel: [<c1002b48>] ? sysenter_do_call+0x12/0x26
Sep 11 20:53:24 server kernel: Code: 89 e5 57 56 53 83 ec 10 89 c3 85 c0
74 7c 8b 48 04 85 c9 74 6e 8b 78 34 85 ff 74 5b 8b 40 58 89 45 e8 8b 73
18 0f af 73 0c 8b 03 <8b> 40 54 8d 50 58 c7 45 f0 00 00 00 00 85 c0 0f
44 55 f0 89 55
Sep 11 20:53:24 server kernel: EIP: [<d0c7ca90>]
em8300_fifo_free+0x2c/0xc3 [em8300] SS:ESP 0068:ce735e24
Sep 11 20:53:24 server kernel: CR2: 0000000000000054
Sep 11 20:53:24 server kernel: ---[ end trace 49a6aee7965f933e ]---
Sep 11 20:53:24 server kernel: em8300-0: Microcode version 0x29 loaded
Sep 11 20:53:24 server vdr: [28239] fatal error, server exiting:
Ungültiger Dateideskriptor
Sep 11 20:53:24 server vdr: [28239] streamdev server thread ended
(pid=28219, tid=28239)

> As the bug occurs in kernel mode, it certainly is because of a bug (my
> guess is a race condition somewhere) in the driver. But if it is related
> to the chip reset, it may not be triggered by anything besides
> vdr-dxr3-plugin.
>
> If you find a reasonnable way to reproduce this failure, it would
> certainly help to investigate...

Nothing yet, but I'll keep an eye on it and will report back.


  - jan

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Dxr3-devel mailing list
Dxr3-devel@...
https://lists.sourceforge.net/lists/listinfo/dxr3-devel