Commit bbac81f5 authored by Dmitry Torokhov's avatar Dmitry Torokhov Committed by Len Brown

ACPI: video - convert semaphore to a mutex

Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
Acked-by: default avatarZhang Rui <rui.zhang@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent ff102ea9
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/mutex.h>
#include <linux/proc_fs.h> #include <linux/proc_fs.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/input.h> #include <linux/input.h>
...@@ -135,8 +136,8 @@ struct acpi_video_bus { ...@@ -135,8 +136,8 @@ struct acpi_video_bus {
u8 attached_count; u8 attached_count;
struct acpi_video_bus_cap cap; struct acpi_video_bus_cap cap;
struct acpi_video_bus_flags flags; struct acpi_video_bus_flags flags;
struct semaphore sem;
struct list_head video_device_list; struct list_head video_device_list;
struct mutex device_list_lock; /* protects video_device_list */
struct proc_dir_entry *dir; struct proc_dir_entry *dir;
struct input_dev *input; struct input_dev *input;
char phys[32]; /* for input device */ char phys[32]; /* for input device */
...@@ -1436,9 +1437,9 @@ acpi_video_bus_get_one_device(struct acpi_device *device, ...@@ -1436,9 +1437,9 @@ acpi_video_bus_get_one_device(struct acpi_device *device,
return -ENODEV; return -ENODEV;
} }
down(&video->sem); mutex_lock(&video->device_list_lock);
list_add_tail(&data->entry, &video->video_device_list); list_add_tail(&data->entry, &video->video_device_list);
up(&video->sem); mutex_unlock(&video->device_list_lock);
acpi_video_device_add_fs(device); acpi_video_device_add_fs(device);
...@@ -1464,12 +1465,12 @@ static void acpi_video_device_rebind(struct acpi_video_bus *video) ...@@ -1464,12 +1465,12 @@ static void acpi_video_device_rebind(struct acpi_video_bus *video)
{ {
struct acpi_video_device *dev; struct acpi_video_device *dev;
down(&video->sem); mutex_lock(&video->device_list_lock);
list_for_each_entry(dev, &video->video_device_list, entry) list_for_each_entry(dev, &video->video_device_list, entry)
acpi_video_device_bind(video, dev); acpi_video_device_bind(video, dev);
up(&video->sem); mutex_unlock(&video->device_list_lock);
} }
/* /*
...@@ -1601,7 +1602,7 @@ static int acpi_video_switch_output(struct acpi_video_bus *video, int event) ...@@ -1601,7 +1602,7 @@ static int acpi_video_switch_output(struct acpi_video_bus *video, int event)
unsigned long state; unsigned long state;
int status = 0; int status = 0;
down(&video->sem); mutex_lock(&video->device_list_lock);
list_for_each(node, &video->video_device_list) { list_for_each(node, &video->video_device_list) {
dev = container_of(node, struct acpi_video_device, entry); dev = container_of(node, struct acpi_video_device, entry);
...@@ -1619,7 +1620,7 @@ static int acpi_video_switch_output(struct acpi_video_bus *video, int event) ...@@ -1619,7 +1620,7 @@ static int acpi_video_switch_output(struct acpi_video_bus *video, int event)
dev_prev = container_of(node->prev, struct acpi_video_device, entry); dev_prev = container_of(node->prev, struct acpi_video_device, entry);
out: out:
up(&video->sem); mutex_unlock(&video->device_list_lock);
switch (event) { switch (event) {
case ACPI_VIDEO_NOTIFY_CYCLE: case ACPI_VIDEO_NOTIFY_CYCLE:
...@@ -1738,7 +1739,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video) ...@@ -1738,7 +1739,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
int status; int status;
struct acpi_video_device *dev, *next; struct acpi_video_device *dev, *next;
down(&video->sem); mutex_lock(&video->device_list_lock);
list_for_each_entry_safe(dev, next, &video->video_device_list, entry) { list_for_each_entry_safe(dev, next, &video->video_device_list, entry) {
...@@ -1755,7 +1756,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video) ...@@ -1755,7 +1756,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
kfree(dev); kfree(dev);
} }
up(&video->sem); mutex_unlock(&video->device_list_lock);
return 0; return 0;
} }
...@@ -1924,7 +1925,7 @@ static int acpi_video_bus_add(struct acpi_device *device) ...@@ -1924,7 +1925,7 @@ static int acpi_video_bus_add(struct acpi_device *device)
if (error) if (error)
goto err_free_video; goto err_free_video;
init_MUTEX(&video->sem); mutex_init(&video->device_list_lock);
INIT_LIST_HEAD(&video->video_device_list); INIT_LIST_HEAD(&video->video_device_list);
acpi_video_bus_get_devices(video, device); acpi_video_bus_get_devices(video, device);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment