Received: by 2002:a05:6358:7058:b0:131:369:b2a3 with SMTP id 24csp427817rwp; Wed, 12 Jul 2023 16:03:12 -0700 (PDT) X-Google-Smtp-Source: APBJJlHnPl8BI2wK3Ups41GjJmRLEhrQdbEVrbOaGUonCAj4HBCbIoHopNawxL3foELSTJysVjEB X-Received: by 2002:aa7:df82:0:b0:51d:a488:3b3d with SMTP id b2-20020aa7df82000000b0051da4883b3dmr100200edy.35.1689202992181; Wed, 12 Jul 2023 16:03:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689202992; cv=none; d=google.com; s=arc-20160816; b=uD8XkPv57tEc5QhQzPUr8n/iHxhhSDtc8tnyoACdQzadjvND8SFhwrkrKzXxAfhYhO xg4qcQBDjlZRVA6E0XGyPPH/49xV5MVSUH+koM4zkrnCjpXlB1IVjUE/MKS3P4BJGzeW N/1v1n73aXiRlD4Me/03Jwx7yjN3bSFRgzUvDg7jCPK2fOwmRvKfJAxC+6obNerlgCfW e8htfzVUXxYcdnom2MZ6pmQrsCk66EKUESlvBzucwyNT+rHQnpFzIY1kTVsnL4ylw+cf xbg0MpCMx0yteixq65FB7tQo6X0RByqSn7TrGAow0oAdk6abcYIQZTFYLgqYZGYE6ZeH qi8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=Xo+AuBazBBma5lhXFCuSEUC/eob8+XeqoZeTuSTYYhw=; fh=5IsDGmyWDPMrC9NDx/XNQd392rqveye0cSF+3HbQq44=; b=RPpLLt/L72rA+m0NU/Rl2M5zgvqMoxTeq3KiyP7xoMDT2/Kk2TcZ0g4kG+a68OEAq3 QK/U9mqwLlNFxCYLfD/Tk5606PG7MfqOWQHSprCQKC1+CKFi9lvpM9HCeRrbr+LiDoYh d7T0DdZ4s0/IgL4ttgFbwW63OPIqUNVeHbfavue4j1kD5WEX+VYE0mtRxsMXd14+EcLY CexGxNZ3jUAUb2mqdyG94/g75KRQsoiO3hiM02DT43tOpp4TP43GvnadQKL2C8ln0pHi +zhRxA696SvqpQvFNlO7F4wC7q4o7eX/zVb6wenmny5aC5GLadCvltiM6MO8CnSEHKOE ZNJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gateworks-com.20221208.gappssmtp.com header.s=20221208 header.b=v4hi5KRh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q16-20020a056402033000b0051daea25ff3si6251933edw.484.2023.07.12.16.02.47; Wed, 12 Jul 2023 16:03:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gateworks-com.20221208.gappssmtp.com header.s=20221208 header.b=v4hi5KRh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232334AbjGLWfM (ORCPT + 99 others); Wed, 12 Jul 2023 18:35:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40086 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229506AbjGLWfL (ORCPT ); Wed, 12 Jul 2023 18:35:11 -0400 Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com [IPv6:2a00:1450:4864:20::233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BCAB91BC6 for ; Wed, 12 Jul 2023 15:35:00 -0700 (PDT) Received: by mail-lj1-x233.google.com with SMTP id 38308e7fff4ca-2b74310566cso4932601fa.2 for ; Wed, 12 Jul 2023 15:35:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gateworks-com.20221208.gappssmtp.com; s=20221208; t=1689201299; x=1691793299; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Xo+AuBazBBma5lhXFCuSEUC/eob8+XeqoZeTuSTYYhw=; b=v4hi5KRh5A5ELc8TWdKAsqzZDa9Yx8vwW3UODKmy5Gq8WYBBDQh16vMooOERuLMJrc 5s8rk2gy/R63ujY6vhSQuZHuf9IztmP+LyiQLoPwsOesXYDIqXUvVh1YbpFKLXvpn1aU DkB7hwAs1TuZ7BoJ4+UYyKOPuOMc/FKVRxDxJRqhsuWT8D04n+luB7VrozzQ574GFvR0 Lg08GWpkGz7uK522/sJmkCNpOdZjU4iojq2zBtylmQxVpqvyvWjfHwbLB2uOhlQVSdeb NKUuR46DimA82AjlEqO+BV7sOngIRbsQKcLLeAxMM7hlv9sVcKsDw5236F9UixaVx4nP p19w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689201299; x=1691793299; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Xo+AuBazBBma5lhXFCuSEUC/eob8+XeqoZeTuSTYYhw=; b=SXvr4fVRdfigsLRxz+O2Cs8TfjrmQDMjzGKpbjALQD7ZSoLVMevzguCz7yWNJFRvaN nRWS+KyEVXsb9FGrmnoL3y+V0yfU29hw6vWvjg+feNrjKlMhcsWGXyFuHSfaHWNXbVrS r2tJjUKhGYL3ouannqZLcALJdXbKGCKsqs/Pbh772tfECGywviiSLzR482Zue257IS5G SqFXoJQ7FRiP/WTwRIJVvGjMgiPHesv/DTRNuGO5x3iOMkWj7pbZy0lrVaQgjVJ+M4qz awyv9RkNt0gWXrIMsusGp+Ll0A7suD43Wxr/scas3qBGMzojw16FNLDGmSGjFpqIG3gE 3HTw== X-Gm-Message-State: ABy/qLapXouQrLn51+bH87LMqrbOwgYvN4PDGMHYoAu7UNYfXGXDcZcM CuhwSTuNapwiFcg9Pa6+KDbMWGNR+C4f8a2kuaZ3sA== X-Received: by 2002:a2e:9f42:0:b0:2b6:d63d:cc22 with SMTP id v2-20020a2e9f42000000b002b6d63dcc22mr18295756ljk.29.1689201298793; Wed, 12 Jul 2023 15:34:58 -0700 (PDT) MIME-Version: 1.0 References: <20230503163313.2640898-1-frieder@fris.de> <20230503163313.2640898-2-frieder@fris.de> In-Reply-To: <20230503163313.2640898-2-frieder@fris.de> From: Tim Harvey Date: Wed, 12 Jul 2023 15:34:47 -0700 Message-ID: Subject: Re: [PATCH v2 1/2] drm: bridge: samsung-dsim: Fix i.MX8M enable flow to meet spec To: Frieder Schrempf , Alexander Stein , Jagan Teki , Adam Ford Cc: Andrzej Hajda , Daniel Vetter , David Airlie , dri-devel@lists.freedesktop.org, Inki Dae , linux-kernel@vger.kernel.org, Marek Szyprowski , Neil Armstrong , Robert Foss , Marek Vasut , Laurent Pinchart , Jernej Skrabec , Frieder Schrempf , Jonas Karlman Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 3, 2023 at 9:33=E2=80=AFAM Frieder Schrempf w= rote: > > From: Frieder Schrempf > > According to the documentation [1] the proper enable flow is: > > 1. Enable DSI link and keep data lanes in LP-11 (stop state) > 2. Disable stop state to bring data lanes into HS mode > > Currently we do this all at once within enable(), which doesn't > allow to meet the requirements of some downstream bridges. > > To fix this we now enable the DSI in pre_enable() and force it > into stop state using the FORCE_STOP_STATE bit in the ESCMODE > register until enable() is called where we reset the bit. > > We currently do this only for i.MX8M as Exynos uses a different > init flow where samsung_dsim_init() is called from > samsung_dsim_host_transfer(). > > [1] https://docs.kernel.org/gpu/drm-kms-helpers.html#mipi-dsi-bridge-oper= ation > > Signed-off-by: Frieder Schrempf > --- > Changes for v2: > * Drop RFC > --- > drivers/gpu/drm/bridge/samsung-dsim.c | 25 +++++++++++++++++++++++-- > 1 file changed, 23 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/brid= ge/samsung-dsim.c > index e0a402a85787..9775779721d9 100644 > --- a/drivers/gpu/drm/bridge/samsung-dsim.c > +++ b/drivers/gpu/drm/bridge/samsung-dsim.c > @@ -859,6 +859,10 @@ static int samsung_dsim_init_link(struct samsung_dsi= m *dsi) > reg =3D samsung_dsim_read(dsi, DSIM_ESCMODE_REG); > reg &=3D ~DSIM_STOP_STATE_CNT_MASK; > reg |=3D DSIM_STOP_STATE_CNT(driver_data->reg_values[STOP_STATE_C= NT]); > + > + if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type)) > + reg |=3D DSIM_FORCE_STOP_STATE; > + > samsung_dsim_write(dsi, DSIM_ESCMODE_REG, reg); > > reg =3D DSIM_BTA_TIMEOUT(0xff) | DSIM_LPDR_TIMEOUT(0xffff); > @@ -1340,6 +1344,9 @@ static void samsung_dsim_atomic_pre_enable(struct d= rm_bridge *bridge, > ret =3D samsung_dsim_init(dsi); > if (ret) > return; > + > + samsung_dsim_set_display_mode(dsi); > + samsung_dsim_set_display_enable(dsi, true); > } > } > > @@ -1347,9 +1354,16 @@ static void samsung_dsim_atomic_enable(struct drm_= bridge *bridge, > struct drm_bridge_state *old_bridg= e_state) > { > struct samsung_dsim *dsi =3D bridge_to_dsi(bridge); > + u32 reg; > > - samsung_dsim_set_display_mode(dsi); > - samsung_dsim_set_display_enable(dsi, true); > + if (samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type)) { > + samsung_dsim_set_display_mode(dsi); > + samsung_dsim_set_display_enable(dsi, true); > + } else { > + reg =3D samsung_dsim_read(dsi, DSIM_ESCMODE_REG); > + reg &=3D ~DSIM_FORCE_STOP_STATE; > + samsung_dsim_write(dsi, DSIM_ESCMODE_REG, reg); > + } > > dsi->state |=3D DSIM_STATE_VIDOUT_AVAILABLE; > } > @@ -1358,10 +1372,17 @@ static void samsung_dsim_atomic_disable(struct dr= m_bridge *bridge, > struct drm_bridge_state *old_brid= ge_state) > { > struct samsung_dsim *dsi =3D bridge_to_dsi(bridge); > + u32 reg; > > if (!(dsi->state & DSIM_STATE_ENABLED)) > return; > > + if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type)) { > + reg =3D samsung_dsim_read(dsi, DSIM_ESCMODE_REG); > + reg |=3D DSIM_FORCE_STOP_STATE; > + samsung_dsim_write(dsi, DSIM_ESCMODE_REG, reg); > + } > + > dsi->state &=3D ~DSIM_STATE_VIDOUT_AVAILABLE; > } > > -- > 2.40.0 > Hi Frieder, I found this patch to break mipi-dsi display on my board which has: - FocalTech FT5406 10pt touch controller (with no interrupt) - Powertip PH800480T013-IDF02 compatible panel - Toshiba TC358762 compatible DSI to DBI bridge - ATTINY based regulator used for backlight controller and panel enable I enable this via a dt overlay in a pending patch imx8mm-venice-gw72xx-0x-rpidsi.dtso [1] which works on 6.4 but not 6.5-rc1 which has this patch. The issue appears as: [ 6.110585] samsung-dsim 32e60000.dsi: xfer timed out: 29 06 00 00 64 01 05 00 00 00 [ 6.326588] tc358762 32e60000.dsi.0: error initializing bridge (-110) Instead of [ 1.011729] samsung-dsim 32e10000.dsi: supply vddcore not found, using dummy regulator [ 1.019829] samsung-dsim 32e10000.dsi: supply vddio not found, using dummy regulator [ 5.649928] samsung-dsim 32e10000.dsi: [drm:samsung_dsim_host_attach] Attached tc358762 device I'm curious what board/panel were you needing this for and do you have any ideas why it broke my setup? I'm also curious what board/panel Alexander tested this with and if Adam or Jagan (or others) have tested this with their hardware? best regards, Tim [1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20230711221= 124.2127186-1-tharvey@gateworks.com/