mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
change prefix for kernelpatchbase 2.6.26
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13619 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
81
target/linux/s3c24xx/patches-2.6.26/1062-glamo-cmdqueue-bandaid.patch.patch
Executable file
81
target/linux/s3c24xx/patches-2.6.26/1062-glamo-cmdqueue-bandaid.patch.patch
Executable file
@@ -0,0 +1,81 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user