From: Oliver Schinagl <oliver+list@schinagl.nl>
To: Antti Palosaari <crope@iki.fi>
Cc: linux-media <linux-media@vger.kernel.org>
Subject: Re: [PATCH] Support for Asus MyCinema U3100Mini Plus
Date: Tue, 18 Sep 2012 19:18:28 +0200 [thread overview]
Message-ID: <5058ACE4.6070408@schinagl.nl> (raw)
In-Reply-To: <50579CC3.5040703@schinagl.nl>
On 09/17/12 23:57, Oliver Schinagl wrote:
> On 09/17/12 23:07, Antti Palosaari wrote:
>> On 09/17/2012 11:43 PM, Oliver Schinagl wrote:
>>> On 09/17/12 17:20, Oliver Schinagl wrote:
>>>
>>>>>>> If tuner communication is really working and it says chip id is 0x5a
>>>>>>> then it is different than driver knows. It could be new revision of
>>>>>>> tuner. Change chip_id to match 0x5a
>>>>>>>
>>>>>> Ah, so it's called chip_id on one end, but tuner_id on the other end.
>>>>>> If/when I got this link working properly, I'll write a patch to fix
>>>>>> some
>>>>>> naming consistencies.
>>>>>
>>>>> No, you are totally wrong now. Chip ID is value inside chip register.
>>>>> Almost every chip has some chip id value which driver could detect it
>>>>> is speaking with correct chip. In that case value is stored inside
>>>>> fc2580.
>>>>>
>>>>> Tuner ID is value stored inside AF9035 chip / eeprom. It is
>>>>> configuration value for AF9035 hardware design. It says "that AF9035
>>>>> device uses FC2580 RF-tuner". AF9035 (FC2580) tuner ID and FC2580 chip
>>>>> ID are different values having different meaning.
>>>> Ok, I understand the difference between Chip ID and Tuner ID I guess,
>>>> and with my new knowledge about dynamic debug I know also understand my
>>>> findings and where it goes wrong. I also know understand the chipID is
>>>> stored in fc2580.c under the fc2580_attach, where it checks for 0x56.
>>>> Appearantly my chipID is 0x5a. I wasn't triggered by this as none of
>>>> the
>>>> other fc2580 or af9035 devices had such a change so it wasn't obvious.
>>>> Tuner ID is actively being chechked/set in the source, so that seemed
>>>> more obvious.
>>> It can't be 0x5a as chipid. I actually found that the vendor driver also
>>> reads from 0x01 once to test the chip.
>>>
>>> This function is a generic function which tests I2C interface's
>>> availability by reading out it's I2C id data from reg. address '0x01'.
>>>
>>> int fc2580_i2c_test( void ) {
>>> return ( fc2580_i2c_read( 0x01 ) == 0x56 )? 0x01 : 0x00;
>>> }
>>>
>>> So something else is going weird. chipid being 0x56 is good though; same
>>> chip revision. However I now got my system to hang, got some soft-hang
>>> errors and the driver only reported failure on loading. No other debug
>>> that I saw from dmesg before the crash. Will investigate more.
>>
>> huoh.
>>
>> usb 2-2: rtl28xxu_ctrl_msg: c0 00 ac 01 00 03 01 00 <<< 56
>> usb 2-2: rtl28xxu_ctrl_msg: 40 00 ac 01 10 03 01 00 >>> ff
>> usb 2-2: rtl28xxu_ctrl_msg: c0 00 ac 01 00 03 01 00 <<< 56
>> usb 2-2: rtl28xxu_ctrl_msg: 40 00 ac 01 10 03 01 00 >>> 00
>> usb 2-2: rtl28xxu_ctrl_msg: c0 00 ac 01 00 03 01 00 <<< 56
>> i2c i2c-5: fc2580: FCI FC2580 successfully identified
>>
>> Why do you think its value is static - it cannot be changed...
> I'm not saying it can be at all :p
>
> according to debug output, I had
>
> [ 188.054019] i2c i2c-1: fc2580_attach: chip_id=5a
>
> so to your suggestion, I made it accept chip_id 0x5a as well.
> if ((chip_id != 0x56) || (chip_id != 0x5a))
> goto err;
>
> But theoretically, it can't be 0x5a, as even the vendor driver would
> only check for 0x56 (the function actually never gets called, so any
> revision according the those sources could work).
>
> So I will investigate why it would return 0x5a for the chip id :)
>
>
Turns out, the chip REALLY REALLY is 0x5a. I took some snapshots of both
the tuner and bridge/demodulator and uploaded them to the linuxtv wiki
[1]. If you could compare that one to your Chips? The markings are:
FCI 2580 01BD
AF9035B-N2
1012 QJFSQ
On a more serious note, right now, the driver soft-locks-up. Either with
or without accepting the 0x5a chip_id.
What I do is, manually load all modules, enable debugging and plug in
the device.
Everything appears to work normally for a while, I can do the dmesg dump
etc, but after about 22 seconds, I get this warning:
BUG: soft lockup - CPU#2 stuck for 22s! [udev-acl:2320]
(With the CPU# number being arbitrary). 22s later, another CPU fails. I
haven't waited for the other core's to fail.
Also, removing the module is impossible. Rebooting also fails. I have to
sys-req reboot it.
I don't know how much my patch is responsible for this of course, but
since attaching of the tuner fails due to the wrong chip_id in one case,
the only code affected is the USB id that loads the driver/firmware. I
did see this with the older firmware too btw, so appears to be firmware
unrelated.
In the meantime, I continue finding out why after accepting chip_id
0x5a, it still fails on tuner attach. I suppose somehow the tuner_id
isn't matching, which is weird, but will find out about it in the next
few days.
[1] http://www.linuxtv.org/wiki/index.php/Asus_U3100_Mini_plus_DVB-T
>>
>> Antti
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2012-09-18 19:18 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-09 20:47 [PATCH] Support for Asus MyCinema U3100Mini Plus oliver
2012-09-09 20:49 ` Oliver Schinagl
2012-09-09 21:51 ` Antti Palosaari
2012-09-09 22:26 ` Oliver Schinagl
2012-09-09 22:29 ` Antti Palosaari
2012-09-10 9:58 ` Oliver Schinagl
2012-09-10 11:46 ` Antti Palosaari
2012-09-10 14:29 ` Oliver Schinagl
2012-09-10 17:28 ` Oliver Schinagl
2012-09-16 14:07 ` Oliver Schinagl
2012-09-16 16:43 ` Antti Palosaari
2012-09-16 15:03 ` Oliver Schinagl
2012-09-16 17:25 ` Antti Palosaari
2012-09-16 22:10 ` Oliver Schinagl
2012-09-16 23:36 ` Antti Palosaari
2012-09-17 8:25 ` Oliver Schinagl
2012-09-17 13:02 ` Oliver Schinagl
2012-09-17 13:16 ` Antti Palosaari
2012-09-17 13:26 ` Oliver Schinagl
2012-09-17 13:52 ` Antti Palosaari
2012-09-17 15:20 ` Oliver Schinagl
2012-09-17 20:43 ` Oliver Schinagl
2012-09-17 21:07 ` Antti Palosaari
2012-09-17 21:57 ` Oliver Schinagl
2012-09-18 17:18 ` Oliver Schinagl [this message]
2012-09-18 22:51 ` Antti Palosaari
2012-09-19 10:41 ` Oliver Schinagl
2012-09-19 10:53 ` Antti Palosaari
2012-09-17 20:43 ` Oliver Schinagl
2012-09-18 22:59 ` Antti Palosaari
-- strict thread matches above, loose matches on Subject: below --
2012-09-19 18:44 oliver
2012-09-19 20:52 ` Devin Heitmueller
2012-09-19 22:47 ` Oliver Schinagl
2012-09-20 18:54 ` Oliver Schinagl
2012-09-20 19:21 ` Devin Heitmueller
2012-09-19 21:36 ` Antti Palosaari
2012-09-20 18:54 ` Oliver Schinagl
2012-09-20 18:57 oliver
2012-09-20 19:15 ` Antti Palosaari
2012-09-20 19:28 ` Oliver Schinagl
2012-09-20 19:37 ` Antti Palosaari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5058ACE4.6070408@schinagl.nl \
--to=oliver+list@schinagl.nl \
--cc=crope@iki.fi \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).