1
0
Fork 0

MLK-9866: mfd: si476x: FM will fail to open sometimes.

In commit e856a0ebc23dcd2c933e3f902317652cc50f0067, we disabled
wait_event_timeout for CMD_POWER_DOWN, which will cause power down
failed sometimes, then FM will fail to reopen.
In this patch enable the wait_event_timeout for power down.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
(cherry picked from commit 30aa7f1a3580d0a5bc866c624d1da441fd5502c1)
(cherry picked from commit 2b1990fee264d805fcdc0005dcf8b5b63b261d51)
pull/10/head
Shengjiu Wang 2014-11-18 14:20:55 +08:00 committed by Jason Liu
parent 8a21483776
commit ccb8775794
1 changed files with 7 additions and 7 deletions

View File

@ -303,13 +303,13 @@ static int si476x_core_send_command(struct si476x_core *core,
* possible racing conditions when working in polling mode */
atomic_set(&core->cts, 0);
if (!(command == CMD_POWER_DOWN))
if (!wait_event_timeout(core->command,
atomic_read(&core->cts),
usecs_to_jiffies(usecs) + 1))
dev_warn(&core->client->dev,
"(%s) [CMD 0x%02x] Answer timeout.\n",
__func__, command);
/* if (unlikely(command == CMD_POWER_DOWN) */
if (!wait_event_timeout(core->command,
atomic_read(&core->cts),
usecs_to_jiffies(usecs) + 1))
dev_warn(&core->client->dev,
"(%s) [CMD 0x%02x] Answer timeout.\n",
__func__, command);
/*
When working in polling mode, for some reason the tuner will