V4L/DVB (10119): em28xx: fix corrupted XCLK value
commited14e1c2f419a380c7a1a3483ac2443d20a24355
authorDevin Heitmueller <dheitmueller@linuxtv.org>
Tue, 30 Dec 2008 01:27:30 +0000 (29 22:27 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 30 Dec 2008 11:40:35 +0000 (30 09:40 -0200)
tree293192d47aa8d96ee69e5c8c77399443ecf967fc
parent60b4bde48b36c0315ef41fd38c339b9c7e68c46f
V4L/DVB (10119): em28xx: fix corrupted XCLK value

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: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/em28xx/em28xx-cards.c