[linux-dvb] Problems with the Mantis driver

Bernhard Rosenkraenzer bero at arklinux.org
Sun Oct 15 12:58:19 CEST 2006


Hi,
I've just tried the Mantis driver on a Twinhan DVB-S card (PCI ID 1822:4e35 
subsystem 1822:0014)

The card is detected correctly:
Mantis Rev 1, irq: 19, latency: 64
 memory: 0xfdfff000, mmio: 0xdca7e000
get_mac_address (1): MAC Address=[00:08:ca:19:9e:2d]
get_subvendor_id (1): Sub Vendor ID=[0x1822]
get_subdevice_id (1): Sub Device ID=[0x0014]
mantis_alloc_buffers (1): DMA=0x12520000 cpu=0xd2520000 size=65536
mantis_alloc_buffers (1): RISC=0x124fb000 cpu=0xd24fb000 size=1000
DVB: registering new adapter (Mantis dvb adapter).
mantis_frontend_init (1): Probing for MB86A16 (DVB-S/DSS)
mantis_frontend_init (1): found MB86A16 DVB-S/DSS frontend @0x08
DVB: registering frontend 0 (Fujitsu MB86A16 DVB-S)...

But trying to actually use it fails. strace-ing mplayer shows:

open("/dev/dvb/adapter0/frontend0", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3
open("/dev/dvb/adapter0/demux0", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 4
open("/dev/dvb/adapter0/demux0", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 5
open("/dev/dvb/adapter0/demux0", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 6
open("/dev/dvb/adapter0/dvr0", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 7
write(1, "dvb_tune Freq: 12188000\n", 24dvb_tune Freq: 12188000
) = 24
ioctl(3, FE_GET_INFO, { name="Fujitsu MB86A16 DVB-S", type=FE_QPSK, 
frequency_min=950000, frequency_max=2150000, frequency_stepsize=125, 
frequency_tolerance=0, symbol_rate_min=1000000, symbol_rate_max=45000000, 
symbol_rate_tolerance=500, caps=FE_CAN_INVERSION_AUTO|FE_CAN_FEC_1_2|
FE_CAN_FEC_2_3|FE_CAN_FEC_3_4|FE_CAN_FEC_5_6|FE_CAN_FEC_7_8|FE_CAN_FEC_AUTO|
FE_CAN_QPSK }) = 0
ioctl(3, FE_SET_TONE, 0x1)              = 0
ioctl(3, FE_SET_VOLTAGE, 0x1)           = 0
nanosleep({0, 15000000}, NULL)          = 0
ioctl(3, FE_DISEQC_SEND_MASTER_CMD, 0xbfa09030) = 0
nanosleep({0, 0}, NULL)                 = 0
nanosleep({0, 15000000}, NULL)          = 0
ioctl(3, FE_DISEQC_SEND_BURST, 0)       = 0
nanosleep({0, 15000000}, NULL)          = 0
ioctl(3, FE_SET_TONE, 0)                = 0
nanosleep({0, 100000000}, NULL)         = 0
ioctl(3, FE_SET_FRONTEND, { frequency=1588000, inversion=2, symbol 
rate=27500000, fec_inner: 9}) = 0
time(NULL)                              = 1160916477
poll([{fd=3, events=POLLPRI, revents=POLLPRI}], 1, 30000) = 1
ioctl(3, FE_READ_STATUS, 0)             = 0 [<------ This call takes a very 
long time]
nanosleep({0, 10000000}, NULL)          = 0
time(NULL)                              = 1160916494
poll([{fd=3, events=POLLPRI, revents=POLLPRI}], 1, 30000) = 1
ioctl(3, FE_READ_STATUS, 0)             = 0


Looks like the lock status is not being returned correctly.

dmesg shows:
mb86a16_write: writing to [0x08],Reg[0x20],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x16],Data[0x80]
mb86a16_write: writing to [0x08],Reg[0x1e],Data[0x00]
vp1034_set_voltage (1): Polarization=[18V]
mb86a16_write: writing to [0x08],Reg[0x16],Data[0x80]
mb86a16_write: writing to [0x08],Reg[0x1e],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x20],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x18],Data[0xe0]
mb86a16_write: writing to [0x08],Reg[0x19],Data[0x10]
mb86a16_write: writing to [0x08],Reg[0x1a],Data[0x38]
mb86a16_write: writing to [0x08],Reg[0x1b],Data[0xf3]
mb86a16_write: writing to [0x08],Reg[0x16],Data[0x94]
mb86a16_write: writing to [0x08],Reg[0x1e],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x16],Data[0x98]
mb86a16_write: writing to [0x08],Reg[0x1e],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x20],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x16],Data[0xa0]
mb86a16_write: writing to [0x08],Reg[0x1e],Data[0x01]
mb86a16_set_fe: freq=1588 Mhz, symbrt=27500 Ksps
mb86a16_write: writing to [0x08],Reg[0x32],Data[0x02]
mb86a16_write: writing to [0x08],Reg[0x06],Data[0xdf]
mb86a16_write: writing to [0x08],Reg[0x0a],Data[0x3d]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x58],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x59],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x08],Data[0x16]
mb86a16_write: writing to [0x08],Reg[0x2f],Data[0x21]
mb86a16_write: writing to [0x08],Reg[0x39],Data[0x38]
mb86a16_write: writing to [0x08],Reg[0x3d],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x3e],Data[0x1c]
mb86a16_write: writing to [0x08],Reg[0x3f],Data[0x20]
mb86a16_write: writing to [0x08],Reg[0x40],Data[0x1e]
mb86a16_write: writing to [0x08],Reg[0x41],Data[0x23]
mb86a16_write: writing to [0x08],Reg[0x54],Data[0xff]
mb86a16_write: writing to [0x08],Reg[0x00],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x2d],Data[0x1a]
mb86a16_write: writing to [0x08],Reg[0x49],Data[0x7a]
mb86a16_write: writing to [0x08],Reg[0x2a],Data[0x32]
mb86a16_write: writing to [0x08],Reg[0x36],Data[0x06]
mb86a16_write: writing to [0x08],Reg[0x33],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x03],Data[0x02]
mb86a16_write: writing to [0x08],Reg[0x04],Data[0x4e]
mb86a16_write: writing to [0x08],Reg[0x05],Data[0x03]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x13]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x31]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0xa5]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x0c],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x13]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x31]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0xd5]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0x74]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x0c],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x13]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x31]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0x75]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0x8c]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x0f]
mb86a16_write: writing to [0x08],Reg[0x0c],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x13]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x32]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0x15]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0xdf]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x0f]
mb86a16_write: writing to [0x08],Reg[0x0c],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x13]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x31]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0x35]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0x21]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x0c],Data[0x04]
mb86a16_set_fe: ------ Signal detect ------ [swp_freq=[1574250, srate=27500]]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x13]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x31]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0x35]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0x21]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x36],Data[0x36]
mb86a16_write: writing to [0x08],Reg[0x03],Data[0x02]
mb86a16_write: writing to [0x08],Reg[0x04],Data[0xe1]
mb86a16_write: writing to [0x08],Reg[0x05],Data[0x03]
mb86a16_write: writing to [0x08],Reg[0x0c],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x03],Data[0x02]
mb86a16_write: writing to [0x08],Reg[0x04],Data[0x4e]
mb86a16_write: writing to [0x08],Reg[0x05],Data[0x03]
mb86a16_write: writing to [0x08],Reg[0x0c],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x03],Data[0x02]
mb86a16_write: writing to [0x08],Reg[0x04],Data[0xbb]
mb86a16_write: writing to [0x08],Reg[0x05],Data[0x02]
mb86a16_write: writing to [0x08],Reg[0x0c],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x36],Data[0x06]
mb86a16_set_fe: ***** Signal Found *****
mb86a16_set_fe:  Start Freq Error Check
mb86a16_write: writing to [0x08],Reg[0x33],Data[0x39]
mb86a16_write: writing to [0x08],Reg[0x03],Data[0x02]
mb86a16_write: writing to [0x08],Reg[0x04],Data[0x4e]
mb86a16_write: writing to [0x08],Reg[0x05],Data[0x03]
mb86a16_write: writing to [0x08],Reg[0x49],Data[0x7e]
mb86a16_write: writing to [0x08],Reg[0x2a],Data[0x12]
mb86a16_write: writing to [0x08],Reg[0x58],Data[0x21]
mb86a16_write: writing to [0x08],Reg[0x59],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x0c],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x03],Data[0x09]
mb86a16_write: writing to [0x08],Reg[0x04],Data[0x7f]
mb86a16_write: writing to [0x08],Reg[0x05],Data[0x06]
mb86a16_write: writing to [0x08],Reg[0x2a],Data[0x2a]
mb86a16_write: writing to [0x08],Reg[0x2d],Data[0x10]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x19]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x20]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x61]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0xd4]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0xdb]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x0f]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x19]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x20]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x62]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0x04]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x19]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x20]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x62]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0x35]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0x27]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x00]
mb86a16_write: writing to [0x08],Reg[0x21],Data[0x19]
mb86a16_write: writing to [0x08],Reg[0x22],Data[0x20]
mb86a16_write: writing to [0x08],Reg[0x23],Data[0x61]
mb86a16_write: writing to [0x08],Reg[0x24],Data[0x94]
mb86a16_write: writing to [0x08],Reg[0x25],Data[0x01]
mb86a16_write: writing to [0x08],Reg[0x2b],Data[0x0c]
mb86a16_write: writing to [0x08],Reg[0x2c],Data[0x00]
mb86a16_set_fe: SWEEP Frequency = 1568011
mb86a16_set_fe: Adjusting .., DELTA Freq = 0, SWEEP Freq=1568011
mb86a16_set_fe: NO  --  SIGNAL !
sync_chk: Status = 80,


A KNC card in the same box on the same cable works ok.
Any ideas?

Best regards,
bero



More information about the linux-dvb mailing list