From patchwork Fri Aug 16 08:37:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Jiada" X-Patchwork-Id: 11097227 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C3C2D1395 for ; Fri, 16 Aug 2019 08:37:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B1BFA289CA for ; Fri, 16 Aug 2019 08:37:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A4252289E1; Fri, 16 Aug 2019 08:37:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 459FC289CA for ; Fri, 16 Aug 2019 08:37:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726899AbfHPIhQ (ORCPT ); Fri, 16 Aug 2019 04:37:16 -0400 Received: from esa2.mentor.iphmx.com ([68.232.141.98]:1919 "EHLO esa2.mentor.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726810AbfHPIhQ (ORCPT ); Fri, 16 Aug 2019 04:37:16 -0400 X-Greylist: delayed 306 seconds by postgrey-1.27 at vger.kernel.org; Fri, 16 Aug 2019 04:37:16 EDT IronPort-SDR: VmNrKHCByHWrkM4V4KRDR4+Hxrqu1hMZI6D/4tWcIwqjmiavILAkaZ2jHnmYJHNjz1ZpyTsisq SmoYDTD46b9e+oXHKfJKLOc/lPP6LoGNz2i2NwDi93mfXFbrEaKn5mARIcKR3Iuce2gYDg5mXT OjXQcQr6Zsow7mQNmDob6U8FwR3p2QsdQ1s7Ll+8prOh94gs+d50GvIiDlbdj/mcsx/ghaVbWV lwuu17zglNbPB63CJv+8kUdTjaDbD0hm0tXEuk3oJGc1i0u/eCb4IWGAxDpwYfzskErfK+twVS ilY= X-IronPort-AV: E=Sophos;i="5.64,391,1559548800"; d="scan'208";a="40484352" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 16 Aug 2019 00:37:15 -0800 IronPort-SDR: Tt9VHoDr4caUaTTUn3oLYZMU5Y8pWis5x0HIUll2oqUXLzbUMJ6ZlDxogSs3WpLnYS5fRTF0st yL1ZdOK8cPObsZdEkVuxBWCbRqUtdy7o5/OHGMTGZutUX9Kt3TugbLSfFRRs5Ad3/NNF2sFMsD OlaWlx2BiMjncRA2btmXng8F4pfd6Z+D0YeuFgy25Eu8bwGVLEucJ2pLDjXNeiRDbktIhWmc1T zVBKbcYxxob1yCwAN/gpZKJFbykxnwFKeJyk/qJthvakCxmBSqFVTiVYMQw5JRc4ly6gYP/OMX Z3w= From: Jiada Wang To: , CC: , , , Subject: [PATCH v1 45/63] Input: Atmel: improve error handling in mxt_start() Date: Fri, 16 Aug 2019 17:37:06 +0900 Message-ID: <20190816083724.19341-1-jiada_wang@mentor.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 X-ClientProxiedBy: svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) To svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Deepak Das mxt_start() does not return error in any of the failure cases which will allow input_dev->open() to return success even in case of any failure. This commit modifies mxt_start() to return error in failure cases. Signed-off-by: Deepak Das Signed-off-by: George G. Davis Signed-off-by: Jiada Wang --- drivers/input/touchscreen/atmel_mxt_ts.c | 31 ++++++++++++------------ 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c index ed5b98c067e8..232262736029 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -4043,12 +4043,13 @@ static int mxt_start(struct mxt_data *data) switch (data->suspend_mode) { case MXT_SUSPEND_T9_CTRL: - mxt_soft_reset(data); - + ret = mxt_soft_reset(data); + if (ret) + break; /* Touch enable */ /* 0x83 = SCANEN | RPTEN | ENABLE */ - mxt_write_object(data, - MXT_TOUCH_MULTI_T9, MXT_T9_CTRL, 0x83); + ret = mxt_write_object(data, + MXT_TOUCH_MULTI_T9, MXT_T9_CTRL, 0x83); break; case MXT_SUSPEND_REGULATOR: @@ -4062,27 +4063,26 @@ static int mxt_start(struct mxt_data *data) * Discard any touch messages still in message buffer * from before chip went to sleep */ - mxt_process_messages_until_invalid(data); + ret = mxt_process_messages_until_invalid(data); + if (ret) + break; ret = mxt_set_t7_power_cfg(data, MXT_POWER_CFG_RUN); if (ret) - return ret; + break; /* Recalibrate since chip has been in deep sleep */ ret = mxt_t6_command(data, MXT_COMMAND_CALIBRATE, 1, false); if (ret) - return ret; + break; ret = mxt_acquire_irq(data); - if (ret) - return ret; - - break; } - data->suspended = false; + if (!ret) + data->suspended = false; - return 0; + return ret; } static int mxt_stop(struct mxt_data *data) @@ -4511,6 +4511,7 @@ static int __maybe_unused mxt_resume(struct device *dev) struct i2c_client *client = to_i2c_client(dev); struct mxt_data *data = i2c_get_clientdata(client); struct input_dev *input_dev = data->input_dev; + int ret = 0; if (!input_dev) return 0; @@ -4518,11 +4519,11 @@ static int __maybe_unused mxt_resume(struct device *dev) mutex_lock(&input_dev->mutex); if (input_dev->users) - mxt_start(data); + ret = mxt_start(data); mutex_unlock(&input_dev->mutex); - return 0; + return ret; } static SIMPLE_DEV_PM_OPS(mxt_pm_ops, mxt_suspend, mxt_resume); From patchwork Fri Aug 16 08:37:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Jiada" X-Patchwork-Id: 11097233 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 465F91395 for ; Fri, 16 Aug 2019 08:37:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 36AF7289D4 for ; Fri, 16 Aug 2019 08:37:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2B2EE289E1; Fri, 16 Aug 2019 08:37:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C1706289D4 for ; Fri, 16 Aug 2019 08:37:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726970AbfHPIhU (ORCPT ); Fri, 16 Aug 2019 04:37:20 -0400 Received: from esa2.mentor.iphmx.com ([68.232.141.98]:1919 "EHLO esa2.mentor.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726810AbfHPIhU (ORCPT ); Fri, 16 Aug 2019 04:37:20 -0400 X-Greylist: delayed 306 seconds by postgrey-1.27 at vger.kernel.org; Fri, 16 Aug 2019 04:37:16 EDT IronPort-SDR: ZLU3mYRYQHs25uxShSFIobRxLNUSKHvMS4tBxnkJubjnagcxUe7q0CdwUXXfd1RpcYuWgTiMeh GUILAprOO2FxhDVWVt3uWVXAmSOSApkxUGYSKOezaWcvfjZTZNRFw4jc8aKP5btEHPtKTV/j7J LJyhg6EXKJIUSsyTCSsW3yFVVQ6PPjlKgSQKsESjhqawZ93LpGzoZonhnibqV+ZCHbS7JjZecQ 2dHRM2KyVMLJ6BbuK3xLzsI+zShf/YwpQv48dgnjfCaLctOjAvpZVX5i3jkwh5Nq2aGAOFSUcN /Jo= X-IronPort-AV: E=Sophos;i="5.64,391,1559548800"; d="scan'208";a="40484353" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 16 Aug 2019 00:37:19 -0800 IronPort-SDR: SK1M7+p4iKtWSyr+ULYjV3yQA35QequgE+Aq+bAqYlYQvRWaCFKdML9U0r9IefyPzzTZBwvMxA YyspYSvPuxM/KGD1STVL/JkjTBeKHurnVfmA95mPpeQVjPhQLd4yYxn3WQ7dsKiAcjtoLazVjS q7cBm8Cyesd0aimY6GQKeAQQg6+MlGlhFPEekPrwY1dG9cO5LOLN1TUASS0Hik/yZL2nd+vRED HaeiM9Hv/2zPkh+dSBfYiWW0OQbWAHu4QDrhmjzY0XOrt7gOco6XmW59QmbY1/GPvISSPBvVjr 9U4= From: Jiada Wang To: , CC: , , , Subject: [PATCH v1 46/63] Input: Atmel: improve error handling in mxt_initialize() Date: Fri, 16 Aug 2019 17:37:07 +0900 Message-ID: <20190816083724.19341-2-jiada_wang@mentor.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190816083724.19341-1-jiada_wang@mentor.com> References: <20190816083724.19341-1-jiada_wang@mentor.com> MIME-Version: 1.0 X-ClientProxiedBy: svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) To svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Deepak Das Currently mxt_initialize() tries to probe bootloader mode even if valid bootloader address is not specified. This commit modifies mxt_initialize() to return error if Device is not in appmode and bootloader address is not specified. This commit also returns error code from mxt_send_bootloader_cmd() in mxt_initialize(). Signed-off-by: Deepak Das Signed-off-by: George G. Davis Signed-off-by: Jiada Wang --- drivers/input/touchscreen/atmel_mxt_ts.c | 33 +++++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c index 232262736029..3999d3e31a6a 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -718,17 +718,13 @@ static int mxt_lookup_bootloader_address(struct mxt_data *data, bool retry) return 0; } -static int mxt_probe_bootloader(struct mxt_data *data, bool alt_address) +static int mxt_probe_bootloader(struct mxt_data *data) { struct device *dev = &data->client->dev; int error; u8 buf[3]; bool crc_failure, extended_id; - error = mxt_lookup_bootloader_address(data, alt_address); - if (error) - return error; - /* Check bootloader status and version information */ error = mxt_bootloader_read(data, buf, sizeof(buf)); if (error) @@ -2930,13 +2926,25 @@ static int mxt_initialize(struct mxt_data *data) if (!error) break; + dev_info(&client->dev, + "info block read failed (%d), so try bootloader method\n", + error); + + error = mxt_lookup_bootloader_address(data, false); + if (error) { + dev_info(&client->dev, + "Bootloader address is not specified\n"); + return error; + } /* Check bootloader state */ - error = mxt_probe_bootloader(data, false); + error = mxt_probe_bootloader(data); if (error) { dev_info(&client->dev, "Trying alternate bootloader address\n"); - error = mxt_probe_bootloader(data, true); + mxt_lookup_bootloader_address(data, true); + error = mxt_probe_bootloader(data); if (error) { - /* Chip is not in appmode or bootloader mode */ + dev_err(&client->dev, + "Chip is not in appmode or bootloader mode\n"); return error; } } @@ -2953,7 +2961,9 @@ static int mxt_initialize(struct mxt_data *data) } /* Attempt to exit bootloader into app mode */ - mxt_send_bootloader_cmd(data, false); + error = mxt_send_bootloader_cmd(data, false); + if (error) + return error; msleep(MXT_FW_RESET_TIME); } @@ -3645,8 +3655,11 @@ static int mxt_enter_bootloader(struct mxt_data *data) msleep(MXT_RESET_TIME); + ret = mxt_lookup_bootloader_address(data, false); + if (ret) + return ret; /* Do not need to scan since we know family ID */ - ret = mxt_probe_bootloader(data, 0); + ret = mxt_probe_bootloader(data); if (ret) return ret; From patchwork Fri Aug 16 08:37:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Jiada" X-Patchwork-Id: 11097229 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A9B1914DB for ; Fri, 16 Aug 2019 08:37:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 99191289D4 for ; Fri, 16 Aug 2019 08:37:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8D765289E1; Fri, 16 Aug 2019 08:37:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 45F39289D4 for ; Fri, 16 Aug 2019 08:37:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727009AbfHPIhX (ORCPT ); Fri, 16 Aug 2019 04:37:23 -0400 Received: from esa2.mentor.iphmx.com ([68.232.141.98]:1919 "EHLO esa2.mentor.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726810AbfHPIhW (ORCPT ); Fri, 16 Aug 2019 04:37:22 -0400 X-Greylist: delayed 306 seconds by postgrey-1.27 at vger.kernel.org; Fri, 16 Aug 2019 04:37:16 EDT IronPort-SDR: 9cBcObNhuBTpCWSUzTXXqJ10FbqMFTl8ZZ8ko3yEyzdDT62mHe31HAjfHFDsRUGwiZOjOWS2+u nhhIIkldCWMcEsNFQL80gg/AaRkLj8dd++YGv2Q05mZDgCm+iDUHch0PDSidjEzwkkerPBU8lD JaWHVi5m5JLajcUiSbFhlnDxkVlygBML1gmgM8JSz9hQU5eoPYR1qrHA6qNWUUaGr7njJ9bff6 Ars5MqlP+Q4BaxxrYnxIepvwIzP4LyTH7dzYHFCyM+lSkQQrRPQ+bnI2AygQ5iVEVUWdIdgPbY DVY= X-IronPort-AV: E=Sophos;i="5.64,391,1559548800"; d="scan'208";a="40484354" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 16 Aug 2019 00:37:21 -0800 IronPort-SDR: VG1zB6usqLggr14YPVndYZGr1+SYXroPYixLGWsTjo5R+2q1747ZcKEeHfON5frAbVTlrFjdUB 47NKy/OwkcPTPvlupD+sAdhaCYhXk+34wAj8c5ak8laZGA69X1TPYBR9wIhSDYi8UMIlrj973x tlbT0RljhA2Cp45NC/uI+4eUhW5+K7+6WlTSKYFy2LLab1+49Pw1OdO5Q+DVOU4ECZQGfr8627 E+oMA45ATmAjrx5gZY8dec4jfZd98vaipmz2Cf7n8WpQfXMxpTpfXjLhkw5Z/CmD6fkv5QQRsR tmc= From: Jiada Wang To: , CC: , , , Subject: [PATCH v1 47/63] Input: Atmel: improve error handling in mxt_update_cfg() Date: Fri, 16 Aug 2019 17:37:08 +0900 Message-ID: <20190816083724.19341-3-jiada_wang@mentor.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190816083724.19341-1-jiada_wang@mentor.com> References: <20190816083724.19341-1-jiada_wang@mentor.com> MIME-Version: 1.0 X-ClientProxiedBy: svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) To svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Deepak Das mxt_update_cfg() failed to propagate the error code from mxt_init_t7_power_cfg() so return the error code. Signed-off-by: Deepak Das Signed-off-by: George G. Davis Signed-off-by: Jiada Wang --- drivers/input/touchscreen/atmel_mxt_ts.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c index 3999d3e31a6a..dec9f2b2c64d 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -2173,7 +2173,9 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw) dev_info(dev, "Config successfully updated\n"); /* T7 config may have changed */ - mxt_init_t7_power_cfg(data); + ret = mxt_init_t7_power_cfg(data); + if (ret) + dev_warn(dev, "Power Config failed to update\n"); release_mem: kfree(cfg.mem); From patchwork Fri Aug 16 08:37:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Jiada" X-Patchwork-Id: 11097231 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4C7BF14DB for ; Fri, 16 Aug 2019 08:37:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3C150289D4 for ; Fri, 16 Aug 2019 08:37:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 304CB289E1; Fri, 16 Aug 2019 08:37:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C60A1289D4 for ; Fri, 16 Aug 2019 08:37:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727035AbfHPIh0 (ORCPT ); Fri, 16 Aug 2019 04:37:26 -0400 Received: from esa2.mentor.iphmx.com ([68.232.141.98]:1919 "EHLO esa2.mentor.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726810AbfHPIh0 (ORCPT ); Fri, 16 Aug 2019 04:37:26 -0400 X-Greylist: delayed 306 seconds by postgrey-1.27 at vger.kernel.org; Fri, 16 Aug 2019 04:37:16 EDT IronPort-SDR: kWNcfRYQMgWX4Dr4DT+JqrmPT6u5yKmBCnZhjyRZ0BI7N7+XCkFg7t1/mCqSXeiEDnp2sAt81C HfoqmhzpPuc+rPK805G4Yz/3R+4F7aYt6AI2vrIViWF7nsGmR0RGCF5v0cEs+rM2eowZRvXa80 bEsZzknKy3koX7OyOAqqbOKT8Fz7BEcjyiVUcDR8dol0HbYqpm0SR0ZN4UWUcrXI7u88rMzFqi CAcZ1Qokz8CLqF8Q8ddjKt90zSWhJ5hzw8YdU+sYo/n3/N3orA41kBfu2XtinNz5Jq6F/A7Amw /cc= X-IronPort-AV: E=Sophos;i="5.64,391,1559548800"; d="scan'208";a="40484356" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 16 Aug 2019 00:37:24 -0800 IronPort-SDR: E0BIwnwzgEIRUhRPHiwV4y/g4pExO7tdDvpod3o0QLHdvZHW/O2wh4Ym8TLoItcjjZ0unCIi53 jqGD2bYEhPT98CHUvpaY3DyWfbt6b4BMBdLhbYFVqylqVov0AYOCIVdf3hdRYH+3nD5WxLRVQE LM6ltmu8s/wSZ5AYblvIa3yfCygw8Jh1hq178MNdyDGqib7DZhJNIQO70rEFjAGy+yDsknzEnW yJZKdQxQwOg3DWErFzPp96OS1vb7M10Fnqxp8Fg0oWVHfL6+8RQeM9PjnfLGHrFACjyz/6r2ms 69s= From: Jiada Wang To: , CC: , , , Subject: [PATCH v1 48/63] input: atmel_mxt_ts: move bootloader probe from mxt_initialize() Date: Fri, 16 Aug 2019 17:37:09 +0900 Message-ID: <20190816083724.19341-4-jiada_wang@mentor.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190816083724.19341-1-jiada_wang@mentor.com> References: <20190816083724.19341-1-jiada_wang@mentor.com> MIME-Version: 1.0 X-ClientProxiedBy: svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) To svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Deepak Das Validity of bootloader address is now checked before checking the bootloader status so mxt_lookup_bootloader_address() was moved from mxt_probe_bootloader() to mxt_initialize(). Above changes added lot of bootloader mode verification code into mxt_initialize() which made this function longer and unreadable. mxt_bootloader_status() moves bootloader mode verification code from mxt_initialize() to make it cleaner. Signed-off-by: Deepak Das Signed-off-by: George G. Davis Signed-off-by: Jiada Wang --- drivers/input/touchscreen/atmel_mxt_ts.c | 45 +++++++++++++++--------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c index dec9f2b2c64d..27b908a50b66 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -2917,6 +2917,32 @@ static void mxt_config_cb(const struct firmware *cfg, void *ctx) release_firmware(cfg); } +static int mxt_bootloader_status(struct mxt_data *data) +{ + struct i2c_client *client = data->client; + int error; + + error = mxt_lookup_bootloader_address(data, false); + if (error) { + dev_info(&client->dev, + "Bootloader address is not specified\n"); + return error; + } + /* Check bootloader state */ + error = mxt_probe_bootloader(data); + if (error) { + dev_info(&client->dev, "Trying alternate bootloader address\n"); + mxt_lookup_bootloader_address(data, true); + error = mxt_probe_bootloader(data); + if (error) { + dev_err(&client->dev, + "Chip is not in appmode or bootloader mode\n"); + return error; + } + } + return 0; +} + static int mxt_initialize(struct mxt_data *data) { struct i2c_client *client = data->client; @@ -2932,24 +2958,9 @@ static int mxt_initialize(struct mxt_data *data) "info block read failed (%d), so try bootloader method\n", error); - error = mxt_lookup_bootloader_address(data, false); - if (error) { - dev_info(&client->dev, - "Bootloader address is not specified\n"); + error = mxt_bootloader_status(data); + if (error) return error; - } - /* Check bootloader state */ - error = mxt_probe_bootloader(data); - if (error) { - dev_info(&client->dev, "Trying alternate bootloader address\n"); - mxt_lookup_bootloader_address(data, true); - error = mxt_probe_bootloader(data); - if (error) { - dev_err(&client->dev, - "Chip is not in appmode or bootloader mode\n"); - return error; - } - } /* OK, we are in bootloader, see if we can recover */ if (++recovery_attempts > 1) { From patchwork Fri Aug 16 08:37:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Jiada" X-Patchwork-Id: 11097235 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5855314DB for ; Fri, 16 Aug 2019 08:37:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 47D05289D4 for ; Fri, 16 Aug 2019 08:37:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3C574289E1; Fri, 16 Aug 2019 08:37:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DFB98289D4 for ; Fri, 16 Aug 2019 08:37:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727072AbfHPIhb (ORCPT ); Fri, 16 Aug 2019 04:37:31 -0400 Received: from esa2.mentor.iphmx.com ([68.232.141.98]:1919 "EHLO esa2.mentor.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726810AbfHPIh2 (ORCPT ); Fri, 16 Aug 2019 04:37:28 -0400 X-Greylist: delayed 306 seconds by postgrey-1.27 at vger.kernel.org; Fri, 16 Aug 2019 04:37:16 EDT IronPort-SDR: 46TX7M5M37P8wAjP48FKCRPO9OQed3xgGgJkJ/hsCb6T5ilfGdfPcEtkd9Fx7cuq1vlW/auLDi LnyLGw2k8IDBDv0ilPEg9Mgax5RzdTk05+0eTUeyjpgj/TwBGKa6jpBHGhCX827gJUKRLwwl6Z T9hwTGTgZn/CP55MhQJAWhKDllnsZPywa1ICKyV+nEmZRjUsBgaUmfa9Bi9glEUmhaNhsAbwzB gpbQ2dCI/UEQVqVMEJ7qdpYgH+m415Z7FXX4jOk33bYls0bu+2HpHJP6nu+EV2sORAj2oHN8L5 Lko= X-IronPort-AV: E=Sophos;i="5.64,391,1559548800"; d="scan'208";a="40484358" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 16 Aug 2019 00:37:27 -0800 IronPort-SDR: Q6iKXML1o0G+yPHEyCng0OT2SY59gDhwzHlQ8uLw3h0O2PLhWc9uNWf3L2SEbPkUhzl3pWNWVP GmWjIM0zhZki1r8eW11ayKq0apYl8aXZ8ttCpRZbIs1u5ebRorxf8K1xh8K0EPS7wwF5PSVa3o W2amPgXX/CJwdszzziMSxokHLwOLjvWong5jfgvb3YnWiaEVXPc7ApKtbmiKb92cYzhDCfvUrz ZeDOrH/C+7T0baQgf79c7wJYc4nNMbYF0gyYZJHHUI+2znTUnOTNtyWcLsH22TflGbr/THrxzR pic= From: Jiada Wang To: , CC: , , , Subject: [PATCH v1 49/63] Input: Atmel: Improve error handling in mxt_initialize_input_device() Date: Fri, 16 Aug 2019 17:37:10 +0900 Message-ID: <20190816083724.19341-5-jiada_wang@mentor.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190816083724.19341-1-jiada_wang@mentor.com> References: <20190816083724.19341-1-jiada_wang@mentor.com> MIME-Version: 1.0 X-ClientProxiedBy: svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) To svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Deepak Das Currently Driver probe continues with a warning message when it fails to get the proper multitouch object configurations like TouchScreen resolution. But Driver probe should fail in case of above scneario because it will not behave as expected without the proper touchscreen configurations. This commit modifies mxt_initialize_input_device() to return error when it fails to get the proper touch screen configurations. Signed-off-by: Deepak Das Signed-off-by: Dean Jenkins Signed-off-by: George G. Davis Signed-off-by: Jiada Wang --- drivers/input/touchscreen/atmel_mxt_ts.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c index 27b908a50b66..b17af89a4711 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -2749,15 +2749,19 @@ static int mxt_initialize_input_device(struct mxt_data *data) case MXT_TOUCH_MULTI_T9: num_mt_slots = data->T9_reportid_max - data->T9_reportid_min + 1; error = mxt_read_t9_resolution(data); - if (error) - dev_warn(dev, "Failed to initialize T9 resolution\n"); + if (error) { + dev_err(dev, "Failed to initialize T9 resolution\n"); + return error; + } break; case MXT_TOUCH_MULTITOUCHSCREEN_T100: num_mt_slots = data->num_touchids; error = mxt_read_t100_config(data); - if (error) - dev_warn(dev, "Failed to read T100 config\n"); + if (error) { + dev_err(dev, "Failed to read T100 config\n"); + return error; + } break; default: