[kernel] r15130 - in dists/trunk/linux-2.6/debian: . patches/features/arm patches/series

Martin Michlmayr tbm at alioth.debian.org
Sun Feb 7 10:27:14 UTC 2010


Author: tbm
Date: Sun Feb  7 10:27:02 2010
New Revision: 15130

Log:
Implement power-off for D-Link DNS-323 rev B1 and fix the blinking
power LED (Erik Benada) (Closes: #503172).

Added:
   dists/trunk/linux-2.6/debian/patches/features/arm/dns323-rev-b1-poweroff.patch
Modified:
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/patches/series/8

Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog	Fri Feb  5 03:47:33 2010	(r15129)
+++ dists/trunk/linux-2.6/debian/changelog	Sun Feb  7 10:27:02 2010	(r15130)
@@ -8,11 +8,15 @@
     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 at debian.org>  Thu, 04 Feb 2010 12:08:47 +0100
 
 linux-2.6 (2.6.32-7) unstable; urgency=low

Added: dists/trunk/linux-2.6/debian/patches/features/arm/dns323-rev-b1-poweroff.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/features/arm/dns323-rev-b1-poweroff.patch	Sun Feb  7 10:27:02 2010	(r15130)
@@ -0,0 +1,106 @@
+From: Erik Benada <erikbenada at 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 at yahoo.ca>
+Signed-off-by: Nicolas Pitre <nico at 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 */

Modified: dists/trunk/linux-2.6/debian/patches/series/8
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/8	Fri Feb  5 03:47:33 2010	(r15129)
+++ dists/trunk/linux-2.6/debian/patches/series/8	Sun Feb  7 10:27:02 2010	(r15130)
@@ -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



More information about the Kernel-svn-changes mailing list