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: Ib0f5edc86d363005abd75f989d732e917617f3fe
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>