Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

ACPI: video - convert semaphore to a mutex

parent ff102ea9
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -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 @@ struct acpi_video_bus {
	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 @@ acpi_video_bus_get_one_device(struct acpi_device *device,
			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 @@ static void acpi_video_device_rebind(struct acpi_video_bus *video)
{
	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 @@ static int acpi_video_switch_output(struct acpi_video_bus *video, int event)
	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 @@ static int acpi_video_switch_output(struct acpi_video_bus *video, int event)
	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 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
	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 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
		kfree(dev);
	}

	up(&video->sem);
	mutex_unlock(&video->device_list_lock);

	return 0;
}
@@ -1924,7 +1925,7 @@ static int acpi_video_bus_add(struct acpi_device *device)
	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);