[{"id":3676226,"web_url":"http://patchwork.ozlabs.org/comment/3676226/","msgid":"<b52dc143-5238-408e-9162-632b5a1386fd@oss.qualcomm.com>","list_archive_url":null,"date":"2026-04-12T01:09:55","subject":"Re: [PATCH v2 19/21] drm/panel: add driver for Waveshare 8.8\" DSI\n TOUCH-A panel","submitter":{"id":90146,"url":"http://patchwork.ozlabs.org/api/people/90146/","name":"Jie Gan","email":"jie.gan@oss.qualcomm.com"},"content":"On 4/11/2026 8:10 PM, Dmitry Baryshkov wrote:\n> Add driver for the panel found on Waveshare 8.8\" DSI TOUCH-A kit. It\n> uses ota7290b IC as a controller.\n> \n> Reviewed-by: Linus Walleij <linusw@kernel.org>\n> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n> ---\n>   drivers/gpu/drm/panel/Kconfig                    |  12 ++\n>   drivers/gpu/drm/panel/Makefile                   |   1 +\n>   drivers/gpu/drm/panel/panel-focaltech-ota7290b.c | 208 +++++++++++++++++++++++\n>   3 files changed, 221 insertions(+)\n> \n> diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig\n> index ba527b4d7737..979109c27b9b 100644\n> --- a/drivers/gpu/drm/panel/Kconfig\n> +++ b/drivers/gpu/drm/panel/Kconfig\n> @@ -144,6 +144,18 @@ config DRM_PANEL_FEIYANG_FY07024DI26A30D\n>   \t  Say Y if you want to enable support for panels based on the\n>   \t  Feiyang FY07024DI26A30-D MIPI-DSI interface.\n>   \n> +config DRM_PANEL_FOCALTECH_OTA7290B\n> +\ttristate \"Focaltech OTA7290B\"\n> +\tdepends on DRM_MIPI_DSI\n> +\tdepends on I2C\n> +\tdepends on BACKLIGHT_CLASS_DEVICE\n> +\tselect DRM_KMS_HELPER\n> +\thelp\n> +\t  Enable support for panels using OTA7290B as a controller (for\n> +\t  example, Waveshare 12.3\" DSI TOUCH-A panel). Say Y here if you want\n> +\t  to enable support for this panel. To compile this driver as a module,\n> +\t  choose M here.\n> +\n>   config DRM_PANEL_DSI_CM\n>   \ttristate \"Generic DSI command mode panels\"\n>   \tdepends on OF\n> diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile\n> index a4291dc3905b..0d694acbfbb6 100644\n> --- a/drivers/gpu/drm/panel/Makefile\n> +++ b/drivers/gpu/drm/panel/Makefile\n> @@ -17,6 +17,7 @@ obj-$(CONFIG_DRM_PANEL_EBBG_FT8719) += panel-ebbg-ft8719.o\n>   obj-$(CONFIG_DRM_PANEL_ELIDA_KD35T133) += panel-elida-kd35t133.o\n>   obj-$(CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02) += panel-feixin-k101-im2ba02.o\n>   obj-$(CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D) += panel-feiyang-fy07024di26a30d.o\n> +obj-$(CONFIG_DRM_PANEL_FOCALTECH_OTA7290B) += panel-focaltech-ota7290b.o\n>   obj-$(CONFIG_DRM_PANEL_HIMAX_HX8279) += panel-himax-hx8279.o\n>   obj-$(CONFIG_DRM_PANEL_HIMAX_HX83102) += panel-himax-hx83102.o\n>   obj-$(CONFIG_DRM_PANEL_HIMAX_HX83112A) += panel-himax-hx83112a.o\n> diff --git a/drivers/gpu/drm/panel/panel-focaltech-ota7290b.c b/drivers/gpu/drm/panel/panel-focaltech-ota7290b.c\n> new file mode 100644\n> index 000000000000..991d6a4caf17\n> --- /dev/null\n> +++ b/drivers/gpu/drm/panel/panel-focaltech-ota7290b.c\n> @@ -0,0 +1,208 @@\n> +// SPDX-License-Identifier: GPL-2.0\n> +/*\n> + * Copyright (C) 2024 Waveshare International Limited\n> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n> + */\n> +\n> +#include <linux/delay.h>\n> +#include <linux/device.h>\n> +#include <linux/err.h>\n> +#include <linux/errno.h>\n> +#include <linux/kernel.h>\n> +#include <linux/module.h>\n> +#include <linux/of.h>\n> +\n> +#include <linux/gpio/consumer.h>\n> +#include <linux/regulator/consumer.h>\n> +\n> +#include <drm/drm_mipi_dsi.h>\n> +#include <drm/drm_modes.h>\n> +#include <drm/drm_panel.h>\n> +#include <drm/drm_probe_helper.h>\n> +\n> +struct ota7290b {\n> +\tstruct drm_panel panel;\n> +\tstruct mipi_dsi_device *dsi;\n> +\n> +\tstruct regulator *power;\n> +\tstruct gpio_desc *reset;\n> +\tstruct regulator *avdd;\n> +\tstruct regulator *iovcc;\n> +\n> +\tenum drm_panel_orientation orientation;\n> +};\n> +\n> +static inline struct ota7290b *panel_to_ota(struct drm_panel *panel)\n> +{\n> +\treturn container_of(panel, struct ota7290b, panel);\n> +}\n> +\n> +static int ota7290b_prepare(struct drm_panel *panel)\n> +{\n> +\tstruct ota7290b *ctx = panel_to_ota(panel);\n> +\tstruct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi };\n> +\tint ret;\n> +\n> +\tif (ctx->iovcc) {\n> +\t\tret = regulator_enable(ctx->iovcc);\n> +\t\tif (ret)\n> +\t\t\tdev_err(panel->dev, \"failed to enable IO regulator: %d\\n\", ret);\n> +\t}\n> +\n> +\tif (ctx->avdd) {\n> +\t\tret = regulator_enable(ctx->avdd);\n> +\t\tif (ret)\n> +\t\t\tdev_err(panel->dev, \"failed to enable AVDD regulator: %d\\n\", ret);\n> +\t}\n> +\n> +\tif (ctx->reset) {\n> +\t\tgpiod_set_value_cansleep(ctx->reset, 0);\n> +\t\tmsleep(60);\n> +\t\tgpiod_set_value_cansleep(ctx->reset, 1);\n> +\t\tmsleep(60);\n> +\t\tgpiod_set_value_cansleep(ctx->reset, 0);\n> +\t\tmsleep(60);\n> +\t}\n> +\n> +\tmipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);\n> +\tmipi_dsi_msleep(&dsi_ctx, 120);\n> +\tmipi_dsi_dcs_set_display_on_multi(&dsi_ctx);\n> +\tmipi_dsi_msleep(&dsi_ctx, 50);\n> +\n> +\tif (dsi_ctx.accum_err < 0)\n> +\t\tdev_err(panel->dev, \"failed to init panel: %d\\n\", ret);\n\nbetter to check dsi_ctx.accum_err instead ret here?\n\ndev_err(panel->dev, \"failed to init panel: %d\\n\", dsi_ctx.accum_err);\n\nThanks,\nJie\n\n> +\n> +\treturn dsi_ctx.accum_err;\n> +}\n> +\n> +static int ota7290b_unprepare(struct drm_panel *panel)\n> +{\n> +\tstruct ota7290b *ctx = panel_to_ota(panel);\n> +\tstruct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi };\n> +\n> +\tmipi_dsi_dcs_set_display_off_multi(&dsi_ctx);\n> +\tmipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx);\n> +\n> +\tif (ctx->reset) {\n> +\t\tgpiod_set_value_cansleep(ctx->reset, 1);\n> +\t\tmsleep(5);\n> +\t}\n> +\n> +\tif (ctx->avdd)\n> +\t\tregulator_disable(ctx->avdd);\n> +\n> +\tif (ctx->iovcc)\n> +\t\tregulator_disable(ctx->iovcc);\n> +\n> +\treturn 0;\n> +}\n> +\n> +static const struct drm_display_mode waveshare_dsi_touch_8_8_a_mode = {\n> +\t.clock = 75000,\n> +\n> +\t.hdisplay = 480,\n> +\t.hsync_start = 480 + 50,\n> +\t.hsync_end = 480 + 50 + 50,\n> +\t.htotal = 480 + 50 + 50 + 50,\n> +\n> +\t.vdisplay = 1920,\n> +\t.vsync_start = 1920 + 20,\n> +\t.vsync_end = 1920 + 20 + 20,\n> +\t.vtotal = 1920 + 20 + 20 + 20,\n> +\n> +\t.width_mm = 68,\n> +\t.height_mm = 219,\n> +\t.type = DRM_MODE_TYPE_DRIVER,\n> +};\n> +\n> +static int ota7290b_get_modes(struct drm_panel *panel,\n> +\t\t\t      struct drm_connector *connector)\n> +{\n> +\treturn drm_connector_helper_get_modes_fixed(connector, &waveshare_dsi_touch_8_8_a_mode);\n> +}\n> +\n> +static enum drm_panel_orientation ota7290b_get_orientation(struct drm_panel *panel)\n> +{\n> +\tstruct ota7290b *ctx = panel_to_ota(panel);\n> +\n> +\treturn ctx->orientation;\n> +}\n> +\n> +static const struct drm_panel_funcs ota7290b_funcs = {\n> +\t.prepare = ota7290b_prepare,\n> +\t.unprepare = ota7290b_unprepare,\n> +\t.get_modes = ota7290b_get_modes,\n> +\t.get_orientation = ota7290b_get_orientation,\n> +};\n> +\n> +static int ota7290b_probe(struct mipi_dsi_device *dsi)\n> +{\n> +\tstruct ota7290b *ctx;\n> +\tint ret;\n> +\n> +\tctx = devm_drm_panel_alloc(&dsi->dev, struct ota7290b, panel,\n> +\t\t\t\t   &ota7290b_funcs,\n> +\t\t\t\t   DRM_MODE_CONNECTOR_DSI);\n> +\tif (!ctx)\n> +\t\treturn -ENOMEM;\n> +\tmipi_dsi_set_drvdata(dsi, ctx);\n> +\tctx->dsi = dsi;\n> +\n> +\tctx->reset = devm_gpiod_get_optional(&dsi->dev, \"reset\", GPIOD_OUT_HIGH);\n> +\tif (IS_ERR(ctx->reset))\n> +\t\treturn dev_err_probe(&dsi->dev, PTR_ERR(ctx->reset),\n> +\t\t\t\t     \"Couldn't get our reset GPIO\\n\");\n> +\n> +\tctx->iovcc = devm_regulator_get_optional(&dsi->dev, \"iovcc\");\n> +\tif (IS_ERR(ctx->iovcc))\n> +\t\treturn dev_err_probe(&dsi->dev, PTR_ERR(ctx->iovcc),\n> +\t\t\t\t\t\"Couldn't get our iovcc supply\\n\");\n> +\n> +\tctx->avdd = devm_regulator_get_optional(&dsi->dev, \"avdd\");\n> +\tif (IS_ERR(ctx->avdd))\n> +\t\treturn dev_err_probe(&dsi->dev, PTR_ERR(ctx->avdd),\n> +\t\t\t\t\t\"Couldn't get our avdd supply\\n\");\n> +\n> +\tret = of_drm_get_panel_orientation(\n> +\t\t\tdsi->dev.of_node, &ctx->orientation);\n> +\tif (ret) {\n> +\t\tdev_err(&dsi->dev, \"%pOF: failed to get orientation: %d\\n\",\n> +\t\t\tdsi->dev.of_node, ret);\n> +\t\treturn ret;\n> +\t}\n> +\n> +\tret = drm_panel_of_backlight(&ctx->panel);\n> +\tif (ret)\n> +\t\treturn ret;\n> +\n> +\tctx->panel.prepare_prev_first = true;\n> +\n> +\tret = devm_drm_panel_add(&dsi->dev, &ctx->panel);\n> +\tif (ret)\n> +\t\treturn ret;\n> +\n> +\tdsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_HSE |\n> +\t\tMIPI_DSI_MODE_LPM | MIPI_DSI_CLOCK_NON_CONTINUOUS,\n> +\tdsi->format = MIPI_DSI_FMT_RGB888,\n> +\tdsi->lanes = 2;\n> +\n> +\treturn devm_mipi_dsi_attach(&dsi->dev, dsi);\n> +}\n> +\n> +static const struct of_device_id ota7290b_of_match[] = {\n> +\t{ .compatible = \"waveshare,8.8-dsi-touch-a\", },\n> +\t{}\n> +};\n> +MODULE_DEVICE_TABLE(of, ota7290b_of_match);\n> +\n> +static struct mipi_dsi_driver ota7290b_driver = {\n> +\t.probe\t\t= ota7290b_probe,\n> +\t.driver = {\n> +\t\t.name\t\t= \"focaltech-ota7290b\",\n> +\t\t.of_match_table\t= ota7290b_of_match,\n> +\t},\n> +};\n> +module_mipi_dsi_driver(ota7290b_driver);\n> +\n> +MODULE_DESCRIPTION(\"Panel driver for Focaltech OTA7290B panels\");\n> +MODULE_LICENSE(\"GPL\");\n>","headers":{"Return-Path":"\n <linux-gpio+bounces-35060-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-gpio@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=LcCMSJ5X;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=erXtwDJT;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-gpio+bounces-35060-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"LcCMSJ5X\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"erXtwDJT\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.180.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4ftXYm5Dbrz1yGg\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 12 Apr 2026 11:11:40 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id AB22F3030E9C\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 12 Apr 2026 01:10:09 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id DCCCA26A1B9;\n\tSun, 12 Apr 2026 01:10:08 +0000 (UTC)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 3AE4325A2A4\n\tfor <linux-gpio@vger.kernel.org>; Sun, 12 Apr 2026 01:10:07 +0000 (UTC)","from pps.filterd (m0279869.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63B47j1G1200645\n\tfor <linux-gpio@vger.kernel.org>; Sun, 12 Apr 2026 01:10:06 GMT","from mail-pl1-f198.google.com (mail-pl1-f198.google.com\n [209.85.214.198])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dff0jsk95-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-gpio@vger.kernel.org>; Sun, 12 Apr 2026 01:10:06 +0000 (GMT)","by mail-pl1-f198.google.com with SMTP id\n d9443c01a7336-2b2ec17dc21so2294675ad.2\n        for <linux-gpio@vger.kernel.org>;\n Sat, 11 Apr 2026 18:10:05 -0700 (PDT)","from [10.133.33.83] (tpe-colo-wan-fw-bordernet.qualcomm.com.\n [103.229.16.4])\n        by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b2d4f43994sm72371285ad.80.2026.04.11.18.09.57\n        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n        Sat, 11 Apr 2026 18:10:03 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775956208; cv=none;\n b=KX6LDTg9ssz2WsPtNcEk7WCBh80mmK+GgA/wTH0RclKRZ2cNwGBEUz3X59maPc9YWVP5nwVB+uYDOO5Rum3KzWrquSfsxktIUFHc3Ml9tz8rtEF2oap4Avl4l05/F0KqdDwQr+ENxX2f0jVewFAIDUl2RP8VWcut6F4YB+uYhGw=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775956208; c=relaxed/simple;\n\tbh=mMkjI5DP9W+8fFYTiWVkM39irAtOjOYH6m2EcX9fWto=;\n\th=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:\n\t In-Reply-To:Content-Type;\n b=giT45UfnOopcQ7fgQLgCqBIkmHk9sY0p0ujLjR51/SUYq9G0sqLYteWNoAST5TfD7Qiq+8Ky9JccL/qbUVN1wjFSmWCjkNEZCaHbEZQZERGWSXneFcE6UINbE0Ylyxo115CYbBsbU+0RIeaXnoS5tFDwIy5IRL0no6EEKJRzUKI=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=LcCMSJ5X;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=erXtwDJT; arc=none smtp.client-ip=205.220.180.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\tYyw915w7CN2Ucujh2TM/cNADCTu08+fT8ReCAQdEMoY=; b=LcCMSJ5X2Kf8An3D\n\thsp9V6uqb94B70aXCltnlTIXtDWAaGYot8JjtDogmmP0wJvvT7A3Nt1UmdCS3jQV\n\tcn4P1gbx9TWZnE3EmxRodkz/WL0sJVYCJROIxCowjex34V6nwV7DOMbaxHjHACrY\n\tnSSZhyigGzrb1bI1TeFa5B3We1lvxowBxVJjHOq2n+ZpiB/qkgWIjFHUewZ8fI6b\n\tRv8eVApkCt8BzN6u2ioQn8w3X9S16SpqZ0jnq+cHVQmqYxb0TkJ9dAhs3GwBOY8c\n\tFz73EaXfZPzVMWhE6+ySWo0zcaGyFLP8ErS21p07p1Rd830kzXL8O2LYT5EGBzfB\n\tsqqKIg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1775956205; x=1776561005;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:in-reply-to:from:content-language\n         :references:cc:to:subject:user-agent:mime-version:date:message-id\n         :from:to:cc:subject:date:message-id:reply-to;\n        bh=Yyw915w7CN2Ucujh2TM/cNADCTu08+fT8ReCAQdEMoY=;\n        b=erXtwDJT+YyETQq4/MD8IM05RLqcfI/NoCBTUW+2WivdGiENfeeqMJqGqiNA3YoAUj\n         +sYgHoRQjkxggBlIxKIbQFQYS0RLRZ+BPdSJoC/pPbztBv5778AJeOEOv3Os8TP5vhKb\n         r9vrnM4OHaE+x0MwX11jlodLM8XGIlKdDTpLsH06cVRruVbs/NztCkVcAwGpjR9qswPy\n         be5yvGhPwKK9WgnpqpfwrP/1bBe+PqgVEqGMAWDyZWc1knpTxWTLogFmweDji3MXQAtb\n         VX2VYMYaayMUVT8WvR2KWlFxZku5W/FciPuXT9178PE7+XC6EiaZs7gxnai60fwJNilo\n         kIhA=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775956205; x=1776561005;\n        h=content-transfer-encoding:in-reply-to:from:content-language\n         :references:cc:to:subject:user-agent:mime-version:date:message-id\n         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n         :reply-to;\n        bh=Yyw915w7CN2Ucujh2TM/cNADCTu08+fT8ReCAQdEMoY=;\n        b=ptUb3eziCTuC4jfxL5oPY+nabgeUVR5XvmibCyruEiLnAi0JCKO/QgK36L4HkT7o83\n         2FpZPuzHnbN+pGT7Cp/w1/qTPF9a6SJxUkOcBTwhwrw4hE+kZyLaMR37JPSPBtTSVy7b\n         pnazGkV1QyZTdt2jXBQr0hkzLER7eZdPMFQoHmJZjlGUYquKH23yjS3qywWGAOYppdm/\n         /TjKjz03LiWo63+WCtPfdbLdc5LrG1unVliLuYAN2ymZQt2v+ZoaGku0+tu+CXa/GBrG\n         6PsmZJ9/Pasix5Zm83eBN5wSO7U7Ma6mwEnoCsURJQOFS+Wwjw51i5397rzV5m3KqBma\n         UXLw==","X-Forwarded-Encrypted":"i=1;\n AFNElJ/JyD4GE7C0V7X7CV88pMDuYUQjlOYtuosBJPn6bvlbrlvjKtf4Xid8wRhXGwX7m4TG7NhalYMeOrui@vger.kernel.org","X-Gm-Message-State":"AOJu0YzVFuxudO3cYYWXsKirEeb5ZiNDVcY4qvbbTjcrUohrT6bR4HSZ\n\tQnVWeJu4OMsyZWy3w/bU81ds8tcxcxl0PyMuWgUcK8EJCX4zDs2b62noBzdfv0RIKi4KQmTNMm+\n\tk9F+wKl4Hw9rEg7tzEI9DQfdAjy3uuYttVM9bGkF2kupt8+lR86xt4e4LWRwWsxrk","X-Gm-Gg":"AeBDievS6ZaTcTdvRorlzL+yXO8PGu3L6HB62CORggNkvAMAh/1yX5o31/Q4fCHdhUr\n\t/AWRcmwr8xfo9nfOqhx2YDeGF/xbyR6RHivS9YSVkAjVTXH3qwMsQ11GeoiI5uH91wJLoGMQMfw\n\tjw7hE3Xx3TDz7dDSpXc1ZIW3u2qux+SUiqDiQr3E6pcS3n5E6+cab6O+FAlYCP+JkheI5MPyKK3\n\t+xJgjVcTQmuQJrlh8IspUW97auTaGscYMocCHRT4J/oa/DMQvTZexvxozq7Of9ZEUgS9tQvpOe5\n\tDcOi968gTHr26blySRgA2l6HRAwpUKnGNxxHzfxU6T02UxtqIG02fTs8AE2tWLCLdiRwsZ1k695\n\t4ZE1z/V89XzMjwZ/mVfroYu8CaZAsh6a4cDHp54aDpnCaCk75Swo7hhgoDRfgz3B4ZYpC4JO1Sa\n\tx+6xNwjEDDWw==","X-Received":["by 2002:a17:902:be0a:b0:2b0:663f:6b53 with SMTP id\n d9443c01a7336-2b2d599ab4amr62318675ad.13.1775956204838;\n        Sat, 11 Apr 2026 18:10:04 -0700 (PDT)","by 2002:a17:902:be0a:b0:2b0:663f:6b53 with SMTP id\n d9443c01a7336-2b2d599ab4amr62318525ad.13.1775956204259;\n        Sat, 11 Apr 2026 18:10:04 -0700 (PDT)"],"Message-ID":"<b52dc143-5238-408e-9162-632b5a1386fd@oss.qualcomm.com>","Date":"Sun, 12 Apr 2026 09:09:55 +0800","Precedence":"bulk","X-Mailing-List":"linux-gpio@vger.kernel.org","List-Id":"<linux-gpio.vger.kernel.org>","List-Subscribe":"<mailto:linux-gpio+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-gpio+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 19/21] drm/panel: add driver for Waveshare 8.8\" DSI\n TOUCH-A panel","To":"Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,\n        Neil Armstrong <neil.armstrong@linaro.org>,\n        Jessica Zhang <jesszhan0024@gmail.com>,\n        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n        Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,\n        Maxime Ripard <mripard@kernel.org>,\n        Thomas Zimmermann <tzimmermann@suse.de>,\n Rob Herring <robh@kernel.org>,\n        Krzysztof Kozlowski <krzk+dt@kernel.org>,\n        Conor Dooley <conor+dt@kernel.org>,\n        Cong Yang <yangcong5@huaqin.corp-partner.google.com>,\n        Ondrej Jirman <megi@xff.cz>,\n        Javier Martinez Canillas <javierm@redhat.com>,\n        Jagan Teki <jagan@edgeble.ai>, Liam Girdwood <lgirdwood@gmail.com>,\n        Mark Brown <broonie@kernel.org>, Linus Walleij <linusw@kernel.org>,\n        Bartosz Golaszewski <brgl@kernel.org>","Cc":"dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,\n        linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org","References":"<20260411-waveshare-dsi-touch-v2-0-75cdbeac5156@oss.qualcomm.com>\n <20260411-waveshare-dsi-touch-v2-19-75cdbeac5156@oss.qualcomm.com>","Content-Language":"en-US","From":"Jie Gan <jie.gan@oss.qualcomm.com>","In-Reply-To":"\n <20260411-waveshare-dsi-touch-v2-19-75cdbeac5156@oss.qualcomm.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDEyMDAwOCBTYWx0ZWRfX5sPQENTpb6J5\n agvZgzw/ULAT1qGqWSTDJtoXYfa1/WbH9+bAhom59V30ButyGLkl8tMPeRNu8+C2D7mZl9FcCC7\n gtFuV12b4cQ+LPP2ebgQp/hKJls+KG59qOZ856SCPRlYHfk8cBjJevfe8zjmeWGy+yJZf6ZCaXe\n 1qj2Bq0pkbhxkoM+krK7jzT8I5FeKrNzhhR4a+cqe3YxivWsuA9QWmKkv2G4ejzFSouNM8z/1Xk\n wnN9LJ3boWfLjNkvdRALsl0PsVzCMMH4ehMe1gd+e30SmCQ8P36awcjh/JEjbw/ZkLQnsH7t/My\n ezHE8cEXZHGWyYO6u020j85lIc8a/tJHoJ86Dsw54CCevczZAzM/ShvjM/g4FR8UiWdWida38I2\n lg+54vCaExo1v+V1p2AwczXDUmIU3wz+YGzane6OIZFlenSLWwkB7Tcn/Z9OTFfDpPcB+MMmsWF\n pOElSRaqVRMUGblzhWg==","X-Proofpoint-ORIG-GUID":"MWTFsGzeHdbBrOoVvXjRSa_CmQcH2iVa","X-Proofpoint-GUID":"MWTFsGzeHdbBrOoVvXjRSa_CmQcH2iVa","X-Authority-Analysis":"v=2.4 cv=d/LFDxjE c=1 sm=1 tr=0 ts=69daf0ee cx=c_pps\n a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22\n a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=6uJ51tyDExStV_pVDtAA:9 a=QEXdDO2ut3YA:10\n a=GvdueXVYPmCkWapjIL-Q:22","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-11_07,2026-04-09_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n spamscore=0 impostorscore=0 malwarescore=0 phishscore=0 priorityscore=1501\n bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604120008"}}]