himax_v2_mmi: Fix kernel dump issue.

Fix kernel dump issue after selftest excuted.
Use kzlloc area for DMA translation

Change-Id: Ibe7d32bd924d76481f72cce006f5c6bff5219f93
Signed-off-by: haojl2 <haojl2@motorola.com>
Reviewed-on: https://gerrit.mot.com/1366923
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Jianqi Yang <yangj@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
haojl2 2019-06-05 22:55:13 +08:00 • committed by Jialei Hao
commit 0c22d4ca18
2 changed files with 10 additions and 5 deletions

View file

@ -2595,17 +2595,16 @@ int himax_report_data(struct himax_ts_data *ts, int ts_path, int ts_status)
static int himax_ts_operation(struct himax_ts_data *ts, int ts_path, int ts_status)
{
uint8_t hw_reset_check[2];
static uint8_t buf[128];
memset(buf, 0x00, sizeof(buf));
memset(ts->xfer_buff, 0x00, 128 * sizeof(uint8_t));
memset(hw_reset_check, 0x00, sizeof(hw_reset_check));
ts_status = himax_touch_get(ts, buf, ts_path, ts_status);
ts_status = himax_touch_get(ts, ts->xfer_buff, ts_path, ts_status);
if (ts_status == HX_TS_GET_DATA_FAIL)
goto END_FUNCTION;
ts_status = himax_distribute_touch_data(buf, ts_path, ts_status);
ts_status = himax_err_ctrl(ts, buf, ts_path, ts_status);
ts_status = himax_distribute_touch_data(ts->xfer_buff, ts_path, ts_status);
ts_status = himax_err_ctrl(ts, ts->xfer_buff, ts_path, ts_status);
if (ts_status == HX_REPORT_DATA || ts_status == HX_TS_NORMAL_END)
ts_status = himax_parse_report_data(ts, ts_path, ts_status);
else
@ -2829,6 +2828,11 @@ int himax_chip_common_init(void)
g_embedded_fw.size = (size_t)_binary___Himax_firmware_bin_end -
(size_t)_binary___Himax_firmware_bin_start;
#endif
ts->xfer_buff = devm_kzalloc(ts->dev, 128 * sizeof(uint8_t), GFP_KERNEL);
if (ts->xfer_buff == NULL) {
err = -ENOMEM;
goto err_dt_platform_data_fail;
}
I("PDATA START\n");
pdata = kzalloc(sizeof(struct himax_i2c_platform_data), GFP_KERNEL);

View file

@ -379,6 +379,7 @@ struct himax_ts_data {
struct mutex spi_lock;
struct spi_device *spi;
int hx_irq;
uint8_t *xfer_buff;
/******* SPI-end *******/
int in_self_test;