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

Commit 9bb13eed authored by Russell King's avatar Russell King
Browse files

FB: sa11x0: fix shannon GPSR/GPCR accesses



The GPIO set and clear registers should only be written, rather than
read, modified, and written.  A read-modify-write will have undesired
side effects.

Acked-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 058502eb
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -798,7 +798,7 @@ static void sa1100fb_enable_controller(struct sa1100fb_info *fbi)


	if (machine_is_shannon()) {
	if (machine_is_shannon()) {
		GPDR |= SHANNON_GPIO_DISP_EN;
		GPDR |= SHANNON_GPIO_DISP_EN;
		GPSR |= SHANNON_GPIO_DISP_EN;
		GPSR = SHANNON_GPIO_DISP_EN;
	}
	}


	dev_dbg(fbi->dev, "DBAR1 = 0x%08lx\n", DBAR1);
	dev_dbg(fbi->dev, "DBAR1 = 0x%08lx\n", DBAR1);
@@ -816,7 +816,7 @@ static void sa1100fb_disable_controller(struct sa1100fb_info *fbi)
	dev_dbg(fbi->dev, "Disabling LCD controller\n");
	dev_dbg(fbi->dev, "Disabling LCD controller\n");


	if (machine_is_shannon()) {
	if (machine_is_shannon()) {
		GPCR |= SHANNON_GPIO_DISP_EN;
		GPCR = SHANNON_GPIO_DISP_EN;
	}	
	}	


	set_current_state(TASK_UNINTERRUPTIBLE);
	set_current_state(TASK_UNINTERRUPTIBLE);