From nobody Tue Oct 7 17:48:34 2025 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BD8DA299ABD for ; Tue, 8 Jul 2025 07:39:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751960351; cv=none; b=ZFxj8oqT6qgLvvKtGux/8f0N6aHckbm2esZDKYYUf5WCfyXUGJt1ziFEtRt1o1w7EJOdzuOuG6dVOJPqdNcQdqBDRYmXC1UKybMxtVUAKRUpkWAp5764R4uEy3jCyFJ+o9E5tBCL6B3UrZjyQFWg0ObK4zTjMCpuOpJsshzesPQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751960351; c=relaxed/simple; bh=Ci1N7Dwuf85dZbfJ4gM0FO7/K/9m4JSgEXVJKoKi3Ys=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lTO/B9S7eL7wx1tQNgzDmsKtqOmPeieEJmVepX/ulbiqEMa4UGxSI8MmbvonkF0D04RhFtQM4phNhP7mBQjcEj1yxzrsgjfzTNLrz4dv92VlyWgmcRpMe243/5lI3HDJfh0hONAF0eq62NwYcbEqYVRpJDckj8DoJDatOHaFwuI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=brighamcampbell.com; spf=pass smtp.mailfrom=brighamcampbell.com; dkim=pass (2048-bit key) header.d=brighamcampbell.com header.i=@brighamcampbell.com header.b=QP6XP51I; arc=none smtp.client-ip=209.85.210.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=brighamcampbell.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=brighamcampbell.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=brighamcampbell.com header.i=@brighamcampbell.com header.b="QP6XP51I" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-7481600130eso5457811b3a.3 for ; Tue, 08 Jul 2025 00:39:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brighamcampbell.com; s=google; t=1751960349; x=1752565149; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KJltklMaBQd1uonax5ZyjgM8LqOkZCVtDNyE9v7JUsU=; b=QP6XP51If163mCyvYP+Npx4jvb/75/BSlvq3dShkzNaDPCrGFQp8xWfHSwaM9atPZa iaI0jKL/JeiH7M1OKqOjyLlFwzWEx2uffkAGdz0SPQkDCqpUnlpcBGf8F1OPt/Z2OISY 8N68X3VoZALZXdfJoF98FjoFHnDDjM53PNv5erPzohd3KnfuW878RObh7fjKaziCSwsP WLiBUNf3eXsxaFVEcWwPNVpCvLR+r/wOMywHJYhud30B3/z6rgLCwlg8gbUVfnrmwFQX 9+Z1NiblJjF+gsaMTLoUI7nerzf/yYGi3IWpPgoPJkNT6kRVAL8RGrwQJuJaVsUmR3SY OAYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751960349; x=1752565149; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KJltklMaBQd1uonax5ZyjgM8LqOkZCVtDNyE9v7JUsU=; b=qrNKwimGIV0Dj9KKp2TvX0bp9wEnWGQ6sdi0zR9ZaDXPZUWA6cPfRxkUHx/khhut+I Wa3Bq1sK5AO8MS8/37WK+W48Qm0Ab8qLg64uV8esmme1nUdkRNxvGNrOdgUi+al5/gb8 VCqhEuMuyyjRy9p2RZvAucv/bJz3k2y80fLxgkeK2Cz1rMLWBBAQCvu58jH0c3ykUk19 UDMMUoqPs9vWzljUSl80ThtQNXt/z7P2s0YzNxnbubvtNVtuOPYYsg0TztSLlc/J3f+z IRI8jdljW3Iks5+Dhd4tnHmeyqEjsnwkj5CeaLeqV/DYwZVdViiD8CjDZwl90EljjIu+ kh5Q== X-Forwarded-Encrypted: i=1; AJvYcCUrh91qr4hEGDZrliR9r06uGVrlbTsovZq7DicotJ2Pztil2xkPvr4KNaVh22A5UXypDcgBXuHHMhg9si0=@vger.kernel.org X-Gm-Message-State: AOJu0YywieSA6bhOP78bli468E9vMdgdk5ksYc6ngp0r4Hl5dGWipZIl J0kEQoveIEioLWibu9Dq+tgWxIZKO27on0gKNTuhFfrpvNvvsEF1e+8jP5YcXWYNORo= X-Gm-Gg: ASbGncsH+ButXAUtQ+9s/gFbVWY9Nd993DNV9FZnUun+saVsZ/HHgXbnLrHQkQbt+dz QYd0LNXU8/VsMeumfCWIaGw0Tu9cOEDZTQTvEkZFFdUv0ONJaKjg4y2uhnjgf4sajzLDKztaBDh Mp4tW2DfpF8ew8BBxykk5pPMmmxu/rV/NWROqxG34DtkyLfRqpAVOUR1vaUNYgpNF/ogpC6vWsM 7spRmGVZ2SyIDP+7hsldSbO9oqUfySRWVNJLdVO/Xm8QGtn/aGw4iT7El2hCM2lChGvd0xG2HGM IdyCER0Y6gnwMSMRvxt5vu7ZRQJ/f2oepWFdEeEh9NVt7ylWOH8oAUPW2kqLNYqoXel8LRmx30g auQvd/sbUgx61POR0gw== X-Google-Smtp-Source: AGHT+IHqUANsx8EsCJUxSKG4kP9NMyIVzSoN04mrpiatlzPSJx49O9nENQOctY2sHFDwZ4RpAEfzug== X-Received: by 2002:a05:6a00:14c9:b0:748:eb38:8830 with SMTP id d2e1a72fcca58-74ce6669b0emr19597687b3a.13.1751960349086; Tue, 08 Jul 2025 00:39:09 -0700 (PDT) Received: from mystery-machine.brighamcampbell.com ([64.71.154.6]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74ce42a540bsm11633523b3a.140.2025.07.08.00.39.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 00:39:08 -0700 (PDT) From: Brigham Campbell To: dianders@chromium.org, tejasvipin76@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev, dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong , Jessica Zhang , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Brigham Campbell Subject: [PATCH v2 1/3] drm/panel: jdi-lpm102a188a: Update deprecated MIPI function calls Date: Tue, 8 Jul 2025 01:38:58 -0600 Message-ID: <20250708073901.90027-2-me@brighamcampbell.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250708073901.90027-1-me@brighamcampbell.com> References: <20250708073901.90027-1-me@brighamcampbell.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update jdi-lpm102a188a panel driver to use the "multi" variant of MIPI functions in order to facilitate improved error handling and remove the panel's dependency on deprecated MIPI functions. This patch's usage of the mipi_dsi_multi_context struct is not idiomatic. Rightfully, the struct wasn't designed to cater to the needs of panels with multiple MIPI DSI interfaces. This panel is an oddity which requires swapping the dsi pointer between MIPI function calls in order to preserve the exact behavior implemented using the non-multi variant of the macro. Signed-off-by: Brigham Campbell --- drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c | 160 +++++++----------- 1 file changed, 59 insertions(+), 101 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c b/drivers/gpu/dr= m/panel/panel-jdi-lpm102a188a.c index 5b5082efb282..5001bea1798f 100644 --- a/drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c +++ b/drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c @@ -81,25 +81,20 @@ static int jdi_panel_disable(struct drm_panel *panel) static int jdi_panel_unprepare(struct drm_panel *panel) { struct jdi_panel *jdi =3D to_panel_jdi(panel); - int ret; + struct mipi_dsi_multi_context dsi_ctx; =20 - ret =3D mipi_dsi_dcs_set_display_off(jdi->link1); - if (ret < 0) - dev_err(panel->dev, "failed to set display off: %d\n", ret); - - ret =3D mipi_dsi_dcs_set_display_off(jdi->link2); - if (ret < 0) - dev_err(panel->dev, "failed to set display off: %d\n", ret); + dsi_ctx.dsi =3D jdi->link1; + mipi_dsi_dcs_set_display_off_multi(&dsi_ctx); + dsi_ctx.dsi =3D jdi->link2; + mipi_dsi_dcs_set_display_off_multi(&dsi_ctx); =20 /* Specified by JDI @ 50ms, subject to change */ msleep(50); =20 - ret =3D mipi_dsi_dcs_enter_sleep_mode(jdi->link1); - if (ret < 0) - dev_err(panel->dev, "failed to enter sleep mode: %d\n", ret); - ret =3D mipi_dsi_dcs_enter_sleep_mode(jdi->link2); - if (ret < 0) - dev_err(panel->dev, "failed to enter sleep mode: %d\n", ret); + dsi_ctx.dsi =3D jdi->link1; + mipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx); + dsi_ctx.dsi =3D jdi->link2; + mipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx); =20 /* Specified by JDI @ 150ms, subject to change */ msleep(150); @@ -123,72 +118,64 @@ static int jdi_panel_unprepare(struct drm_panel *pane= l) /* Specified by JDI @ 20ms, subject to change */ msleep(20); =20 - return ret; + return dsi_ctx.accum_err; } =20 static int jdi_setup_symmetrical_split(struct mipi_dsi_device *left, struct mipi_dsi_device *right, const struct drm_display_mode *mode) { - int err; + struct mipi_dsi_multi_context dsi_ctx; =20 - err =3D mipi_dsi_dcs_set_column_address(left, 0, mode->hdisplay / 2 - 1); - if (err < 0) { - dev_err(&left->dev, "failed to set column address: %d\n", err); - return err; - } + dsi_ctx.dsi =3D left; + mipi_dsi_dcs_set_column_address_multi(&dsi_ctx, 0, mode->hdisplay / 2 - 1= ); + dsi_ctx.dsi =3D right; + mipi_dsi_dcs_set_column_address_multi(&dsi_ctx, 0, mode->hdisplay / 2 - 1= ); =20 - err =3D mipi_dsi_dcs_set_column_address(right, 0, mode->hdisplay / 2 - 1); - if (err < 0) { - dev_err(&right->dev, "failed to set column address: %d\n", err); - return err; - } + dsi_ctx.dsi =3D left; + mipi_dsi_dcs_set_page_address_multi(&dsi_ctx, 0, mode->vdisplay - 1); + dsi_ctx.dsi =3D right; + mipi_dsi_dcs_set_page_address_multi(&dsi_ctx, 0, mode->vdisplay - 1); =20 - err =3D mipi_dsi_dcs_set_page_address(left, 0, mode->vdisplay - 1); - if (err < 0) { - dev_err(&left->dev, "failed to set page address: %d\n", err); - return err; - } - - err =3D mipi_dsi_dcs_set_page_address(right, 0, mode->vdisplay - 1); - if (err < 0) { - dev_err(&right->dev, "failed to set page address: %d\n", err); - return err; - } - - return 0; + return dsi_ctx.accum_err; } =20 static int jdi_write_dcdc_registers(struct jdi_panel *jdi) { + struct mipi_dsi_multi_context dsi_ctx; + /* Clear the manufacturer command access protection */ - mipi_dsi_generic_write_seq(jdi->link1, MCS_CMD_ACS_PROT, + dsi_ctx.dsi =3D jdi->link1; + mipi_dsi_generic_write_seq_multi(&dsi_ctx, MCS_CMD_ACS_PROT, MCS_CMD_ACS_PROT_OFF); - mipi_dsi_generic_write_seq(jdi->link2, MCS_CMD_ACS_PROT, + dsi_ctx.dsi =3D jdi->link2; + mipi_dsi_generic_write_seq_multi(&dsi_ctx, MCS_CMD_ACS_PROT, MCS_CMD_ACS_PROT_OFF); /* - * Change the VGH/VGL divide rations to move the noise generated by the + * Change the VGH/VGL divide ratios to move the noise generated by the * TCONN. This should hopefully avoid interaction with the backlight * controller. */ - mipi_dsi_generic_write_seq(jdi->link1, MCS_PWR_CTRL_FUNC, + dsi_ctx.dsi =3D jdi->link1; + mipi_dsi_generic_write_seq_multi(&dsi_ctx, MCS_PWR_CTRL_FUNC, + MCS_PWR_CTRL_PARAM1_VGH_330_DIV | + MCS_PWR_CTRL_PARAM1_DEFAULT, + MCS_PWR_CTRL_PARAM2_VGL_410_DIV | + MCS_PWR_CTRL_PARAM2_DEFAULT); + dsi_ctx.dsi =3D jdi->link2; + mipi_dsi_generic_write_seq_multi(&dsi_ctx, MCS_PWR_CTRL_FUNC, MCS_PWR_CTRL_PARAM1_VGH_330_DIV | MCS_PWR_CTRL_PARAM1_DEFAULT, MCS_PWR_CTRL_PARAM2_VGL_410_DIV | MCS_PWR_CTRL_PARAM2_DEFAULT); =20 - mipi_dsi_generic_write_seq(jdi->link2, MCS_PWR_CTRL_FUNC, - MCS_PWR_CTRL_PARAM1_VGH_330_DIV | - MCS_PWR_CTRL_PARAM1_DEFAULT, - MCS_PWR_CTRL_PARAM2_VGL_410_DIV | - MCS_PWR_CTRL_PARAM2_DEFAULT); - - return 0; + return dsi_ctx.accum_err; } =20 static int jdi_panel_prepare(struct drm_panel *panel) { struct jdi_panel *jdi =3D to_panel_jdi(panel); + struct mipi_dsi_multi_context dsi_ctx; int err; =20 /* Disable backlight to avoid showing random pixels @@ -239,57 +226,32 @@ static int jdi_panel_prepare(struct drm_panel *panel) goto poweroff; } =20 - err =3D mipi_dsi_dcs_set_tear_scanline(jdi->link1, + dsi_ctx.dsi =3D jdi->link1; + mipi_dsi_dcs_set_tear_scanline_multi(&dsi_ctx, jdi->mode->vdisplay - 16); - if (err < 0) { - dev_err(panel->dev, "failed to set tear scanline: %d\n", err); - goto poweroff; - } - - err =3D mipi_dsi_dcs_set_tear_scanline(jdi->link2, + dsi_ctx.dsi =3D jdi->link2; + mipi_dsi_dcs_set_tear_scanline_multi(&dsi_ctx, jdi->mode->vdisplay - 16); - if (err < 0) { - dev_err(panel->dev, "failed to set tear scanline: %d\n", err); - goto poweroff; - } =20 - err =3D mipi_dsi_dcs_set_tear_on(jdi->link1, + dsi_ctx.dsi =3D jdi->link1; + mipi_dsi_dcs_set_tear_on_multi(&dsi_ctx, MIPI_DSI_DCS_TEAR_MODE_VBLANK); - if (err < 0) { - dev_err(panel->dev, "failed to set tear on: %d\n", err); - goto poweroff; - } - - err =3D mipi_dsi_dcs_set_tear_on(jdi->link2, + dsi_ctx.dsi =3D jdi->link2; + mipi_dsi_dcs_set_tear_on_multi(&dsi_ctx, MIPI_DSI_DCS_TEAR_MODE_VBLANK); - if (err < 0) { - dev_err(panel->dev, "failed to set tear on: %d\n", err); - goto poweroff; - } =20 - err =3D mipi_dsi_dcs_set_pixel_format(jdi->link1, MIPI_DCS_PIXEL_FMT_24BI= T); - if (err < 0) { - dev_err(panel->dev, "failed to set pixel format: %d\n", err); - goto poweroff; - } + dsi_ctx.dsi =3D jdi->link1; + mipi_dsi_dcs_set_pixel_format_multi(&dsi_ctx, MIPI_DCS_PIXEL_FMT_24BIT); + dsi_ctx.dsi =3D jdi->link2; + mipi_dsi_dcs_set_pixel_format_multi(&dsi_ctx, MIPI_DCS_PIXEL_FMT_24BIT); =20 - err =3D mipi_dsi_dcs_set_pixel_format(jdi->link2, MIPI_DCS_PIXEL_FMT_24BI= T); - if (err < 0) { - dev_err(panel->dev, "failed to set pixel format: %d\n", err); - goto poweroff; - } + dsi_ctx.dsi =3D jdi->link1; + mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx); + dsi_ctx.dsi =3D jdi->link2; + mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx); =20 - err =3D mipi_dsi_dcs_exit_sleep_mode(jdi->link1); - if (err < 0) { - dev_err(panel->dev, "failed to exit sleep mode: %d\n", err); + if (dsi_ctx.accum_err < 0) goto poweroff; - } - - err =3D mipi_dsi_dcs_exit_sleep_mode(jdi->link2); - if (err < 0) { - dev_err(panel->dev, "failed to exit sleep mode: %d\n", err); - goto poweroff; - } =20 err =3D jdi_write_dcdc_registers(jdi); if (err < 0) { @@ -302,17 +264,13 @@ static int jdi_panel_prepare(struct drm_panel *panel) */ msleep(150); =20 - err =3D mipi_dsi_dcs_set_display_on(jdi->link1); - if (err < 0) { - dev_err(panel->dev, "failed to set display on: %d\n", err); - goto poweroff; - } + dsi_ctx.dsi =3D jdi->link1; + mipi_dsi_dcs_set_display_on_multi(&dsi_ctx); + dsi_ctx.dsi =3D jdi->link2; + mipi_dsi_dcs_set_display_on_multi(&dsi_ctx); =20 - err =3D mipi_dsi_dcs_set_display_on(jdi->link2); - if (err < 0) { - dev_err(panel->dev, "failed to set display on: %d\n", err); + if (dsi_ctx.accum_err < 0) goto poweroff; - } =20 jdi->link1->mode_flags &=3D ~MIPI_DSI_MODE_LPM; jdi->link2->mode_flags &=3D ~MIPI_DSI_MODE_LPM; --=20 2.49.0 From nobody Tue Oct 7 17:48:34 2025 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CD7FB29ACE0 for ; Tue, 8 Jul 2025 07:39:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751960353; cv=none; b=IRMaQVpjqJ0bd6Pi/cJ4wb3anjicCj4HQL9FUgCSMw/0nwRy43E/EyEVl3xyAuTFw1HJ7EAUunF5+G1YvyHLMAauacMj9BBf/hoQpwlOz+oM8t0lW7hEdR0SV/fQ+n2HC9Uc+KNndN6kApmSctHcPmUoQUklayWy//ST7YbFPos= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751960353; c=relaxed/simple; bh=K49WJ9x7l3EnNvQfnQzsEUFr9wWh/GX1Tv+cJukjR4A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xsc9xwITDlu5uab/DGb0QuFuvuiDrqM3udbnNzLdndYuT0B0ildufZf7dcRADo/eqLVncM7U/1ltzOSGxZ1qQSSa8hv39GNbx5P7CaeRvJSSgWwpVLOEdgZWia6ywEP43+Ss25CMlrv4NiZ/V0tZI4RI76cAkaa74oXowMPi6Q0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=brighamcampbell.com; spf=pass smtp.mailfrom=brighamcampbell.com; dkim=pass (2048-bit key) header.d=brighamcampbell.com header.i=@brighamcampbell.com header.b=lL5qgyb5; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=brighamcampbell.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=brighamcampbell.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=brighamcampbell.com header.i=@brighamcampbell.com header.b="lL5qgyb5" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-7481600130eso5457842b3a.3 for ; Tue, 08 Jul 2025 00:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brighamcampbell.com; s=google; t=1751960351; x=1752565151; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SFUiRqJ8ldtxTynjrbllEzn54iuQyuslXMfdn6+3Zb8=; b=lL5qgyb5Svp9+A6ZOP+2UyOJ268fyxPTvo3AdJ8zjfPh3/2maUIXL05PC1PDTtV5Vn P3Az3UA7HGkTJX0xJl09Mt2jf5cw4b/saE9rSQssmJz26BIB5VMLZeoGtvYVzvFFmIre WpH7LVCCvuhgRu5NTGc86KRfQzuc4+MyUy/jmtx8TKxYOCvRV3ZHvduUjlSazBQs1xId d8LVMZx2ULf5Pcs9lxJ3HAF/cEgkkEbdvT7YGxdb1geEPPMChgI56wjiS7qXu1STS85n alSqaaxn1nUAPelcLwHA2ghu0VirGV3NAx2gvVYkeCLNbP/rNTJ7/6OLAe1tfM4a/uTW ezwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751960351; x=1752565151; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SFUiRqJ8ldtxTynjrbllEzn54iuQyuslXMfdn6+3Zb8=; b=KzQnYkTBXlz60D2Jy8xYgcF6jRtkDBVMDVrgv6g51auhXnuP42jFREm5GPPuw2vmcs TaGBsgzAUwx33K23p0oG7iZObmGuLmEFRg8eUubZZs9wbt1LwFCiesCOhSAJHDVfmCVG 5Iq42pbMV1Ra0zgtTQ0AuiUbPuS9wWvTVK0MHXxzZYu4HIg+7/96ZJ8B6fPgvkobeiz7 4qEVypaUs6xcuQHEdsPV0UYnH6SQTu+yICWcvczUgKRmSrziJOdcpgQNUSVHfkJ5JRlB V4xQLyotEWH/XYUDxuhwWp264J/tYZRrFwTPOM3a0WHbaflNcad5xJ4+wtpyICSG5eC9 bvQQ== X-Forwarded-Encrypted: i=1; AJvYcCUKKBbeZYUVuqQwAERDLiyjifjbPdWSvP0R1JGKa1vsESOK36PEebQdK4wDAy6MusDQTaKHy/L36DH2C8Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yw9zcyVBp63wVFux8iqsLLZUW8ewXSSSowRajUz3zP9ZKlsMQNp HlOTzzLtifTCjN/WCbMtu5y27ZJ7cI3YpO05xoZsvXMnIH+1BUA3SGo7Pmo9ptfaQKa2eCQrRTb +SO3Q+uRZBQ== X-Gm-Gg: ASbGncsx2ZPSbHioZuqJ1qiTp/nRAL4np524LPzFAMVlVYSeFWgvcU4bZR9V8J4TonT Vb9pEXyTTjcVX1AVzIz6g1EbQv/IdQBMpEZu9LNV2Kl4BwMCtJpjMN3LcEbPcZ4ewsHwgstrh6U WSeP2FDq43ClZZfVeDF7RWPlsmgSfVpy1vrxvw9ccvgFbgzmkfpaINH1qeKTQt8HIEEDyTkfDca Awz4kk4SkgGjpdZREfWm1IxT0MsFmTjqS+pIvAu6GWx8IrgbVdZGRw8Cb+Zi/rEwQdyAiMsB5zK eYdCd/4Dpy/LnbbsC5pZY/nchECjN1g513S8yh0Qhqcx/B5YiGKBtvN44qlvlwyAi1b8g8h1wbn NxyRgBq76bX4jIGcJjsRzlmXUlFHD X-Google-Smtp-Source: AGHT+IEjjvMwCxlNvfS65ducwO3zjwiKKWiiOevnyebt6KaT7pnYdCus6N5MscGP8SruBVriyB/gpg== X-Received: by 2002:a05:6a00:2e17:b0:749:472:d3a7 with SMTP id d2e1a72fcca58-74ce6689123mr24357739b3a.18.1751960351056; Tue, 08 Jul 2025 00:39:11 -0700 (PDT) Received: from mystery-machine.brighamcampbell.com ([64.71.154.6]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74ce42a540bsm11633523b3a.140.2025.07.08.00.39.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 00:39:10 -0700 (PDT) From: Brigham Campbell To: dianders@chromium.org, tejasvipin76@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev, dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Brigham Campbell Subject: [PATCH v2 2/3] drm: Remove unused MIPI write seq and chatty functions Date: Tue, 8 Jul 2025 01:38:59 -0600 Message-ID: <20250708073901.90027-3-me@brighamcampbell.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250708073901.90027-1-me@brighamcampbell.com> References: <20250708073901.90027-1-me@brighamcampbell.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Remove the deprecated mipi_dsi_generic_write_seq() and mipi_dsi_generic_write_chatty() functions now that they are no longer used. Signed-off-by: Brigham Campbell Reviewed-by: Douglas Anderson --- drivers/gpu/drm/drm_mipi_dsi.c | 34 +++------------------------------- include/drm/drm_mipi_dsi.h | 23 ----------------------- 2 files changed, 3 insertions(+), 54 deletions(-) diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c index a00d76443128..3b8ff24980b4 100644 --- a/drivers/gpu/drm/drm_mipi_dsi.c +++ b/drivers/gpu/drm/drm_mipi_dsi.c @@ -772,41 +772,13 @@ ssize_t mipi_dsi_generic_write(struct mipi_dsi_device= *dsi, const void *payload, EXPORT_SYMBOL(mipi_dsi_generic_write); =20 /** - * mipi_dsi_generic_write_chatty() - mipi_dsi_generic_write() w/ an error = log - * @dsi: DSI peripheral device - * @payload: buffer containing the payload - * @size: size of payload buffer - * - * Like mipi_dsi_generic_write() but includes a dev_err() - * call for you and returns 0 upon success, not the number of bytes sent. - * - * Return: 0 on success or a negative error code on failure. - */ -int mipi_dsi_generic_write_chatty(struct mipi_dsi_device *dsi, - const void *payload, size_t size) -{ - struct device *dev =3D &dsi->dev; - ssize_t ret; - - ret =3D mipi_dsi_generic_write(dsi, payload, size); - if (ret < 0) { - dev_err(dev, "sending generic data %*ph failed: %zd\n", - (int)size, payload, ret); - return ret; - } - - return 0; -} -EXPORT_SYMBOL(mipi_dsi_generic_write_chatty); - -/** - * mipi_dsi_generic_write_multi() - mipi_dsi_generic_write_chatty() w/ acc= um_err + * mipi_dsi_generic_write_multi() - mipi_dsi_generic_write() w/ accum_err * @ctx: Context for multiple DSI transactions * @payload: buffer containing the payload * @size: size of payload buffer * - * Like mipi_dsi_generic_write_chatty() but deals with errors in a way that - * makes it convenient to make several calls in a row. + * A wrapper around mipi_dsi_generic_write() that deals with errors in a w= ay + * that makes it convenient to make several calls in a row. */ void mipi_dsi_generic_write_multi(struct mipi_dsi_multi_context *ctx, const void *payload, size_t size) diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h index 369b0d8830c3..f9cc106c8eb6 100644 --- a/include/drm/drm_mipi_dsi.h +++ b/include/drm/drm_mipi_dsi.h @@ -285,8 +285,6 @@ void mipi_dsi_picture_parameter_set_multi(struct mipi_d= si_multi_context *ctx, =20 ssize_t mipi_dsi_generic_write(struct mipi_dsi_device *dsi, const void *pa= yload, size_t size); -int mipi_dsi_generic_write_chatty(struct mipi_dsi_device *dsi, - const void *payload, size_t size); void mipi_dsi_generic_write_multi(struct mipi_dsi_multi_context *ctx, const void *payload, size_t size); ssize_t mipi_dsi_generic_read(struct mipi_dsi_device *dsi, const void *par= ams, @@ -379,27 +377,6 @@ void mipi_dsi_dcs_set_tear_scanline_multi(struct mipi_= dsi_multi_context *ctx, u16 scanline); void mipi_dsi_dcs_set_tear_off_multi(struct mipi_dsi_multi_context *ctx); =20 -/** - * mipi_dsi_generic_write_seq - transmit data using a generic write packet - * - * This macro will print errors for you and will RETURN FROM THE CALLING - * FUNCTION (yes this is non-intuitive) upon error. - * - * Because of the non-intuitive return behavior, THIS MACRO IS DEPRECATED. - * Please replace calls of it with mipi_dsi_generic_write_seq_multi(). - * - * @dsi: DSI peripheral device - * @seq: buffer containing the payload - */ -#define mipi_dsi_generic_write_seq(dsi, seq...) = \ - do { \ - static const u8 d[] =3D { seq }; \ - int ret; \ - ret =3D mipi_dsi_generic_write_chatty(dsi, d, ARRAY_SIZE(d)); \ - if (ret < 0) \ - return ret; \ - } while (0) - /** * mipi_dsi_generic_write_seq_multi - transmit data using a generic write = packet * --=20 2.49.0 From nobody Tue Oct 7 17:48:34 2025 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B3C8929B233 for ; Tue, 8 Jul 2025 07:39:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751960355; cv=none; b=k3sy+XmJ6ctAxaDSQud4ZDKIYRU9MpM79OwomsAW3ckq6u+M5vASxmInUrwLbQpzSMNBshbFVhHNJPwoSdjPtYg0j1ngraQIeNRf9ZbigBAQBYmRAL77dDWZ8JjpR4NdIGDPtqDsvI/W4cH8GNP/RABHU+Pvd3z2jbckdcZo+RQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751960355; c=relaxed/simple; bh=NXVzBmkzjs0qIwDBa1nvJlJYPXA8UdnEYWrKccWXZxY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dWE8Yf6uDBH9QlK2xz+Yin72pWrZgRYouoOC+ySa8IXM3xx5LGlDpHywmIobwjHtndaNrSE3YaWuXCGX5/fFrqRU5uoKmFqDhDKMRC3E8XHDgcuMj/sPT1zjmWJFiQIIKKwCrnlD72IkzyhNO+7LASU8vZ+ZjvgQZoxYniGz2rc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=brighamcampbell.com; spf=pass smtp.mailfrom=brighamcampbell.com; dkim=pass (2048-bit key) header.d=brighamcampbell.com header.i=@brighamcampbell.com header.b=afr9Ntr4; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=brighamcampbell.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=brighamcampbell.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=brighamcampbell.com header.i=@brighamcampbell.com header.b="afr9Ntr4" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-73972a54919so3537471b3a.3 for ; Tue, 08 Jul 2025 00:39:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brighamcampbell.com; s=google; t=1751960353; x=1752565153; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oRg4Q6pPPZIs4EHGk7HynlZtava7RS7MLv1CsBp8mUo=; b=afr9Ntr4TK7U2N1oafv7kWoRViw1SfgGaa+3z0FpQJ1JukdwTKbtb+u3S/w918LhcK VanL/Y2R5Zgopd6fybcSOwPV3x4hq0fjX81gAwqmA+aYXU7v2fVa79BSdn1XZQK/KqRc 2DHHad4HSvqer7FQeKFZPErH7RKs+1UcGklRcaDr4xp6XWSy/tmPA89m93J5L1ExmYPZ p41G85aidGT/dr2I24ya/Trl1a9tO/OE9oe8KCfbaRYS32zOGzDW/36IuAvvs3RKg5sS 8+jgZSuCDy1ZSsgRWFtC1kdp4kZZZaQWPrbRFTbAXK/WVgoYjOlGdS0XhCjKN6p9+1qn AMdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751960353; x=1752565153; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oRg4Q6pPPZIs4EHGk7HynlZtava7RS7MLv1CsBp8mUo=; b=WIH4W/zWDQmivV9hrQflAINIrPnk5Qf2jLT2VjzuG9GgacC7SfNpftto7iPIgC5N/c exxwoov7wlpnjkiCMsnGldG4kIA7yfN2Bo3bXoUvN+oE55Lf4GLSRnKfnLdqRR4soLxA BqlIWwBbv3pOgjUSuSl0vtW4IigVRLQtZrn1KHr1Tg90hEqvMYkTP6beZQNV/hHrssSP /yJm3UuzUARxZvD+7JkvoLGNkb6BGOQHnGatrTD38xetASBOxE4xr3H75zOTN5A1EeB9 HvH0bg9Zr4fs7c3HUp1NJXfGRlrbIBdUJGn03z1OPNgm8Yr4iTYbCjWSZyJyx/+TeEKo 8jLw== X-Forwarded-Encrypted: i=1; AJvYcCXzEDODUgWWLqWXgr+gdjyQDGqpjkhyYyhRWSQpe4ZKuRtD96R/rjzH+usMTbecnA1y9bMKnXZBbeUugzM=@vger.kernel.org X-Gm-Message-State: AOJu0Yzxg2nslG2rJlbhbOfy18pswDJNd0nOS0tzpQYuo2GH2lwvikWq zcP8mlE3GlSaftgK/bLolTm4eJG7zkRy1WjJsLb18/0zDqWjFI4/vqwu6qqBa3L9rWs= X-Gm-Gg: ASbGncuU08gsLx8aBoAMIigkJ+prfwBjm4bKBrYLVMcdQyubSFjpr/JyNVeGwEYbq3W PX0opISTn2GkvX5lAoNeZfQ8ij5YESI2RZkIFL/aVN0jQvUsUOkLaiKPkAF00IVRW5ars6gwV72 ccJmgzslrPUId2YtlRyYlAzXbBnUj9Xi78MSy8jtcRHihwklZ6sqrX+8r1OR58S2zUZaaUUADw0 ou2Us9eb6uzbBGhsXmNt4yRZyKBs8tUoUPrWfCHhNhmVtj/WHetFXS7R3770srHdeNvb3efmkPo gjKv64wYKKlaFFDvc7tgDCXBzKcLIhL2E4kNFTDRmrhOnhbSApIPJYGWPcqgVC3Kl5MNZSRVWOP zDFEOjmutRu7WnOfNu971xoAX1tOG X-Google-Smtp-Source: AGHT+IEnB2D8Zt2lhCwV3+7VTxWI7MKuZHKxw4k42U2GFJK7fV9zJULR3jSg0DBPKK8gXEtouNDbPQ== X-Received: by 2002:a05:6a21:204:b0:226:d189:bbd9 with SMTP id adf61e73a8af0-226d189bc3amr13874192637.18.1751960352969; Tue, 08 Jul 2025 00:39:12 -0700 (PDT) Received: from mystery-machine.brighamcampbell.com ([64.71.154.6]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74ce42a540bsm11633523b3a.140.2025.07.08.00.39.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 00:39:12 -0700 (PDT) From: Brigham Campbell To: dianders@chromium.org, tejasvipin76@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev, dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jonathan Corbet Cc: Brigham Campbell Subject: [PATCH v2 3/3] drm: docs: Update task from drm TODO list Date: Tue, 8 Jul 2025 01:39:00 -0600 Message-ID: <20250708073901.90027-4-me@brighamcampbell.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250708073901.90027-1-me@brighamcampbell.com> References: <20250708073901.90027-1-me@brighamcampbell.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update TODO item from drm documentation to contain more applicable information regarding the removal of deprecated MIPI DSI functions and no longer reference functions which have already been removed from the kernel. Signed-off-by: Brigham Campbell Reviewed-by: Douglas Anderson --- Documentation/gpu/todo.rst | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst index be8637da3fe9..92db80793bba 100644 --- a/Documentation/gpu/todo.rst +++ b/Documentation/gpu/todo.rst @@ -497,19 +497,19 @@ Contact: Douglas Anderson =20 Level: Intermediate =20 -Transition away from using mipi_dsi_*_write_seq() -------------------------------------------------- +Transition away from using deprecated MIPI DSI functions +-------------------------------------------------------- =20 -The macros mipi_dsi_generic_write_seq() and mipi_dsi_dcs_write_seq() are -non-intuitive because, if there are errors, they return out of the *caller= 's* -function. We should move all callers to use mipi_dsi_generic_write_seq_mul= ti() -and mipi_dsi_dcs_write_seq_multi() macros instead. +There are many functions defined in ``drm_mipi_dsi.c`` which have been +deprecated. Each deprecated function was deprecated in favor of its `multi` +variant (e.g. `mipi_dsi_generic_write()` and `mipi_dsi_generic_write_multi= ()`). +The `multi` variant of a function includes improved error handling and log= ic +which makes it more convenient to make several calls in a row, as most MIPI +drivers do. =20 -Once all callers are transitioned, the macros and the functions that they = call, -mipi_dsi_generic_write_chatty() and mipi_dsi_dcs_write_buffer_chatty(), can -probably be removed. Alternatively, if people feel like the _multi() varia= nts -are overkill for some use cases, we could keep the mipi_dsi_*_write_seq() -variants but change them not to return out of the caller. +Drivers should be updated to use undeprecated functions. Once all usages o= f the +deprecated MIPI DSI functions have been removed, their definitions may be +removed from ``drm_mipi_dsi.c``. =20 Contact: Douglas Anderson =20 --=20 2.49.0