Am 29.11.2010 09:44, schrieb Dmitri Belimov:
Hi

I try add IR for our TV cards.
After my some changes IR is working. But when I remove USB stick from USB port
What has you change? Has it received keys? Which protocol you it? As I wrote that I haven't the right value for rc5 protocol, and nec protocol works, that I have tested.

Stefan Ringel
modules crashed with dmesg

[  133.881750] tm6000: New video device @ 480 Mbps (6000:dec0, ifnum 0)
[  133.881759] tm6000: Found Beholder Wander DVB-T/TV/FM USB2.0
[  134.343012] Board version = 0x67980bf4
[  134.484013] board=0x67980bf4
[  134.575011] tm6000 #0: i2c eeprom 00: 42 59 54 45 12 01 00 02 00 00 00 40 00 
60 c0 de  byte.......@.`..
[  134.687012] tm6000 #0: i2c eeprom 10: 01 00 10 20 40 01 28 03 42 00 65 00 68 
00 6f 00  ... @.(.B.e.h.o.
[  134.799014] tm6000 #0: i2c eeprom 20: 6c 00 64 00 65 00 72 00 20 00 49 00 6e 
00 74 00  l.d.e.r. .I.n.t.
[  134.911012] tm6000 #0: i2c eeprom 30: 6c 00 2e 00 20 00 4c 00 74 00 64 00 2e 
00 ff ff  l... .L.t.d.....
[  135.023013] tm6000 #0: i2c eeprom 40: 22 03 42 00 65 00 68 00 6f 00 6c 00 64 00 
20 00  ".B.e.h.o.l.d. .
[  135.135015] tm6000 #0: i2c eeprom 50: 54 00 56 00 20 00 57 00 61 00 6e 00 64 
00 65 00  T.V. .W.a.n.d.e.
[  135.247014] tm6000 #0: i2c eeprom 60: 72 00 ff ff ff ff ff ff ff ff 1a 03 56 
00 69 00  r...........V.i.
[  135.359013] tm6000 #0: i2c eeprom 70: 64 00 65 00 6f 00 43 00 61 00 70 00 74 
00 75 00  d.e.o.C.a.p.t.u.
[  135.471013] tm6000 #0: i2c eeprom 80: 72 00 65 00 ff ff ff ff ff ff ff ff ff 
ff ff ff  r.e.............
[  135.583010] tm6000 #0: i2c eeprom 90: ff ff ff ff 16 03 30 00 30 00 30 00 30 
00 30 00  ......0.0.0.0.0.
[  135.695010] tm6000 #0: i2c eeprom a0: 30 00 32 00 30 00 34 00 31 00 ff ff ff 
ff ff ff  0.2.0.4.1.......
[  135.807012] tm6000 #0: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff  ................
[  135.919011] tm6000 #0: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff  ................
[  136.031014] tm6000 #0: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff  ................
[  136.143010] tm6000 #0: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff  ................
[  136.255014] tm6000 #0: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff  ................
[  136.360015]   ................
[  136.362337] tuner 7-0061: chip found @ 0xc2 (tm6000 #0)
[  136.421801] xc5000 7-0061: creating new instance
[  136.450015] xc5000: Successfully identified at address 0x61
[  136.450019] xc5000: Firmware has not been loaded previously
[  136.450025] tuner 7-0061: Tuner frontend module has no way to set config
[  136.504012] xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
[  136.564545] xc5000: firmware read 12401 bytes.
[  136.564549] xc5000: firmware uploading...
[  143.241011] xc5000: firmware upload complete...
[  144.670093] Trident TVMaster TM5600/TM6000/TM6010 USB2 board (Load status: 0)
[  144.671201] tm6000: open called (dev=video0)
[  144.825125] usb 1-1: link qh0-00ff/f6762340 start 0 [1/0 us]
[  144.888012] Registered IR keymap rc-behold-columbus
[  144.888159] input: tm5600/60x0 IR (tm6000 #0) as /class/input/input5
[  144.888217] rc0: tm5600/60x0 IR (tm6000 #0) as /class/rc/rc0
[  145.044067] usbcore: registered new interface driver tm6000
[  145.882658] tm6000: open called (dev=video0)
[  156.860296] hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0002
[  156.860310] ehci_hcd 0000:00:1d.7: GetStatus port 1 status 001002 POWER 
sig=se0 CSC
[  156.860323] hub 1-0:1.0: port 1, status 0100, change 0001, 12 Mb/s
[  156.860328] usb 1-1: USB disconnect, address 2
[  156.860332] usb 1-1: unregistering device
[  156.860336] usb 1-1: usb_disable_device nuking all URBs
[  156.860370] usb 1-1: unlink qh0-00ff/f6762340 start 0 [1/0 us]
[  156.860432] tm6000_ir_urb_received start
[  156.860435] not ready
[  156.860440] ehci_hcd 0000:00:1d.7: shutdown urb f4900cc0 ep3in-intr
[  156.860446] usb 1-1: unregistering interface 1-1:1.0
[  156.860492] tm6000: disconnecting tm6000 #0
[  156.860494] befor if (!ir)
[  156.860495] befor ir_input_unregister(ir->input->input_dev);
[  156.862220] BUG: unable to handle kernel NULL pointer dereference at 000000f0
[  156.862223] IP: [<f80370a9>] ir_close+0x12/0x20 [ir_core]
[  156.862230] *pde = 00000000
[  156.862232] Oops: 0000 [#1] PREEMPT SMP
[  156.862235] last sysfs file: /sys/class/video4linux/video0/uevent
[  156.862238] Modules linked in: rc_behold_columbus xc5000 tuner tm6000(C) 
v4l2_common ir_lirc_codec videodev lirc_dev ir_sony_decoder v4l1_compat 
videobuf_vmalloc ir_jvc_decoder videobuf_core ir_rc6_decoder ir_rc5_decoder 
ir_nec_decoder ir_common ir_core ppdev lp ipv6 nls_utf8 ntfs dm_snapshot 
dm_mirror dm_region_hash dm_log dm_mod sha1_generic arc4 ecb ppp_mppe 
ppp_generic slhc loop nvidia(P) snd_hda_codec_realtek snd_hda_intel 
snd_hda_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy snd_seq_oss 
snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device 
snd i2c_i801 psmouse parport_pc processor soundcore tpm_tis parport rng_core 
i2c_core intel_agp tpm button pcspkr serio_raw snd_page_alloc agpgart tpm_bios 
evdev ext3 jbd mbcache sr_mod sd_mod cdrom ata_generic ata_piix libata scsi_mod 
uhci_hcd ide_pci_generic ehci_hcd ide_core usbcore nls_base r8169 mii thermal 
thermal_sys [last unloaded: scsi_wait_scan]
[  156.862296]
[  156.862299] Pid: 570, comm: khubd Tainted: P         C  2.6.35-tm6000-new3+ 
#1 G31M-S2L/G31M-ES2L
[  156.862302] EIP: 0060:[<f80370a9>] EFLAGS: 00010282 CPU: 1
[  156.862305] EIP is at ir_close+0x12/0x20 [ir_core]
[  156.862307] EAX: 00000000 EBX: f497a000 ECX: 00000000 EDX: f8037097
[  156.862309] ESI: f4903208 EDI: f497a790 EBP: f6401dc0 ESP: f6401dc0
[  156.862311]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[  156.862314] Process khubd (pid: 570, ti=f6400000 task=f644c590 
task.ti=f6400000)
[  156.862315] Stack:
[  156.862316]  f6401dd4 c11c8867 f4903208 f4903200 f4903244 f6401dec f834dc91 
f490323c
[  156.862321]<0>  f4903208 f4903200 f490325c f6401e00 f834dcb9 f497a860 
f497a000 f497a874
[  156.862327]<0>  f6401e14 c11c8b59 f497a7ac f7252800 f497a000 f6401e28 
f8037ac6 f7252800
[  156.862333] Call Trace:
[  156.862338]  [<c11c8867>] ? input_close_device+0x43/0x5f
[  156.862345]  [<f834dc91>] ? evdev_cleanup+0xbd/0xc5 [evdev]
[  156.862349]  [<f834dcb9>] ? evdev_disconnect+0x20/0x33 [evdev]
[  156.862352]  [<c11c8b59>] ? input_unregister_device+0x8c/0x11a
[  156.862356]  [<f8037ac6>] ? ir_unregister_class+0x3a/0x50 [ir_core]
[  156.862359]  [<f803707e>] ? ir_input_unregister+0x7e/0x97 [ir_core]
[  156.862363]  [<f818d735>] ? tm6000_ir_fini+0x3d/0xda [tm6000]
[  156.862367]  [<f81891aa>] ? tm6000_usb_disconnect+0x48/0xdb [tm6000]
[  156.862377]  [<f810d572>] ? usb_unbind_interface+0x45/0xb7 [usbcore]
[  156.862384]  [<c11bddf5>] ? __device_release_driver+0x5d/0x93
[  156.862387]  [<c11bded2>] ? device_release_driver+0x1d/0x28
[  156.862390]  [<c11bd521>] ? bus_remove_device+0x92/0xa9
[  156.862393]  [<c11bbde3>] ? device_del+0xfb/0x132
[  156.862402]  [<f810b45d>] ? usb_disable_device+0xb2/0x116 [usbcore]
[  156.862412]  [<f8106aa2>] ? usb_disconnect+0x8e/0x10e [usbcore]
[  156.862422]  [<f8107b9f>] ? hub_thread+0x56c/0xe91 [usbcore]
[  156.862428]  [<c10486f1>] ? autoremove_wake_function+0x0/0x38
[  156.862439]  [<f8107633>] ? hub_thread+0x0/0xe91 [usbcore]
[  156.862442]  [<c104830b>] ? kthread+0x66/0x6b
[  156.862445]  [<c10482a5>] ? kthread+0x0/0x6b
[  156.862448]  [<c1002eb6>] ? kernel_thread_helper+0x6/0x10
[  156.862450] Code: 8b 83 c8 00 00 00 e8 61 38 08 c9 89 d8 e8 5a 38 08 c9 8d 65 f8 
5b 5e 5d c3 55 89 e5 0f 1f 44 00 00 05 ac 07 00 00 e8 a8 6c 18 c9<8b>  90 f0 00 
00 00 8b 42 20 ff 52 2c 5d c3 55 89 e5 0f 1f 44 00
[  156.862481] EIP: [<f80370a9>] ir_close+0x12/0x20 [ir_core] SS:ESP 
0068:f6401dc0
[  156.862486] CR2: 00000000000000f0
[  156.862488] ---[ end trace 7a803f828333ac48 ]---


Source tm6000-input

int tm6000_ir_fini(struct tm6000_core *dev)
{
        struct tm6000_IR *ir = dev->ir;

        /* skip detach on non attached board */
        if (!ir)
                return 0;

        ir_input_unregister(ir->input->input_dev);


The modules crashed when call ir_input_unregister

And never called tm6000_ir_stop

static void tm6000_ir_stop(void *priv)
{
        struct tm6000_IR *ir = priv;

        cancel_delayed_work_sync(&ir->work);
}

And function default_polling_getkey is not dead.

With my best regards, Dmitry.


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to