• Takashi Sakamoto's avatar
    ALSA: firewire-motu: use 'version' field of unit directory to identify model · 2d012c65
    Takashi Sakamoto authored
    Current ALSA firewire-motu driver uses the value of 'model' field
    of unit directory in configuration ROM for modalias for MOTU
    FireWire models. However, as long as I checked, Pre8 and
    828mk3(Hybrid) have the same value for the field (=0x100800).
    
    unit            | version   | model
    --------------- | --------- | ----------
    828mkII         | 0x000003  | 0x101800
    Traveler        | 0x000009  | 0x107800
    Pre8            | 0x00000f  | 0x100800 <-
    828mk3(FW)      | 0x000015  | 0x106800
    AudioExpress    | 0x000033  | 0x104800
    828mk3(Hybrid)  | 0x000035  | 0x100800 <-
    
    When updating firmware for MOTU 8pre FireWire from v1.0.0 to v1.0.3,
    I got change of the value from 0x100800 to 0x103800. On the other
    hand, the value of 'version' field is fixed to 0x00000f. As a quick
    glance, the higher 12 bits of the value of 'version' field represent
    firmware version, while the lower 12 bits is unknown.
    
    By induction, the value of 'version' field represents actual model.
    
    This commit changes modalias to match the value of 'version' field,
    instead of 'model' field. For degug, long name of added sound card
    includes hexadecimal value of 'model' field.
    
    Fixes: 6c5e1ac0 ("ALSA: firewire-motu: add support for Motu Traveler")
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Cc: <stable@vger.kernel.org> # v4.19+
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    2d012c65
motu.c 7.01 KB