[PATCH] Reset MQ11xx chip before any initialization

From: Milan Plzik <milan.plzik_at_gmail.com>
Date: Thu, 24 Jan 2008 09:58:11 +0100

  Hello,

  attached patch should solve h5000 framebuffer initialization problems
when device was not cleanly booted (mq11xx was in some state different
from initial one) and there was no image on display. It would be great
if someone could test it with other devices using MQ11xx chips, so if
eventually commited, it won't break anything.

        Milan

mq11xx_base driver (at least mq1100fb using mq11xx_base portion)

From: Milan Plzik <milan.plzik_at_gmail.com>

tends to malfunction on h5000 series after booting linux from haret, or
reseting device with active framebuffer. This patch adds mq11xx reset
to the start of initialization routine, so chip is always in
well-defined state.

---
 drivers/mfd/mq11xx_base.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/mfd/mq11xx_base.c b/drivers/mfd/mq11xx_base.c
index 91a1d98..0506d56 100644
--- a/drivers/mfd/mq11xx_base.c
+++ b/drivers/mfd/mq11xx_base.c
@@ -435,6 +435,10 @@ mq11xx_init (struct mq_data *mqdata)
 	endian = endian | (endian << 4);
 	endian = endian | (endian << 8);
 	*((u16 *)&mqdata->base.regs->DC.config_0) = endian;
+	
+	/* Reset the chip, so we don't need to worry about previous state */
+	mqdata->base.regs->DC.config_1 |= MQ_CONFIG_SOFTWARE_CHIP_RESET;
+	
 	/* First of all, enable the oscillator clock */
 	mqdata->base.regs->DC.config_1 = mqdata->mq_init->DC [1];
 	/* Wait for oscillator to run - 30ms doesnt suffice */
Received on Thu Jan 24 2008 - 04:03:34 EST

This archive was generated by hypermail 2.2.0 : Thu Jan 24 2008 - 04:05:19 EST