cx23885: Add si2165 support for HVR-5500
Matthias and Mauro,
so you decided to add that patch, which makes rather big changes for existing HVR-4400 models, without any testing. I plugged HVR-4400 version that has only DVB-S2 in my machine in order to start finding out one lockdep issue but what I see is bad HVR-4400.
*********************
commit 36efec48e2e6016e05364906720a0ec350a5d768
Author: Matthias Schwarzott <[email protected]> Date: Tue Jul 22 17:12:13 2014 -0300
[media] cx23885: Add si2165 support for HVR-5500
The same card entry is used for HVR-4400 and HVR-5500. Only HVR-5500 has been tested.
*********************
I would also criticize Mauro as he has committed that patch. It should be obvious for every experienced media developer that this kind of not trivial change needs some more careful review or testing.
That patch should be done differently, not blindly trying to attach chip drivers for non-existent chips. I think correct solution is to detect different HW models somehow, probing or reading from eeprom or so. Then make 2 profiles, one for boards having both satellite and terristrial/cable and one for boards having satellite only.
*********************
cx23885 driver version 0.0.4 loaded
CORE cx23885[0]: subsystem: 0070:c12a, board: Hauppauge WinTV-HVR4400 [card=38,autodetected] tveeprom 5-0050: Hauppauge model 121200, rev B2C3, serial# 4034388477 tveeprom 5-0050: MAC address is 00:0d:fe:77:e1:fd
tveeprom 5-0050: tuner model is Conexant CX24118A (idx 123, type 4)
tveeprom 5-0050: TV standards ATSC/DVB Digital (eeprom 0x80)
tveeprom 5-0050: audio processor is CX23888 (idx 40)
tveeprom 5-0050: decoder processor is CX23888 (idx 34)
tveeprom 5-0050: has no radio, has IR receiver, has no IR transmitter cx23885[0]: warning: unknown hauppauge model #121200
cx23885[0]: hauppauge eeprom: model=121200
All bytes are equal. It is not a TEA5767
tuner 6-0060: Tuner -1 found with type(s) Radio TV.
tda18271 6-0060: creating new instance
Unknown device (0) detected @ 6-0060, device not supported.tda18271_attach: [6-0060|M] error -22 on line 1285
tda18271 6-0060: destroying instance
tuner 6-0060: Tuner has no way to set tv freq
cx23885[0]: registered device video0 [v4l2]
cx23885[0]: registered device vbi0
cx23885[0]: registered ALSA audio devicecx23885_dvb_register() allocating 1 frontend(s)
cx23885[0]: cx23885 based dvb card
i2c i2c-5: a8293: Allegro A8293 SEC attached
DVB: registering new adapter (cx23885[0])
cx23885 0000:02:00.0: DVB: registering adapter 0 frontend 0 (NXP TDA10071)... cx23885_dvb_register() allocating 1 frontend(s)
cx23885[0]: cx23885 based dvb card
cx23885[0]: frontend initialization failedcx23885_dvb_register() dvb_register failed err = -22cx23885_dev_setup() Failed to register dvb on VID_C cx23885_dev_checkrevision() Hardware revision = 0xd0
cx23885[0]/0: found at 0000:02:00.0, rev: 4, irq: 18, latency: 0, mmio: 0xfe800000
*********************
# ../rmmod.pl unload Seeking media drivers at /lib/modules/3.18.0-rc4+/kernel/drivers/media/ found 0 modules Seeking media drivers at /lib/modules/3.18.0-rc4+/extra/ found 511 modules Seeking media drivers at /lib/modules/3.18.0-rc4+/updates/media/ found 511 modules /sbin/rmmod cx23885 rmmod: ERROR: Module cx23885 is in use /sbin/rmmod videobuf2_dvb rmmod: ERROR: Module videobuf2_dvb is in use by: cx23885 /sbin/rmmod videobuf2_core rmmod: ERROR: Module videobuf2_core is in use by: cx23885 videobuf2_dvb /sbin/rmmod tuner rmmod: ERROR: Module tuner is in use /sbin/rmmod cx2341x rmmod: ERROR: Module cx2341x is in use by: cx23885 /sbin/rmmod v4l2_common rmmod: ERROR: Module v4l2_common is in use by: cx2341x cx23885 tuner videobuf2_core /sbin/rmmod altera_ci rmmod: ERROR: Module altera_ci is in use by: cx23885 /sbin/rmmod videobuf2_dma_sg rmmod: ERROR: Module videobuf2_dma_sg is in use by: cx23885 /sbin/rmmod videodev rmmod: ERROR: Module videodev is in use by: cx2341x cx23885 tuner v4l2_common videobuf2_core /sbin/rmmod dvb_core rmmod: ERROR: Module dvb_core is in use by: cx23885 altera_ci videobuf2_dvb /sbin/rmmod a8293 rmmod: ERROR: Module a8293 is in use /sbin/rmmod videobuf2_memops rmmod: ERROR: Module videobuf2_memops is in use by: videobuf2_dma_sg /sbin/rmmod tda18271 rmmod: ERROR: Module tda18271 is in use by: cx23885 /sbin/rmmod rc_core rmmod: ERROR: Module rc_core is in use by: cx23885 /sbin/rmmod tveeprom rmmod: ERROR: Module tveeprom is in use by: cx23885 /sbin/rmmod media rmmod: ERROR: Module media is in use by: videodev /sbin/rmmod tda10071 rmmod: ERROR: Module tda10071 is in use /sbin/rmmod cx23885 rmmod: ERROR: Module cx23885 is in use /sbin/rmmod videobuf2_dvb rmmod: ERROR: Module videobuf2_dvb is in use by: cx23885 /sbin/rmmod videobuf2_core rmmod: ERROR: Module videobuf2_core is in use by: cx23885 videobuf2_dvb /sbin/rmmod tuner rmmod: ERROR: Module tuner is in use /sbin/rmmod cx2341x rmmod: ERROR: Module cx2341x is in use by: cx23885 /sbin/rmmod v4l2_common rmmod: ERROR: Module v4l2_common is in use by: cx2341x cx23885 tuner videobuf2_core /sbin/rmmod altera_ci rmmod: ERROR: Module altera_ci is in use by: cx23885 /sbin/rmmod videobuf2_dma_sg rmmod: ERROR: Module videobuf2_dma_sg is in use by: cx23885 /sbin/rmmod videodev rmmod: ERROR: Module videodev is in use by: cx2341x cx23885 tuner v4l2_common videobuf2_core /sbin/rmmod dvb_core rmmod: ERROR: Module dvb_core is in use by: cx23885 altera_ci videobuf2_dvb /sbin/rmmod a8293 rmmod: ERROR: Module a8293 is in use /sbin/rmmod videobuf2_memops rmmod: ERROR: Module videobuf2_memops is in use by: videobuf2_dma_sg /sbin/rmmod tda18271 rmmod: ERROR: Module tda18271 is in use by: cx23885 /sbin/rmmod rc_core rmmod: ERROR: Module rc_core is in use by: cx23885 /sbin/rmmod tveeprom rmmod: ERROR: Module tveeprom is in use by: cx23885 /sbin/rmmod media rmmod: ERROR: Module media is in use by: videodev /sbin/rmmod tda10071 rmmod: ERROR: Module tda10071 is in use Couldn't unload: tda10071 media tveeprom rc_core tda18271 videobuf2_memops a8293 dvb_core videodev videobuf2_dma_sg altera_ci v4l2_common cx2341x tuner videobuf2_core videobuf2_dvb cx23885 [root@localhost linux]#
Antti
Signature · 1 line
http://palosaari.fi/
Quoted 1 line · Antti Palosaari
Matthias and Mauro,
Hi Antti,
meanwhile HVR-4400 has been tested by multiple people. And it works rather good for DVB-T.
Quoted 4 lines
so you decided to add that patch, which makes rather big changes for existing HVR-4400 models, without any testing. I plugged HVR-4400 version that has only DVB-S2 in my machine in order to start finding out one lockdep issue but what I see is bad HVR-4400.
I checked that all known HVR-4400 and HVR-5500 versions have a Si2161/Si2165 chip.
I checked your subsystem id 0070:c12a. In windows inf file it is listed as "Hauppauge WinTV Starburst (Model 121x00, DVB-S2, IR)".
But this subsystem id is also part of the HVR-4400 entry (as is HVR-5500).
So I rechecked the HVR4400 entry.
It points to these subsys ids (plus description from inf file):
* 0070:c108 "Hauppauge WinTV HVR-4400 (Model 121xxx, Hybrid DVB-T/S2, IR)"
* 0070:c138 "Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR)"
* 0070:c1f8 "Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR)"
* 0070:c12a "Hauppauge WinTV Starburst (Model 121x00, DVB-S2, IR)"
Quoted 11 lines
I would also criticize Mauro as he has committed that patch. It should be obvious for every experienced media developer that this kind of not trivial change needs some more careful review or testing.
That patch should be done differently, not blindly trying to attach chip drivers for non-existent chips. I think correct solution is to detect different HW models somehow, probing or reading from eeprom or so. Then make 2 profiles, one for boards having both satellite and terristrial/cable and one for boards having satellite only.
As can be seen above it should be possible to decide by checking the subsys id.
So having two board entries should be the best solution. One for HVR-4400/HVR-5500 and the other for the Starburst.
Regards
Matthias
Quoted 5 lines · Matthias Schwarzott
Quoted 1 line · Antti Palosaari
Matthias and Mauro,
Hi Antti,
meanwhile HVR-4400 has been tested by multiple people. And it works rather good for DVB-T.
My board has only satellite support, no terrestrial nor satellite. Even all those errors, it still creates frontend - and it even likely works, I didn't tested.
But as you likely saw from the messages, it prints any IO errors as registering terrestrial or cable frontend failed, because of missing chips. And module reference counts went wrong as unloading modules is impossible.
Quoted 12 lines
Quoted 4 lines
so you decided to add that patch, which makes rather big changes for existing HVR-4400 models, without any testing. I plugged HVR-4400 version that has only DVB-S2 in my machine in order to start finding out one lockdep issue but what I see is bad HVR-4400.
I checked that all known HVR-4400 and HVR-5500 versions have a Si2161/Si2165 chip.
I checked your subsystem id 0070:c12a. In windows inf file it is listed as "Hauppauge WinTV Starburst (Model 121x00, DVB-S2, IR)".
But this subsystem id is also part of the HVR-4400 entry (as is HVR-5500).
Quoted 6 lines
So I rechecked the HVR4400 entry.
It points to these subsys ids (plus description from inf file):
* 0070:c108 "Hauppauge WinTV HVR-4400 (Model 121xxx, Hybrid DVB-T/S2, IR)"
* 0070:c138 "Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR)"
* 0070:c1f8 "Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR)"
* 0070:c12a "Hauppauge WinTV Starburst (Model 121x00, DVB-S2, IR)"
My board is that Starburst. All those others, 4400 and 5500 models, are hybrid containing two receivers. Due to that, Starburst is only one which is broken.
Quoted 10 lines
Quoted 10 lines
I would also criticize Mauro as he has committed that patch. It should be obvious for every experienced media developer that this kind of not trivial change needs some more careful review or testing.
That patch should be done differently, not blindly trying to attach chip drivers for non-existent chips. I think correct solution is to detect different HW models somehow, probing or reading from eeprom or so. Then make 2 profiles, one for boards having both satellite and terristrial/cable and one for boards having satellite only.
Quoted 4 lines
As can be seen above it should be possible to decide by checking the subsys id.
So having two board entries should be the best solution. One for HVR-4400/HVR-5500 and the other for the Starburst.
regards
Antti
Signature · 1 line
http://palosaari.fi/