diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 36b64a7..d54c83d 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -29,6 +29,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/list.h>
+#include <linux/mutex.h>
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
 #include <linux/input.h>
@@ -135,8 +136,8 @@
 	u8 attached_count;
 	struct acpi_video_bus_cap cap;
 	struct acpi_video_bus_flags flags;
-	struct semaphore sem;
 	struct list_head video_device_list;
+	struct mutex device_list_lock;	/* protects video_device_list */
 	struct proc_dir_entry *dir;
 	struct input_dev *input;
 	char phys[32];	/* for input device */
@@ -1436,9 +1437,9 @@
 			return -ENODEV;
 		}
 
-		down(&video->sem);
+		mutex_lock(&video->device_list_lock);
 		list_add_tail(&data->entry, &video->video_device_list);
-		up(&video->sem);
+		mutex_unlock(&video->device_list_lock);
 
 		acpi_video_device_add_fs(device);
 
@@ -1464,12 +1465,12 @@
 {
 	struct acpi_video_device *dev;
 
-	down(&video->sem);
+	mutex_lock(&video->device_list_lock);
 
 	list_for_each_entry(dev, &video->video_device_list, entry)
 		acpi_video_device_bind(video, dev);
 
-	up(&video->sem);
+	mutex_unlock(&video->device_list_lock);
 }
 
 /*
@@ -1601,7 +1602,7 @@
 	unsigned long state;
 	int status = 0;
 
-	down(&video->sem);
+	mutex_lock(&video->device_list_lock);
 
 	list_for_each(node, &video->video_device_list) {
 		dev = container_of(node, struct acpi_video_device, entry);
@@ -1619,7 +1620,7 @@
 	dev_prev = container_of(node->prev, struct acpi_video_device, entry);
 
  out:
-	up(&video->sem);
+	mutex_unlock(&video->device_list_lock);
 
 	switch (event) {
 	case ACPI_VIDEO_NOTIFY_CYCLE:
@@ -1738,7 +1739,7 @@
 	int status;
 	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) {
 
@@ -1755,7 +1756,7 @@
 		kfree(dev);
 	}
 
-	up(&video->sem);
+	mutex_unlock(&video->device_list_lock);
 
 	return 0;
 }
@@ -1924,7 +1925,7 @@
 	if (error)
 		goto err_free_video;
 
-	init_MUTEX(&video->sem);
+	mutex_init(&video->device_list_lock);
 	INIT_LIST_HEAD(&video->video_device_list);
 
 	acpi_video_bus_get_devices(video, device);
