* [PATCH 02/11] touchscreen: ad7877: Use octal permissions
From: dev-harsh1998 @ 2018-07-23 13:19 UTC (permalink / raw)
To: trivial
Cc: Harshit Jain, Michael Hennerich, Dmitry Torokhov, Simon Budig,
Andi Shyti, Luca Ceresoli, linux-input, linux-kernel
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL);
Signed-off-by: Harshit Jain <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/ad7877.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c
index 5cfe477ec992..4b4a9d84195e 100644
--- a/drivers/input/touchscreen/ad7877.c
+++ b/drivers/input/touchscreen/ad7877.c
@@ -461,7 +461,7 @@ name ## _show(struct device *dev, struct device_attribute *attr, char *buf) \
return v; \
return sprintf(buf, "%u\n", (unsigned) v); \
} \
-static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL);
+static DEVICE_ATTR(name, 0444, name ## _show, NULL);
SHOW(aux1)
SHOW(aux2)
--
2.17.1
^ permalink raw reply related
* Re: [PATCH 0/5] ti_am335x_tsc: Enable wakeup capability
From: Lee Jones @ 2018-07-23 5:37 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Vignesh R, Jonathan Cameron, linux-iio, linux-omap, linux-kernel,
linux-input
In-Reply-To: <20180718170902.vk7rahyoaevucxbi@penguin>
On Wed, 18 Jul 2018, Dmitry Torokhov wrote:
> On Wed, Jul 18, 2018 at 08:47:36AM +0100, Lee Jones wrote:
> > On Tue, 17 Jul 2018, Vignesh R wrote:
> >
> > > Hi Dmitry,
> > >
> > > On Saturday 30 June 2018 04:03 PM, Vignesh R wrote:
> > > > On AM335x, resistive TSC can wakeup the system from low power state.
> > > > Currently, parent MFD device is marked as wakeup source, which is
> > > > inaccurate as its the touch event generated by TSC thats the wakeup
> > > > source. This series moves all wakeup related calls to operate on TSC
> > > > device instead of MFD. It also marks TSC IRQ as wakeup capable, so that
> > > > its not disabled during system suspend.
> > > >
> > > > This series is based on Dmitry's comments here:
> > > > https://lkml.org/lkml/2018/4/24/65
> > > >
> > > > There are many new patches in this series, hence did not mark this as v4.
> > > >
> > > > Vignesh R (5):
> > > > mfd: ti_am335x_tscadc: Don't mark TSCADC MFD as wakeup capable
> > > > Input: ti_am335x_tsc: Mark TSC device as wakeup source
> > > > mfd: ti_am335x_tscadc: Keep ADC interface on if child is wakeup
> > > > capable
> > > > iio: adc: ti_am335x_adc: Disable ADC during suspend unconditionally
> > > > Input: ti_am335x_tsc: Mark IRQ as wakeup capable
> > > >
> > > > drivers/iio/adc/ti_am335x_adc.c | 12 ++++--------
> > > > drivers/input/touchscreen/ti_am335x_tsc.c | 22 +++++++++++++++++-----
> > > > drivers/mfd/ti_am335x_tscadc.c | 14 +++++++++++++-
> > > > 3 files changed, 34 insertions(+), 14 deletions(-)
> > > >
> > >
> > > Gentle ping... Could you review/pick this series? MFD amd IIO bits are
> > > already ACKed
> >
> > MFD patches are reviewed "for my own reference" meaning that we
> > haven't yet agreed on a merge plan yet.
>
> I think this series makes sense to be pushed through a single tree as
> opposed to being spread between 3, even if it could technically be
> possible. It looks like Jonathan is fine with going it through either
> his or some other tree, I am fine with it going through MFD.
I'm happy either way.
> I just Acked the 2 input-related patches.
Thanks Dmitry.
--
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
^ permalink raw reply
* Re: [PATCH 11/11] touchscreen: tsc200x: Use octal permissions
From: Martin Kepplinger @ 2018-07-23 5:08 UTC (permalink / raw)
To: dev-harsh1998, trivial
Cc: Dmitry Torokhov, Simon Budig, Andi Shyti, Luca Ceresoli,
Kees Cook, linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-10-harshitjain6751@gmail.com>
On 2018-07-21 21:09, dev-harsh1998 wrote:
> WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
> +static DEVICE_ATTR(selftest, S_IRUGO, tsc200x_selftest_show, NULL);
>
> Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
Acked-by: Martin Kepplinger <martink@posteo.de>
^ permalink raw reply
* Re: [PATCH 05/11] touchscreen: elants: Use octal permissions
From: Greg Kroah-Hartman @ 2018-07-22 9:39 UTC (permalink / raw)
To: dev-harsh1998
Cc: trivial, Dmitry Torokhov, Andi Shyti, Simon Budig, Luca Ceresoli,
Guenter Roeck, Joe Perches, linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-4-harshitjain6751@gmail.com>
On Sun, Jul 22, 2018 at 12:39:45AM +0530, dev-harsh1998 wrote:
> WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
> +static DEVICE_ATTR(iap_mode, S_IRUGO, show_iap_mode, NULL);
>
> WARNING: Symbolic permissions 'S_IWUSR' are not preferred. Consider using octal permissions '0200'.
> +static DEVICE_ATTR(update_fw, S_IWUSR, NULL, write_update_fw)
>
> WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
> + .dattr = __ATTR(_field, S_IRUGO, \
>
> Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
You need to use your real name when creating Linux kernel patches.
thanks,
greg k-h
^ permalink raw reply
* Re: [PATCH 02/11] touchscreen: ad7877: Use octal permissions
From: Joe Perches @ 2018-07-22 8:29 UTC (permalink / raw)
To: dev-harsh1998, trivial
Cc: Michael Hennerich, Dmitry Torokhov, Simon Budig, Andi Shyti,
Luca Ceresoli, linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
On Sun, 2018-07-22 at 00:39 +0530, dev-harsh1998 wrote:
> WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
> +static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL);
[]
> diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c
[]
> @@ -461,7 +461,7 @@ name ## _show(struct device *dev, struct device_attribute *attr, char *buf) \
> return v; \
> return sprintf(buf, "%u\n", (unsigned) v); \
> } \
> -static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL);
> +static DEVICE_ATTR(name, 0444, name ## _show, NULL);
I believe this could be
static DEVICE_ATTR_RO(name)
^ permalink raw reply
* [PATCH 01/11] touchscreen: ft5x06: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Dmitry Torokhov, Andi Shyti, Simon Budig, Luca Ceresoli,
linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IWUSR | S_IRUGO' are not preferred. Consider using octal permissions '0644'.
+static EDT_ATTR(gain, S_IWUSR | S_IRUGO, WORK_REGISTER_GAIN,
WARNING: Symbolic permissions 'S_IWUSR | S_IRUGO' are not preferred. Consider using octal permissions '0644'.
+static EDT_ATTR(offset, S_IWUSR | S_IRUGO, WORK_REGISTER_OFFSET,
WARNING: Symbolic permissions 'S_IWUSR | S_IRUGO' are not preferred. Consider using octal permissions '0644'.
+static EDT_ATTR(threshold, S_IWUSR | S_IRUGO, WORK_REGISTER_THRESHOLD,
WARNING: Symbolic permissions 'S_IWUSR | S_IRUGO' are not preferred. Consider using octal permissions '0644'.
+static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO, WORK_REGISTER_REPORT_RATE,
WARNING: Symbolic permissions 'S_IRUSR' are not preferred. Consider using octal permissions '0400'.
+ debugfs_create_u16("num_x", S_IRUSR, tsdata->debug_dir, &tsdata->num_x);
WARNING: Symbolic permissions 'S_IRUSR' are not preferred. Consider using octal permissions '0400'.
+ debugfs_create_u16("num_y", S_IRUSR, tsdata->debug_dir, &tsdata->num_y);
WARNING: Symbolic permissions 'S_IRUSR | S_IWUSR' are not preferred. Consider using octal permissions '0600'.
+ debugfs_create_file("mode", S_IRUSR | S_IWUSR,
WARNING: Symbolic permissions 'S_IRUSR' are not preferred. Consider using octal permissions '0400'.
+ debugfs_create_file("raw_data", S_IRUSR,
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/edt-ft5x06.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
index 1e18ca0d1b4e..ea4026682e79 100644
--- a/drivers/input/touchscreen/edt-ft5x06.c
+++ b/drivers/input/touchscreen/edt-ft5x06.c
@@ -479,16 +479,16 @@ static ssize_t edt_ft5x06_setting_store(struct device *dev,
}
/* m06, m09: range 0-31, m12: range 0-5 */
-static EDT_ATTR(gain, S_IWUSR | S_IRUGO, WORK_REGISTER_GAIN,
+static EDT_ATTR(gain, 0644, WORK_REGISTER_GAIN,
M09_REGISTER_GAIN, 0, 31);
/* m06, m09: range 0-31, m12: range 0-16 */
-static EDT_ATTR(offset, S_IWUSR | S_IRUGO, WORK_REGISTER_OFFSET,
+static EDT_ATTR(offset, 0644, WORK_REGISTER_OFFSET,
M09_REGISTER_OFFSET, 0, 31);
/* m06: range 20 to 80, m09: range 0 to 30, m12: range 1 to 255... */
-static EDT_ATTR(threshold, S_IWUSR | S_IRUGO, WORK_REGISTER_THRESHOLD,
+static EDT_ATTR(threshold, 0644, WORK_REGISTER_THRESHOLD,
M09_REGISTER_THRESHOLD, 0, 255);
/* m06: range 3 to 14, m12: (0x64: 100Hz) */
-static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO, WORK_REGISTER_REPORT_RATE,
+static EDT_ATTR(report_rate, 0644, WORK_REGISTER_REPORT_RATE,
NO_REGISTER, 0, 255);
static struct attribute *edt_ft5x06_attrs[] = {
@@ -739,12 +739,12 @@ edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdata,
if (!tsdata->debug_dir)
return;
- debugfs_create_u16("num_x", S_IRUSR, tsdata->debug_dir, &tsdata->num_x);
- debugfs_create_u16("num_y", S_IRUSR, tsdata->debug_dir, &tsdata->num_y);
+ debugfs_create_u16("num_x", 0400, tsdata->debug_dir, &tsdata->num_x);
+ debugfs_create_u16("num_y", 0400, tsdata->debug_dir, &tsdata->num_y);
- debugfs_create_file("mode", S_IRUSR | S_IWUSR,
+ debugfs_create_file("mode", 0600,
tsdata->debug_dir, tsdata, &debugfs_mode_fops);
- debugfs_create_file("raw_data", S_IRUSR,
+ debugfs_create_file("raw_data", 0400,
tsdata->debug_dir, tsdata, &debugfs_raw_data_fops);
}
--
2.17.1
^ permalink raw reply related
* [PATCH 11/11] touchscreen: tsc200x: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Dmitry Torokhov, Simon Budig, Andi Shyti, Luca Ceresoli,
Martin Kepplinger, Kees Cook, linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(selftest, S_IRUGO, tsc200x_selftest_show, NULL);
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/tsc200x-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/touchscreen/tsc200x-core.c b/drivers/input/touchscreen/tsc200x-core.c
index e0fde590df8e..daefeca101ff 100644
--- a/drivers/input/touchscreen/tsc200x-core.c
+++ b/drivers/input/touchscreen/tsc200x-core.c
@@ -336,7 +336,7 @@ static ssize_t tsc200x_selftest_show(struct device *dev,
return sprintf(buf, "%d\n", success);
}
-static DEVICE_ATTR(selftest, S_IRUGO, tsc200x_selftest_show, NULL);
+static DEVICE_ATTR(selftest, 0444, tsc200x_selftest_show, NULL);
static struct attribute *tsc200x_attrs[] = {
&dev_attr_selftest.attr,
--
2.17.1
^ permalink raw reply related
* [PATCH 10/11] touchscreen: sun4i_ts: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Dmitry Torokhov, Maxime Ripard, Chen-Yu Tsai, Andi Shyti,
Simon Budig, Luca Ceresoli, Julia Lawall, linux-input,
linux-kernel, linux-arm-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(temp1_input, S_IRUGO, show_temp, NULL);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(temp1_label, S_IRUGO, show_temp_label, NULL);
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/sun4i-ts.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/touchscreen/sun4i-ts.c b/drivers/input/touchscreen/sun4i-ts.c
index d2e14d9e5975..78960961a524 100644
--- a/drivers/input/touchscreen/sun4i-ts.c
+++ b/drivers/input/touchscreen/sun4i-ts.c
@@ -230,8 +230,8 @@ static ssize_t show_temp_label(struct device *dev,
return sprintf(buf, "SoC temperature\n");
}
-static DEVICE_ATTR(temp1_input, S_IRUGO, show_temp, NULL);
-static DEVICE_ATTR(temp1_label, S_IRUGO, show_temp_label, NULL);
+static DEVICE_ATTR(temp1_input, 0444, show_temp, NULL);
+static DEVICE_ATTR(temp1_label, 0444, show_temp_label, NULL);
static struct attribute *sun4i_ts_attrs[] = {
&dev_attr_temp1_input.attr,
--
2.17.1
^ permalink raw reply related
* [PATCH 09/11] touchscreen: raydium_ts: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Dmitry Torokhov, Andi Shyti, Simon Budig, Luca Ceresoli,
Jeffrey Lin, linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(fw_version, S_IRUGO, raydium_i2c_fw_ver_show, NULL);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(hw_version, S_IRUGO, raydium_i2c_hw_ver_show, NULL);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(boot_mode, S_IRUGO, raydium_i2c_boot_mode_show, NULL);
WARNING: Symbolic permissions 'S_IWUSR' are not preferred. Consider using octal permissions '0200'.
+static DEVICE_ATTR(update_fw, S_IWUSR, NULL, raydium_i2c_update_fw_store);
WARNING: Symbolic permissions 'S_IWUSR' are not preferred. Consider using octal permissions '0200'.
+static DEVICE_ATTR(calibrate, S_IWUSR, NULL, raydium_i2c_calibrate_store);
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/raydium_i2c_ts.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/input/touchscreen/raydium_i2c_ts.c b/drivers/input/touchscreen/raydium_i2c_ts.c
index d1c09e6a2cb6..eddbb51e55dd 100644
--- a/drivers/input/touchscreen/raydium_i2c_ts.c
+++ b/drivers/input/touchscreen/raydium_i2c_ts.c
@@ -934,9 +934,9 @@ static ssize_t raydium_i2c_calibrate_store(struct device *dev,
return error ?: count;
}
-static DEVICE_ATTR(fw_version, S_IRUGO, raydium_i2c_fw_ver_show, NULL);
-static DEVICE_ATTR(hw_version, S_IRUGO, raydium_i2c_hw_ver_show, NULL);
-static DEVICE_ATTR(boot_mode, S_IRUGO, raydium_i2c_boot_mode_show, NULL);
+static DEVICE_ATTR(fw_version, 0444, raydium_i2c_fw_ver_show, NULL);
+static DEVICE_ATTR(hw_version, 0444, raydium_i2c_hw_ver_show, NULL);
+static DEVICE_ATTR(boot_mode, 0444, raydium_i2c_boot_mode_show, NULL);
static DEVICE_ATTR(update_fw, S_IWUSR, NULL, raydium_i2c_update_fw_store);
static DEVICE_ATTR(calibrate, S_IWUSR, NULL, raydium_i2c_calibrate_store);
--
2.17.1
^ permalink raw reply related
* [PATCH 08/11] touchscreen: melfas: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Dmitry Torokhov, Sangwon Jee, Simon Budig, Andi Shyti,
Luca Ceresoli, linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IWUSR' are not preferred. Consider using octal permissions '0200'.
+static DEVICE_ATTR(update_fw, S_IWUSR, NULL, mip4_sysfs_fw_update);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(fw_version, S_IRUGO, mip4_sysfs_read_fw_version, NULL);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(hw_version, S_IRUGO, mip4_sysfs_read_hw_version, NULL);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(product_id, S_IRUGO, mip4_sysfs_read_product_id, NULL);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(ic_name, S_IRUGO, mip4_sysfs_read_ic_name, NULL);
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/melfas_mip4.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/input/touchscreen/melfas_mip4.c b/drivers/input/touchscreen/melfas_mip4.c
index 430a2bc5f7ca..f7fd940e61ea 100644
--- a/drivers/input/touchscreen/melfas_mip4.c
+++ b/drivers/input/touchscreen/melfas_mip4.c
@@ -1332,7 +1332,7 @@ static ssize_t mip4_sysfs_fw_update(struct device *dev,
return count;
}
-static DEVICE_ATTR(update_fw, S_IWUSR, NULL, mip4_sysfs_fw_update);
+static DEVICE_ATTR(update_fw, 0200, NULL, mip4_sysfs_fw_update);
static ssize_t mip4_sysfs_read_fw_version(struct device *dev,
struct device_attribute *attr,
@@ -1354,7 +1354,7 @@ static ssize_t mip4_sysfs_read_fw_version(struct device *dev,
return count;
}
-static DEVICE_ATTR(fw_version, S_IRUGO, mip4_sysfs_read_fw_version, NULL);
+static DEVICE_ATTR(fw_version, 0444, mip4_sysfs_read_fw_version, NULL);
static ssize_t mip4_sysfs_read_hw_version(struct device *dev,
struct device_attribute *attr,
@@ -1379,7 +1379,7 @@ static ssize_t mip4_sysfs_read_hw_version(struct device *dev,
return count;
}
-static DEVICE_ATTR(hw_version, S_IRUGO, mip4_sysfs_read_hw_version, NULL);
+static DEVICE_ATTR(hw_version, 0444, mip4_sysfs_read_hw_version, NULL);
static ssize_t mip4_sysfs_read_product_id(struct device *dev,
struct device_attribute *attr,
@@ -1398,7 +1398,7 @@ static ssize_t mip4_sysfs_read_product_id(struct device *dev,
return count;
}
-static DEVICE_ATTR(product_id, S_IRUGO, mip4_sysfs_read_product_id, NULL);
+static DEVICE_ATTR(product_id, 0444, mip4_sysfs_read_product_id, NULL);
static ssize_t mip4_sysfs_read_ic_name(struct device *dev,
struct device_attribute *attr,
@@ -1418,7 +1418,7 @@ static ssize_t mip4_sysfs_read_ic_name(struct device *dev,
return count;
}
-static DEVICE_ATTR(ic_name, S_IRUGO, mip4_sysfs_read_ic_name, NULL);
+static DEVICE_ATTR(ic_name, 0444, mip4_sysfs_read_ic_name, NULL);
static struct attribute *mip4_attrs[] = {
&dev_attr_fw_version.attr,
--
2.17.1
^ permalink raw reply related
* [PATCH 07/11] touchscreen: mc13783: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Dmitry Torokhov, Andi Shyti, Simon Budig, Luca Ceresoli,
linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IRUGO | S_IWUSR' are not preferred. Consider using octal permissions '0644'.
+module_param(sample_tolerance, uint, S_IRUGO | S_IWUSR);
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/mc13783_ts.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/touchscreen/mc13783_ts.c b/drivers/input/touchscreen/mc13783_ts.c
index ef64f36c5ffc..4e33349f101e 100644
--- a/drivers/input/touchscreen/mc13783_ts.c
+++ b/drivers/input/touchscreen/mc13783_ts.c
@@ -25,9 +25,9 @@
#define DEFAULT_SAMPLE_TOLERANCE 300
static unsigned int sample_tolerance = DEFAULT_SAMPLE_TOLERANCE;
-module_param(sample_tolerance, uint, S_IRUGO | S_IWUSR);
+module_param(sample_tolerance, uint, 0644);
MODULE_PARM_DESC(sample_tolerance,
- "If the minimal and maximal value read out for one axis (out "
+ "If the minimal and maximum value read out for one axis (out "
"of three) differ by this value (default: "
__stringify(DEFAULT_SAMPLE_TOLERANCE) ") or more, the reading "
"is supposed to be wrong and is discarded. Set to 0 to "
--
2.17.1
^ permalink raw reply related
* [PATCH 06/11] touchscreen: ili210x: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Dmitry Torokhov, Simon Budig, Andi Shyti, Luca Ceresoli,
linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IWUSR' are not preferred. Consider using octal permissions '0200'.
+static DEVICE_ATTR(calibrate, S_IWUSR, NULL, ili210x_calibrate);
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/ili210x.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c
index 6f76eeedf465..07526a6f2cb7 100644
--- a/drivers/input/touchscreen/ili210x.c
+++ b/drivers/input/touchscreen/ili210x.c
@@ -169,7 +169,7 @@ static ssize_t ili210x_calibrate(struct device *dev,
return count;
}
-static DEVICE_ATTR(calibrate, S_IWUSR, NULL, ili210x_calibrate);
+static DEVICE_ATTR(calibrate, 0200, NULL, ili210x_calibrate);
static struct attribute *ili210x_attributes[] = {
&dev_attr_calibrate.attr,
--
2.17.1
^ permalink raw reply related
* [PATCH 05/11] touchscreen: elants: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Dmitry Torokhov, Andi Shyti, Simon Budig, Luca Ceresoli,
Greg Kroah-Hartman, Guenter Roeck, Joe Perches, linux-input,
linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(iap_mode, S_IRUGO, show_iap_mode, NULL);
WARNING: Symbolic permissions 'S_IWUSR' are not preferred. Consider using octal permissions '0200'.
+static DEVICE_ATTR(update_fw, S_IWUSR, NULL, write_update_fw)
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+ .dattr = __ATTR(_field, S_IRUGO, \
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/elants_i2c.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/input/touchscreen/elants_i2c.c b/drivers/input/touchscreen/elants_i2c.c
index d21ca39b0fdb..9717b7c3bb6f 100644
--- a/drivers/input/touchscreen/elants_i2c.c
+++ b/drivers/input/touchscreen/elants_i2c.c
@@ -1000,8 +1000,8 @@ static ssize_t show_iap_mode(struct device *dev,
}
static DEVICE_ATTR_WO(calibrate);
-static DEVICE_ATTR(iap_mode, S_IRUGO, show_iap_mode, NULL);
-static DEVICE_ATTR(update_fw, S_IWUSR, NULL, write_update_fw);
+static DEVICE_ATTR(iap_mode, 0444, show_iap_mode, NULL);
+static DEVICE_ATTR(update_fw, 0200, NULL, write_update_fw);
struct elants_version_attribute {
struct device_attribute dattr;
@@ -1016,7 +1016,7 @@ struct elants_version_attribute {
__ELANTS_FIELD_SIZE(_field))
#define ELANTS_VERSION_ATTR(_field) \
struct elants_version_attribute elants_ver_attr_##_field = { \
- .dattr = __ATTR(_field, S_IRUGO, \
+ .dattr = __ATTR(_field, 0444, \
elants_version_attribute_show, NULL), \
.field_offset = offsetof(struct elants_data, _field), \
.field_size = __ELANTS_VERIFY_SIZE(_field), \
--
2.17.1
^ permalink raw reply related
* [PATCH 04/11] touchscreen: amtel: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Nick Dyer, Dmitry Torokhov, Simon Budig, Andi Shyti,
Luca Ceresoli, linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(fw_version, S_IRUGO, mxt_fw_version_show, NULL);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(hw_version, S_IRUGO, mxt_hw_version_show, NULL);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(object, S_IRUGO, mxt_object_show, NULL);
WARNING: Symbolic permissions 'S_IWUSR' are not preferred. Consider using octal permissions '0200'.
+static DEVICE_ATTR(update_fw, S_IWUSR, NULL, mxt_update_fw_store);
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 54fe190fd4bc..5202a8244f1d 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -2892,10 +2892,10 @@ static ssize_t mxt_update_fw_store(struct device *dev,
return count;
}
-static DEVICE_ATTR(fw_version, S_IRUGO, mxt_fw_version_show, NULL);
-static DEVICE_ATTR(hw_version, S_IRUGO, mxt_hw_version_show, NULL);
-static DEVICE_ATTR(object, S_IRUGO, mxt_object_show, NULL);
-static DEVICE_ATTR(update_fw, S_IWUSR, NULL, mxt_update_fw_store);
+static DEVICE_ATTR(fw_version, 0444, mxt_fw_version_show, NULL);
+static DEVICE_ATTR(hw_version, 0444, mxt_hw_version_show, NULL);
+static DEVICE_ATTR(object, 0444, mxt_object_show, NULL);
+static DEVICE_ATTR(update_fw, 0200, NULL, mxt_update_fw_store);
static struct attribute *mxt_attrs[] = {
&dev_attr_fw_version.attr,
--
2.17.1
^ permalink raw reply related
* [PATCH 03/11] touchscreen: ad7846: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Dmitry Torokhov, Andi Shyti, Simon Budig, Luca Ceresoli,
linux-input, linux-kernel
In-Reply-To: <20180721191029.25658-1-harshitjain6751@gmail.com>
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL);
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(pen_down, S_IRUGO, ads7846_pen_down_show, NULL);
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/ads7846.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index a2f45aefce08..7c07de0802de 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -431,7 +431,7 @@ name ## _show(struct device *dev, struct device_attribute *attr, char *buf) \
return v; \
return sprintf(buf, "%u\n", adjust(ts, v)); \
} \
-static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL);
+static DEVICE_ATTR(name, 0444, name ## _show, NULL);
/* Sysfs conventions report temperatures in millidegrees Celsius.
@@ -561,7 +561,7 @@ static ssize_t ads7846_pen_down_show(struct device *dev,
return sprintf(buf, "%u\n", ts->pendown);
}
-static DEVICE_ATTR(pen_down, S_IRUGO, ads7846_pen_down_show, NULL);
+static DEVICE_ATTR(pen_down, 0444, ads7846_pen_down_show, NULL);
static ssize_t ads7846_disable_show(struct device *dev,
struct device_attribute *attr, char *buf)
--
2.17.1
^ permalink raw reply related
* [PATCH 02/11] touchscreen: ad7877: Use octal permissions
From: dev-harsh1998 @ 2018-07-21 19:09 UTC (permalink / raw)
To: trivial
Cc: Michael Hennerich, Dmitry Torokhov, Simon Budig, Andi Shyti,
Luca Ceresoli, linux-input, linux-kernel
WARNING: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
+static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL);
Signed-off-by: dev-harsh1998 <harshitjain6751@gmail.com>
---
drivers/input/touchscreen/ad7877.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c
index 5cfe477ec992..4b4a9d84195e 100644
--- a/drivers/input/touchscreen/ad7877.c
+++ b/drivers/input/touchscreen/ad7877.c
@@ -461,7 +461,7 @@ name ## _show(struct device *dev, struct device_attribute *attr, char *buf) \
return v; \
return sprintf(buf, "%u\n", (unsigned) v); \
} \
-static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL);
+static DEVICE_ATTR(name, 0444, name ## _show, NULL);
SHOW(aux1)
SHOW(aux2)
--
2.17.1
^ permalink raw reply related
* Re: [PATCH 0/5] ti_am335x_tsc: Enable wakeup capability
From: Jonathan Cameron @ 2018-07-21 18:09 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Lee Jones, Vignesh R, linux-iio, linux-omap, linux-kernel,
linux-input
In-Reply-To: <20180718170902.vk7rahyoaevucxbi@penguin>
On Wed, 18 Jul 2018 17:09:02 +0000
Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote:
> On Wed, Jul 18, 2018 at 08:47:36AM +0100, Lee Jones wrote:
> > On Tue, 17 Jul 2018, Vignesh R wrote:
> >
> > > Hi Dmitry,
> > >
> > > On Saturday 30 June 2018 04:03 PM, Vignesh R wrote:
> > > > On AM335x, resistive TSC can wakeup the system from low power state.
> > > > Currently, parent MFD device is marked as wakeup source, which is
> > > > inaccurate as its the touch event generated by TSC thats the wakeup
> > > > source. This series moves all wakeup related calls to operate on TSC
> > > > device instead of MFD. It also marks TSC IRQ as wakeup capable, so that
> > > > its not disabled during system suspend.
> > > >
> > > > This series is based on Dmitry's comments here:
> > > > https://lkml.org/lkml/2018/4/24/65
> > > >
> > > > There are many new patches in this series, hence did not mark this as v4.
> > > >
> > > > Vignesh R (5):
> > > > mfd: ti_am335x_tscadc: Don't mark TSCADC MFD as wakeup capable
> > > > Input: ti_am335x_tsc: Mark TSC device as wakeup source
> > > > mfd: ti_am335x_tscadc: Keep ADC interface on if child is wakeup
> > > > capable
> > > > iio: adc: ti_am335x_adc: Disable ADC during suspend unconditionally
> > > > Input: ti_am335x_tsc: Mark IRQ as wakeup capable
> > > >
> > > > drivers/iio/adc/ti_am335x_adc.c | 12 ++++--------
> > > > drivers/input/touchscreen/ti_am335x_tsc.c | 22 +++++++++++++++++-----
> > > > drivers/mfd/ti_am335x_tscadc.c | 14 +++++++++++++-
> > > > 3 files changed, 34 insertions(+), 14 deletions(-)
> > > >
> > >
> > > Gentle ping... Could you review/pick this series? MFD amd IIO bits are
> > > already ACKed
> >
> > MFD patches are reviewed "for my own reference" meaning that we
> > haven't yet agreed on a merge plan yet.
>
> I think this series makes sense to be pushed through a single tree as
> opposed to being spread between 3, even if it could technically be
> possible. It looks like Jonathan is fine with going it through either
> his or some other tree, I am fine with it going through MFD. I just
> Acked the 2 input-related patches.
Just to confirm, MFD is fine for iio patches. That driver isn't a hotbed
of activity ;)
Jonathan
>
> Thanks.
>
^ permalink raw reply
* [PATCH v1 10/10] Input: atmel_mxt_ts - move completion to after config crc is updated
From: Nick Dyer @ 2018-07-20 21:51 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel, linux-input, Chris Healy, Nikita Yushchenko,
Lucas Stach, Nick Dyer
In-Reply-To: <20180720215122.23558-1-nick@shmanahar.org>
From: Nick Dyer <nick.dyer@itdev.co.uk>
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index c31af790ef84..9f296a66c94e 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -728,13 +728,13 @@ static void mxt_proc_t6_messages(struct mxt_data *data, u8 *msg)
u8 status = msg[1];
u32 crc = msg[2] | (msg[3] << 8) | (msg[4] << 16);
- complete(&data->crc_completion);
-
if (crc != data->config_crc) {
data->config_crc = crc;
dev_dbg(dev, "T6 Config Checksum: 0x%06X\n", crc);
}
+ complete(&data->crc_completion);
+
/* Detect reset */
if (status & MXT_T6_STATUS_RESET)
complete(&data->reset_completion);
--
2.17.1
^ permalink raw reply related
* [PATCH v1 09/10] Input: atmel_mxt_ts - tool type is ignored when slot is closed
From: Nick Dyer @ 2018-07-20 21:51 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel, linux-input, Chris Healy, Nikita Yushchenko,
Lucas Stach, Nick Dyer
In-Reply-To: <20180720215122.23558-1-nick@shmanahar.org>
From: Nick Dyer <nick.dyer@itdev.co.uk>
input_mt_report_slot_state() ignores the tool when the slot is closed.
Remove the tool type from these function calls, which has caused a bit of
confusion.
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index d7023d261458..c31af790ef84 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -838,8 +838,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
* have happened.
*/
if (status & MXT_T9_RELEASE) {
- input_mt_report_slot_state(input_dev,
- MT_TOOL_FINGER, 0);
+ input_mt_report_slot_state(input_dev, 0, 0);
mxt_input_sync(data);
}
@@ -855,7 +854,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, area);
} else {
/* Touch no longer active, close out slot */
- input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 0);
+ input_mt_report_slot_state(input_dev, 0, 0);
}
data->update_input = true;
--
2.17.1
^ permalink raw reply related
* [PATCH v1 08/10] Input: atmel_mxt_ts - don't report zero pressure from T9
From: Nick Dyer @ 2018-07-20 21:51 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel, linux-input, Chris Healy, Nikita Yushchenko,
Lucas Stach, Nick Dyer
In-Reply-To: <20180720215122.23558-1-nick@shmanahar.org>
From: Nick Dyer <nick.dyer@itdev.co.uk>
If T9.CTRL DISAMP is set, then pressure is reported as zero. This means
some app layers (eg tslib) will ignore the contact.
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 2d1fddafb7f9..d7023d261458 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -843,6 +843,10 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
mxt_input_sync(data);
}
+ /* if active, pressure must be non-zero */
+ if (!amplitude)
+ amplitude = MXT_PRESSURE_DEFAULT;
+
/* Touch active */
input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 1);
input_report_abs(input_dev, ABS_MT_POSITION_X, x);
--
2.17.1
^ permalink raw reply related
* [PATCH v1 07/10] Input: atmel_mxt_ts - zero terminate config firmware file
From: Nick Dyer @ 2018-07-20 21:51 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel, linux-input, Chris Healy, Nikita Yushchenko,
Lucas Stach, Nick Dyer
In-Reply-To: <20180720215122.23558-1-nick@shmanahar.org>
From: Nick Dyer <nick.dyer@itdev.co.uk>
We use sscanf to parse the configuration file, so it's necessary to zero
terminate the configuration otherwise a truncated file can cause the
parser to run off into uninitialised memory.
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 36 +++++++++++++++++-------
1 file changed, 26 insertions(+), 10 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 0ce126e918f1..2d1fddafb7f9 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -279,7 +279,7 @@ enum mxt_suspend_mode {
/* Config update context */
struct mxt_cfg {
- const u8 *raw;
+ u8 *raw;
size_t raw_size;
off_t raw_pos;
@@ -1451,14 +1451,21 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw)
u32 info_crc, config_crc, calculated_crc;
u16 crc_start = 0;
- cfg.raw = fw->data;
+ /* Make zero terminated copy of the OBP_RAW file */
+ cfg.raw = kzalloc(fw->size + 1, GFP_KERNEL);
+ if (!cfg.raw)
+ return -ENOMEM;
+
+ memcpy(cfg.raw, fw->data, fw->size);
+ cfg.raw[fw->size] = '\0';
cfg.raw_size = fw->size;
mxt_update_crc(data, MXT_COMMAND_REPORTALL, 1);
if (strncmp(cfg.raw, MXT_CFG_MAGIC, strlen(MXT_CFG_MAGIC))) {
dev_err(dev, "Unrecognised config file\n");
- return -EINVAL;
+ ret = -EINVAL;
+ goto release_raw;
}
cfg.raw_pos = strlen(MXT_CFG_MAGIC);
@@ -1470,7 +1477,8 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw)
&offset);
if (ret != 1) {
dev_err(dev, "Bad format\n");
- return -EINVAL;
+ ret = -EINVAL;
+ goto release_raw;
}
cfg.raw_pos += offset;
@@ -1478,26 +1486,30 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw)
if (cfg.info.family_id != data->info->family_id) {
dev_err(dev, "Family ID mismatch!\n");
- return -EINVAL;
+ ret = -EINVAL;
+ goto release_raw;
}
if (cfg.info.variant_id != data->info->variant_id) {
dev_err(dev, "Variant ID mismatch!\n");
- return -EINVAL;
+ ret = -EINVAL;
+ goto release_raw;
}
/* Read CRCs */
ret = sscanf(cfg.raw + cfg.raw_pos, "%x%n", &info_crc, &offset);
if (ret != 1) {
dev_err(dev, "Bad format: failed to parse Info CRC\n");
- return -EINVAL;
+ ret = -EINVAL;
+ goto release_raw;
}
cfg.raw_pos += offset;
ret = sscanf(cfg.raw + cfg.raw_pos, "%x%n", &config_crc, &offset);
if (ret != 1) {
dev_err(dev, "Bad format: failed to parse Config CRC\n");
- return -EINVAL;
+ ret = -EINVAL;
+ goto release_raw;
}
cfg.raw_pos += offset;
@@ -1530,8 +1542,10 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw)
MXT_INFO_CHECKSUM_SIZE;
cfg.mem_size = data->mem_size - cfg.start_ofs;
cfg.mem = kzalloc(cfg.mem_size, GFP_KERNEL);
- if (!cfg.mem)
- return -ENOMEM;
+ if (!cfg.mem) {
+ ret = -ENOMEM;
+ goto release_raw;
+ }
ret = mxt_prepare_cfg_mem(data, &cfg);
if (ret)
@@ -1570,6 +1584,8 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw)
/* T7 config may have changed */
mxt_init_t7_power_cfg(data);
+release_raw:
+ kfree(cfg.raw);
release_mem:
kfree(cfg.mem);
return ret;
--
2.17.1
^ permalink raw reply related
* [PATCH v1 06/10] Input: atmel_mxt_ts - refactor config update code to add context struct
From: Nick Dyer @ 2018-07-20 21:51 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel, linux-input, Chris Healy, Nikita Yushchenko,
Lucas Stach, Nick Dyer
In-Reply-To: <20180720215122.23558-1-nick@shmanahar.org>
From: Nick Dyer <nick.dyer@itdev.co.uk>
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 108 ++++++++++++-----------
1 file changed, 56 insertions(+), 52 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 560d4997ef8c..0ce126e918f1 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -277,6 +277,19 @@ enum mxt_suspend_mode {
MXT_SUSPEND_T9_CTRL = 1,
};
+/* Config update context */
+struct mxt_cfg {
+ const u8 *raw;
+ size_t raw_size;
+ off_t raw_pos;
+
+ u8 *mem;
+ size_t mem_size;
+ int start_ofs;
+
+ struct mxt_info info;
+};
+
/* Each client has this additional data */
struct mxt_data {
struct i2c_client *client;
@@ -1282,12 +1295,7 @@ static u32 mxt_calculate_crc(u8 *base, off_t start_off, off_t end_off)
return crc;
}
-static int mxt_prepare_cfg_mem(struct mxt_data *data,
- const struct firmware *cfg,
- unsigned int data_pos,
- unsigned int cfg_start_ofs,
- u8 *config_mem,
- size_t config_mem_size)
+static int mxt_prepare_cfg_mem(struct mxt_data *data, struct mxt_cfg *cfg)
{
struct device *dev = &data->client->dev;
struct mxt_object *object;
@@ -1298,9 +1306,9 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
u16 reg;
u8 val;
- while (data_pos < cfg->size) {
+ while (cfg->raw_pos < cfg->raw_size) {
/* Read type, instance, length */
- ret = sscanf(cfg->data + data_pos, "%x %x %x%n",
+ ret = sscanf(cfg->raw + cfg->raw_pos, "%x %x %x%n",
&type, &instance, &size, &offset);
if (ret == 0) {
/* EOF */
@@ -1309,20 +1317,20 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
dev_err(dev, "Bad format: failed to parse object\n");
return -EINVAL;
}
- data_pos += offset;
+ cfg->raw_pos += offset;
object = mxt_get_object(data, type);
if (!object) {
/* Skip object */
for (i = 0; i < size; i++) {
- ret = sscanf(cfg->data + data_pos, "%hhx%n",
+ ret = sscanf(cfg->raw + cfg->raw_pos, "%hhx%n",
&val, &offset);
if (ret != 1) {
dev_err(dev, "Bad format in T%d at %d\n",
type, i);
return -EINVAL;
}
- data_pos += offset;
+ cfg->raw_pos += offset;
}
continue;
}
@@ -1357,7 +1365,7 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
reg = object->start_address + mxt_obj_size(object) * instance;
for (i = 0; i < size; i++) {
- ret = sscanf(cfg->data + data_pos, "%hhx%n",
+ ret = sscanf(cfg->raw + cfg->raw_pos, "%hhx%n",
&val,
&offset);
if (ret != 1) {
@@ -1365,15 +1373,15 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
type, i);
return -EINVAL;
}
- data_pos += offset;
+ cfg->raw_pos += offset;
if (i > mxt_obj_size(object))
continue;
- byte_offset = reg + i - cfg_start_ofs;
+ byte_offset = reg + i - cfg->start_ofs;
- if (byte_offset >= 0 && byte_offset < config_mem_size) {
- *(config_mem + byte_offset) = val;
+ if (byte_offset >= 0 && byte_offset < cfg->mem_size) {
+ *(cfg->mem + byte_offset) = val;
} else {
dev_err(dev, "Bad object: reg:%d, T%d, ofs=%d\n",
reg, object->type, byte_offset);
@@ -1385,22 +1393,21 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
return 0;
}
-static int mxt_upload_cfg_mem(struct mxt_data *data, unsigned int cfg_start,
- u8 *config_mem, size_t config_mem_size)
+static int mxt_upload_cfg_mem(struct mxt_data *data, struct mxt_cfg *cfg)
{
unsigned int byte_offset = 0;
int error;
/* Write configuration as blocks */
- while (byte_offset < config_mem_size) {
- unsigned int size = config_mem_size - byte_offset;
+ while (byte_offset < cfg->mem_size) {
+ unsigned int size = cfg->mem_size - byte_offset;
if (size > MXT_MAX_BLOCK_WRITE)
size = MXT_MAX_BLOCK_WRITE;
error = __mxt_write_reg(data->client,
- cfg_start + byte_offset,
- size, config_mem + byte_offset);
+ cfg->start_ofs + byte_offset,
+ size, cfg->mem + byte_offset);
if (error) {
dev_err(&data->client->dev,
"Config write error, ret=%d\n", error);
@@ -1434,66 +1441,65 @@ static int mxt_init_t7_power_cfg(struct mxt_data *data);
* <SIZE> - 2-byte object size as hex
* <CONTENTS> - array of <SIZE> 1-byte hex values
*/
-static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
+static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw)
{
struct device *dev = &data->client->dev;
- struct mxt_info cfg_info;
+ struct mxt_cfg cfg;
int ret;
int offset;
- int data_pos;
int i;
- int cfg_start_ofs;
u32 info_crc, config_crc, calculated_crc;
- u8 *config_mem;
- size_t config_mem_size;
u16 crc_start = 0;
+ cfg.raw = fw->data;
+ cfg.raw_size = fw->size;
+
mxt_update_crc(data, MXT_COMMAND_REPORTALL, 1);
- if (strncmp(cfg->data, MXT_CFG_MAGIC, strlen(MXT_CFG_MAGIC))) {
+ if (strncmp(cfg.raw, MXT_CFG_MAGIC, strlen(MXT_CFG_MAGIC))) {
dev_err(dev, "Unrecognised config file\n");
return -EINVAL;
}
- data_pos = strlen(MXT_CFG_MAGIC);
+ cfg.raw_pos = strlen(MXT_CFG_MAGIC);
/* Load information block and check */
for (i = 0; i < sizeof(struct mxt_info); i++) {
- ret = sscanf(cfg->data + data_pos, "%hhx%n",
- (unsigned char *)&cfg_info + i,
+ ret = sscanf(cfg.raw + cfg.raw_pos, "%hhx%n",
+ (unsigned char *)&cfg.info + i,
&offset);
if (ret != 1) {
dev_err(dev, "Bad format\n");
return -EINVAL;
}
- data_pos += offset;
+ cfg.raw_pos += offset;
}
- if (cfg_info.family_id != data->info->family_id) {
+ if (cfg.info.family_id != data->info->family_id) {
dev_err(dev, "Family ID mismatch!\n");
return -EINVAL;
}
- if (cfg_info.variant_id != data->info->variant_id) {
+ if (cfg.info.variant_id != data->info->variant_id) {
dev_err(dev, "Variant ID mismatch!\n");
return -EINVAL;
}
/* Read CRCs */
- ret = sscanf(cfg->data + data_pos, "%x%n", &info_crc, &offset);
+ ret = sscanf(cfg.raw + cfg.raw_pos, "%x%n", &info_crc, &offset);
if (ret != 1) {
dev_err(dev, "Bad format: failed to parse Info CRC\n");
return -EINVAL;
}
- data_pos += offset;
+ cfg.raw_pos += offset;
- ret = sscanf(cfg->data + data_pos, "%x%n", &config_crc, &offset);
+ ret = sscanf(cfg.raw + cfg.raw_pos, "%x%n", &config_crc, &offset);
if (ret != 1) {
dev_err(dev, "Bad format: failed to parse Config CRC\n");
return -EINVAL;
}
- data_pos += offset;
+ cfg.raw_pos += offset;
/*
* The Info Block CRC is calculated over mxt_info and the object
@@ -1519,16 +1525,15 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
}
/* Malloc memory to store configuration */
- cfg_start_ofs = MXT_OBJECT_START +
+ cfg.start_ofs = MXT_OBJECT_START +
data->info->object_num * sizeof(struct mxt_object) +
MXT_INFO_CHECKSUM_SIZE;
- config_mem_size = data->mem_size - cfg_start_ofs;
- config_mem = kzalloc(config_mem_size, GFP_KERNEL);
- if (!config_mem)
+ cfg.mem_size = data->mem_size - cfg.start_ofs;
+ cfg.mem = kzalloc(cfg.mem_size, GFP_KERNEL);
+ if (!cfg.mem)
return -ENOMEM;
- ret = mxt_prepare_cfg_mem(data, cfg, data_pos, cfg_start_ofs,
- config_mem, config_mem_size);
+ ret = mxt_prepare_cfg_mem(data, &cfg);
if (ret)
goto release_mem;
@@ -1540,18 +1545,17 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
else
dev_warn(dev, "Could not find CRC start\n");
- if (crc_start > cfg_start_ofs) {
- calculated_crc = mxt_calculate_crc(config_mem,
- crc_start - cfg_start_ofs,
- config_mem_size);
+ if (crc_start > cfg.start_ofs) {
+ calculated_crc = mxt_calculate_crc(cfg.mem,
+ crc_start - cfg.start_ofs,
+ cfg.mem_size);
if (config_crc > 0 && config_crc != calculated_crc)
dev_warn(dev, "Config CRC in file inconsistent, calculated=%06X, file=%06X\n",
calculated_crc, config_crc);
}
- ret = mxt_upload_cfg_mem(data, cfg_start_ofs,
- config_mem, config_mem_size);
+ ret = mxt_upload_cfg_mem(data, &cfg);
if (ret)
goto release_mem;
@@ -1567,7 +1571,7 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
mxt_init_t7_power_cfg(data);
release_mem:
- kfree(config_mem);
+ kfree(cfg.mem);
return ret;
}
--
2.17.1
^ permalink raw reply related
* [PATCH v1 05/10] Input: atmel_mxt_ts - config CRC may start at T71
From: Nick Dyer @ 2018-07-20 21:51 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel, linux-input, Chris Healy, Nikita Yushchenko,
Lucas Stach, Nick Dyer
In-Reply-To: <20180720215122.23558-1-nick@shmanahar.org>
From: Nick Dyer <nick.dyer@itdev.co.uk>
On devices with the T71 object, the config CRC will start there, rather
than at T7.
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 34 +++++++++++++++---------
1 file changed, 22 insertions(+), 12 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 92661aa910ae..560d4997ef8c 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -75,6 +75,7 @@
#define MXT_SPT_DIGITIZER_T43 43
#define MXT_SPT_MESSAGECOUNT_T44 44
#define MXT_SPT_CTECONFIG_T46 46
+#define MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71 71
#define MXT_TOUCH_MULTITOUCHSCREEN_T100 100
/* MXT_GEN_MESSAGE_T5 object */
@@ -317,6 +318,7 @@ struct mxt_data {
u8 T6_reportid;
u16 T6_address;
u16 T7_address;
+ u16 T71_address;
u8 T9_reportid_min;
u8 T9_reportid_max;
u8 T19_reportid;
@@ -382,6 +384,7 @@ static bool mxt_object_readable(unsigned int type)
case MXT_SPT_USERDATA_T38:
case MXT_SPT_DIGITIZER_T43:
case MXT_SPT_CTECONFIG_T46:
+ case MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71:
return true;
default:
return false;
@@ -1443,6 +1446,7 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
u32 info_crc, config_crc, calculated_crc;
u8 *config_mem;
size_t config_mem_size;
+ u16 crc_start = 0;
mxt_update_crc(data, MXT_COMMAND_REPORTALL, 1);
@@ -1529,20 +1533,22 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
goto release_mem;
/* Calculate crc of the received configs (not the raw config file) */
- if (data->T7_address < cfg_start_ofs) {
- dev_err(dev, "Bad T7 address, T7addr = %x, config offset %x\n",
- data->T7_address, cfg_start_ofs);
- ret = 0;
- goto release_mem;
- }
+ if (data->T71_address)
+ crc_start = data->T71_address;
+ else if (data->T7_address)
+ crc_start = data->T7_address;
+ else
+ dev_warn(dev, "Could not find CRC start\n");
- calculated_crc = mxt_calculate_crc(config_mem,
- data->T7_address - cfg_start_ofs,
- config_mem_size);
+ if (crc_start > cfg_start_ofs) {
+ calculated_crc = mxt_calculate_crc(config_mem,
+ crc_start - cfg_start_ofs,
+ config_mem_size);
- if (config_crc > 0 && config_crc != calculated_crc)
- dev_warn(dev, "Config CRC error, calculated=%06X, file=%06X\n",
- calculated_crc, config_crc);
+ if (config_crc > 0 && config_crc != calculated_crc)
+ dev_warn(dev, "Config CRC in file inconsistent, calculated=%06X, file=%06X\n",
+ calculated_crc, config_crc);
+ }
ret = mxt_upload_cfg_mem(data, cfg_start_ofs,
config_mem, config_mem_size);
@@ -1589,6 +1595,7 @@ static void mxt_free_object_table(struct mxt_data *data)
data->T5_msg_size = 0;
data->T6_reportid = 0;
data->T7_address = 0;
+ data->T71_address = 0;
data->T9_reportid_min = 0;
data->T9_reportid_max = 0;
data->T19_reportid = 0;
@@ -1654,6 +1661,9 @@ static int mxt_parse_object_table(struct mxt_data *data,
case MXT_GEN_POWER_T7:
data->T7_address = object->start_address;
break;
+ case MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71:
+ data->T71_address = object->start_address;
+ break;
case MXT_TOUCH_MULTI_T9:
data->multitouch = MXT_TOUCH_MULTI_T9;
/* Only handle messages from first T9 instance */
--
2.17.1
^ permalink raw reply related
* [PATCH v1 04/10] Input: atmel_mxt_ts - remove unnecessary debug on ENOMEM
From: Nick Dyer @ 2018-07-20 21:51 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel, linux-input, Chris Healy, Nikita Yushchenko,
Lucas Stach, Nick Dyer
In-Reply-To: <20180720215122.23558-1-nick@shmanahar.org>
From: Nick Dyer <nick.dyer@itdev.co.uk>
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index dcafb812ee7e..92661aa910ae 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -1520,10 +1520,8 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
MXT_INFO_CHECKSUM_SIZE;
config_mem_size = data->mem_size - cfg_start_ofs;
config_mem = kzalloc(config_mem_size, GFP_KERNEL);
- if (!config_mem) {
- dev_err(dev, "Failed to allocate memory\n");
+ if (!config_mem)
return -ENOMEM;
- }
ret = mxt_prepare_cfg_mem(data, cfg, data_pos, cfg_start_ofs,
config_mem, config_mem_size);
@@ -1982,10 +1980,8 @@ static int mxt_initialize_input_device(struct mxt_data *data)
/* Register input device */
input_dev = input_allocate_device();
- if (!input_dev) {
- dev_err(dev, "Failed to allocate memory\n");
+ if (!input_dev)
return -ENOMEM;
- }
input_dev->name = "Atmel maXTouch Touchscreen";
input_dev->phys = data->phys;
--
2.17.1
^ permalink raw reply related
* [PATCH v1 03/10] Input: atmel_mxt_ts - remove duplicate setup of ABS_MT_PRESSURE
From: Nick Dyer @ 2018-07-20 21:51 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel, linux-input, Chris Healy, Nikita Yushchenko,
Lucas Stach, Nick Dyer
In-Reply-To: <20180720215122.23558-1-nick@shmanahar.org>
From: Nick Dyer <nick.dyer@itdev.co.uk>
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 9555947a2d46..dcafb812ee7e 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -2055,12 +2055,6 @@ static int mxt_initialize_input_device(struct mxt_data *data)
0, 255, 0, 0);
}
- if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
- data->t100_aux_ampl) {
- input_set_abs_params(input_dev, ABS_MT_PRESSURE,
- 0, 255, 0, 0);
- }
-
if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
data->t100_aux_vect) {
input_set_abs_params(input_dev, ABS_MT_ORIENTATION,
--
2.17.1
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox