diff options
author | Nicolas Chauvet <kwizart@gmail.com> | 2014-06-02 21:51:28 +0200 |
---|---|---|
committer | Nicolas Chauvet <kwizart@gmail.com> | 2014-07-07 16:21:17 +0200 |
commit | 33114ec6ba07e8ce38353b92a0554f9a71e83535 (patch) | |
tree | 2ef3cb36cdb930e79ff9dc7d0b12e0ad69b59790 /0002-NOT_FOR_UPSTREAM-staging-nvec-move-led-init-out-of-p.patch | |
parent | a34e5ddbb0300885755e268f2f9ddab6bdbd284c (diff) | |
download | kernel-33114ec6ba07e8ce38353b92a0554f9a71e83535.tar.gz kernel-33114ec6ba07e8ce38353b92a0554f9a71e83535.tar.xz kernel-33114ec6ba07e8ce38353b92a0554f9a71e83535.zip |
Add marvin24s patches
Diffstat (limited to '0002-NOT_FOR_UPSTREAM-staging-nvec-move-led-init-out-of-p.patch')
-rw-r--r-- | 0002-NOT_FOR_UPSTREAM-staging-nvec-move-led-init-out-of-p.patch | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/0002-NOT_FOR_UPSTREAM-staging-nvec-move-led-init-out-of-p.patch b/0002-NOT_FOR_UPSTREAM-staging-nvec-move-led-init-out-of-p.patch new file mode 100644 index 00000000..b5f914be --- /dev/null +++ b/0002-NOT_FOR_UPSTREAM-staging-nvec-move-led-init-out-of-p.patch @@ -0,0 +1,129 @@ +From 207bed1a3e5b0a1c2f824b986d55972c31e99938 Mon Sep 17 00:00:00 2001 +From: Marc Dietrich <marvin24@gmx.de> +Date: Sun, 17 Jun 2012 19:53:33 +0200 +Subject: [PATCH 2/6] NOT_FOR_UPSTREAM: staging: nvec: move led init out of + probe to its own function + +Moves the led init to its own function. This is in preparation to +the following speaker mute inclusion via a gpio driver. + +Signed-off-by: Marc Dietrich <marvin24@gmx.de> +--- + drivers/staging/nvec/nvec_paz00.c | 73 +++++++++++++++++++-------------------- + 1 file changed, 35 insertions(+), 38 deletions(-) + +diff --git a/drivers/staging/nvec/nvec_paz00.c b/drivers/staging/nvec/nvec_paz00.c +index 934b796..a10385d 100644 +--- a/drivers/staging/nvec/nvec_paz00.c ++++ b/drivers/staging/nvec/nvec_paz00.c +@@ -11,72 +11,69 @@ + * + */ + +-#include <linux/module.h> + #include <linux/err.h> +-#include <linux/slab.h> + #include <linux/leds.h> ++#include <linux/module.h> ++#include <linux/slab.h> + #include <linux/platform_device.h> + #include "nvec.h" + +-#define to_nvec_led(led_cdev) \ +- container_of(led_cdev, struct nvec_led, cdev) ++#define NVEC_LED_MAX 8 + +-#define NVEC_LED_REQ {'\x0d', '\x10', '\x45', '\x10', '\x00'} ++enum nvec_oem0_subcmds { ++ EXEC_EC_CMD = 0x10, ++}; + +-#define NVEC_LED_MAX 8 ++enum nvec_oem0_ec_cmds { ++ SET_DEVICE_STATUS = 0x45, ++}; + +-struct nvec_led { +- struct led_classdev cdev; ++struct nvec_paz00_struct { + struct nvec_chip *nvec; ++ struct led_classdev *led_dev; + }; + ++struct nvec_paz00_struct nvec_paz00; ++ + static void nvec_led_brightness_set(struct led_classdev *led_cdev, + enum led_brightness value) + { +- struct nvec_led *led = to_nvec_led(led_cdev); +- unsigned char buf[] = NVEC_LED_REQ; +- buf[4] = value; +- +- nvec_write_async(led->nvec, buf, sizeof(buf)); +- +- led->cdev.brightness = value; ++ unsigned char buf[] = { NVEC_OEM0, EXEC_EC_CMD, SET_DEVICE_STATUS, ++ '\x10', value }; + ++ nvec_paz00.led_dev->brightness = value; ++ nvec_write_async(nvec_paz00.nvec, buf, sizeof(buf)); + } + +-static int nvec_paz00_probe(struct platform_device *pdev) ++static int paz00_init_leds(struct device *dev) + { +- struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); +- struct nvec_led *led; +- int ret = 0; +- +- led = devm_kzalloc(&pdev->dev, sizeof(*led), GFP_KERNEL); +- if (led == NULL) ++ nvec_paz00.led_dev = devm_kzalloc(dev, sizeof(struct led_classdev), ++ GFP_KERNEL); ++ if (!nvec_paz00.led_dev) + return -ENOMEM; + +- led->cdev.max_brightness = NVEC_LED_MAX; ++ nvec_paz00.led_dev->max_brightness = NVEC_LED_MAX; ++ nvec_paz00.led_dev->brightness_set = nvec_led_brightness_set; ++ nvec_paz00.led_dev->brightness = 0; ++ nvec_paz00.led_dev->name = "paz00-led"; ++ nvec_paz00.led_dev->flags |= LED_CORE_SUSPENDRESUME; + +- led->cdev.brightness_set = nvec_led_brightness_set; +- led->cdev.name = "paz00-led"; +- led->cdev.flags |= LED_CORE_SUSPENDRESUME; +- led->nvec = nvec; +- +- platform_set_drvdata(pdev, led); ++ return led_classdev_register(dev, nvec_paz00.led_dev); ++} + +- ret = led_classdev_register(&pdev->dev, &led->cdev); +- if (ret < 0) +- return ret; ++static int nvec_paz00_probe(struct platform_device *pdev) ++{ ++ struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); + +- /* to expose the default value to userspace */ +- led->cdev.brightness = 0; ++ platform_set_drvdata(pdev, &nvec_paz00); ++ nvec_paz00.nvec = nvec; + +- return 0; ++ return paz00_init_leds(&pdev->dev); + } + + static int nvec_paz00_remove(struct platform_device *pdev) + { +- struct nvec_led *led = platform_get_drvdata(pdev); +- +- led_classdev_unregister(&led->cdev); ++ led_classdev_unregister(nvec_paz00.led_dev); + + return 0; + } +-- +1.8.3.1 + |