• Takashi Iwai's avatar
    ALSA: hda - Fix registration of beep input device · d604b399
    Takashi Iwai authored
    The beep input device is registered via input_register_device(), but
    this is called in snd_hda_attach_beep_device() where the sound devices
    aren't registered yet.  This leads to the binding to non-existing
    object, thus results in failure.  And, even if the binding worked
    (against the PCI object), it's still racy; the input device appears
    before the sound objects.
    
    For fixing this, register the input device properly at dev_register
    ops of the codec object it's bound with.  Also, call
    snd_hda_detach_beep_device() at dev_disconnection so that it's
    detached at the right timing.  As a bonus, since it's called in the
    codec's ops, we can get rid of the further call from the other codec
    drivers.
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    d604b399
hda_codec.c 153 KB