Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1244826 > unrolled thread
| Started by | Irina Tirdea <irina.tirdea@intel.com> |
|---|---|
| First post | 2015-10-12 17:30 +0200 |
| Last post | 2015-10-12 18:00 +0200 |
| Articles | 9 — 5 participants |
Back to article view | Back to linux.kernel
[PATCH v9 0/9] Goodix touchscreen enhancements Irina Tirdea <irina.tirdea@intel.com> - 2015-10-12 17:30 +0200
[PATCH v9 3/9] Input: goodix - write configuration data to device Irina Tirdea <irina.tirdea@intel.com> - 2015-10-12 17:30 +0200
[PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order Irina Tirdea <irina.tirdea@intel.com> - 2015-10-12 17:30 +0200
Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order Mark Rutland <mark.rutland@arm.com> - 2015-10-12 17:40 +0200
Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order Bastien Nocera <hadess@hadess.net> - 2015-10-12 17:50 +0200
Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order Bastien Nocera <hadess@hadess.net> - 2015-10-12 18:00 +0200
Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2015-10-12 18:40 +0200
RE: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order "Tirdea, Irina" <irina.tirdea@intel.com> - 2015-10-13 08:50 +0200
Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order Mark Rutland <mark.rutland@arm.com> - 2015-10-12 18:00 +0200
| From | Irina Tirdea <irina.tirdea@intel.com> |
|---|---|
| Date | 2015-10-12 17:30 +0200 |
| Subject | [PATCH v9 0/9] Goodix touchscreen enhancements |
| Message-ID | <qiNd0-2Xu-11@gated-at.bofh.it> |
v9 only adds GPIOLIB dependency in Kconfig for patch 2: "Input: goodix - reset device at init". There are no other code changes from v8. Thanks for testing these changes, Bastien and Aleksei! Karsten, there is no need to rebase your series on top of v9. Thanks, Irina Changes in v9: - add GPIOLIB to driver dependencies - add Tested-by tag from Bastien and Aleksei Changes in v8: - only allow new functionality for devices that declare named gpios (using _DSD properties in ACPI or named DT properties) Changes in v7: - add dmi quirk to skip gpio pins setup and functionality that depends on them for Onda v975w, WinBook TW100 and WinBook TW700. - add support for named gpio pins - rework the runtime pm patch to fix a couple of issues - sort includes using inverse Xmas tree ordering Changes in v6: - skip runtime power manangent calls in open/close if the device ACPI/DT configuration does not declare interrupt and reset gpio pins. - reset the device before starting i2c communication - add Bastien's ack to the first 2 patches Changes in v5: - add some more style cleanup (reorder includes, use error instead of ret for return values) - add runtime power management patch Changes in v4: - use dmi quirk to determine the order of irq and reset pins - use actual config length depending on device - add sysfs interface to dump config - initialize esd timeout from ACPI/DT properly Changes in v3: - dropped the first 3 patches that got merged - handle -EPROBE_DEFER and -ENOENT for gpio pins - skip functionality depending on the gpio pins if the pins are not properly initialized from ACPI/DT (reset, write config, power management, ESD) - dropped #ifdef CONFIG_PM_SLEEP and annotated with __maybe_unused instead - use sysfs property to set ESD timeout instead of ACPI/DT property - use request_firmware_nowait to read configuration firmware and use defaults if firmware is not found - use ACPI IDs to determine the order of the GPIO pins in the ACPI tables (interrupt pin first or reset pin first) Changes in v2: - use request_firmware instead of ACPI/DT property for config - dropped "input: goodix: add ACPI IDs for GT911 and GT9271" patch - add ACPI DSDT excerpt in commit message where necessary - add comments for suspend/resume sleep values - dropped the checkpatch fixes that did not make sense - added Bastien's ack to the first patch Irina Tirdea (9): Input: goodix - use actual config length for each device type Input: goodix - reset device at init Input: goodix - write configuration data to device Input: goodix - add power management support Input: goodix - use goodix_i2c_write_u8 instead of i2c_master_send Input: goodix - add support for ESD Input: goodix - add sysfs interface to dump config Input: goodix - add runtime power management support Input: goodix - sort includes using inverse Xmas tree order .../bindings/input/touchscreen/goodix.txt | 11 + drivers/input/touchscreen/Kconfig | 1 + drivers/input/touchscreen/goodix.c | 766 +++++++++++++++++++-- 3 files changed, 733 insertions(+), 45 deletions(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Irina Tirdea <irina.tirdea@intel.com> |
|---|---|
| Date | 2015-10-12 17:30 +0200 |
| Subject | [PATCH v9 3/9] Input: goodix - write configuration data to device |
| Message-ID | <qiNd2-2Xu-61@gated-at.bofh.it> |
| In reply to | #1244826 |
Goodix devices can be configured by writing custom data to the device at
init. The configuration data is read with request_firmware from
"goodix_<id>_cfg.bin", where <id> is the product id read from the device
(e.g.: goodix_911_cfg.bin for Goodix GT911, goodix_9271_cfg.bin for
GT9271).
The configuration information has a specific format described in the Goodix
datasheet. It includes X/Y resolution, maximum supported touch points,
interrupt flags, various sensitivity factors and settings for advanced
features (like gesture recognition).
Before writing the firmware, it is necessary to reset the device. If
the device ACPI/DT information does not declare gpio pins (needed for
reset), writing the firmware will not be available for these devices.
This is based on Goodix datasheets for GT911 and GT9271 and on Goodix
driver gt9xx.c for Android (publicly available in Android kernel
trees for various devices).
Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Tested-by: Bastien Nocera <hadess@hadess.net>
Tested-by: Aleksei Mamlin <mamlinav@gmail.com>
---
drivers/input/touchscreen/goodix.c | 229 +++++++++++++++++++++++++++++++------
1 file changed, 196 insertions(+), 33 deletions(-)
diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
index 87304ac..b4dfe4b 100644
--- a/drivers/input/touchscreen/goodix.c
+++ b/drivers/input/touchscreen/goodix.c
@@ -16,6 +16,7 @@
#include <linux/kernel.h>
#include <linux/dmi.h>
+#include <linux/firmware.h>
#include <linux/gpio.h>
#include <linux/i2c.h>
#include <linux/input.h>
@@ -40,6 +41,9 @@ struct goodix_ts_data {
int cfg_len;
struct gpio_desc *gpiod_int;
struct gpio_desc *gpiod_rst;
+ u16 id;
+ u16 version;
+ char *cfg_name;
};
#define GOODIX_GPIO_INT_NAME "irq"
@@ -124,6 +128,39 @@ static int goodix_i2c_read(struct i2c_client *client,
return ret < 0 ? ret : (ret != ARRAY_SIZE(msgs) ? -EIO : 0);
}
+/**
+ * goodix_i2c_write - write data to a register of the i2c slave device.
+ *
+ * @client: i2c device.
+ * @reg: the register to write to.
+ * @buf: raw data buffer to write.
+ * @len: length of the buffer to write
+ */
+static int goodix_i2c_write(struct i2c_client *client, u16 reg, const u8 *buf,
+ unsigned len)
+{
+ u8 *addr_buf;
+ struct i2c_msg msg;
+ int ret;
+
+ addr_buf = kmalloc(len + 2, GFP_KERNEL);
+ if (!addr_buf)
+ return -ENOMEM;
+
+ addr_buf[0] = reg >> 8;
+ addr_buf[1] = reg & 0xFF;
+ memcpy(&addr_buf[2], buf, len);
+
+ msg.flags = 0;
+ msg.addr = client->addr;
+ msg.buf = addr_buf;
+ msg.len = len + 2;
+
+ ret = i2c_transfer(client->adapter, &msg, 1);
+ kfree(addr_buf);
+ return ret < 0 ? ret : (ret != 1 ? -EIO : 0);
+}
+
static int goodix_get_cfg_len(u16 id)
{
switch (id) {
@@ -243,6 +280,73 @@ static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id)
return IRQ_HANDLED;
}
+/**
+ * goodix_check_cfg - Checks if config fw is valid
+ *
+ * @ts: goodix_ts_data pointer
+ * @cfg: firmware config data
+ */
+static int goodix_check_cfg(struct goodix_ts_data *ts,
+ const struct firmware *cfg)
+{
+ int i, raw_cfg_len;
+ u8 check_sum = 0;
+
+ if (cfg->size > GOODIX_CONFIG_MAX_LENGTH) {
+ dev_err(&ts->client->dev,
+ "The length of the config fw is not correct");
+ return -EINVAL;
+ }
+
+ raw_cfg_len = cfg->size - 2;
+ for (i = 0; i < raw_cfg_len; i++)
+ check_sum += cfg->data[i];
+ check_sum = (~check_sum) + 1;
+ if (check_sum != cfg->data[raw_cfg_len]) {
+ dev_err(&ts->client->dev,
+ "The checksum of the config fw is not correct");
+ return -EINVAL;
+ }
+
+ if (cfg->data[raw_cfg_len + 1] != 1) {
+ dev_err(&ts->client->dev,
+ "Config fw must have Config_Fresh register set");
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+/**
+ * goodix_send_cfg - Write fw config to device
+ *
+ * @ts: goodix_ts_data pointer
+ * @cfg: config firmware to write to device
+ */
+static int goodix_send_cfg(struct goodix_ts_data *ts,
+ const struct firmware *cfg)
+{
+ int error;
+
+ error = goodix_check_cfg(ts, cfg);
+ if (error)
+ return error;
+
+ error = goodix_i2c_write(ts->client, GOODIX_REG_CONFIG_DATA, cfg->data,
+ cfg->size);
+ if (error) {
+ dev_err(&ts->client->dev, "Failed to write config data: %d",
+ error);
+ return error;
+ }
+ dev_dbg(&ts->client->dev, "Config sent successfully.");
+
+ /* Let the firmware reconfigure itself, so sleep for 10ms */
+ usleep_range(10000, 11000);
+
+ return 0;
+}
+
static int goodix_int_sync(struct goodix_ts_data *ts)
{
int error;
@@ -371,30 +475,29 @@ static void goodix_read_config(struct goodix_ts_data *ts)
/**
* goodix_read_version - Read goodix touchscreen version
*
- * @client: the i2c client
- * @version: output buffer containing the version on success
- * @id: output buffer containing the id on success
+ * @ts: our goodix_ts_data pointer
*/
-static int goodix_read_version(struct i2c_client *client, u16 *version, u16 *id)
+static int goodix_read_version(struct goodix_ts_data *ts)
{
int error;
u8 buf[6];
char id_str[5];
- error = goodix_i2c_read(client, GOODIX_REG_ID, buf, sizeof(buf));
+ error = goodix_i2c_read(ts->client, GOODIX_REG_ID, buf, sizeof(buf));
if (error) {
- dev_err(&client->dev, "read version failed: %d\n", error);
+ dev_err(&ts->client->dev, "read version failed: %d\n", error);
return error;
}
memcpy(id_str, buf, 4);
id_str[4] = 0;
- if (kstrtou16(id_str, 10, id))
- *id = 0x1001;
+ if (kstrtou16(id_str, 10, &ts->id))
+ ts->id = 0x1001;
- *version = get_unaligned_le16(&buf[4]);
+ ts->version = get_unaligned_le16(&buf[4]);
- dev_info(&client->dev, "ID %d, version: %04x\n", *id, *version);
+ dev_info(&ts->client->dev, "ID %d, version: %04x\n", ts->id,
+ ts->version);
return 0;
}
@@ -428,13 +531,10 @@ static int goodix_i2c_test(struct i2c_client *client)
* goodix_request_input_dev - Allocate, populate and register the input device
*
* @ts: our goodix_ts_data pointer
- * @version: device firmware version
- * @id: device ID
*
* Must be called during probe
*/
-static int goodix_request_input_dev(struct goodix_ts_data *ts, u16 version,
- u16 id)
+static int goodix_request_input_dev(struct goodix_ts_data *ts)
{
int error;
@@ -458,8 +558,8 @@ static int goodix_request_input_dev(struct goodix_ts_data *ts, u16 version,
ts->input_dev->phys = "input/ts";
ts->input_dev->id.bustype = BUS_I2C;
ts->input_dev->id.vendor = 0x0416;
- ts->input_dev->id.product = id;
- ts->input_dev->id.version = version;
+ ts->input_dev->id.product = ts->id;
+ ts->input_dev->id.version = ts->version;
error = input_register_device(ts->input_dev);
if (error) {
@@ -471,13 +571,70 @@ static int goodix_request_input_dev(struct goodix_ts_data *ts, u16 version,
return 0;
}
+/**
+ * goodix_configure_dev - Finish device initialization
+ *
+ * @ts: our goodix_ts_data pointer
+ *
+ * Must be called from probe to finish initialization of the device.
+ * Contains the common initialization code for both devices that
+ * declare gpio pins and devices that do not. It is either called
+ * directly from probe or from request_firmware_wait callback.
+ */
+static int goodix_configure_dev(struct goodix_ts_data *ts)
+{
+ int error;
+ unsigned long irq_flags;
+
+ goodix_read_config(ts);
+
+ error = goodix_request_input_dev(ts);
+ if (error)
+ return error;
+
+ irq_flags = goodix_irq_flags[ts->int_trigger_type] | IRQF_ONESHOT;
+ error = devm_request_threaded_irq(&ts->client->dev, ts->client->irq,
+ NULL, goodix_ts_irq_handler,
+ irq_flags, ts->client->name, ts);
+ if (error) {
+ dev_err(&ts->client->dev, "request IRQ failed: %d\n", error);
+ return error;
+ }
+
+ return 0;
+}
+
+/**
+ * goodix_config_cb - Callback to finish device init
+ *
+ * @ts: our goodix_ts_data pointer
+ *
+ * request_firmware_wait callback that finishes
+ * initialization of the device.
+ */
+static void goodix_config_cb(const struct firmware *cfg, void *ctx)
+{
+ struct goodix_ts_data *ts = (struct goodix_ts_data *)ctx;
+ int error;
+
+ if (cfg) {
+ /* send device configuration to the firmware */
+ error = goodix_send_cfg(ts, cfg);
+ if (error)
+ goto err_release_cfg;
+ }
+ goodix_configure_dev(ts);
+
+err_release_cfg:
+ kfree(ts->cfg_name);
+ release_firmware(cfg);
+}
+
static int goodix_ts_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
struct goodix_ts_data *ts;
- unsigned long irq_flags;
int error;
- u16 version_info, id_info;
dev_dbg(&client->dev, "I2C Address: 0x%02x\n", client->addr);
@@ -512,30 +669,36 @@ static int goodix_ts_probe(struct i2c_client *client,
return error;
}
- error = goodix_read_version(client, &version_info, &id_info);
+ error = goodix_read_version(ts);
if (error) {
dev_err(&client->dev, "Read version failed.\n");
return error;
}
- ts->cfg_len = goodix_get_cfg_len(id_info);
+ ts->cfg_len = goodix_get_cfg_len(ts->id);
- goodix_read_config(ts);
-
- error = goodix_request_input_dev(ts, version_info, id_info);
- if (error)
- return error;
+ if (ts->gpiod_int && ts->gpiod_rst) {
+ /* update device config */
+ ts->cfg_name = kasprintf(GFP_KERNEL, "goodix_%d_cfg.bin",
+ ts->id);
+ if (!ts->cfg_name)
+ return -ENOMEM;
+
+ error = request_firmware_nowait(THIS_MODULE, true, ts->cfg_name,
+ &client->dev, GFP_KERNEL, ts,
+ goodix_config_cb);
+ if (error) {
+ dev_err(&client->dev,
+ "Failed to invoke firmware loader: %d\n",
+ error);
+ kfree(ts->cfg_name);
+ return error;
+ }
- irq_flags = goodix_irq_flags[ts->int_trigger_type] | IRQF_ONESHOT;
- error = devm_request_threaded_irq(&ts->client->dev, client->irq,
- NULL, goodix_ts_irq_handler,
- irq_flags, client->name, ts);
- if (error) {
- dev_err(&client->dev, "request IRQ failed: %d\n", error);
- return error;
+ return 0;
}
- return 0;
+ return goodix_configure_dev(ts);
}
static const struct i2c_device_id goodix_ts_id[] = {
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Irina Tirdea <irina.tirdea@intel.com> |
|---|---|
| Date | 2015-10-12 17:30 +0200 |
| Subject | [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order |
| Message-ID | <qiNd2-2Xu-63@gated-at.bofh.it> |
| In reply to | #1244826 |
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Tested-by: Bastien Nocera <hadess@hadess.net>
Tested-by: Aleksei Mamlin <mamlinav@gmail.com>
---
drivers/input/touchscreen/goodix.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
index b958b37..22bfc4b 100644
--- a/drivers/input/touchscreen/goodix.c
+++ b/drivers/input/touchscreen/goodix.c
@@ -14,21 +14,22 @@
* Software Foundation; version 2 of the License.
*/
-#include <linux/kernel.h>
-#include <linux/dmi.h>
+#include <linux/pm_runtime.h>
+#include <linux/interrupt.h>
#include <linux/firmware.h>
-#include <linux/gpio.h>
-#include <linux/i2c.h>
-#include <linux/input.h>
#include <linux/input/mt.h>
+#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/slab.h>
+#include <linux/input.h>
#include <linux/acpi.h>
+#include <linux/gpio.h>
+#include <linux/slab.h>
+#include <linux/dmi.h>
+#include <linux/i2c.h>
+#include <linux/irq.h>
#include <linux/of.h>
-#include <linux/pm_runtime.h>
+
#include <asm/unaligned.h>
struct goodix_ts_data {
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Mark Rutland <mark.rutland@arm.com> |
|---|---|
| Date | 2015-10-12 17:40 +0200 |
| Subject | Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order |
| Message-ID | <qiNmG-38X-9@gated-at.bofh.it> |
| In reply to | #1244828 |
Why?
Mark.
On Mon, Oct 12, 2015 at 06:24:37PM +0300, Irina Tirdea wrote:
> Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
> Tested-by: Bastien Nocera <hadess@hadess.net>
> Tested-by: Aleksei Mamlin <mamlinav@gmail.com>
> ---
> drivers/input/touchscreen/goodix.c | 19 ++++++++++---------
> 1 file changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
> index b958b37..22bfc4b 100644
> --- a/drivers/input/touchscreen/goodix.c
> +++ b/drivers/input/touchscreen/goodix.c
> @@ -14,21 +14,22 @@
> * Software Foundation; version 2 of the License.
> */
>
> -#include <linux/kernel.h>
> -#include <linux/dmi.h>
> +#include <linux/pm_runtime.h>
> +#include <linux/interrupt.h>
> #include <linux/firmware.h>
> -#include <linux/gpio.h>
> -#include <linux/i2c.h>
> -#include <linux/input.h>
> #include <linux/input/mt.h>
> +#include <linux/kernel.h>
> #include <linux/module.h>
> #include <linux/delay.h>
> -#include <linux/irq.h>
> -#include <linux/interrupt.h>
> -#include <linux/slab.h>
> +#include <linux/input.h>
> #include <linux/acpi.h>
> +#include <linux/gpio.h>
> +#include <linux/slab.h>
> +#include <linux/dmi.h>
> +#include <linux/i2c.h>
> +#include <linux/irq.h>
> #include <linux/of.h>
> -#include <linux/pm_runtime.h>
> +
> #include <asm/unaligned.h>
>
> struct goodix_ts_data {
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Bastien Nocera <hadess@hadess.net> |
|---|---|
| Date | 2015-10-12 17:50 +0200 |
| Subject | Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order |
| Message-ID | <qiNwm-3ks-17@gated-at.bofh.it> |
| In reply to | #1244829 |
On Mon, 2015-10-12 at 16:39 +0100, Mark Rutland wrote: > Why? It was already discussed in the thread for a previous version, please refer to that. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Bastien Nocera <hadess@hadess.net> |
|---|---|
| Date | 2015-10-12 18:00 +0200 |
| Subject | Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order |
| Message-ID | <qiNG2-3wf-15@gated-at.bofh.it> |
| In reply to | #1244841 |
On Mon, 2015-10-12 at 16:51 +0100, Mark Rutland wrote: > On Mon, Oct 12, 2015 at 05:40:37PM +0200, Bastien Nocera wrote: > > On Mon, 2015-10-12 at 16:39 +0100, Mark Rutland wrote: > > > Why? > > > > It was already discussed in the thread for a previous version, > > please > > refer to that. > > Fine, but surely that should be in the commit message, to prevent > others > like myself repeatedly asking the same question? Fair point. Irina? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Dmitry Torokhov <dmitry.torokhov@gmail.com> |
|---|---|
| Date | 2015-10-12 18:40 +0200 |
| Subject | Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order |
| Message-ID | <qiOiJ-4vG-1@gated-at.bofh.it> |
| In reply to | #1244846 |
On Mon, Oct 12, 2015 at 8:53 AM, Bastien Nocera <hadess@hadess.net> wrote: > On Mon, 2015-10-12 at 16:51 +0100, Mark Rutland wrote: >> On Mon, Oct 12, 2015 at 05:40:37PM +0200, Bastien Nocera wrote: >> > On Mon, 2015-10-12 at 16:39 +0100, Mark Rutland wrote: >> > > Why? >> > >> > It was already discussed in the thread for a previous version, >> > please >> > refer to that. >> >> Fine, but surely that should be in the commit message, to prevent >> others >> like myself repeatedly asking the same question? > > Fair point. Irina? No, let's just leave poor includes alone. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Tirdea, Irina" <irina.tirdea@intel.com> |
|---|---|
| Date | 2015-10-13 08:50 +0200 |
| Subject | RE: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order |
| Message-ID | <qj1zj-6ZR-3@gated-at.bofh.it> |
| In reply to | #1244893 |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRG1pdHJ5IFRvcm9raG92 IFttYWlsdG86ZG1pdHJ5LnRvcm9raG92QGdtYWlsLmNvbV0NCj4gU2VudDogMTIgT2N0b2Jlciwg MjAxNSAxOTozMQ0KPiBUbzogQmFzdGllbiBOb2NlcmENCj4gQ2M6IE1hcmsgUnV0bGFuZDsgVGly ZGVhLCBJcmluYTsgQWxla3NlaSBNYW1saW47IEthcnN0ZW4gTWVya2VyOyBsaW51eC1pbnB1dEB2 Z2VyLmtlcm5lbC5vcmc7IFB1cmRpbGEsIE9jdGF2aWFuOyBsa21sOw0KPiBkZXZpY2V0cmVlQHZn ZXIua2VybmVsLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY5IDkvOV0gSW5wdXQ6IGdvb2Rp eCAtIHNvcnQgaW5jbHVkZXMgdXNpbmcgaW52ZXJzZSBYbWFzIHRyZWUgb3JkZXINCj4gDQo+IE9u IE1vbiwgT2N0IDEyLCAyMDE1IGF0IDg6NTMgQU0sIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFk ZXNzLm5ldD4gd3JvdGU6DQo+ID4gT24gTW9uLCAyMDE1LTEwLTEyIGF0IDE2OjUxICswMTAwLCBN YXJrIFJ1dGxhbmQgd3JvdGU6DQo+ID4+IE9uIE1vbiwgT2N0IDEyLCAyMDE1IGF0IDA1OjQwOjM3 UE0gKzAyMDAsIEJhc3RpZW4gTm9jZXJhIHdyb3RlOg0KPiA+PiA+IE9uIE1vbiwgMjAxNS0xMC0x MiBhdCAxNjozOSArMDEwMCwgTWFyayBSdXRsYW5kIHdyb3RlOg0KPiA+PiA+ID4gV2h5Pw0KPiA+ PiA+DQo+ID4+ID4gSXQgd2FzIGFscmVhZHkgZGlzY3Vzc2VkIGluIHRoZSB0aHJlYWQgZm9yIGEg cHJldmlvdXMgdmVyc2lvbiwNCj4gPj4gPiBwbGVhc2UNCj4gPj4gPiByZWZlciB0byB0aGF0Lg0K PiA+Pg0KPiA+PiBGaW5lLCBidXQgc3VyZWx5IHRoYXQgc2hvdWxkIGJlIGluIHRoZSBjb21taXQg bWVzc2FnZSwgdG8gcHJldmVudA0KPiA+PiBvdGhlcnMNCj4gPj4gbGlrZSBteXNlbGYgcmVwZWF0 ZWRseSBhc2tpbmcgdGhlIHNhbWUgcXVlc3Rpb24/DQo+ID4NCj4gPiBGYWlyIHBvaW50LiBJcmlu YT8NCj4gDQo+IE5vLCBsZXQncyBqdXN0IGxlYXZlIHBvb3IgaW5jbHVkZXMgYWxvbmUuDQo+IA0K DQpPSywgd2lsbCBkcm9wIHRoaXMgOikNCg0KVGhhbmtzLA0KSXJpbmENCg0KPiAtLQ0KPiBEbWl0 cnkNCg== -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Mark Rutland <mark.rutland@arm.com> |
|---|---|
| Date | 2015-10-12 18:00 +0200 |
| Subject | Re: [PATCH v9 9/9] Input: goodix - sort includes using inverse Xmas tree order |
| Message-ID | <qiNG2-3wf-17@gated-at.bofh.it> |
| In reply to | #1244841 |
On Mon, Oct 12, 2015 at 05:40:37PM +0200, Bastien Nocera wrote: > On Mon, 2015-10-12 at 16:39 +0100, Mark Rutland wrote: > > Why? > > It was already discussed in the thread for a previous version, please > refer to that. Fine, but surely that should be in the commit message, to prevent others like myself repeatedly asking the same question? Mark. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web