[Armadeus-commitlog] armadeus branch, master, updated. release-3.2-304-g94f14a6
Brought to you by:
sszy
|
From: Fabien M <fa...@us...> - 2010-04-15 10:30:47
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 94f14a6d13d63a9d72d22acddf0861c173a22d14 (commit)
via 603a09c1d88152108978364036229fa439a124ea (commit)
via d1c1b0824cee58ca7d556cf3c92d9d80e5424521 (commit)
from 877adc3ab311d87185a4a3d38d43e2275973ed21 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 94f14a6d13d63a9d72d22acddf0861c173a22d14
Author: Fabien Marteau <fab...@ar...>
Date: Thu Apr 15 12:30:23 2010 +0200
[linux][driver][gpio] Fix workaround (bis)
commit 603a09c1d88152108978364036229fa439a124ea
Author: Fabien Marteau <fab...@ar...>
Date: Thu Apr 15 12:29:56 2010 +0200
[linux][driver][gpio] Fix workaround
commit d1c1b0824cee58ca7d556cf3c92d9d80e5424521
Author: Fabien Marteau <fab...@ar...>
Date: Thu Apr 15 12:27:10 2010 +0200
[linux] change patch comments
-----------------------------------------------------------------------
Summary of changes:
...c-armadeus-lan95xx-activate_blinking_leds.patch | 5 --
target/linux/modules/gpio/core.c | 51 +++++++++++--------
target/linux/modules/gpio/core.h | 27 ++++++----
3 files changed, 45 insertions(+), 38 deletions(-)
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/347c-armadeus-lan95xx-activate_blinking_leds.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/347c-armadeus-lan95xx-activate_blinking_leds.patch
index 58dfe7f..598896a 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/347c-armadeus-lan95xx-activate_blinking_leds.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/347c-armadeus-lan95xx-activate_blinking_leds.patch
@@ -1,8 +1,3 @@
-author Steve Glendinning <ste...@sm...>
- Tue, 22 Sep 2009 05:13:02 +0000 (05:13 +0000)
-committer David S. Miller <da...@da...>
- Tue, 22 Sep 2009 21:00:06 +0000 (14:00 -0700)
-
smsc95xx: Separe link led and activity led
Signed-off-by: Fabien Marteau <fab...@ar...>
diff --git a/target/linux/modules/gpio/core.c b/target/linux/modules/gpio/core.c
index 848e3c7..d63204f 100755
--- a/target/linux/modules/gpio/core.c
+++ b/target/linux/modules/gpio/core.c
@@ -180,11 +180,11 @@ struct gpio_item {
};
#ifdef CONFIG_ARCH_IMX
-static unsigned int shadows_irq[NB_PORTS] = { 0, 0, 0, 0 };
-static unsigned int shadows_irq2[NB_PORTS] = { 0, 0, 0, 0 };
+static unsigned int shadows_irq_h[NB_PORTS] = { 0, 0, 0, 0 };
+static unsigned int shadows_irq_l[NB_PORTS] = { 0, 0, 0, 0 };
#else
-static unsigned int shadows_irq[NB_PORTS] = { 0, 0, 0, 0, 0, 0 };
-static unsigned int shadows_irq2[NB_PORTS] = { 0, 0, 0, 0, 0, 0 };
+static unsigned int shadows_irq_h[NB_PORTS] = { 0, 0, 0, 0, 0, 0 };
+static unsigned int shadows_irq_l[NB_PORTS] = { 0, 0, 0, 0, 0, 0 };
#endif
@@ -236,9 +236,9 @@ static unsigned char getIrqFromPin(int num_pin, int num_port)
int portSize = number_of_pins[num_port];
if (num_pin < (portSize/2)) {
- shad = shadows_irq2[num_port];
+ shad = shadows_irq_l[num_port];
} else {
- shad = shadows_irq[num_port];
+ shad = shadows_irq_h[num_port];
num_pin -= (portSize/2);
}
@@ -659,7 +659,6 @@ int armadeus_gpio_dev_ioctl(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg)
{
int err = 0, ret = 0, value = 0;
- /* u64 value64; TODO */
unsigned int minor;
pr_debug(DRIVER_NAME " ## IOCTL received: (0x%x) ##\n", cmd);
@@ -733,20 +732,28 @@ int armadeus_gpio_dev_ioctl(struct inode *inode, struct file *filp,
}
break;
- case GPIORDIRQMODE:
- /* TODO
- value64 = (u64)(shadows_irq2[MAX_MINOR - minor] & 0xFFFFFFFF);
- value64 |= ((u64)(shadows_irq[MAX_MINOR - minor])) << 32;
- ret = __put_user(value64, (u64 *)arg); */
+ case GPIORDIRQMODE_H:
+ value = shadows_irq_h[MAX_MINOR - minor];
+ ret = __put_user(value, (unsigned int *)arg);
+ break;
+
+ case GPIORDIRQMODE_L:
+ value = shadows_irq_l[MAX_MINOR - minor];
+ ret = __put_user(value, (unsigned int *)arg);
break;
- case GPIOWRIRQMODE:
- /* TODO
- ret = __get_user(value64, (u64 *)arg);
+ case GPIOWRIRQMODE_H:
+ ret = __get_user(value, (unsigned int *)arg);
if (ret == 0) {
- shadows_irq[MAX_MINOR - minor] = (value64 >> 32);
- shadows_irq2[MAX_MINOR - minor] = (value64 & 0xFFFFFFFF);
- } */
+ shadows_irq_h[MAX_MINOR - minor] = value;
+ }
+ break;
+
+ case GPIOWRIRQMODE_L:
+ ret = __get_user(value, (unsigned int *)arg);
+ if (ret == 0) {
+ shadows_irq_l[MAX_MINOR - minor] = value;
+ }
break;
case GPIORDPULLUP:
@@ -820,8 +827,8 @@ static int armadeus_gpio_proc_read(char *buffer, char **start, off_t offset,
break;
case INTERRUPT:
- port_status = shadows_irq[port_ID];
- port_status2 = shadows_irq2[port_ID];
+ port_status = shadows_irq_h[port_ID];
+ port_status2 = shadows_irq_l[port_ID];
break;
default:
@@ -913,8 +920,8 @@ static int armadeus_gpio_proc_write( __attribute__ ((unused)) struct file *file,
break;
case INTERRUPT:
- shadows_irq[port_ID] = gpio_state;
- shadows_irq2[port_ID] = gpio_state2;
+ shadows_irq_h[port_ID] = gpio_state;
+ shadows_irq_l[port_ID] = gpio_state2;
break;
default:
diff --git a/target/linux/modules/gpio/core.h b/target/linux/modules/gpio/core.h
index 8a9bc58..9307e45 100755
--- a/target/linux/modules/gpio/core.h
+++ b/target/linux/modules/gpio/core.h
@@ -28,19 +28,24 @@
/* IOCTL */
-#define GPIORDDIRECTION _IOR(PP_IOCTL, 0xF0, int) /* Read/write bitmask that determines input/output pins (1 means output, 0 input) */
-#define GPIOWRDIRECTION _IOW(PP_IOCTL, 0xF1, int)
-#define GPIORDDATA _IOR(PP_IOCTL, 0xF2, int)
-#define GPIOWRDATA _IOW(PP_IOCTL, 0xF3, int)
-#define GPIORDMODE _IOR(PP_IOCTL, 0xF4, int)
-#define GPIOWRMODE _IOW(PP_IOCTL, 0xF5, int)
-#define GPIORDIRQMODE _IOR(PP_IOCTL, 0xF6, u64)
-#define GPIOWRIRQMODE _IOW(PP_IOCTL, 0xF7, u64)
-#define GPIORDPULLUP _IOR(PP_IOCTL, 0xF8, int)
-#define GPIOWRPULLUP _IOR(PP_IOCTL, 0xF9, int)
+#define GPIORDDIRECTION _IOR(PP_IOCTL, 0xF0, int)/* Read/write bitmask that determine*/
+#define GPIOWRDIRECTION _IOW(PP_IOCTL, 0xF1, int)/*in/out pins (1 output, 0 input) */
+
+#define GPIORDDATA _IOR(PP_IOCTL, 0xF2, int)
+#define GPIOWRDATA _IOW(PP_IOCTL, 0xF3, int)
+
+#define GPIORDMODE _IOR(PP_IOCTL, 0xF4, int)
+#define GPIOWRMODE _IOW(PP_IOCTL, 0xF5, int)
+
+#define GPIORDPULLUP _IOR(PP_IOCTL, 0xF6, int)
+#define GPIOWRPULLUP _IOR(PP_IOCTL, 0xF7, int)
+
+#define GPIORDIRQMODE_H _IOR(PP_IOCTL, 0xF8, int)
+#define GPIORDIRQMODE_L _IOR(PP_IOCTL, 0xF9, int)
+#define GPIOWRIRQMODE_H _IOR(PP_IOCTL, 0xFA, int)
+#define GPIOWRIRQMODE_L _IOR(PP_IOCTL, 0xFB, int)
/* Pretend we're PPDEV for IOCTL */
#include <linux/ppdev.h>
-
#endif /* __CORE_GPIO_H__ */
hooks/post-receive
--
armadeus
|