ASoC: ac108: Fixes kernel bug message when starting to capture
The code in the trigger function is moved to prepare function that is
called right before trigger function. clock operation would be ran by
parepare function without disabling preemption.
BUG: scheduling while atomic: arecord/1244/0x00000004
Preemption disabled at:
[<
ffffff80087c4a08>] snd_pcm_stream_lock+0x30/0x68
Call trace:
[<
ffffff800808b250>] dump_backtrace+0x0/0x270
[<
ffffff800808b4e4>] show_stack+0x24/0x30
[<
ffffff8008ae87c4>] dump_stack+0xac/0xe8
[<
ffffff80080cc814>] __schedule_bug+0x7c/0xd8
[<
ffffff8008afb558>] __schedule+0x718/0x880
[<
ffffff8008afb6fc>] schedule+0x3c/0xa0
[<
ffffff8008aff028>] schedule_timeout+0x190/0x408
[<
ffffff8008afc4b8>] wait_for_common+0xa8/0x150
[<
ffffff8008afc5c4>] wait_for_completion_timeout+0x2c/0x38
[<
ffffff80086e5a0c>] bcm2835_i2c_xfer+0x16c/0x400
[<
ffffff80086deedc>] __i2c_transfer+0x12c/0x570
[<
ffffff80086df38c>] i2c_transfer+0x6c/0xc0
[<
ffffff80086df430>] i2c_master_send+0x50/0x68
[<
ffffff8008584454>] regmap_i2c_write+0x34/0x70
[<
ffffff800857fe34>] _regmap_raw_write+0x7cc/0x7e0
[<
ffffff800857feb8>] _regmap_bus_raw_write+0x70/0x88
[<
ffffff800857ea48>] _regmap_write+0x70/0x160
[<
ffffff800857ec10>] _regmap_update_bits+0xd8/0xf8
[<
ffffff80085800b0>] regmap_update_bits_base+0x68/0x98
[<
ffffff8008805838>] ac10x_update_bits+0x48/0x88
[<
ffffff8008805c00>] ac108_trigger+0x118/0x130
Change-Id: I73ef21247e1dfbd0acd3272b6a73311377eb000d
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>