diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/1062-glamo-cmdqueue-bandaid.patch.patch')
-rwxr-xr-x | target/linux/s3c24xx/patches-2.6.26/1062-glamo-cmdqueue-bandaid.patch.patch | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/1062-glamo-cmdqueue-bandaid.patch.patch b/target/linux/s3c24xx/patches-2.6.26/1062-glamo-cmdqueue-bandaid.patch.patch deleted file mode 100755 index 96ec17c499..0000000000 --- a/target/linux/s3c24xx/patches-2.6.26/1062-glamo-cmdqueue-bandaid.patch.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 08f211e0775ee1e29993fd072968e17a51c5ec14 Mon Sep 17 00:00:00 2001 -From: mokopatches <mokopatches@openmoko.org> -Date: Fri, 25 Jul 2008 23:05:22 +0100 -Subject: [PATCH] glamo-cmdqueue-bandaid.patch - [ Stop kernel from hanging every once in a while during Glamo - initialization. ] - -debug-glamo-fb-cmdqueue-wait-timeout.patch - -From: warmcat <andy@warmcat.com> ---- - drivers/mfd/glamo/glamo-fb.c | 30 +++++++++++++++++++++++++++--- - 1 files changed, 27 insertions(+), 3 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-fb.c b/drivers/mfd/glamo/glamo-fb.c -index 394a0ad..f0d7600 100644 ---- a/drivers/mfd/glamo/glamo-fb.c -+++ b/drivers/mfd/glamo/glamo-fb.c -@@ -553,12 +553,20 @@ static inline int glamofb_cmdq_empty(struct glamofb_handle *gfb) - - void glamofb_cmd_mode(struct glamofb_handle *gfb, int on) - { -+ int timeout = 2000; -+ - dev_dbg(gfb->dev, "glamofb_cmd_mode(gfb=%p, on=%d)\n", gfb, on); - if (on) { - dev_dbg(gfb->dev, "%s: waiting for cmdq empty: ", - __FUNCTION__); -- while (!glamofb_cmdq_empty(gfb)) -+ while ((!glamofb_cmdq_empty(gfb)) && (timeout--)) - yield(); -+ if (timeout < 0) { -+ printk(KERN_ERR"*************" -+ "glamofb cmd_queue never got empty" -+ "*************\n"); -+ return; -+ } - dev_dbg(gfb->dev, "empty!\n"); - - /* display the entire frame then switch to command */ -@@ -568,8 +576,16 @@ void glamofb_cmd_mode(struct glamofb_handle *gfb, int on) - - /* wait until LCD is idle */ - dev_dbg(gfb->dev, "waiting for LCD idle: "); -- while (!reg_read(gfb, GLAMO_REG_LCD_STATUS2) & (1 << 12)) -+ timeout = 2000; -+ while ((!reg_read(gfb, GLAMO_REG_LCD_STATUS2) & (1 << 12)) && -+ (timeout--)) - yield(); -+ if (timeout < 0) { -+ printk(KERN_ERR"*************" -+ "glamofb lcd never idle" -+ "*************\n"); -+ return; -+ } - dev_dbg(gfb->dev, "idle!\n"); - - msleep(90); -@@ -589,10 +605,18 @@ EXPORT_SYMBOL_GPL(glamofb_cmd_mode); - - int glamofb_cmd_write(struct glamofb_handle *gfb, u_int16_t val) - { -+ int timeout = 2000; -+ - dev_dbg(gfb->dev, "%s: waiting for cmdq empty\n", - __FUNCTION__); -- while (!glamofb_cmdq_empty(gfb)) -+ while ((!glamofb_cmdq_empty(gfb)) && (timeout--)) - yield(); -+ if (timeout < 0) { -+ printk(KERN_ERR"*************" -+ "glamofb cmd_queue never got empty" -+ "*************\n"); -+ return 1; -+ } - dev_dbg(gfb->dev, "idle, writing 0x%04x\n", val); - - reg_write(gfb, GLAMO_REG_LCD_COMMAND1, val); --- -1.5.6.3 - |