diff options
author | Martin Michlmayr <tbm@cyrius.com> | 2010-02-07 10:27:02 +0000 |
---|---|---|
committer | Martin Michlmayr <tbm@cyrius.com> | 2010-02-07 10:27:02 +0000 |
commit | 81f5688c3fd8126329933e97f2c4da3e5d113579 (patch) | |
tree | e5e82b2d06ceafba9eeb1ebef2abcb6e8ac8c700 | |
parent | df44b845c3bbd752f6bd47367c62a41ac7eed5af (diff) | |
download | kernel_replicant_linux-81f5688c3fd8126329933e97f2c4da3e5d113579.tar.gz kernel_replicant_linux-81f5688c3fd8126329933e97f2c4da3e5d113579.tar.bz2 kernel_replicant_linux-81f5688c3fd8126329933e97f2c4da3e5d113579.zip |
Implement power-off for D-Link DNS-323 rev B1 and fix the blinking
power LED (Erik Benada) (Closes: #503172).
svn path=/dists/trunk/linux-2.6/; revision=15130
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | debian/patches/features/arm/dns323-rev-b1-poweroff.patch | 106 | ||||
-rw-r--r-- | debian/patches/series/8 | 1 |
3 files changed, 112 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index def4c1a9d96b..bcec29619198 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,11 +8,15 @@ linux-2.6 (2.6.32-8) UNRELEASED; urgency=low 32-bit userland/64-bit kernel breakage (Closes: #568416) * KVM: PIT: control word is write-only (CVE-2010-0309) * connector: Delete buggy notification code. (CVE-2010-0410) - + [ Ben Hutchings ] * Build lgs8gxx driver along with cxusb (Closes: #568414) * Revert incorrect change to powerpc clocksource setup (Closes: #568457) + [ Martin Michlmayr ] + * Implement power-off for D-Link DNS-323 rev B1 and fix the blinking + power LED (Erik Benada) (Closes: #503172). + -- Bastian Blank <waldi@debian.org> Thu, 04 Feb 2010 12:08:47 +0100 linux-2.6 (2.6.32-7) unstable; urgency=low diff --git a/debian/patches/features/arm/dns323-rev-b1-poweroff.patch b/debian/patches/features/arm/dns323-rev-b1-poweroff.patch new file mode 100644 index 000000000000..1f6804594de7 --- /dev/null +++ b/debian/patches/features/arm/dns323-rev-b1-poweroff.patch @@ -0,0 +1,106 @@ +From: Erik Benada <erikbenada@yahoo.ca> +Date: Sun, 24 Jan 2010 21:43:04 +0000 (-0800) +Subject: [ARM] orion5x: D-link DNS-323 rev. B1 power-off +X-Git-Tag: v2.6.33-rc6~10^2~2^2 +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=cf11052a95275c942c1f45ea5fde43ce45bbba6d;hp=e9cfa167b6b598a364c53459bee93b508f073c65 + +[ARM] orion5x: D-link DNS-323 rev. B1 power-off + +This patch fixes power LED blinking and power-off on DNS-323 rev. B1. + +GPIO pin 3 has to be set to 1 to stop power LED blinking and to allow the LED to be controlled via leds-gpio. This pin has to be also set to 1 for power-off to work. +To power-off the rev. B1 machine, pin 8 has to be set to 1 and then set to 0 to do actual power-off. + +Tested on my DNS-323 rev. B1 + +Signed-off-by: Erik Benada <erikbenada@yahoo.ca> +Signed-off-by: Nicolas Pitre <nico@marvell.com> +--- + +diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c +index b31ca4c..8f159db 100644 +--- a/arch/arm/mach-orion5x/dns323-setup.c ++++ b/arch/arm/mach-orion5x/dns323-setup.c +@@ -12,6 +12,7 @@ + + #include <linux/kernel.h> + #include <linux/init.h> ++#include <linux/delay.h> + #include <linux/platform_device.h> + #include <linux/pci.h> + #include <linux/irq.h> +@@ -32,6 +33,7 @@ + + #define DNS323_GPIO_LED_RIGHT_AMBER 1 + #define DNS323_GPIO_LED_LEFT_AMBER 2 ++#define DNS323_GPIO_SYSTEM_UP 3 + #define DNS323_GPIO_LED_POWER 5 + #define DNS323_GPIO_OVERTEMP 6 + #define DNS323_GPIO_RTC 7 +@@ -239,7 +241,7 @@ static struct gpio_led dns323_leds[] = { + { + .name = "power:blue", + .gpio = DNS323_GPIO_LED_POWER, +- .active_low = 1, ++ .default_state = LEDS_GPIO_DEFSTATE_ON, + }, { + .name = "right:amber", + .gpio = DNS323_GPIO_LED_RIGHT_AMBER, +@@ -334,7 +336,7 @@ static struct orion5x_mpp_mode dns323_mv88f5182_mpp_modes[] __initdata = { + { 0, MPP_UNUSED }, + { 1, MPP_GPIO }, /* right amber LED (sata ch0) */ + { 2, MPP_GPIO }, /* left amber LED (sata ch1) */ +- { 3, MPP_UNUSED }, ++ { 3, MPP_GPIO }, /* system up flag */ + { 4, MPP_GPIO }, /* power button LED */ + { 5, MPP_GPIO }, /* power button LED */ + { 6, MPP_GPIO }, /* GMT G751-2f overtemp */ +@@ -372,13 +374,23 @@ static struct i2c_board_info __initdata dns323_i2c_devices[] = { + }, + }; + +-/* DNS-323 specific power off method */ +-static void dns323_power_off(void) ++/* DNS-323 rev. A specific power off method */ ++static void dns323a_power_off(void) + { + pr_info("%s: triggering power-off...\n", __func__); + gpio_set_value(DNS323_GPIO_POWER_OFF, 1); + } + ++/* DNS-323 rev B specific power off method */ ++static void dns323b_power_off(void) ++{ ++ pr_info("%s: triggering power-off...\n", __func__); ++ /* Pin has to be changed to 1 and back to 0 to do actual power off. */ ++ gpio_set_value(DNS323_GPIO_POWER_OFF, 1); ++ mdelay(100); ++ gpio_set_value(DNS323_GPIO_POWER_OFF, 0); ++} ++ + static void __init dns323_init(void) + { + /* Setup basic Orion functions. Need to be called early. */ +@@ -424,11 +436,20 @@ static void __init dns323_init(void) + if (dns323_dev_id() == MV88F5182_DEV_ID) + orion5x_sata_init(&dns323_sata_data); + +- /* register dns323 specific power-off method */ ++ /* The 5182 has flag to indicate the system is up. Without this flag ++ * set, power LED will flash and cannot be controlled via leds-gpio. ++ */ ++ if (dns323_dev_id() == MV88F5182_DEV_ID) ++ gpio_set_value(DNS323_GPIO_SYSTEM_UP, 1); ++ ++ /* Register dns323 specific power-off method */ + if (gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0 || + gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0) + pr_err("DNS323: failed to setup power-off GPIO\n"); +- pm_power_off = dns323_power_off; ++ if (dns323_dev_id() == MV88F5182_DEV_ID) ++ pm_power_off = dns323b_power_off; ++ else ++ pm_power_off = dns323a_power_off; + } + + /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ diff --git a/debian/patches/series/8 b/debian/patches/series/8 index 4c09d5792044..dd350870bc32 100644 --- a/debian/patches/series/8 +++ b/debian/patches/series/8 @@ -6,3 +6,4 @@ + bugfix/all/clocksource-always-define-clocksource_max_deferment.patch + bugfix/x86/kvm-pit-control-word-is-write-only.patch + bugfix/all/connector-delete-buggy-notification-code.patch ++ features/arm/dns323-rev-b1-poweroff.patch |