New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TBS6280 Black Screen #104
Comments
Turned on debugfs for modules cxd2820r and saa716x_budget and obtained the following trace (partial log of very long trace) when trying to tune to UK BBC2: Jun 27 17:22:05 Andromeda kernel: [ 278.665825] i2c i2c-9: cxd2820r_read_status: delsys=3 |
With further investigation and code instrumentation I find that the tda18212 tuner is failing with error -22. It appears that the call to regmap_bulk_write is expecting the value of map->format.parse_inplace to be non zero: What value should I get ? Thanks |
Just for interest I replaced the regmap_bulk_write call with a call to the following code added to tda18212.c: static int tda18212_wr_regs(struct regmap *map, u8 reg, u8 *val, int len) My tbs6280 is now working with this hack in place. |
My tbs6280 in not working the card appears to be remembering the tuning setup from a previous boot to the kernel with the older software. The tda18212 driver reports as follows when trying to run my test after a power down reboot. [ 400.617982] tda18212 9-0060: delivery_system=3 frequency=522000000 bandwidth_hz=8000000 |
After further investigation I have found that the following patch does allow my tbs6280 to initialise correctly and tune to channels: --- /usr/src/linux-4.1.1.old/drivers/base/regmap/regmap-i2c.c 2015-06-22 06:05:43.000000000 +0100 +static int regmap_i2c_write(void *context, const void *data, size_t count);
static int regmap_smbus_word_reg_read(void *context, unsigned int reg, The regmap_bulk_write call in the tda81212 code now appears to work as intended. |
Hi FosterSM, Firstly - nice work in finding a fix for this - I've had this issue for a bit but am also running an older kernel. The patch appears to have got a bit mangled after being pasted in here by containing some valid markdown which has been rendered as a bulleted list. Could you re-post the text but surround it in 3 backticks (see https://help.github.com/articles/markdown-basics/#multiple-lines) so I can copy and paste it, or create a pull-request or something? I'll try and make some time (I don't have much) to download the kernel source and test it if you can. Once again, thanks, Tim |
Ok here is my patch again.
|
I've just created a pull request to fix this - there's no need to hack regmap like that. RegMap is incorrectly trying to use SMBUS and it can't use that for more that a single write - hence the lack of .write and .read functions, and the -EINVAL return from bulk_write. Tell it that I2C is available and the bulk_write call will work fine.
|
Thanks @jdenson12 - PR merged. |
I am trying to get the latest saa716x_budget driver working on my TB6280. I have downloaded and built the code using the following script:
! /bin/sh
cd /tmp
git clone git://linuxtv.org/media_build.git
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media
cd media_build
make dir DIR=../media
make distclean
make
make install
exit $?
The kernel I am using is the latest version 4.1
I get the following modules loaded with:
modprobe saa716x_budget int_type=1
saa716x_budget 21672 2
tas2101 7532 1 saa716x_budget
cxd2820r 13144 1 saa716x_budget
mb86a16 17438 1 saa716x_budget
cx24117 10003 1 saa716x_budget
saa716x_core 51360 1 saa716x_budget
dvb_core 72870 3 saa716x_core,saa716x_budget,cxd2820r
I get the following in /dev:
/dev/dvb/:
total 0
drwxr-xr-x 2 root root 120 Jun 24 10:21 adapter0
drwxr-xr-x 2 root root 120 Jun 24 10:21 adapter1
/dev/dvb/adapter0:
total 0
crw-rw---- 1 root video 212, 0 Jun 24 10:21 demux0
crw-rw---- 1 root video 212, 1 Jun 24 10:21 dvr0
crw-rw---- 1 root video 212, 3 Jun 24 10:21 frontend0
crw-rw---- 1 root video 212, 2 Jun 24 10:21 net0
/dev/dvb/adapter1:
total 0
crw-rw---- 1 root video 212, 4 Jun 24 10:21 demux0
crw-rw---- 1 root video 212, 5 Jun 24 10:21 dvr0
crw-rw---- 1 root video 212, 7 Jun 24 10:21 frontend0
crw-rw---- 1 root video 212, 6 Jun 24 10:21 net0
Every thing looks ok but if I try to use the device by running for example:
mplayer -vo vdpau:deint=4 dvb://1@"BBC TWO" -dr -cache 4096 -slave
I get the following error:
MPlayer SVN-r37344-4.9.2 (C) 2000-2014 MPlayer Team
183 audio & 397 video codecs
Playing dvb://1@BBC TWO.
dvb_tune Freq: 522000000
Not able to lock to the signal on the given frequency, timeout: 30
dvb_tune, TUNING FAILED
ERROR, COULDN'T SET CHANNEL 17: Failed to open dvb://1@BBC TWO.
Exiting... (End of file)
I have an earlier version of the saa716x_budget (two years plus old ??) code built into linux 3.14.45 and that is working fine on the same card with the same test. Could you suggest a way forward ?
Thanks
The text was updated successfully, but these errors were encountered: