From patchwork Wed Oct 5 15:13:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 2422 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-il1-f198.google.com (mail-il1-f198.google.com [209.85.166.198]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 84F1E3F330 for ; Wed, 5 Oct 2022 17:13:30 +0200 (CEST) Received: by mail-il1-f198.google.com with SMTP id k6-20020a92c246000000b002f80993e780sf13451869ilo.13 for ; Wed, 05 Oct 2022 08:13:30 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1664982809; cv=pass; d=google.com; s=arc-20160816; b=cF0dsgvptaXgcmII5FFG++xVDi9e4zI0DCGSW25Ihfz19gTY3rOkw6wfV/gsmRI4tD G/ko8vMC4VC0Rfjhae+fPO+aILoVia2ijviRx7nexxt3L7qje2pPR+Lh/jw7s/CWfXGI X0xNzq6FYvoZcnXD7OfNox5oEeS/Izo0IZuuMGIhEgty2E3e/ItpqpySunzcXJKKc/OX IiD5qioCal8EtQc+MePQLkYHqAaU0uPSpi8WdyPAde4JBzS4fFSC7Hqi/GbdM303KmgJ om046uclzGEsn5Q5iBz8OjjG7qQGdbumex8C2gZTYjGm6MfVUnXVCY85L1ZwW0IIgO6M 3fYA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=AuJb4WRGsZ8h82KySgyPrlwRRgNwtoRA5fqVAmc30vg=; b=k96isWA5nG+GgOUJInFY1gFwIXd40zNubXngvQEUASH7x0YSnHJ1lirGQYbBE95+De lwWqPKkS7OCVGm9qB0ExX6t/pLI4J2yMtK6gaK7qbdQU0n5YhGmhN1x5bIJRXdyp7HvY FjeZk0zh7RkFPx5eKiLsV/eeVNfwU3XjyxJgkOYSGLzNOFYzE9twjTlXW0xbXr7G/Trn gD4nR+lUCEFMUBx63RlLH7P1EbqObozYARgFyG7sv7/htHen00nktncVltvgOh6LPpps rJ/optgS/s3hXgBYCcNhBCgD8V+79WzhqoqkPvbD/eT05hF28xoDXYd6Sdgwl23oSio1 hkJA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=QmcCZNdj; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date; bh=AuJb4WRGsZ8h82KySgyPrlwRRgNwtoRA5fqVAmc30vg=; b=kpFeN1DjIEXvfotfsqTXX+0Dd8IwPXIvvDFfgVBOtlojhsiWQPaaj+mtP/0pebDSv9 cgkOoHJ0+eFVI07vY08vQi5BoGgq333IEwo/39KJUR4/dnQHw2gFGtTiGWQ9SejP9YEt N9axbqZZ7zN9rsp45u335FzPAT0IOOdfjpnic= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date; bh=AuJb4WRGsZ8h82KySgyPrlwRRgNwtoRA5fqVAmc30vg=; b=JGTFdGh5Bl7e6CYCOlm7n+Ms7jcos8cZYgef9xBEHmowPJJSRVD5lun1TjR36eK/ZG zVOtY2sKAQ7hVsoW+l7I92oOdhdJ8ALeruHIMHnKFLwRkKDcq1yiarW1hAaK1JiGv0Wa fM4j08c1uPH+DUHsxb6XHAq5v2mhXFZWKBuaT+GlofJdRXuvVAEchAIYXExfhxm5hqCa PCyHKdg2VdXEYgZsMIcWIaRqm362q39OexZQZU8xTJWPSlTfrxNqGqRmjdo2r3iXHjTr WWPlUxqvmhsq4XpRW/+pDQGUrR5aivaeB6Vg3es0Unjo8ZERSiyjMKLwjaG7Y4tEUOPX av5Q== X-Gm-Message-State: ACrzQf1MpeRW1CbBMzZ6AGgdJidluSzYs/FBXdjy4gEMirQa4uQuWD2W 6W9zWPZvhXHZQeYHq45jySgylHh2 X-Google-Smtp-Source: AMsMyM4C6Gz3Y89m8jgfwNvE5bgGdtTNhYY9wIfMVD0VjHjcl+y66+d9cnfGlAgPZ+NnAP+qfnfB1w== X-Received: by 2002:a92:2a03:0:b0:2fa:16e3:1833 with SMTP id r3-20020a922a03000000b002fa16e31833mr66242ile.286.1664982809541; Wed, 05 Oct 2022 08:13:29 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a02:2a82:0:b0:35a:328c:6cc0 with SMTP id w124-20020a022a82000000b0035a328c6cc0ls4051247jaw.2.-pod-prod-gmail; Wed, 05 Oct 2022 08:13:29 -0700 (PDT) X-Received: by 2002:a05:6638:2188:b0:35a:47c3:4784 with SMTP id s8-20020a056638218800b0035a47c34784mr43850jaj.223.1664982808929; Wed, 05 Oct 2022 08:13:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664982808; cv=none; d=google.com; s=arc-20160816; b=T2ghj2U21VILp7t6bPtqT358L5gQUnL9KuYsCVa7hDOFcMb75DMfKh3vzIJ6k1pm6x veN0KPY4QCFKBkG2mJS2gYgQVcvM56iVga5bDYIY8MuAOGx3oYtNFBR9Y1If6UbIwSPW dnwt75Hc8z2l7chX0TF1MlAtCDtJEmURzyMml1dwwIJiVjyrD2KQMKd2RtBM/OzLt6un C6dX4tbsYwgt1h0zNov7wW4Kia3cDOWd6KZr8v99Vrpy1GuqrQhLcUMjkc40dR1D5l8I AEjGo1HVd98We8tjg/I+W9/RgxuLtSJQGrBjZCugQxZ9yyYS79UuGqlXRW4xR3D/yPV3 TcqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=RQZh1WL8LN/9jE0F7Kfj3L3iyOE3VYmZbk12zg0k2YE=; b=SzVFAmgYtI7KRdk3GTb5vM7IAFL/Bx/osOCiDpVhJ/U994BgJGAN7nGtecmV5Q+sL0 Jgw9zcl2xp7KaXdcmdlipIx9ZS1N4BX6SPeXMnF1qnz5uynKbmJ4Nx5vxyV3CR4WQCyR 10sk8wS3oftE9hmUYm3Ugu8WZmPWpHhlxwUSxsqW83B/buvADI6q6mm5JwWG+EOnIPuo ExoGFNQ8YGlz152oE+NuSlPQmjgzyMYyL5OOYCGsFqi9bNYpNAcdWGSUIVAAKd34031x AuTYC2IlBVB1+FkTRilZd7HpdWPjmd4ChyP6Jq8Q7B/nXpsgkWyz9u2Laqwyyd/Yhb38 K2SQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=QmcCZNdj; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id q2-20020a027b02000000b00358307183eesor4738379jac.74.2022.10.05.08.13.28 for (Google Transport Security); Wed, 05 Oct 2022 08:13:28 -0700 (PDT) Received-SPF: pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a02:cc85:0:b0:363:3812:9509 with SMTP id s5-20020a02cc85000000b0036338129509mr44215jap.249.1664982808649; Wed, 05 Oct 2022 08:13:28 -0700 (PDT) Received: from j-ThinkPad-E14-Gen-2.stthomas.edu ([140.209.96.21]) by smtp.gmail.com with ESMTPSA id w15-20020a056602034f00b0068a235db030sm7089276iou.27.2022.10.05.08.13.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Oct 2022 08:13:28 -0700 (PDT) From: Jagan Teki To: Andrzej Hajda , Inki Dae , Marek Szyprowski , Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , Frieder Schrempf , Fancy Fang , Tim Harvey , Michael Nazzareno Trimarchi , Adam Ford , Neil Armstrong , Robert Foss , Laurent Pinchart , Tommaso Merciai , Marek Vasut Cc: Matteo Lisi , dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, NXP Linux Team , linux-amarula , Jagan Teki Subject: [PATCH v7 05/10] drm: bridge: samsung-dsim: Add atomic_check Date: Wed, 5 Oct 2022 20:43:04 +0530 Message-Id: <20221005151309.7278-6-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221005151309.7278-1-jagan@amarulasolutions.com> References: <20221005151309.7278-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: jagan@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=QmcCZNdj; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Look like an explicit fixing up of mode_flags is required for DSIM IP present in i.MX8M Mini/Nano SoCs. At least the LCDIF + DSIM needs active low sync polarities in order to correlate the correct sync flags of the surrounding components in the chain to make sure the whole pipeline can work properly. On the other hand the i.MX 8M Mini Applications Processor Reference Manual, Rev. 3, 11/2020 says. "13.6.3.5.2 RGB interface Vsync, Hsync, and VDEN are active high signals." No clear evidence about whether it can be documentation issues or something, so added a comment FIXME for this and updated the active low sync polarities using SAMSUNG_DSIM_TYPE_IMX8MM hw_type. v7: * fix the hw_type checking logic v6: * none v5: * rebase based new bridge changes [mszyprow] * remove DSIM_QUIRK_FIXUP_SYNC_POL * add hw_type check for sync polarities change. v4: * none v3: * add DSIM_QUIRK_FIXUP_SYNC_POL to handle mode_flasg fixup v2: * none v1: * fix mode flags in atomic_check instead of mode_fixup Signed-off-by: Jagan Teki --- drivers/gpu/drm/bridge/samsung-dsim.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 563781bb27c4..b46346232c52 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -1315,6 +1315,31 @@ static void samsung_dsim_atomic_post_disable(struct drm_bridge *bridge, pm_runtime_put_sync(dsi->dev); } +static int samsung_dsim_atomic_check(struct drm_bridge *bridge, + struct drm_bridge_state *bridge_state, + struct drm_crtc_state *crtc_state, + struct drm_connector_state *conn_state) +{ + struct samsung_dsim *dsi = bridge_to_dsi(bridge); + struct drm_display_mode *adjusted_mode = &crtc_state->adjusted_mode; + + if (dsi->plat_data->hw_type == SAMSUNG_DSIM_TYPE_IMX8MM) { + /** + * FIXME: + * At least LCDIF + DSIM needs active low sync, + * but i.MX 8M Mini Applications Processor Reference Manual, + * Rev. 3, 11/2020 says + * + * 13.6.3.5.2 RGB interface + * Vsync, Hsync, and VDEN are active high signals. + */ + adjusted_mode->flags |= (DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC); + adjusted_mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC); + } + + return 0; +} + static void samsung_dsim_mode_set(struct drm_bridge *bridge, const struct drm_display_mode *mode, const struct drm_display_mode *adjusted_mode) @@ -1353,6 +1378,7 @@ static const struct drm_bridge_funcs samsung_dsim_bridge_funcs = { .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, .atomic_reset = drm_atomic_helper_bridge_reset, + .atomic_check = samsung_dsim_atomic_check, .atomic_pre_enable = samsung_dsim_atomic_pre_enable, .atomic_enable = samsung_dsim_atomic_enable, .atomic_disable = samsung_dsim_atomic_disable,