Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50165d8b authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/home/rmk/linux-2.6-arm

parents 944d2647 c2f48086
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -305,7 +305,7 @@ long execve(const char *filename, char **argv, char **envp)
		  "Ir" (THREAD_START_SP - sizeof(regs)),
		  "Ir" (THREAD_START_SP - sizeof(regs)),
		  "r" (&regs),
		  "r" (&regs),
		  "Ir" (sizeof(regs))
		  "Ir" (sizeof(regs))
		: "r0", "r1", "r2", "r3", "ip", "memory");
		: "r0", "r1", "r2", "r3", "ip", "lr", "memory");


 out:
 out:
	return ret;
	return ret;
+1 −1
Original line number Original line Diff line number Diff line
@@ -504,7 +504,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)


		bad_access:
		bad_access:
		spin_unlock(&mm->page_table_lock);
		spin_unlock(&mm->page_table_lock);
		/* simulate a read access fault */
		/* simulate a write access fault */
		do_DataAbort(addr, 15 + (1 << 11), regs);
		do_DataAbort(addr, 15 + (1 << 11), regs);
		return -1;
		return -1;
	}
	}
+12 −11
Original line number Original line Diff line number Diff line
@@ -28,14 +28,15 @@
#include <linux/module.h>
#include <linux/module.h>
#include <asm/arch/imxfb.h>
#include <asm/arch/imxfb.h>
#include <asm/hardware.h>
#include <asm/hardware.h>
#include <asm/arch/imx-regs.h>


#include <asm/mach/map.h>
#include <asm/mach/map.h>


void imx_gpio_mode(int gpio_mode)
void imx_gpio_mode(int gpio_mode)
{
{
	unsigned int pin = gpio_mode & GPIO_PIN_MASK;
	unsigned int pin = gpio_mode & GPIO_PIN_MASK;
	unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> 5;
	unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> GPIO_PORT_SHIFT;
	unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> 10;
	unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> GPIO_OCR_SHIFT;
	unsigned int tmp;
	unsigned int tmp;


	/* Pullup enable */
	/* Pullup enable */
@@ -57,7 +58,7 @@ void imx_gpio_mode(int gpio_mode)
		GPR(port) &= ~(1<<pin);
		GPR(port) &= ~(1<<pin);


	/* use as gpio? */
	/* use as gpio? */
	if( ocr == 3 )
	if(gpio_mode &  GPIO_GIUS)
		GIUS(port) |= (1<<pin);
		GIUS(port) |= (1<<pin);
	else
	else
		GIUS(port) &= ~(1<<pin);
		GIUS(port) &= ~(1<<pin);
@@ -72,20 +73,20 @@ void imx_gpio_mode(int gpio_mode)
		tmp |= (ocr << (pin*2));
		tmp |= (ocr << (pin*2));
		OCR1(port) = tmp;
		OCR1(port) = tmp;


		if( gpio_mode &	GPIO_AOUT )
		ICONFA1(port) &= ~( 3<<(pin*2));
		ICONFA1(port) &= ~( 3<<(pin*2));
		if( gpio_mode &	GPIO_BOUT )
		ICONFA1(port) |= ((gpio_mode >> GPIO_AOUT_SHIFT) & 3) << (pin * 2);
		ICONFB1(port) &= ~( 3<<(pin*2));
		ICONFB1(port) &= ~( 3<<(pin*2));
		ICONFB1(port) |= ((gpio_mode >> GPIO_BOUT_SHIFT) & 3) << (pin * 2);
	} else {
	} else {
		tmp = OCR2(port);
		tmp = OCR2(port);
		tmp &= ~( 3<<((pin-16)*2));
		tmp &= ~( 3<<((pin-16)*2));
		tmp |= (ocr << ((pin-16)*2));
		tmp |= (ocr << ((pin-16)*2));
		OCR2(port) = tmp;
		OCR2(port) = tmp;


		if( gpio_mode &	GPIO_AOUT )
		ICONFA2(port) &= ~( 3<<((pin-16)*2));
		ICONFA2(port) &= ~( 3<<((pin-16)*2));
		if( gpio_mode &	GPIO_BOUT )
		ICONFA2(port) |= ((gpio_mode >> GPIO_AOUT_SHIFT) & 3) << ((pin-16) * 2);
		ICONFB2(port) &= ~( 3<<((pin-16)*2));
		ICONFB2(port) &= ~( 3<<((pin-16)*2));
		ICONFB2(port) |= ((gpio_mode >> GPIO_BOUT_SHIFT) & 3) << ((pin-16) * 2);
	}
	}
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -55,7 +55,7 @@ static void __init
mx1ads_init(void)
mx1ads_init(void)
{
{
#ifdef CONFIG_LEDS
#ifdef CONFIG_LEDS
	imx_gpio_mode(GPIO_PORTA | GPIO_OUT | GPIO_GPIO | 2);
	imx_gpio_mode(GPIO_PORTA | GPIO_OUT | 2);
#endif
#endif
	platform_add_devices(devices, ARRAY_SIZE(devices));
	platform_add_devices(devices, ARRAY_SIZE(devices));
}
}
+5 −3
Original line number Original line Diff line number Diff line
@@ -17,9 +17,11 @@
static void arch_idle(void)
static void arch_idle(void)
{
{
	CPU_REG (PMU_BASE, PMU_MODE) = PMU_MODE_IDLE;
	CPU_REG (PMU_BASE, PMU_MODE) = PMU_MODE_IDLE;
	__asm__ __volatile__(
	nop();
	"mov	r0, r0\n\t"
	nop();
	"mov	r0, r0");
	CPU_REG (PMU_BASE, PMU_MODE) = PMU_MODE_RUN;
	nop();
	nop();
}
}




Loading