All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: Frank.Li@oss.nxp.com
Cc: devicetree@vger.kernel.org, imx@lists.linux.dev, robh@kernel.org,
	conor+dt@kernel.org, Frank.Li@kernel.org
Subject: Re: [PATCH 03/14] ARM: dts: imx6dl-b155v2: add touchscreen size properties
Date: Fri, 16 Oct 2026 20:21:16 +0000	[thread overview]
Message-ID: <sashiko-outbox-174911@kernel.org> (raw)
In-Reply-To: <20261016-arm_dts_cleanup2-v1-3-3a0cab9fd784@nxp.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] ARM: dts: imx6dl-b155v2: panel size in touchscreen-size-x/y breaks touch
--

commit a32e64e0ae8dfc5c902cc7abdcc408b2bb7583c9
Author: Frank Li <Frank.Li@nxp.com>

ARM: dts: imx6dl-b155v2: add touchscreen size properties

This commit adds touchscreen-size-x and touchscreen-size-y properties to the
eeti,exc80h84 touchscreen node in imx6dl-b155v2.dts to satisfy the
eeti,exc3000 devicetree schema requirements.

> diff --git a/arch/arm/boot/dts/nxp/imx/imx6dl-b155v2.dts b/arch/arm/boot/dts/nxp/imx/imx6dl-b155v2.dts
> index 7edc788bcb8f3..54db44613df66 100644
> --- a/arch/arm/boot/dts/nxp/imx/imx6dl-b155v2.dts
> +++ b/arch/arm/boot/dts/nxp/imx/imx6dl-b155v2.dts
> @@ -25,6 +25,8 @@ touchscreen@2a {
>  		pinctrl-0 = <&pinctrl_q7_gpio0>;
>  		interrupt-parent = <&gpio5>;
>  		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
> +		touchscreen-size-x = <1366>;
> +		touchscreen-size-y = <768>;
>  		touchscreen-inverted-x;
>  		touchscreen-inverted-y;
>  		reset-gpios = <&tca6424a 21 GPIO_ACTIVE_HIGH>;

[Severity: High]
Does setting touchscreen-size-x and touchscreen-size-y to the display panel's
1366x768 pixel resolution introduce a regression in touch coordinate reporting
for this controller?

Per Documentation/devicetree/bindings/input/touchscreen/touchscreen.yaml,
touchscreen-size-x and touchscreen-size-y describe the coordinate space of the
touchscreen controller itself (maximum coordinate reported + 1), rather than
the LCD panel dimensions.

In drivers/input/touchscreen/exc3000.c, exc3000_info defines the native 14-bit
coordinate maximum for the EXC80H84 controller:

	[EETI_EXC80H84] = {
		.name = "EETI EXC80H84 Touch Screen",
		.max_xy = SZ_16K - 1,
	},

During probe, exc3000_probe() initializes the axes to [0, 16383], and then
calls touchscreen_parse_properties():

	max_xy = data->info->max_xy;
	input_set_abs_params(input, ABS_MT_POSITION_X, 0, max_xy, 0, 0);
	input_set_abs_params(input, ABS_MT_POSITION_Y, 0, max_xy, 0, 0);

	touchscreen_parse_properties(input, true, &data->prop);

With touchscreen-size-x = <1366> and touchscreen-size-y = <768>,
touchscreen_parse_properties() overwrites the axis maximums and
data->prop.max_x / max_y to 1365 and 767.

However, the exc3000 driver does not program these dimensions into the
hardware or scale the raw coordinates in software. When a touch interrupt
occurs, exc3000_interrupt() -> exc3000_handle_mt_event() ->
exc3000_report_slots() passes unscaled 14-bit coordinates (0..16383) directly
to touchscreen_report_pos():

	touchscreen_report_pos(input, prop,
			       get_unaligned_le16(buf + 2),
			       get_unaligned_le16(buf + 4),
			       true);

Because touchscreen-inverted-x and touchscreen-inverted-y are also set on
touchscreen@2a, touchscreen_report_pos() -> touchscreen_apply_prop_to_x_y()
inverts the raw coordinates against the overridden maximums:

	if (prop->invert_x)
		*x = prop->max_x - *x;

	if (prop->invert_y)
		*y = prop->max_y - *y;

Whenever the controller reports raw X > 1365 or raw Y > 767, this unsigned
subtraction wraps around and reports negative coordinates to input_report_abs(),
while also advertising the wrong axis range to userspace.

Should touchscreen-size-x and touchscreen-size-y be set to <16384> to match
the EETI EXC80H84 controller's 16384x16384 coordinate space?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261016-arm_dts_cleanup2-v1-0-3a0cab9fd784@nxp.com?part=3

  reply	other threads:[~2026-10-16 20:21 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-16 20:10 [PATCH 00/14] ARM: dts: imx: cleanup some CHECK_DTBS warnings Frank.Li
2026-10-16 20:10 ` [PATCH 01/14] ARM: dts: imx6q-dms-ba16: remove undocumented property fsl,receive-dpll-mode Frank.Li
2026-10-16 20:10 ` [PATCH 02/14] ARM: dts: imx50-amazon-yoshi: remove undocument property min-frequency Frank.Li
2026-10-16 20:10 ` [PATCH 03/14] ARM: dts: imx6dl-b155v2: add touchscreen size properties Frank.Li
2026-10-16 20:21   ` sashiko-bot [this message]
2026-10-16 20:10 ` [PATCH 04/14] ARM: dts: imx6q-gw5400-a: fix SPI NOR flash vendor prefix Frank.Li
2026-10-16 20:10 ` [PATCH 05/14] ARM: dts: imx6dl-prtmvt: remove redundant panel compatible fallback Frank.Li
2026-10-16 20:10 ` [PATCH 06/14] ARM: dts: imx53-smd: change compatible string to dlg,da9053-aa Frank.Li
2026-10-16 20:10 ` [PATCH 07/14] ARM: dts: imx6qdl-savageboard: remove undocument avic,tm097tdh02 Frank.Li
2026-10-16 20:10 ` [PATCH 08/14] ARM: dts: imx6qdl-apalis: remove disabled node "panel-lvds" Frank.Li
2026-10-17 18:19   ` Francesco Dolcini
2026-10-16 20:10 ` [PATCH 09/14] ARM: dts: imx6ul-tx6ul: remove front compatible string karo,imx6ul-tx6ul-sgtl5000 Frank.Li
2026-10-16 20:10 ` [PATCH 10/14] ARM: dts: imx6qdl-tx6-mb7: remove redundant pixelclk-active for simple panel Frank.Li
2026-10-16 20:10 ` [PATCH 11/14] ARM: dts: imx6q-h100: rename port to port@0 for mipi_csi Frank.Li
2026-10-16 20:10 ` [PATCH 12/14] ARM: dts: imx6qdl-sabrelite: fix typo vync-active Frank.Li
2026-10-16 20:10 ` [PATCH 13/14] ARM: dts: imx6q-novena: use interrupts replace irq-gpio Frank.Li
2026-10-16 20:10 ` [PATCH 14/14] ARM: dts: imx6sx-sdb-mqs: remove empty pinctrl-0 Frank.Li
2026-10-16 20:18   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-174911@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=Frank.Li@kernel.org \
    --cc=Frank.Li@oss.nxp.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=imx@lists.linux.dev \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.