#include <linux/acpi.h>
#include <linux/pci_ids.h>
#include <linux/power_supply.h>
-#include <linux/thinkpad_acpi.h>
#include <sound/core.h>
#include <sound/control.h>
#include <sound/initval.h>
* Mute LED subdriver
*/
+#define TPACPI_LED_MAX 2
struct tp_led_table {
acpi_string name;
int state;
};
-static struct tp_led_table led_tables[] = {
- [TPACPI_LED_MUTE] = {
+static struct tp_led_table led_tables[TPACPI_LED_MAX] = {
+ [LED_AUDIO_MUTE] = {
.name = "SSMS",
.on_value = 1,
.off_value = 0,
},
- [TPACPI_LED_MICMUTE] = {
+ [LED_AUDIO_MICMUTE] = {
.name = "MMTS",
.on_value = 2,
.off_value = 0,
return state;
}
-int tpacpi_led_set(int whichled, bool on)
+static int tpacpi_led_set(int whichled, bool on)
{
struct tp_led_table *t;
- if (whichled < 0 || whichled >= TPACPI_LED_MAX)
- return -EINVAL;
-
t = &led_tables[whichled];
if (t->state < 0 || t->state == on)
return t->state;
return mute_led_on_off(t, on);
}
-EXPORT_SYMBOL_GPL(tpacpi_led_set);
static int tpacpi_led_mute_set(struct led_classdev *led_cdev,
enum led_brightness brightness)
{
- return tpacpi_led_set(TPACPI_LED_MUTE, brightness != LED_OFF);
+ return tpacpi_led_set(LED_AUDIO_MUTE, brightness != LED_OFF);
}
static int tpacpi_led_micmute_set(struct led_classdev *led_cdev,
enum led_brightness brightness)
{
- return tpacpi_led_set(TPACPI_LED_MICMUTE, brightness != LED_OFF);
+ return tpacpi_led_set(LED_AUDIO_MICMUTE, brightness != LED_OFF);
}
-static struct led_classdev mute_led_cdev[] = {
- [TPACPI_LED_MUTE] = {
+static struct led_classdev mute_led_cdev[TPACPI_LED_MAX] = {
+ [LED_AUDIO_MUTE] = {
.name = "platform::mute",
.max_brightness = 1,
.brightness_set_blocking = tpacpi_led_mute_set,
.default_trigger = "audio-mute",
},
- [TPACPI_LED_MICMUTE] = {
+ [LED_AUDIO_MICMUTE] = {
.name = "platform::micmute",
.max_brightness = 1,
.brightness_set_blocking = tpacpi_led_micmute_set,
static int mute_led_init(struct ibm_init_struct *iibm)
{
- static enum led_audio types[] = {
- [TPACPI_LED_MUTE] = LED_AUDIO_MUTE,
- [TPACPI_LED_MICMUTE] = LED_AUDIO_MICMUTE,
- };
acpi_handle temp;
int i, err;
continue;
}
- mute_led_cdev[i].brightness = ledtrig_audio_get(types[i]);
+ mute_led_cdev[i].brightness = ledtrig_audio_get(i);
err = led_classdev_register(&tpacpi_pdev->dev, &mute_led_cdev[i]);
if (err < 0) {
while (i--) {