Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S942601AbcJ0Q7V (ORCPT ); Thu, 27 Oct 2016 12:59:21 -0400 Received: from devils.ext.ti.com ([198.47.26.153]:60971 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S941689AbcJ0Q7R (ORCPT ); Thu, 27 Oct 2016 12:59:17 -0400 Subject: Re: [PATCH 2/4] Input: goodix - Allow tweaking of configuration file dynamically To: Bastien Nocera , , , , , , , , , , References: <20161020195917.20051-1-fcooper@ti.com> <20161020195917.20051-3-fcooper@ti.com> <1477564424.2458.9.camel@hadess.net> From: Franklin S Cooper Jr Message-ID: Date: Thu, 27 Oct 2016 11:58:59 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1477564424.2458.9.camel@hadess.net> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [128.247.83.33] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2212 Lines: 73 On 10/27/2016 05:33 AM, Bastien Nocera wrote: > On Thu, 2016-10-20 at 14:59 -0500, Franklin S Cooper Jr wrote: >> Some goodix touchscreen controllers don't have the correct >> configuration >> firmware for the display panel it is attached to. Therefore, settings >> such >> as touchscreen x and y size may need to be passed in via DT and have >> the >> panel reprogrammed for the updated touchscreen resolution. >> >> This patchset adds support for reading the current configuration >> firmware >> on the panel and allowing it to be modified and rewritten back to the >> device. >> >> Currently this function is unused but later patches will make use of >> it. >> >> Signed-off-by: Franklin S Cooper Jr >> --- >> drivers/input/touchscreen/goodix.c | 28 ++++++++++++++++++++++++++++ >> 1 file changed, 28 insertions(+) >> >> diff --git a/drivers/input/touchscreen/goodix.c >> b/drivers/input/touchscreen/goodix.c >> index a43c8ca..01e12f8 100644 >> --- a/drivers/input/touchscreen/goodix.c >> +++ b/drivers/input/touchscreen/goodix.c >> @@ -478,6 +478,34 @@ static int goodix_get_gpio_config(struct >> goodix_ts_data *ts) >> return 0; >> } >> >> +static void goodix_tweak_config(struct goodix_ts_data *ts) >> +{ >> + u8 config[GOODIX_CONFIG_MAX_LENGTH]; >> + int error; >> + int raw_cfg_len; >> + u8 check_sum = 0; >> + >> + raw_cfg_len = ts->cfg_len - 2; >> + >> + error = goodix_i2c_read(ts->client, GOODIX_REG_CONFIG_DATA, >> + config, ts->cfg_len); >> + if (error) { >> + dev_warn(&ts->client->dev, >> + "Error reading config (%d), avoid tweaking >> config\n", >> + error); >> + return; >> + } > > Please add a placeholder comment here, to go along with the commit > message explanation. You just want a comment here stating that changes to the firmware should be made here? > >> + check_sum = goodix_calculate_checksum(ts->cfg_len, config); >> + >> + config[raw_cfg_len] = check_sum; >> + config[raw_cfg_len + 1] = 1; >> + >> + error = goodix_send_cfg(ts, ts->cfg_len, config); >> + if (error) >> + dev_warn(&ts->client->dev, >> + "Error writing config (%d)\n", error); >> +} >> /** >> * goodix_read_config - Read the embedded configuration of the panel >> *