Hayling Island

Hayling Island

Wednesday, January 22, 2020

TBS8922 on Liberator

So I think the clue is in the top line:

[   25.228598] cx88xx: subsystem: 8922:8888, board: NotOnlyTV LV3H [card=91,insmod option]

It would seem that the card is not being identified correctly, so when it comes to loading the firmware, that succeeds but is probably the wrong code for the board. Hence when the DVB bit tries to load, nothing happen.

I'm currently using the TBS recommended open source fork of their own driver, so I have the source code tree. The code that looks after the bring-up of the card is in their source code tree, somewhere in tbsdriver/media_build/v4l/.

It would seem that it is somewhere in cx88-dvb.c that this all goes horribly wrong. That file embeds cx88.h which has the definitions of all of the boards:

#define CX88_BOARD_NOTONLYTV_LV3H          91
#define CX88_BOARD_TBS_8922                92


Ah, so somehow the code misses the correct board. I wonder if there is a way of enforcing the correct board when the machine boots ? 

So, after a bit more hacking and installing different versions of the software, and remembering to "make clean", or sometimes destroying the entire source code tree, I am now at the stage of: 

niks@liberator ~ $ dmesg | grep cx88
[   27.332697] cx88xx: subsystem: 8922:8888, board: TurboSight TBS 8922 DVB-S/S2 [card=92,insmod option], frontend(s): 1
[   27.964969] rc rc0: cx88 IR (TurboSight TBS 8922 DV as /devices/pci0000:00/0000:00:1e.0/0000:06:01.2/rc/rc0
[   27.965042] rc rc0: lirc_dev: driver cx88xx registered at minor = 0, raw IR receiver, no transmitter
[   27.965069] input: cx88 IR (TurboSight TBS 8922 DV as /devices/pci0000:00/0000:00:1e.0/0000:06:01.2/rc/rc0/input37
[   27.965228] cx8802: cx2388x 8802 Driver Manager
[   27.965262] cx8800: found at 0000:06:01.0, rev: 5, irq: 21, latency: 128, mmio: 0xf9000000
[   27.965305] cx8802: found at 0000:06:01.2, rev: 5, irq: 21, latency: 128, mmio: 0xf8000000
[   27.965408] cx8800: registered device video2 [v4l2]
[   27.965473] cx8800: registered device vbi0
[   28.698345] cx88_dvb: cx2388x dvb driver version 1.0.0 loaded
[   28.698346] cx8802: registering cx8802 driver, type: dvb access: shared
[   28.698348] cx8802: subsystem: 8922:8888, board: TurboSight TBS 8922 DVB-S/S2 [card=92]
[   28.698348] cx88_dvb: cx2388x based DVB/ATSC card
[   28.698349] cx88_dvb: cx8802_alloc_frontends: allocating 1 frontend(s)
[   29.317187] dvbdev: DVB: registering new adapter (cx88[0])

No comments:

Post a Comment