Guenter Roeck | 25 Jun 04:53 2016

[RFT PATCH] regmap-i2c: Only use I2C_FUNC_I2C if val_bits == 8

On chips with a register value size of 16 bits, I2C block reads will
typically not return the expected values. Instead, returned values
are most likely undefined if an operation crosses a register boundary.

This can be observed, for example, with a TMP102 connected to an omap
i2c controller. With this chip, the initial regmap read operation to fill
the register cache looks as follows (debug log from modified kernel).

omap_i2c 48070000.i2c: MSG[0]: add=0x0048, len: 1, flags: 0x0
omap_i2c 48070000.i2c: [0] 0x00
omap_i2c 48070000.i2c: MSG[1]: add=0x0048, len: 8, flags: 0x1
omap_i2c 48070000.i2c: [0] 0x23
omap_i2c 48070000.i2c: [1] 0xa0
omap_i2c 48070000.i2c: [2] 0xff
omap_i2c 48070000.i2c: [3] 0xff
omap_i2c 48070000.i2c: [4] 0xff
omap_i2c 48070000.i2c: [5] 0xff
omap_i2c 48070000.i2c: [6] 0xff
omap_i2c 48070000.i2c: [7] 0xff

Reported-by: Nishanth Menon <nm <at>>
Cc: Nishanth Menon <nm <at>>
Signed-off-by: Guenter Roeck <linux <at>>

it would be great if you can test this patch, to see if it solves the problem
you had observed. Please note that
needs to be applied first (it is available in next-20160624).

(Continue reading)

Wang Nan | 25 Jun 03:41 2016

[PATCH] perf build: Add libbabeltrace to build-test

'make build-test' doesn't test LIBBABELTRACE=1. It misses a building
failure caused by commit 41840d211c51 ("perf config: Move config
declarations from util/cache.h to util/config.h"), breaks bisect.

Add LIBBABELTRACE=1 to build-test.

Signed-off-by: Wang Nan <wangnan0 <at>>
Cc: Arnaldo Carvalho de Melo <acme <at>>
Cc: Jiri Olsa <jolsa <at>>
 tools/perf/tests/make | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/perf/tests/make b/tools/perf/tests/make
index cac15d9..51966d9 100644
--- a/tools/perf/tests/make
+++ b/tools/perf/tests/make
 <at>  <at>  -81,6 +81,7  <at>  <at>  make_no_libbionic   := NO_LIBBIONIC=1
 make_no_auxtrace    := NO_AUXTRACE=1
 make_no_libbpf	    := NO_LIBBPF=1
 make_no_libcrypto   := NO_LIBCRYPTO=1
+make_with_babeltrace:= LIBBABELTRACE=1
 make_tags           := tags
 make_cscope         := cscope
 make_help           := help
 <at>  <at>  -136,6 +137,7  <at>  <at>  run += make_no_libaudit
 run += make_no_libbionic
 run += make_no_auxtrace
 run += make_no_libbpf
+run += make_with_babeltrace
(Continue reading)

Andrew Duggan | 25 Jun 02:20 2016

[PATCH v3] HID: rmi: Make hid-rmi a transport driver for synaptics-rmi4

The Synaptics RMI4 driver provides support for RMI4 devices. Instead of
duplicating the RMI4 processing code, make hid-rmi a transport driver
and register it with the Synaptics RMI4 core.

Signed-off-by: Andrew Duggan <aduggan <at>>
In v3 I went ahead and added RMI4_F12 to the Kconfig so we will have it
ready for Precision Touchpad. I also added documentation for xport in

Also, after thinking about this a bit more I think it makes sense to
enable dribble by default. With dribble disable the device reports
a single lift event. If that report gets dropped for some reason then
that will result in stuck contacts. The downside of dribble packets is that
it increases the amount of interrupts. But, this increase is really not
significant to overall performace. I also don't think it is worth trying
to identify platforms which have issues with dropped reports so that we
can set quirks or maintain a device list to enable dribble only on those


 drivers/hid/Kconfig   |   4 +
 drivers/hid/hid-rmi.c | 963 ++++++++------------------------------------------
 2 files changed, 142 insertions(+), 825 deletions(-)

diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index 4117225..336b79d 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
(Continue reading)

Andrew Duggan | 25 Jun 02:19 2016

[PATCH v2 8/8] Input: synaptics-rmi4: Use the RMI_F11_REL_BYTES define in rmi_f11_rel_pos_report

The size of relative data in F11 is already defined by RMI_F11_REL_BYTES.
Use the define in rmi_f11_rel_pos_report() to be consistent.

Signed-off-by: Andrew Duggan <aduggan <at>>
 drivers/input/rmi4/rmi_f11.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/input/rmi4/rmi_f11.c b/drivers/input/rmi4/rmi_f11.c
index 3fda75b..cce82a1 100644
--- a/drivers/input/rmi4/rmi_f11.c
+++ b/drivers/input/rmi4/rmi_f11.c
 <at>  <at>  -530,8 +530,8  <at>  <at>  static void rmi_f11_rel_pos_report(struct f11_data *f11, u8 n_finger)
 	struct f11_2d_data *data = &f11->data;
 	s8 x, y;

-	x = data->rel_pos[n_finger * 2];
-	y = data->rel_pos[n_finger * 2 + 1];
+	x = data->rel_pos[n_finger * RMI_F11_REL_BYTES];
+	y = data->rel_pos[n_finger * RMI_F11_REL_BYTES + 1];

 	rmi_2d_sensor_rel_report(sensor, x, y);


Andrew Duggan | 25 Jun 02:19 2016

[PATCH v2 7/8] Input: synaptics-rmi4: Handle incomplete input data

Commit 5b65c2a02966 ("HID: rmi: check sanity of the incoming report") added
support for handling incomplete HID reports do to the input data being
corrupted in transit. This patch reimplements this functionality in the
function drivers so they can handle getting less valid data then they

Signed-off-by: Andrew Duggan <aduggan <at>>
 drivers/input/rmi4/rmi_f11.c | 54 ++++++++++++++++++++++++++++++++------------
 drivers/input/rmi4/rmi_f12.c | 23 ++++++++++++++-----
 drivers/input/rmi4/rmi_f30.c |  4 ++++
 3 files changed, 61 insertions(+), 20 deletions(-)

diff --git a/drivers/input/rmi4/rmi_f11.c b/drivers/input/rmi4/rmi_f11.c
index 688e604..3fda75b 100644
--- a/drivers/input/rmi4/rmi_f11.c
+++ b/drivers/input/rmi4/rmi_f11.c
 <at>  <at>  -572,31 +572,48  <at>  <at>  static inline u8 rmi_f11_parse_finger_state(const u8 *f_state, u8 n_finger)

 static void rmi_f11_finger_handler(struct f11_data *f11,
 				   struct rmi_2d_sensor *sensor,
-				   unsigned long *irq_bits, int num_irq_regs)
+				   unsigned long *irq_bits, int num_irq_regs,
+				   int size)
 	const u8 *f_state = f11->data.f_state;
 	u8 finger_state;
 	u8 i;
+	int abs_fingers;
+	int rel_fingers;
(Continue reading)

Andrew Duggan | 25 Jun 02:19 2016

[PATCH v2 6/8] Input: synaptics-rmi4: Remove unneeded variable

Remove the data_base_addr_offset variable in rmi_f11_attention(). The
f11 data is read as a single block so there is no need to store an offset
to the data address.

Signed-off-by: Andrew Duggan <aduggan <at>>
 drivers/input/rmi4/rmi_f11.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/input/rmi4/rmi_f11.c b/drivers/input/rmi4/rmi_f11.c
index e691432..688e604 100644
--- a/drivers/input/rmi4/rmi_f11.c
+++ b/drivers/input/rmi4/rmi_f11.c
 <at>  <at>  -1265,7 +1265,6  <at>  <at>  static int rmi_f11_attention(struct rmi_function *fn, unsigned long *irq_bits)
 	struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
 	struct f11_data *f11 = dev_get_drvdata(&fn->dev);
 	u16 data_base_addr = fn->fd.data_base_addr;
-	u16 data_base_addr_offset = 0;
 	int error;

 	if (rmi_dev->xport->attn_data) {
 <at>  <at>  -1275,8 +1274,7  <at>  <at>  static int rmi_f11_attention(struct rmi_function *fn, unsigned long *irq_bits)
 		rmi_dev->xport->attn_size -= f11->sensor.attn_size;
 	} else {
 		error = rmi_read_block(rmi_dev,
-				data_base_addr + data_base_addr_offset,
-				f11->sensor.data_pkt,
+				data_base_addr, f11->sensor.data_pkt,
 		if (error < 0)
(Continue reading)

Andrew Duggan | 25 Jun 02:18 2016

[PATCH v2 4/8] Input: synaptics-rmi4: Add support for controlling dribble packets in F12

Implements reading and setting the dribble bit in F12's control registers.

Signed-off-by: Andrew Duggan <aduggan <at>>
 drivers/input/rmi4/rmi_f12.c | 74 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 73 insertions(+), 1 deletion(-)

diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c
index 8dd3fb5..041a91d 100644
--- a/drivers/input/rmi4/rmi_f12.c
+++ b/drivers/input/rmi4/rmi_f12.c
 <at>  <at>  -30,6 +30,7  <at>  <at>  struct f12_data {
 	struct rmi_function *fn;
 	struct rmi_2d_sensor sensor;
 	struct rmi_2d_sensor_platform_data sensor_pdata;
+	bool has_dribble;

 	u16 data_addr;

 <at>  <at>  -228,12 +229,79  <at>  <at>  static int rmi_f12_attention(struct rmi_function *fn,
 	return 0;

+static int rmi_f12_write_control_regs(struct rmi_function *fn)
+	int ret;
+	const struct rmi_register_desc_item *item;
+	struct rmi_device *rmi_dev = fn->rmi_dev;
+	struct f12_data *f12 = dev_get_drvdata(&fn->dev);
+	int control_size;
(Continue reading)

Masami Hiramatsu | 25 Jun 01:46 2016

Re: [PATCH perf/core v12 00/16] perf-probe --cache and SDT support

On Fri, 24 Jun 2016 13:25:20 -0700
Brendan Gregg <brendan.d.gregg <at>> wrote:

> On Fri, Jun 24, 2016 at 2:05 AM, Masami Hiramatsu <mhiramat <at>> wrote:
> > Hi,
> >
> > Here is the 12th version of the patchset for probe-cache and
> > initial SDT support.
> >
> > Here is the previous v11:
> >
> > In this version I just rename strlist__for_each to
> > strlist__for_each_entry, and change some patch description.
> >
> I tested it on Node.js (and applied to acme's perf/core), and it works. Thanks!
> # perf script
>             node 36750 [006]  3080.761533:
> sdt_node:http__server__request: (da8b0c)
>             node 36750 [006]  3081.368771:
> sdt_node:http__server__request: (da8b0c)
>             node 36750 [006]  3081.592925:
> sdt_node:http__server__request: (da8b0c)
>             node 36750 [006]  3081.976802:
> sdt_node:http__server__request: (da8b0c)
>             node 36750 [006]  3082.296709:
> sdt_node:http__server__request: (da8b0c)
> Since it doesn't set the is-enabled semaphore yet, I had to do that
(Continue reading)

Han Xu | 24 Jun 23:40 2016

[PATCH v3 0/6] support gpmi on i.MX6UL/7D and HW bitflip on i.MX6QP/7D

add support for gpmi nand on i.MX6UL and i.MX7D, document the related
properties in DT and add the HW bitflip detection and correction for
i.MX6QP and i.MX7D.

v1 ---> v2:
fix several indent and open parenthesis issues
drop off the void cast
rebase to latest code and adopt to SW bitflip code
split bitflip and i.MX6QP code

v2 ---> v3:
calculate erased chunks and fix bitflip after loop
add more details for i.MX7 clock name
fix the patch name for documentation

Han Xu (6):
  mtd: nand: gpmi: add GPMI NAND support for i.MX7D
  Documentation: dt: mtd: gpmi: document the clocks and clock-names in
    DT property
  mtd: nand: gpmi: add GPMI NAND support for i.MX6QP
  mtd: nand: gpmi: correct bitflip for erased NAND page
  mtd: nand: gpmi: support NAND on i.MX6UL
  Documentation: dt: mtd: gpmi: document the new supported chip in DT

 .../devicetree/bindings/mtd/gpmi-nand.txt          | 12 ++-
 drivers/mtd/nand/gpmi-nand/bch-regs.h              | 24 ++++--
 drivers/mtd/nand/gpmi-nand/gpmi-lib.c              | 15 +++-
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c             | 85 +++++++++++++++++++---
 drivers/mtd/nand/gpmi-nand/gpmi-nand.h             | 15 +++-
 5 files changed, 127 insertions(+), 24 deletions(-)
(Continue reading)

Steven Rostedt | 24 Jun 22:51 2016

[ANNOUNCE] 3.4.112-rt142

Dear RT Folks,

I'm pleased to announce the 3.4.112-rt142 stable release.

This release is just an update to the new stable 3.4.112 version
and no RT specific changes have been made.

You can get this release via the git tree at:


  branch: v3.4-rt
  Head SHA1: d5fcc9fe370770070b007f862e795e17f6797115

Or to build 3.4.112-rt142 directly, the following patches should be applied:


-- Steve

Steven Rostedt | 24 Jun 22:50 2016

[ANNOUNCE] 3.10.102-rt112

Dear RT Folks,

I'm pleased to announce the 3.10.102-rt112 stable release.

This release is just an update to the new stable 3.10.102 version
and no RT specific changes have been made.

You can get this release via the git tree at:


  branch: v3.10-rt
  Head SHA1: 6fcfe00db7644a16b4baf7e1e62029c33fddb72f

Or to build 3.10.102-rt112 directly, the following patches should be applied:


-- Steve