diff options
author | Xiaohui Tao <xtao@nvidia.com> | 2014-01-10 14:19:34 -0800 |
---|---|---|
committer | Mitch Luban <mluban@nvidia.com> | 2014-01-10 16:51:20 -0800 |
commit | b9774d227e454af0f7275af153cca43cbdbdf904 (patch) | |
tree | 54371eeb7ca2a147dc648bf4bce66bbebca308bd /drivers/input/touchscreen | |
parent | a6143be43de123c6d6c9df9bd28e052f2c896946 (diff) |
Revert "input: touch: raydium: V61.7 code drop"
This reverts commit 168a30189073179c1394e2ec8b19de8c6341cd20.
Change-Id: Iaaaf62c0b2382c8809394212726e5ff468decfec
Reviewed-on: http://git-master/r/354423
Reviewed-by: Robert Collins <rcollins@nvidia.com>
Reviewed-by: Mitch Luban <mluban@nvidia.com>
Tested-by: Mitch Luban <mluban@nvidia.com>
Diffstat (limited to 'drivers/input/touchscreen')
-rw-r--r-- | drivers/input/touchscreen/rm31080a_ts.c | 64 |
1 files changed, 36 insertions, 28 deletions
diff --git a/drivers/input/touchscreen/rm31080a_ts.c b/drivers/input/touchscreen/rm31080a_ts.c index 2f34b2e9e432..786dbe49f592 100644 --- a/drivers/input/touchscreen/rm31080a_ts.c +++ b/drivers/input/touchscreen/rm31080a_ts.c @@ -489,7 +489,6 @@ void raydium_report_pointer(void *p) int iMaxX, iMaxY; struct rm_touch_event *spTP; ssize_t missing; - spTP = kmalloc(sizeof(struct rm_touch_event), GFP_KERNEL); if (spTP == NULL) return; @@ -524,7 +523,7 @@ void raydium_report_pointer(void *p) break; if ((spTP->ucToolType[i] == POINT_TYPE_ERASER) - && (spTP->ucSlot[i] & INPUT_POINT_RESET)) { + && (spTP->ucSlot[i] && INPUT_POINT_RESET)) { input_report_key(g_input_dev, BTN_TOOL_RUBBER, 0); input_mt_sync(g_input_dev); @@ -602,7 +601,7 @@ void raydium_report_pointer(void *p) break; if ((spTP->ucToolType[i] == POINT_TYPE_ERASER) - && (spTP->ucSlot[i] & INPUT_POINT_RESET)) { + && (spTP->ucSlot[i] && INPUT_POINT_RESET)) { input_report_key( g_input_dev[INPUT_DEVICE_FOR_STYLUS], BTN_TOOL_RUBBER, 0); @@ -669,8 +668,7 @@ void raydium_report_pointer(void *p) } input_mt_sync(g_input_dev[target_device]); } - for (i = 0; i < INPUT_DEVICE_AMOUNT; i++) - input_sync(g_input_dev[i]); + input_sync(g_input_dev[target_device]); ucLastTouchCount = spTP->ucTouchCount; } #endif @@ -815,8 +813,7 @@ static u32 rm_tch_ctrl_configure(void) switch (g_stTs.u8ScanModeState) { case RM_SCAN_ACTIVE_MODE: u32Flag = - RM_NEED_TO_SEND_SCAN | - RM_NEED_TO_READ_RAW_DATA | + RM_NEED_TO_SEND_SCAN | RM_NEED_TO_READ_RAW_DATA | RM_NEED_TO_SEND_SIGNAL; break; @@ -1052,8 +1049,8 @@ static int rm_tch_cmd_process(u8 selCase, u8 *pCmdTbl, struct rm_tch_ts *ts) if (u16TblLenth < 3) { if (g_stCtrl.bKernelMsg & DEBUG_DRIVER) - dev_info(&g_spi->dev, "Raydium - Null CMD %s : [%p]\n", - __func__, pCmdTbl); + dev_info(&g_spi->dev, "Raydium - Null CMD %s : [0x%x]\n", + __func__, (u32)pCmdTbl); mutex_unlock(&lock); return ret; } @@ -1232,7 +1229,7 @@ static int rm_tch_cmd_process(u8 selCase, u8 *pCmdTbl, struct rm_tch_ts *ts) break; case KRL_CMD_READ_IMG: /*rm_printk("Raydium - KRL_CMD_READ_IMG " - "- 0x%x:%p:%d\n", + "- 0x%x:0x%x:%d\n", pCmdTbl[_ADDR], g_pu8BurstReadBuf, g_stCtrl.u16DataLength);*/ @@ -1252,11 +1249,8 @@ static int rm_tch_cmd_process(u8 selCase, u8 *pCmdTbl, struct rm_tch_ts *ts) /*rm_printk("Raydium - KRL_CMD_WRITE_W_COUNT " "- 0x%x: 0x%x..0x%x\n", pCmdTbl[_ADDR], u8reg, ts->bRepeatCounter);*/ - if (ts) - ret = rm_tch_spi_byte_write(pCmdTbl[_ADDR], + ret = rm_tch_spi_byte_write(pCmdTbl[_ADDR], u8reg | (ts->bRepeatCounter)); - else - ret = FAIL; break; case KRL_CMD_RETURN_RESULT: g_stTs.u16ReadPara = u8reg; @@ -1275,9 +1269,9 @@ static int rm_tch_cmd_process(u8 selCase, u8 *pCmdTbl, struct rm_tch_ts *ts) // break; if (ret == FAIL) { - dev_err(&g_spi->dev, "Raydium - %s : [%p] cmd failed\n", + dev_err(&g_spi->dev, "Raydium - %s : [0x%x] cmd failed\n", __func__, - pCmdTbl); + (u32)pCmdTbl); dev_err(&g_spi->dev, "Raydium - cmd:0x%x, addr:0x%x, data:0x%x\n", pCmdTbl[_CMD], pCmdTbl[_ADDR], @@ -1343,7 +1337,7 @@ int rm_set_kernel_tbl(int iFuncIdx, u8 *u8pSrc) break; default: - dev_err(&g_spi->dev, "Raydium - %s : no such kernel table - err:%d\n", + dev_err(&g_spi->dev, "Raydium - %s : no kernel table - err:%d\n", __func__, iFuncIdx); return FAIL; } @@ -1372,8 +1366,8 @@ int rm_set_kernel_tbl(int iFuncIdx, u8 *u8pSrc) return FAIL; } - /*dev_info(&g_spi->dev, "Raydium - %s : CMD_TAB_%d[%p]\n", - __func__, iFuncIdx, u8pDst);*/ + /*dev_info(&g_spi->dev, "Raydium - %s : CMD_TAB_%d[0x%x]\n", + __func__, iFuncIdx, (u32)u8pDst);*/ kfree(u8pLen); return OK; @@ -1933,36 +1927,50 @@ static ssize_t rm_tch_slowscan_handler(const char *buf, size_t count) unsigned long val; ssize_t error; ssize_t ret; + u8 *pMyBuf; + ssize_t missing; if (count < 2) - return -EINVAL; + return count; ret = (ssize_t) count; + pMyBuf = kmalloc(count, GFP_KERNEL); + if (pMyBuf == NULL) + return -ENOMEM; + + missing = copy_from_user(pMyBuf, buf, count); + if (missing) { + dev_err(&g_spi->dev, "Raydium - %s : copy failed - len:%d, miss:%d\n", + __func__, count, missing); + return count; + } + mutex_lock(&g_stTs.mutex_scan_mode); if (count == 2) { - if (buf[0] == '0') { + if (pMyBuf[0] == '0') { g_stTs.bEnableSlowScan = false; rm_tch_ctrl_slowscan(RM_SLOW_SCAN_LEVEL_MAX); - } else if (buf[0] == '1') { + } else if (pMyBuf[0] == '1') { g_stTs.bEnableSlowScan = true; rm_tch_ctrl_slowscan(RM_SLOW_SCAN_LEVEL_60); g_stTs.u32SlowScanLevel = RM_SLOW_SCAN_LEVEL_60; } - } else if ((buf[0] == '2') && (buf[1] == ' ')) { - error = kstrtoul(&buf[2], 10, &val); + } else if ((pMyBuf[0] == '2') && (pMyBuf[1] == ' ')) { + error = kstrtoul(&pMyBuf[2], 10, &val); if (error) { ret = error; } else { g_stTs.bEnableSlowScan = true; - g_stTs.u32SlowScanLevel = rm_tch_slowscan_round((u32)val); + g_stTs.u32SlowScanLevel = rm_tch_slowscan_round(val); rm_tch_ctrl_slowscan(g_stTs.u32SlowScanLevel); } } mutex_unlock(&g_stTs.mutex_scan_mode); + kfree(pMyBuf); return ret; } #endif @@ -2150,9 +2158,9 @@ static void rm_tch_report_mode_change(unsigned long val) g_stTs.u8ReportMode = (u8)val; iInfo = (RM_SIGNAL_PARA_REPORT_MODE_CHANGE << 24) | - (g_stTs.u8ReportMode << 16) | + (val << 16) | RM_SIGNAL_REPORT_MODE_CHANGE; - + rm_tch_ts_send_signal(g_stTs.ulHalPID, iInfo); } @@ -2675,7 +2683,7 @@ struct rm_tch_ts *rm_tch_input_init(struct device *dev, unsigned int irq, goto err_out; } - ts = kzalloc(sizeof(struct rm_tch_ts), GFP_KERNEL); + ts = kzalloc(sizeof(*ts), GFP_KERNEL); input_dev = input_allocate_device(); |