[ARM] OMAP1: N770: Convert audio_pwr_sem in a mutex
ARM: OMAP1: N770: The semaphore audio_pwr_sem is used as a mutex. Convert it to the mutex API [akpm@linux-foundation.org: include mutex.h] Signed-off-by: Matthias Kaehlcke <matthias@kaehlcke.net> Cc: Tony Lindgren <tony@atomide.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Родитель
3c093f9f18
Коммит
d41d219e81
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
#include <linux/mutex.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
|
@ -202,7 +203,7 @@ static struct omap_board_config_kernel nokia770_config[] __initdata = {
|
||||||
#define AMPLIFIER_CTRL_GPIO 58
|
#define AMPLIFIER_CTRL_GPIO 58
|
||||||
|
|
||||||
static struct clk *dspxor_ck;
|
static struct clk *dspxor_ck;
|
||||||
static DECLARE_MUTEX(audio_pwr_sem);
|
static DEFINE_MUTEX(audio_pwr_lock);
|
||||||
/*
|
/*
|
||||||
* audio_pwr_state
|
* audio_pwr_state
|
||||||
* +--+-------------------------+---------------------------------------+
|
* +--+-------------------------+---------------------------------------+
|
||||||
|
@ -218,7 +219,7 @@ static DECLARE_MUTEX(audio_pwr_sem);
|
||||||
static int audio_pwr_state = -1;
|
static int audio_pwr_state = -1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* audio_pwr_up / down should be called under audio_pwr_sem
|
* audio_pwr_up / down should be called under audio_pwr_lock
|
||||||
*/
|
*/
|
||||||
static void nokia770_audio_pwr_up(void)
|
static void nokia770_audio_pwr_up(void)
|
||||||
{
|
{
|
||||||
|
@ -237,11 +238,11 @@ static void nokia770_audio_pwr_up(void)
|
||||||
|
|
||||||
static void codec_delayed_power_down(struct work_struct *work)
|
static void codec_delayed_power_down(struct work_struct *work)
|
||||||
{
|
{
|
||||||
down(&audio_pwr_sem);
|
mutex_lock(&audio_pwr_lock);
|
||||||
if (audio_pwr_state == -1)
|
if (audio_pwr_state == -1)
|
||||||
aic23_power_down();
|
aic23_power_down();
|
||||||
clk_disable(dspxor_ck);
|
clk_disable(dspxor_ck);
|
||||||
up(&audio_pwr_sem);
|
mutex_unlock(&audio_pwr_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DECLARE_DELAYED_WORK(codec_power_down_work, codec_delayed_power_down);
|
static DECLARE_DELAYED_WORK(codec_power_down_work, codec_delayed_power_down);
|
||||||
|
@ -258,19 +259,19 @@ static void nokia770_audio_pwr_down(void)
|
||||||
static int
|
static int
|
||||||
nokia770_audio_pwr_up_request(struct dsp_kfunc_device *kdev, int stage)
|
nokia770_audio_pwr_up_request(struct dsp_kfunc_device *kdev, int stage)
|
||||||
{
|
{
|
||||||
down(&audio_pwr_sem);
|
mutex_lock(&audio_pwr_lock);
|
||||||
if (audio_pwr_state == -1)
|
if (audio_pwr_state == -1)
|
||||||
nokia770_audio_pwr_up();
|
nokia770_audio_pwr_up();
|
||||||
/* force audio_pwr_state = 0, even if it was 1. */
|
/* force audio_pwr_state = 0, even if it was 1. */
|
||||||
audio_pwr_state = 0;
|
audio_pwr_state = 0;
|
||||||
up(&audio_pwr_sem);
|
mutex_unlock(&audio_pwr_lock);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
nokia770_audio_pwr_down_request(struct dsp_kfunc_device *kdev, int stage)
|
nokia770_audio_pwr_down_request(struct dsp_kfunc_device *kdev, int stage)
|
||||||
{
|
{
|
||||||
down(&audio_pwr_sem);
|
mutex_lock(&audio_pwr_lock);
|
||||||
switch (stage) {
|
switch (stage) {
|
||||||
case 1:
|
case 1:
|
||||||
if (audio_pwr_state == 0)
|
if (audio_pwr_state == 0)
|
||||||
|
@ -283,7 +284,7 @@ nokia770_audio_pwr_down_request(struct dsp_kfunc_device *kdev, int stage)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
up(&audio_pwr_sem);
|
mutex_unlock(&audio_pwr_lock);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче