* Re: probe issue for Dice/OXFW drivers
[not found] <55CA9C07.40702@sakamocchi.jp>
@ 2015-08-12 9:20 ` Clemens Ladisch
2015-08-17 15:30 ` Takashi Sakamoto
0 siblings, 1 reply; 2+ messages in thread
From: Clemens Ladisch @ 2015-08-12 9:20 UTC (permalink / raw)
To: Takashi Sakamoto; +Cc: alsa-devel@alsa-project.org, Etilem
Takashi Sakamoto wrote:
> Recently, I received an issue from a user of Mackie Onyx-i series.
> According to the user, snd-dice is not applied to his Dice model.
> [...] According to the log, I cannot find the first
> transaction which snd-dice performs. Additionally, no error messages in
> syslog.
There are some checks performed before the first actual transaction.
The kernel loads the driver if an entry in dice_id_table[] matches, i.e.,
if version==1. This values indeed is in the unit directory:
> ROM header and bus information block
> -----------------------------------------------------------------
> 400 0404f507 bus_info_length 4, crc_length 4, crc 62727
> 404 31333934 bus_name "1394"
> 408 e0008102 irmc 1, cmc 1, isc 1, bmc 0, cyc_clk_acc 0, max_rec 8 (512)
> 40c 000ff210 company_id 000ff2 |
> 410 01800af7 device_id 1001800af7 | EUI-64 000ff21001800af7
>
> root directory
> -----------------------------------------------------------------
> 414 000639d3 directory_length 6, crc 14803
> 418 03000ff2 vendor
> 41c 8100000a --> descriptor leaf at 444
> 420 17000006 model
> 424 8100000d --> descriptor leaf at 458
> 428 0c0087c0 node capabilities per IEEE 1394
> 42c d1000001 --> unit directory at 430
>
> unit directory at 430
> -----------------------------------------------------------------
> 430 00045246 directory_length 4, crc 21062
> 434 12000ff2 specifier id
> 438 13000001 version
> 43c 17000006 model
> 440 8100000b --> descriptor leaf at 46c
The dice_interface_check() function then makes other checks:
/*
* Check that GUID and unit directory are constructed according to DICE
* rules, i.e., that the specifier ID is the GUID's OUI, and that the
* GUID chip ID consists of the 8-bit category ID, the 10-bit product
* ID, and a 22-bit serial number.
*/
These values are correct, except for the category ID.
The driver already has an category ID exception for Weiss devices.
It would be possible to add another exception, but given that firmware
writers apparently like to change this value without good reason, it
might be a better idea to just remove the category ID check.
Regards,
Clemens
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: probe issue for Dice/OXFW drivers
2015-08-12 9:20 ` probe issue for Dice/OXFW drivers Clemens Ladisch
@ 2015-08-17 15:30 ` Takashi Sakamoto
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Sakamoto @ 2015-08-17 15:30 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel@alsa-project.org, Etilem
Hi Clemens,
On Aug 12 2015 18:20, Clemens Ladisch wrote:
>> ROM header and bus information block
>> -----------------------------------------------------------------
>> 400 0404f507 bus_info_length 4, crc_length 4, crc 62727
>> 404 31333934 bus_name "1394"
>> 408 e0008102 irmc 1, cmc 1, isc 1, bmc 0, cyc_clk_acc 0, max_rec 8 (512)
>> 40c 000ff210 company_id 000ff2 |
>> 410 01800af7 device_id 1001800af7 | EUI-64 000ff21001800af7
>>
>> root directory
>> -----------------------------------------------------------------
>> 414 000639d3 directory_length 6, crc 14803
>> 418 03000ff2 vendor
>> 41c 8100000a --> descriptor leaf at 444
>> 420 17000006 model
>> 424 8100000d --> descriptor leaf at 458
>> 428 0c0087c0 node capabilities per IEEE 1394
>> 42c d1000001 --> unit directory at 430
>>
>> unit directory at 430
>> -----------------------------------------------------------------
>> 430 00045246 directory_length 4, crc 21062
>> 434 12000ff2 specifier id
>> 438 13000001 version
>> 43c 17000006 model
>> 440 8100000b --> descriptor leaf at 46c
>
> The dice_interface_check() function then makes other checks:
> /*
> * Check that GUID and unit directory are constructed according to DICE
> * rules, i.e., that the specifier ID is the GUID's OUI, and that the
> * GUID chip ID consists of the 8-bit category ID, the 10-bit product
> * ID, and a 22-bit serial number.
> */
>
> These values are correct, except for the category ID.
Aha. I've overlooked this case. I assumed that we can see 'No such
device' in syslog, due to returning -ENODEV.
> The driver already has an category ID exception for Weiss devices.
> It would be possible to add another exception, but given that firmware
> writers apparently like to change this value without good reason, it
> might be a better idea to just remove the category ID check.
Sounds to work, while I've never read such a specification about the
Dice rule (I'm not so good at Dice itself). Is it possible that you post
patches for this issue?
Regards
Takashi Sakamoto
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-08-17 15:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <55CA9C07.40702@sakamocchi.jp>
2015-08-12 9:20 ` probe issue for Dice/OXFW drivers Clemens Ladisch
2015-08-17 15:30 ` Takashi Sakamoto
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox