NotOnlyTV LV3H: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
(→‎IR remote: test commands)
Line 68: Line 68:


== IR remote ==
== IR remote ==
Supported since kernel 6.1.2 ([https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=39dfd52d0f481de42a4 media: cx88: add IR remote support for NotOnlyTV LV3H]). <br>
Supported since kernel 6.1 ([https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=39dfd52d0f481de42a4 media: cx88: add IR remote support for NotOnlyTV LV3H]). The receiver uses the RC5 protocol and only remotes compatibles with OEM one will work<br>

Test the remote with ir-keytable:
<pre># ir-keytable -t
Testing events. Please, press CTRL-C to abort.
1221.832806: lirc protocol(rc5): scancode = 0x1
1221.832825: event type EV_MSC(0x04): scancode = 0x01
1221.832825: event type EV_KEY(0x01) key_down: KEY_NUMERIC_1(0x0201)
1221.832825: event type EV_SYN(0x00).
1222.098709: event type EV_KEY(0x01) key_up: KEY_NUMERIC_1(0x0201)
1222.098709: event type EV_SYN(0x00).
1223.079512: lirc protocol(rc5): scancode = 0x2 toggle=1
1223.079533: event type EV_MSC(0x04): scancode = 0x02
1223.079533: event type EV_KEY(0x01) key_down: KEY_NUMERIC_2(0x0202)
1223.079533: event type EV_SYN(0x00).
1223.348710: event type EV_KEY(0x01) key_up: KEY_NUMERIC_2(0x0202)
1223.348710: event type EV_SYN(0x00).
1224.152923: lirc protocol(rc5): scancode = 0x3
1224.152934: event type EV_MSC(0x04): scancode = 0x03
1224.152934: event type EV_KEY(0x01) key_down: KEY_NUMERIC_3(0x0203)
1224.152934: event type EV_SYN(0x00).
1224.418696: event type EV_KEY(0x01) key_up: KEY_NUMERIC_3(0x0203)
1224.418696: event type EV_SYN(0x00).
1225.716157: lirc protocol(rc5): scancode = 0x4 toggle=1
1225.716174: event type EV_MSC(0x04): scancode = 0x04
1225.716174: event type EV_KEY(0x01) key_down: KEY_NUMERIC_4(0x0204)
1225.716174: event type EV_SYN(0x00).
1225.962040: event type EV_KEY(0x01) key_up: KEY_NUMERIC_4(0x0204)
1225.962040: event type EV_SYN(0x00).
</pre>
Test the remote with evtest:
<pre># evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Power Button
/dev/input/event1: Power Button
/dev/input/event10: HDA Intel Line Out Side
/dev/input/event11: Geniatech
/dev/input/event12: Serial IR type home-brew
/dev/input/event2: Logitech USB-PS/2 Optical Mouse
/dev/input/event3: AT Translated Set 2 keyboard
/dev/input/event4: PC Speaker
/dev/input/event5: HDA Intel Rear Mic
/dev/input/event6: HDA Intel Line
/dev/input/event7: HDA Intel Line Out Front
/dev/input/event8: HDA Intel Line Out Surround
/dev/input/event9: HDA Intel Line Out CLFE
Select the device event number [0-12]: 11
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "Geniatech"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 1 (KEY_ESC)
Event code 103 (KEY_UP)
Event code 105 (KEY_LEFT)
Event code 106 (KEY_RIGHT)
Event code 108 (KEY_DOWN)
Event code 113 (KEY_MUTE)
Event code 114 (KEY_VOLUMEDOWN)
Event code 115 (KEY_VOLUMEUP)
Event code 116 (KEY_POWER)
Event code 119 (KEY_PAUSE)
Event code 128 (KEY_STOP)
Event code 167 (KEY_RECORD)
Event code 168 (KEY_REWIND)
Event code 207 (KEY_PLAY)
Event code 208 (KEY_FASTFORWARD)
Event code 212 (KEY_CAMERA)
Event code 352 (KEY_OK)
Event code 356 (KEY_POWER2)
Event code 359 (KEY_TIME)
Event code 363 (KEY_CHANNEL)
Event code 372 (KEY_ZOOM)
Event code 393 (KEY_VIDEO)
Event code 402 (KEY_CHANNELUP)
Event code 403 (KEY_CHANNELDOWN)
Event code 410 (KEY_SHUFFLE)
Event code 512 (KEY_NUMERIC_0)
Event code 513 (KEY_NUMERIC_1)
Event code 514 (KEY_NUMERIC_2)
Event code 515 (KEY_NUMERIC_3)
Event code 516 (KEY_NUMERIC_4)
Event code 517 (KEY_NUMERIC_5)
Event code 518 (KEY_NUMERIC_6)
Event code 519 (KEY_NUMERIC_7)
Event code 520 (KEY_NUMERIC_8)
Event code 521 (KEY_NUMERIC_9)
Event type 2 (EV_REL)
Event code 0 (REL_X)
Event code 1 (REL_Y)
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Key repeat handling:
Repeat type 20 (EV_REP)
Repeat code 0 (REP_DELAY)
Value 500
Repeat code 1 (REP_PERIOD)
Value 125
Properties:
Property type 5 (INPUT_PROP_POINTING_STICK)
Testing ... (interrupt to exit)
Event: time 1672942930.274074, type 4 (EV_MSC), code 4 (MSC_SCAN), value 01
Event: time 1672942930.274074, type 1 (EV_KEY), code 513 (KEY_NUMERIC_1), value 1
Event: time 1672942930.274074, -------------- SYN_REPORT ------------
Event: time 1672942930.543225, type 1 (EV_KEY), code 513 (KEY_NUMERIC_1), value 0
Event: time 1672942930.543225, -------------- SYN_REPORT ------------
Event: time 1672942932.040677, type 4 (EV_MSC), code 4 (MSC_SCAN), value 02
Event: time 1672942932.040677, type 1 (EV_KEY), code 514 (KEY_NUMERIC_2), value 1
Event: time 1672942932.040677, -------------- SYN_REPORT ------------
Event: time 1672942932.303216, type 1 (EV_KEY), code 514 (KEY_NUMERIC_2), value 0
Event: time 1672942932.303216, -------------- SYN_REPORT ------------
Event: time 1672942933.107346, type 4 (EV_MSC), code 4 (MSC_SCAN), value 03
Event: time 1672942933.107346, type 1 (EV_KEY), code 515 (KEY_NUMERIC_3), value 1
Event: time 1672942933.107346, -------------- SYN_REPORT ------------
Event: time 1672942933.369891, type 1 (EV_KEY), code 515 (KEY_NUMERIC_3), value 0
Event: time 1672942933.369891, -------------- SYN_REPORT ------------
</pre>




The IR sensor is connected through an unknown chip (no visible part number) to the i2c bus:
The IR sensor is connected through an unknown chip (no visible part number) to the i2c bus:

Revision as of 18:30, 5 January 2023

Top view of LV3H

The card consist of:

Subsystem ID: 14f1:8852

Supported via insmod option: options cx88xx card=91

Windows drivers: NotOnlyTV_LV3H-drivers_CD.rar

Images

board top
tuner detail
IR controller
connectors
AV cable
AV cable pinout
remote

Making it work with latest kernels

Officialy supported since kernel 5.5 (media: cx88: Add support for NotOnlyTV LV3H card).
The card autodectection isn't still implemented, because the PCI subsystem ID is the same as the Geniatech X8000-MT. Follow these instructions to make it work:

  • Install the firmware for the tuner (xc3028L-v36.fw):
wget http://steventoth.net/linux/hvr1400/xc3028L-v36.fw
mv xc3028L-v36.fw /lib/firmware/

kernel ≥ 5.5

  • Create a new file in /etc/modprobe.d/:
nano /etc/modprobe.d/LV3H.conf

And add the lines:

options cx88xx card=91
options dvb_core dvb_shutdown_timeout=5

If we're only going to use DVB-T, then we can also blacklist the analog modules:

blacklist cx8800
blacklist cx88-alsa

save it, reboot.


kernel ≥ 2.6.32

  • Create a new file in /etc/modprobe.d/:
nano /etc/modprobe.d/LV3H.conf

And add the lines:

options cx88xx card=81 tuner=71
options tuner_xc2028 firmware_name=xc3028L-v36.fw no_poweroff=1 
options dvb_core dvb_shutdown_timeout=5

If we're only going to use DVB-T, then we can also blacklist the analog modules:

blacklist cx8800
blacklist cx88-alsa

save it, reboot.

Digital TV

Tested and working OK with Kaffeine

Analog

  • FM radio. Be sure you plugged the FM antenna. Command example with mplayer (the audio output is also redirected to the main audio card):
mplayer -rawaudio rate=48000  radio://0/capture -radio adevice=hw=0:channels=94.6-Radio3

Command example with fmtools, only audio output from the capture card (green minijack female connector):

fm -d /dev/radio0 94.6 65535
  • Video composite (yellow, white and red cables):
    Tested with VLC, select INPUT 1, and PAL B/G

IR remote

Supported since kernel 6.1 (media: cx88: add IR remote support for NotOnlyTV LV3H). The receiver uses the RC5 protocol and only remotes compatibles with OEM one will work

Test the remote with ir-keytable:

# ir-keytable -t
Testing events. Please, press CTRL-C to abort.
1221.832806: lirc protocol(rc5): scancode = 0x1
1221.832825: event type EV_MSC(0x04): scancode = 0x01
1221.832825: event type EV_KEY(0x01) key_down: KEY_NUMERIC_1(0x0201)
1221.832825: event type EV_SYN(0x00).
1222.098709: event type EV_KEY(0x01) key_up: KEY_NUMERIC_1(0x0201)
1222.098709: event type EV_SYN(0x00).
1223.079512: lirc protocol(rc5): scancode = 0x2 toggle=1
1223.079533: event type EV_MSC(0x04): scancode = 0x02
1223.079533: event type EV_KEY(0x01) key_down: KEY_NUMERIC_2(0x0202)
1223.079533: event type EV_SYN(0x00).
1223.348710: event type EV_KEY(0x01) key_up: KEY_NUMERIC_2(0x0202)
1223.348710: event type EV_SYN(0x00).
1224.152923: lirc protocol(rc5): scancode = 0x3
1224.152934: event type EV_MSC(0x04): scancode = 0x03
1224.152934: event type EV_KEY(0x01) key_down: KEY_NUMERIC_3(0x0203)
1224.152934: event type EV_SYN(0x00).
1224.418696: event type EV_KEY(0x01) key_up: KEY_NUMERIC_3(0x0203)
1224.418696: event type EV_SYN(0x00).
1225.716157: lirc protocol(rc5): scancode = 0x4 toggle=1
1225.716174: event type EV_MSC(0x04): scancode = 0x04
1225.716174: event type EV_KEY(0x01) key_down: KEY_NUMERIC_4(0x0204)
1225.716174: event type EV_SYN(0x00).
1225.962040: event type EV_KEY(0x01) key_up: KEY_NUMERIC_4(0x0204)
1225.962040: event type EV_SYN(0x00).

Test the remote with evtest:

# evtest 
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      Power Button
/dev/input/event1:      Power Button
/dev/input/event10:     HDA Intel Line Out Side
/dev/input/event11:     Geniatech
/dev/input/event12:     Serial IR type home-brew
/dev/input/event2:      Logitech USB-PS/2 Optical Mouse
/dev/input/event3:      AT Translated Set 2 keyboard
/dev/input/event4:      PC Speaker
/dev/input/event5:      HDA Intel Rear Mic
/dev/input/event6:      HDA Intel Line
/dev/input/event7:      HDA Intel Line Out Front
/dev/input/event8:      HDA Intel Line Out Surround
/dev/input/event9:      HDA Intel Line Out CLFE
Select the device event number [0-12]: 11
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "Geniatech"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 1 (KEY_ESC)
    Event code 103 (KEY_UP)
    Event code 105 (KEY_LEFT)
    Event code 106 (KEY_RIGHT)
    Event code 108 (KEY_DOWN)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 116 (KEY_POWER)
    Event code 119 (KEY_PAUSE)
    Event code 128 (KEY_STOP)
    Event code 167 (KEY_RECORD)
    Event code 168 (KEY_REWIND)
    Event code 207 (KEY_PLAY)
    Event code 208 (KEY_FASTFORWARD)
    Event code 212 (KEY_CAMERA)
    Event code 352 (KEY_OK)
    Event code 356 (KEY_POWER2)
    Event code 359 (KEY_TIME)
    Event code 363 (KEY_CHANNEL)
    Event code 372 (KEY_ZOOM)
    Event code 393 (KEY_VIDEO)
    Event code 402 (KEY_CHANNELUP)
    Event code 403 (KEY_CHANNELDOWN)
    Event code 410 (KEY_SHUFFLE)
    Event code 512 (KEY_NUMERIC_0)
    Event code 513 (KEY_NUMERIC_1)
    Event code 514 (KEY_NUMERIC_2)
    Event code 515 (KEY_NUMERIC_3)
    Event code 516 (KEY_NUMERIC_4)
    Event code 517 (KEY_NUMERIC_5)
    Event code 518 (KEY_NUMERIC_6)
    Event code 519 (KEY_NUMERIC_7)
    Event code 520 (KEY_NUMERIC_8)
    Event code 521 (KEY_NUMERIC_9)
  Event type 2 (EV_REL)
    Event code 0 (REL_X)
    Event code 1 (REL_Y)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Key repeat handling:
  Repeat type 20 (EV_REP)
    Repeat code 0 (REP_DELAY)
      Value    500
    Repeat code 1 (REP_PERIOD)
      Value    125
Properties:
  Property type 5 (INPUT_PROP_POINTING_STICK)
Testing ... (interrupt to exit)
Event: time 1672942930.274074, type 4 (EV_MSC), code 4 (MSC_SCAN), value 01
Event: time 1672942930.274074, type 1 (EV_KEY), code 513 (KEY_NUMERIC_1), value 1
Event: time 1672942930.274074, -------------- SYN_REPORT ------------
Event: time 1672942930.543225, type 1 (EV_KEY), code 513 (KEY_NUMERIC_1), value 0
Event: time 1672942930.543225, -------------- SYN_REPORT ------------
Event: time 1672942932.040677, type 4 (EV_MSC), code 4 (MSC_SCAN), value 02
Event: time 1672942932.040677, type 1 (EV_KEY), code 514 (KEY_NUMERIC_2), value 1
Event: time 1672942932.040677, -------------- SYN_REPORT ------------
Event: time 1672942932.303216, type 1 (EV_KEY), code 514 (KEY_NUMERIC_2), value 0
Event: time 1672942932.303216, -------------- SYN_REPORT ------------
Event: time 1672942933.107346, type 4 (EV_MSC), code 4 (MSC_SCAN), value 03
Event: time 1672942933.107346, type 1 (EV_KEY), code 515 (KEY_NUMERIC_3), value 1
Event: time 1672942933.107346, -------------- SYN_REPORT ------------
Event: time 1672942933.369891, type 1 (EV_KEY), code 515 (KEY_NUMERIC_3), value 0
Event: time 1672942933.369891, -------------- SYN_REPORT ------------


The IR sensor is connected through an unknown chip (no visible part number) to the i2c bus: (see also Geniatech DVB-S remote control support)

# modprobe i2c-dev
# i2cdetect -l
i2c-0   i2c             i915 gmbus ssc                          I2C adapter
i2c-1   i2c             i915 gmbus vga                          I2C adapter
i2c-2   i2c             i915 gmbus panel                        I2C adapter
i2c-3   i2c             i915 gmbus dpc                          I2C adapter
i2c-4   i2c             i915 gmbus dpb                          I2C adapter
i2c-5   i2c             i915 gmbus dpd                          I2C adapter
i2c-6   i2c             cx88[0]                                 I2C adapter
# i2cdetect -y 6
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- 0f 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- 33 -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- 
60: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --

The ir sensor is at i2c address 0x33:

# i2cdump -y 6 0x33 b
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
10: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
20: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
30: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
40: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
50: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
60: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
70: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
80: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
90: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
a0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
b0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
c0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
d0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
e0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????
f0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03    ????????????????

if we press any key at the remote, this output changes:

# i2cdump -y 6 0x33 b
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
10: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
20: 85 85 85 XX XX XX XX XX XX XX XX XX XX XX XX XX    ???XXXXXXXXXXXXX
30: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
40: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
50: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
60: 85 85 85 85 85 85 85 85 85 85 85 XX XX 85 XX XX    ???????????XX?XX
70: 85 XX XX XX XX XX XX XX XX 85 85 85 85 85 85 85    ?XXXXXXXX???????
80: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
90: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
a0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
b0: 85 85 XX XX XX XX XX XX XX XX XX XX XX XX XX 85    ??XXXXXXXXXXXXX?
c0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
d0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
e0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
f0: 85 85 85 85 85 85 85 85 85 85 XX XX XX XX XX XX    ??????????XXXXXX

if we release the key:

# i2cdump -y 6 0x33 b
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
10: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
20: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
30: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
40: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
50: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
60: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
70: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
80: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
90: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
a0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
b0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
c0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
d0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
e0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????
f0: 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85    ????????????????

IR remote codes for lircd:

# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.9.0(default) on Sat Jan 14 14:26:39 2012
#
# contributed by danitool
#
# brand:                       notonlytv
# model no. of remote control: lv3h
# devices being controlled by this remote: hybrid pci LV3H
#

begin remote

  name  not_lv3h
  bits           13
  flags RC5|CONST_LENGTH
  eps            30
  aeps          100

  one           869   819
  zero          869   819
  plead         873
  gap          108077
  toggle_bit_mask 0x800

      begin codes
          KEY_TV                   0x1038
          0/0                      0x100C
          KEY_1                    0x1001
          KEY_2                    0x1002
          KEY_3                    0x1003
          KEY_4                    0x1004
          KEY_5                    0x1005
          KEY_6                    0x1006
          KEY_7                    0x1007
          KEY_8                    0x1008
          KEY_9                    0x1009
          KEY_0                    0x1000
          KEY_MUTE                 0x100A
          KEY_ESC                  0x1029
          KEY_CHANNELUP            0x1012
          KEY_CHANNELDOWN          0x1013
          KEY_VOLUMEUP             0x102B
          KEY_VOLUMEDOWN           0x102C
          KEY_OK                   0x100D
          KEY_UP                   0x1020
          KEY_DOWN                 0x1021
          KEY_LEFT                 0x1011
          KEY_RIGHT                0x1010
          KEY_RECORD               0x101F
          KEY_PLAY                 0x1017
          KEY_PAUSE                0x1016
          KEY_STOP                 0x100B
          KEY_FORWARD              0x1027
          KEY_REWIND               0x1026
          timeshift                0x101E
          snapshot                 0x100E
          KEY_SCREEN               0x102D
          -/0                      0x100F
          KEY_SHUFFLE              0x1014
          KEY_POWER                0x1025
      end codes

end remote

Errors

Sometimes the firmware fails to load

[ 4009.583858] cx88xx: cx88_print_irqbits: core:irq mpeg  [0x100000] ts_err?*
[ 4009.583864] cx8802: cx8802_mpeg_irq: mpeg:general errors: 0x00100000
[ 4009.821382] xc2028 6-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000.
[ 4013.134460] xc2028 6-0061: Loading firmware for type=D2633 DTV8 (210), id 0000000000000000.
[ 4013.181343] xc2028 6-0061: Loading SCODE for type=DTV78 DTV8 ZARLINK456 SCODE HAS_IF_4560 (62000300), id 0000000000000000.
[ 4013.193427] xc2028 6-0061: Incorrect readback of firmware version.
[ 4013.447484] xc2028 6-0061: Error! firmware not loaded
[ 4013.447491] xc2028 6-0061: Error -22 while loading base firmware
[ 4013.704136] xc2028 6-0061: Error! firmware not loaded
[ 4013.704139] xc2028 6-0061: Error -22 while loading base firmware
[ 4013.960808] xc2028 6-0061: Error! firmware not loaded
[ 4013.960813] xc2028 6-0061: Error -22 while loading base firmware
[ 4014.217499] xc2028 6-0061: Error! firmware not loaded
[ 4014.217503] xc2028 6-0061: Error -22 while loading base firmware
[ 4014.474142] xc2028 6-0061: Error! firmware not loaded
[ 4014.474149] xc2028 6-0061: Error -22 while loading base firmware
[ 4014.730791] xc2028 6-0061: Error! firmware not loaded
[ 4014.730793] xc2028 6-0061: Error -22 while loading base firmware
[ 4014.987468] xc2028 6-0061: Error! firmware not loaded
[ 4014.987473] xc2028 6-0061: Error -22 while loading base firmware
[ 4015.244119] xc2028 6-0061: Error! firmware not loaded
[ 4015.244121] xc2028 6-0061: Error -22 while loading base firmware
  • After this error, in recent kernels (Linux 4.9, 5.07), the only way to recover again the card is reloading the DVB modules:
    rmmod cx88_dvb ; rmmod videobuf2_dvb ; rmmod dvb-core ; modprobe cx88_dvb

The XC3028 firmware 2.4 version has less failures when loading it, but it often responds with a "i2c NAK bailout" and the the DVB tunning is worse.

EEPROM

For the official support we may need to know the contents of the EEPROM. As pointed by the main developer, probably there are different versions of the board, see https://patchwork.kernel.org/patch/2332631/

# modprobe i2c-dev
# i2cdetect -l
i2c-3   i2c             i915 gmbus dpc                          I2C adapter
i2c-1   i2c             i915 gmbus vga                          I2C adapter
i2c-6   i2c             cx88[0]                                 I2C adapter
i2c-4   i2c             i915 gmbus dpb                          I2C adapter
i2c-2   i2c             i915 gmbus panel                        I2C adapter
i2c-0   i2c             i915 gmbus ssc                          I2C adapter
i2c-5   i2c             i915 gmbus dpd                          I2C adapter

# i2cdump 6 0x50

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 07 ff ff ff f1 14 52 88 04 04 32 55 f8 00 a2 02    ?...??R???2U?.??
10: a1 00 40 63 06 11 44 30 03 df 40 80 00 20 00 73    ?.@c??D0??@?. .s
20: 3c 10 00 00 00 00 ff ff ff ff ff ff ff ff ff ff    <?..............
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff a0 00    ..............?.


Regspy

  • DVB-T tuned and working
CX2388x Card [0]:

Vendor ID:           0x14f1
Device ID:           0x8800
Subsystem ID:        0x885214f1

=================================================================================

CX2388x Card - Register Dump:
CX2388X_DEVICE_STATUS:           0000031c   (00000000 00000000 00000011 00011100)                 
CX2388X_VIDEO_INPUT:             00000784   (00000000 00000000 00000111 10000100)                 
CX2388X_TEMPORAL_DEC:            00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_AGC_BURST_DELAY:         00008888   (00000000 00000000 10001000 10001000)                 
CX2388X_BRIGHT_CONTRAST:         00003900   (00000000 00000000 00111001 00000000)                 
CX2388X_UVSATURATION:            00005a7f   (00000000 00000000 01011010 01111111)                 
CX2388X_HUE:                     00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_WHITE_CRUSH:             00003fcf   (00000000 00000000 00111111 11001111)                 
CX2388X_PIXEL_CNT_NOTCH:         0000046f   (00000000 00000000 00000100 01101111)                 
CX2388X_HORZ_DELAY_EVEN:         00000046   (00000000 00000000 00000000 01000110)                 
CX2388X_HORZ_DELAY_ODD:          00000046   (00000000 00000000 00000000 01000110)                 
CX2388X_VERT_DELAY_EVEN:         00000022   (00000000 00000000 00000000 00100010)                 
CX2388X_VERT_DELAY_ODD:          00000022   (00000000 00000000 00000000 00100010)                 
CX2388X_VDELAYCCIR_EVEN:         0000000c   (00000000 00000000 00000000 00001100)                 
CX2388X_VDELAYCCIR_ODD:          0000000e   (00000000 00000000 00000000 00001110)                 
CX2388X_HACTIVE_EVEN:            00000140   (00000000 00000000 00000001 01000000)                 
CX2388X_HACTIVE_ODD:             00000140   (00000000 00000000 00000001 01000000)                 
CX2388X_VACTIVE_EVEN:            00000240   (00000000 00000000 00000010 01000000)                 
CX2388X_VACTIVE_ODD:             00000240   (00000000 00000000 00000010 01000000)                 
CX2388X_HSCALE_EVEN:             00001ce6   (00000000 00000000 00011100 11100110)                 
CX2388X_HSCALE_ODD:              00001ce6   (00000000 00000000 00011100 11100110)                 
CX2388X_VSCALE_EVEN:             00001f9a   (00000000 00000000 00011111 10011010)                 
CX2388X_VSCALE_ODD:              00001f9a   (00000000 00000000 00011111 10011010)                 
CX2388X_FILTER_EVEN:             00000120   (00000000 00000000 00000001 00100000)                 
CX2388X_FILTER_ODD:              00000120   (00000000 00000000 00000001 00100000)                 
CX2388X_FORMAT_2HCOMB:           002f0100   (00000000 00101111 00000001 00000000)                 
CX2388X_PLL:                     013d14c9   (00000001 00111101 00010100 11001001)                 
CX2388X_PLL_ADJUST:              03f9f190   (00000011 11111001 11110001 10010000)                 
CX2388X_SAMPLERATECONV:          00019d5f   (00000000 00000001 10011101 01011111)                 
CX2388X_SAMPLERATEFIFO:          003f8008   (00000000 00111111 10000000 00001000)                 
CX2388X_SUBCARRIERSTEP:          00400000   (00000000 01000000 00000000 00000000)                 
CX2388X_SUBCARRIERSTEPDR:        00538e38   (00000000 01010011 10001110 00111000)                 
CX2388X_CAPTURECONTROL:          00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_VIDEO_COLOR_FORMAT:      00009000   (00000000 00000000 10010000 00000000)                 
CX2388X_VBI_SIZE:                00010000   (00000000 00000001 00000000 00000000)                 
CX2388X_FIELD_CAP_CNT:           00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_VIP_CONFIG:              00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_VIP_CONTBRGT:            00007a00   (00000000 00000000 01111010 00000000)                 
CX2388X_VIP_HSCALE:              00001233   (00000000 00000000 00010010 00110011)                 
CX2388X_VIP_VSCALE:              00001f9a   (00000000 00000000 00011111 10011010)                 
CX2388X_VBOS:                    00040a00   (00000000 00000100 00001010 00000000)                 
CX2388X_PINMUX_IO:               00000000   (00000000 00000000 00000000 00000000)                 
MO_GP0_IO:                       000000ff   (00000000 00000000 00000000 11111111)                 
MO_GP1_IO:                       0000f39e   (00000000 00000000 11110011 10011110)                 
MO_GP2_IO:                       00000001   (00000000 00000000 00000000 00000001)                 
MO_GP3_IO:                       00000000   (00000000 00000000 00000000 00000000)                 
MO_GPIO:                         00000000   (00000000 00000000 00000000 00000000)                 
MO_GPOE:                         00000000   (00000000 00000000 00000000 00000000)                 
MO_AUD_XFR_STAT:                 00000000   (00000000 00000000 00000000 00000000)                 
MO_AUDD_LNGTH:                   000001e0   (00000000 00000000 00000001 11100000)                 
MO_AUDR_LNGTH:                   00000800   (00000000 00000000 00001000 00000000)                 
CX2388X_DEV_CNTRL2:              00000000   (00000000 00000000 00000000 00000000)                 
MO_VID_DMACNTRL:                 00000000   (00000000 00000000 00000000 00000000)                 
MO_AUD_DMACNTRL:                 00000007   (00000000 00000000 00000000 00000111)                 
MO_TS_DMACNTRL:                  00000000   (00000000 00000000 00000000 00000000)                 
MO_VIP_DMACNTRL:                 00000000   (00000000 00000000 00000000 00000000)                 
MO_GPHST_DMACNTRL:               00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_PCI_INTMSK:              00000007   (00000000 00000000 00000000 00000111)                 
CX2388X_VID_INTMSK:              00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_AUD_INTMSK:              00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_TS_INTMSK:               00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_VIP_INTMSK:              00000000   (00000000 00000000 00000000 00000000)                 
CX2388X_GPHST_INTMSK:            00000000   (00000000 00000000 00000000 00000000)                 
MO_DMA25_PTR2:                   00184ab8   (00000000 00011000 01001010 10111000)                 
MO_DMA25_CNT1:                   0000002b   (00000000 00000000 00000000 00101011)                 
MO_DMA25_CNT2:                   00000000   (00000000 00000000 00000000 00000000)                 
MO_DMA26_PTR2:                   00184aa8   (00000000 00011000 01001010 10101000)                 
MO_DMA26_CNT1:                   0000000e   (00000000 00000000 00000000 00001110)                 
MO_DMA26_CNT2:                   00000000   (00000000 00000000 00000000 00000000)                 
0x0320d01:                       05000006   (00000101 00000000 00000000 00000110)                 
0x0320d02:                       00050082   (00000000 00000101 00000000 10000010)                 
0x0320d03:                       00000512   (00000000 00000000 00000101 00010010)                 
0x0320d04:                       00000005   (00000000 00000000 00000000 00000101)                 
0x0320d2a:                       00300034   (00000000 00110000 00000000 00110100)                 
0x0320d2b:                       0000304c   (00000000 00000000 00110000 01001100)                 
AUD_POLY0_DDS_CONSTANT:          000a62b4   (00000000 00001010 01100010 10110100)                 
AUD_IIR1_0_SEL:                  00000001   (00000000 00000000 00000000 00000001)                 
AUD_IIR1_1_SEL:                  00000000   (00000000 00000000 00000000 00000000)                 
AUD_IIR1_2_SEL:                  0000001f   (00000000 00000000 00000000 00011111)                 
AUD_IIR1_3_SEL:                  00000020   (00000000 00000000 00000000 00100000)                 
AUD_IIR1_4_SEL:                  0000000d   (00000000 00000000 00000000 00001101)                 
AUD_IIR1_5_SEL:                  00000007   (00000000 00000000 00000000 00000111)                 
AUD_IIR1_0_SHIFT:                00000000   (00000000 00000000 00000000 00000000)                 
AUD_IIR1_1_SHIFT:                00000000   (00000000 00000000 00000000 00000000)                 
AUD_IIR1_2_SHIFT:                00000007   (00000000 00000000 00000000 00000111)                 
AUD_IIR1_3_SHIFT:                00000007   (00000000 00000000 00000000 00000111)                 
AUD_IIR1_4_SHIFT:                00000007   (00000000 00000000 00000000 00000111)                 
AUD_IIR1_5_SHIFT:                00000007   (00000000 00000000 00000000 00000111)                 
AUD_IIR2_0_SEL:                  00000021   (00000000 00000000 00000000 00100001)                 
AUD_IIR2_1_SEL:                  00000023   (00000000 00000000 00000000 00100011)                 
AUD_IIR2_2_SEL:                  00000004   (00000000 00000000 00000000 00000100)                 
AUD_IIR2_3_SEL:                  00000005   (00000000 00000000 00000000 00000101)                 
AUD_IIR3_0_SEL:                  00000004   (00000000 00000000 00000000 00000100)                 
AUD_IIR3_1_SEL:                  00000005   (00000000 00000000 00000000 00000101)                 
AUD_IIR3_2_SEL:                  00000003   (00000000 00000000 00000000 00000011)                 
AUD_IIR3_0_SHIFT:                00000000   (00000000 00000000 00000000 00000000)                 
AUD_IIR3_1_SHIFT:                00000000   (00000000 00000000 00000000 00000000)                 
AUD_IIR3_2_SHIFT:                00000000   (00000000 00000000 00000000 00000000)                 
AUD_IIR4_0_SEL:                  0000001d   (00000000 00000000 00000000 00011101)                 
AUD_IIR4_1_SEL:                  00000019   (00000000 00000000 00000000 00011001)                 
AUD_IIR4_2_SEL:                  00000008   (00000000 00000000 00000000 00001000)                 
AUD_IIR4_0_SHIFT:                00000000   (00000000 00000000 00000000 00000000)                 
AUD_IIR4_1_SHIFT:                00000007   (00000000 00000000 00000000 00000111)                 
AUD_IIR4_2_SHIFT:                00000007   (00000000 00000000 00000000 00000111)                 
AUD_IIR4_0_CA0:                  0003e57e   (00000000 00000011 11100101 01111110)                 
AUD_IIR4_0_CA1:                  00005e11   (00000000 00000000 01011110 00010001)                 
AUD_IIR4_0_CA2:                  0003a7cf   (00000000 00000011 10100111 11001111)                 
AUD_IIR4_0_CB0:                  00002368   (00000000 00000000 00100011 01101000)                 
AUD_IIR4_0_CB1:                  0003bf1b   (00000000 00000011 10111111 00011011)                 
AUD_IIR4_1_CA0:                  00006349   (00000000 00000000 01100011 01001001)                 
AUD_IIR4_1_CA1:                  00006f27   (00000000 00000000 01101111 00100111)                 
AUD_IIR4_1_CA2:                  0000e7a3   (00000000 00000000 11100111 10100011)                 
AUD_IIR4_1_CB0:                  00005653   (00000000 00000000 01010110 01010011)                 
AUD_IIR4_1_CB1:                  0000cf97   (00000000 00000000 11001111 10010111)                 
AUD_IIR4_2_CA0:                  00006349   (00000000 00000000 01100011 01001001)                 
AUD_IIR4_2_CA1:                  00006f27   (00000000 00000000 01101111 00100111)                 
AUD_IIR4_2_CA2:                  0000e7a3   (00000000 00000000 11100111 10100011)                 
AUD_IIR4_2_CB0:                  00005653   (00000000 00000000 01010110 01010011)                 
AUD_IIR4_2_CB1:                  0000cf97   (00000000 00000000 11001111 10010111)                 
AUD_HP_MD_IIR4_1:                00000001   (00000000 00000000 00000000 00000001)                 
AUD_HP_PROG_IIR4_1:              0000001a   (00000000 00000000 00000000 00011010)                 
AUD_DN0_FREQ:                    0000312b   (00000000 00000000 00110001 00101011)                 
AUD_DN1_FREQ:                    00003318   (00000000 00000000 00110011 00011000)                 
AUD_DN1_SRC_SEL:                 00000017   (00000000 00000000 00000000 00010111)                 
AUD_DN1_SHFT:                    00000007   (00000000 00000000 00000000 00000111)                 
AUD_DN1_AFC:                     00000000   (00000000 00000000 00000000 00000000)                 
AUD_DN1_FREQ_SHIFT:              00000000   (00000000 00000000 00000000 00000000)                 
AUD_DN2_FREQ:                    00003551   (00000000 00000000 00110101 01010001)                 
AUD_DN2_SRC_SEL:                 00000001   (00000000 00000000 00000000 00000001)                 
AUD_DN2_SHFT:                    00000000   (00000000 00000000 00000000 00000000)                 
AUD_DN2_AFC:                     00000002   (00000000 00000000 00000000 00000010)                 
AUD_DN2_FREQ_SHIFT:              00000000   (00000000 00000000 00000000 00000000)                 
AUD_PDET_SRC:                    00000014   (00000000 00000000 00000000 00010100)                 
AUD_PDET_SHIFT:                  00000000   (00000000 00000000 00000000 00000000)                 
AUD_DEEMPH0_SRC_SEL:             0000000b   (00000000 00000000 00000000 00001011)                 
AUD_DEEMPH1_SRC_SEL:             0000000d   (00000000 00000000 00000000 00001101)                 
AUD_DEEMPH0_SHIFT:               00000000   (00000000 00000000 00000000 00000000)                 
AUD_DEEMPH1_SHIFT:               00000000   (00000000 00000000 00000000 00000000)                 
AUD_DEEMPH0_G0:                  00000800   (00000000 00000000 00001000 00000000)                 
AUD_DEEMPH0_A0:                  0000777a   (00000000 00000000 01110111 01111010)                 
AUD_DEEMPH0_B0:                  00000000   (00000000 00000000 00000000 00000000)                 
AUD_DEEMPH0_A1:                  0003f062   (00000000 00000011 11110000 01100010)                 
AUD_DEEMPH0_B1:                  00000000   (00000000 00000000 00000000 00000000)                 
AUD_DEEMPH1_G0:                  00000800   (00000000 00000000 00001000 00000000)                 
AUD_DEEMPH1_A0:                  0000777a   (00000000 00000000 01110111 01111010)                 
AUD_DEEMPH1_B0:                  00000000   (00000000 00000000 00000000 00000000)                 
AUD_DEEMPH1_A1:                  0003f062   (00000000 00000011 11110000 01100010)                 
AUD_DEEMPH1_B1:                  00000000   (00000000 00000000 00000000 00000000)                 
AUD_DMD_RA_DDS:                  002a4f1d   (00000000 00101010 01001111 00011101)                 
AUD_RATE_ADJ1:                   00000100   (00000000 00000000 00000001 00000000)                 
AUD_RATE_ADJ2:                   00000200   (00000000 00000000 00000010 00000000)                 
AUD_RATE_ADJ3:                   00000300   (00000000 00000000 00000011 00000000)                 
AUD_RATE_ADJ4:                   00000400   (00000000 00000000 00000100 00000000)                 
AUD_RATE_ADJ5:                   00000500   (00000000 00000000 00000101 00000000)                 
AUD_C2_UP_THR:                   00005400   (00000000 00000000 01010100 00000000)                 
AUD_C2_LO_THR:                   00003000   (00000000 00000000 00110000 00000000)                 
AUD_C1_UP_THR:                   00007000   (00000000 00000000 01110000 00000000)                 
AUD_C1_LO_THR:                   00005400   (00000000 00000000 01010100 00000000)                 
AUD_CTL:                         00001208   (00000000 00000000 00010010 00001000)                 
AUD_DCOC_0_SRC:                  0000001a   (00000000 00000000 00000000 00011010)                 
AUD_DCOC_1_SRC:                  0000001b   (00000000 00000000 00000000 00011011)                 
AUD_DCOC1_SHIFT:                 00000000   (00000000 00000000 00000000 00000000)                 
AUD_DCOC_1_SHIFT_IN0:            0000000a   (00000000 00000000 00000000 00001010)                 
AUD_DCOC_1_SHIFT_IN1:            00000008   (00000000 00000000 00000000 00001000)                 
AUD_DCOC_PASS_IN:                00000003   (00000000 00000000 00000000 00000011)                 
AUD_DCOC_2_SRC:                  0000001b   (00000000 00000000 00000000 00011011)                 
AUD_IIR4_0_SEL:                  0000001d   (00000000 00000000 00000000 00011101)                 
AUD_POLY0_DDS_CONSTANT:          000a62b4   (00000000 00001010 01100010 10110100)                 
AUD_PHASE_FIX_CTL:               00000000   (00000000 00000000 00000000 00000000)                 
AUD_CORDIC_SHIFT_1:              00000007   (00000000 00000000 00000000 00000111)                 
AUD_PLL_EN:                      00000000   (00000000 00000000 00000000 00000000)                 
AUD_PLL_PRESCALE:                00000002   (00000000 00000000 00000000 00000010)                 
AUD_PLL_INT:                     0000001e   (00000000 00000000 00000000 00011110)                 
AUD_AFE_12DB_EN:                 00000001   (00000000 00000000 00000000 00000001)                 
AUD_DBX_IN_GAIN:                 00000000   (00000000 00000000 00000000 00000000)                 
AUD_DBX_WBE_GAIN:                00000000   (00000000 00000000 00000000 00000000)                 
AUD_DBX_SE_GAIN:                 00000000   (00000000 00000000 00000000 00000000)                 
AUD_OUT1_SHIFT:                  00000000   (00000000 00000000 00000000 00000000)                 
AUD_INIT:                        00000004   (00000000 00000000 00000000 00000100)                 
AUD_STATUS:                      0000fbf2   (00000000 00000000 11111011 11110010)                 
AUD_VOL_CTL:                     000001c0   (00000000 00000000 00000001 11000000)                 
AUD_BAL_CTL:                     00000000   (00000000 00000000 00000000 00000000)                 

end of dump