• Frank Schaefer's avatar
    [media] em28xx: check if a device has audio earlier" · fb91bde9
    Frank Schaefer authored
    GIT_AUTHOR_DATE=1409603039
    This reverts
    
    commit b99f0aad
    Author: Mauro Carvalho Chehab <m.chehab@samsung.com>
    
        [media] em28xx: check if a device has audio earlier
    
        Better to split chipset detection from the audio setup. So, move the
        detection code to em28xx_init_dev().
    
    It broke analog audio of the Hauppauge winTV HVR 900 and very likely many other
    em28xx devices.
    
    Background:
    The local variable has_audio in em28xx_usb_probe() describes if the currently
    probed _usb_interface_ has an audio endpoint, while dev->audio_mode.has_audio
    means that the _device_ as a whole provides analog audio.
    Hence it is wrong to set dev->audio_mode.has_audio = has_audio in em28xx_usb_probe().
    As result, audio support is no longer detected and configured on devices which
    have the audio endpoint on a separate interface, because em28xx_audio_setup()
    bails out immediately at the beginning.
    
    Revert the faulty commit to restore the old audio detection procedure, which checks
    the chip configuration register to determine if the device has analog audio.
    
    Cc: <stable@vger.kernel.org>	# 3.14 to 3.16
    Reported-by: default avatarOravecz Csaba <oravecz@nytud.mta.hu>
    Tested-by: default avatarOravecz Csaba <oravecz@nytud.mta.hu>
    Signed-off-by: default avatarFrank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
    fb91bde9
em28xx-core.c 27.6 KB