• Devin Heitmueller's avatar
    V4L/DVB (10119): em28xx: fix corrupted XCLK value · ed14e1c2
    Devin Heitmueller authored
    Correct problem introduced during the board refactoring where the XCLK
    frequency would get zero'd out.  The sequence of events was as follows:
    
    em28xx_pre_card_setup() called em28xx_set_model()
    em28xx_set_model() would memcpy to dev->board configuration
    em28xx_pre_card_setup() would set the dev->board.xclk if not set
    em28xx_pre_card_setup() would set the XCLK register based on dev->board.xclk
    ...
    em28xx_card_setup() would call em28xx_set_model()
    em28xx_set_model() would memcpy to dev->board configuration (clearing out
     value of dev->board.xclk set in em28xx_pre_card_setup)
    ...
    em28xx_audio_analog_set() sets the XCLK register based on dev->board.xclk
     (which now contains zero)
    
    The change sets the default XCLK and I2C Clock fields in the board definition
    inside of em28xx_set_model() so that subsequent calls do not cause the
    values to be overwritten.
    Signed-off-by: default avatarDevin Heitmueller <dheitmueller@linuxtv.org>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    ed14e1c2
em28xx-cards.c 65.2 KB