The patch is version 2 to fix bug#10616 and upgrade touch driver to 3.0.7 from 3.0.6. Please help to integrate the patch into kernel. Thank you.
Subject: [PATCH_v2] linux-2.6.37-ektf-fix-circular-locking_v2.patch Fix 10615 [1.2Testing][REG] touchscreen lockdep warning: "possible circular locking dependency detected" [ 17.959378] ======================================================= [ 17.960058] [ INFO: possible circular locking dependency detected ] [ 17.960058] 2.6.37.6-24.3-adaptation-mrst #1 [ 17.960058] ------------------------------------------------------- [ 17.960058] sr-engine-touch/677 is trying to acquire lock: [ 17.994500] (&ed->mutex){+.+.+.}, at: [<c1405cf7>] ektf2136_runtime_resume+0x47/0xb0 [ 17.994500] [ 17.994500] but task is already holding lock: [ 17.994500] (&dev->mutex){+.+...}, at: [<c13f3624>] input_open_device+0x24/0xb0 [ 17.994500] [ 17.994500] which lock already depends on the new lock. Signed-off-by: Mike Hsu <mike_t_...@wistron.com> Signed-off-by: Scott Liu <scott....@emc.com.tw> --- ektf2136_spi.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) --- linux-2.6.37/drivers/input/touchscreen/ektf2136_spi.old.c 2011-07-13 15:49:05.000000000 +0800 +++ linux-2.6.37/drivers/input/touchscreen/ektf2136_spi.c 2011-07-13 16:00:26.000000000 +0800 @@ -30,11 +30,11 @@ #include <linux/pm_runtime.h> #define DRV_NAME "ektf2136_spi" -#define DRIVER_VERSION "v3.0.6" +#define DRIVER_VERSION "v3.0.7" #define DRV_MA_VER 3 #define DRV_MI_VER 0 -#define DRV_SUB_MI_VER 6 +#define DRV_SUB_MI_VER 7 static const char ELAN_TS_NAME[] = "ektf2136_spi"; @@ -2642,11 +2642,11 @@ PREPARE_WORK(&ed->work, elan_touch_work_func); elan_touch_register_interrupt(spi); + mutex_unlock(&ed->mutex); + pm_runtime_set_active(&ed->spi->dev); pm_runtime_enable(&ed->spi->dev); - mutex_unlock(&ed->mutex); - ed->status |= STA_INIT3; return ; @@ -2824,15 +2824,15 @@ if (ed->protocol & PRO_UPDATE_FW_MODE) return 0; - mutex_lock(&ed->mutex); + mutex_lock(&ed->sysfs_mutex); ret = elan_spi_write_cmd(ed->spi, set_sleep_cmd, sizeof(set_sleep_cmd), "set_sleep_cmd"); - mutex_unlock(&ed->mutex); - if (ret < 0) + if (ret < 0) { + mutex_unlock(&ed->sysfs_mutex); return ret; + } - mutex_lock(&ed->sysfs_mutex); ed->power_state = 0; mutex_unlock(&ed->sysfs_mutex); msleep(100); @@ -2853,15 +2853,15 @@ if (ed->protocol & PRO_UPDATE_FW_MODE) return 0; - mutex_lock(&ed->mutex); + mutex_lock(&ed->sysfs_mutex); ret = elan_spi_write_cmd(ed->spi, set_active_cmd, sizeof(set_active_cmd), "set_active_cmd"); - mutex_unlock(&ed->mutex); - if (ret < 0) + if (ret < 0) { + mutex_unlock(&ed->sysfs_mutex); return ret; + } - mutex_lock(&ed->sysfs_mutex); ed->power_state = 1; mutex_unlock(&ed->sysfs_mutex); msleep(100); Best regards, Mike Hsu 徐宗壕 Linux Software, Mobile BG, Wistron Email: mike_t_...@wistron.com Tel: 886-2-66123829
linux-2.6.37-ektf-fix-circular-locking_v2.patch
Description: linux-2.6.37-ektf-fix-circular-locking_v2.patch
_______________________________________________ MeeGo-kernel mailing list MeeGo-kernel@lists.meego.com http://lists.meego.com/listinfo/meego-kernel