From patchwork Fri Dec 9 15:23:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 2528 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id D0BF83F039 for ; Fri, 9 Dec 2022 16:27:07 +0100 (CET) Received: by mail-pl1-f199.google.com with SMTP id u9-20020a170902e80900b0018939ccbeedsf4488434plg.20 for ; Fri, 09 Dec 2022 07:27:07 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1670599626; cv=pass; d=google.com; s=arc-20160816; b=Ro7eIZixe0+h38jVeAhxw+tdr0TY3ocbVtHiN6yQdwf8XL2kVR9/zv/WybkfDLx1Lm 8NpQoXbrMewCqPoKxn2x5///8cb0sjmytzRoM1xJqxqj6jgQSV4llJCgJxIdF1c8g85n 9asC3B7intBag8ow3+/T5OvYUYNGAta0R66XiTYvmf9mW1P38flfB9k8zd2zT/JYNHwU e+CaetPFQgFmIT+j7Q12pckRo83MrjlUAqTRsDf8/goS4KffaucMSoBStzPt3xFljExa RYWdPfXQAlDSwPnMa6Gz2ngNrBDocCz4wF+s5CTfdhhjpldNINpH4426dvo0GRFL8utA OKrQ== 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=tm1qICdfYEPHdB1GhmfI0YWnLmK2zdrM9KAvlq/mQlE=; b=JWHATjACsII6fIW7gDkDvV7MAGO09lzttfCZBdlNmErBT0YL/fgevhibK8vw23SjiF qDoicb1Og7FFAeQJD19rkrsYp3kG8xZocuBCL2ELBQgvEcGDeQjNtci5H1Q3fSbSKX0D h7Tb9kBgLIwExSaO8vvnsUY8cGMU6P5YxjXBg4BVAgCepAwbHPxsg42J6ek9jOw63Q5J q/80DgVQJhH6KLV5HqS0NAbiIGLzQyVFS8Li0PgZeMFOX8hqYFquiRuFU884G3g8gSvK EBtpj350NTULEAzf/9xr/wUMJczFQPUpu8LPVwvQ5wSt15khZ8qzWAlLD8QoQdeMN4kg FCHA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=XmeybZQm; 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:message-id:reply-to; bh=tm1qICdfYEPHdB1GhmfI0YWnLmK2zdrM9KAvlq/mQlE=; b=HhTLdoOusSzUl9l1Q+vyQMrmQvS1xhz30iGsZztXY42yg4pm7rXTNq6yfjxFfkoBjd h3pPHJivJp4pDRMZw1gzhuSBUe84gd3mZbsvbmkM8JSQm34qc2YM2wH99dVJL5lTrm1h OYvR8dq7sgvu9KAmbbuyCP74fAClgbbmaNtmw= 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:message-id:reply-to; bh=tm1qICdfYEPHdB1GhmfI0YWnLmK2zdrM9KAvlq/mQlE=; b=CQOBeGBmRzHg5/6gaEWHYtdUuAzKknqoWIqEk/S6Lq77dBzb53kNjhusMuPOVhRL6p wJ18U6WrqSw4WdlrZBTvlqgXG5qxH1A4gdOKvnEIOGKxNDgjU8TYRAY8iubTHp/Nt2Qf yRY9CdXyXUWWiVXSqt4/Y+jfXQtbkW5Xu6dIIEfA2hzXdqKS2sZ44hlTdmisiwk41ZSs tE/2/4LwKX59vYolQKpRLeSMyECqHE2acYsEQmK1x9yCMQPE5rCOu8LUhiVYVVxWzxIM DkNNrUu41RqN2CGhfDaDincZl3abTHtYPUDyD3C3wrspTFAh4AB4ytInNaauhr11Bczt jmrA== X-Gm-Message-State: ANoB5plAIRQafqpPB2dT3NFvt+06e0vZBrz54FRP62hqe+ZuPhPF212S gfnFHnmQrpBDCoa6yv4l33z6wKIR X-Google-Smtp-Source: AA0mqf4mhSplKH1o2cDQQxeS1eWbmDStHtvuDWSIX1WUBzJrgbt0Kqd/WKb+my/U9h/oC/QT4KG3ig== X-Received: by 2002:a17:902:f113:b0:186:bb48:2b34 with SMTP id e19-20020a170902f11300b00186bb482b34mr11283165plb.1.1670599626504; Fri, 09 Dec 2022 07:27:06 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:902:9f97:b0:186:9fc5:6c01 with SMTP id g23-20020a1709029f9700b001869fc56c01ls8485682plq.6.-pod-prod-gmail; Fri, 09 Dec 2022 07:27:05 -0800 (PST) X-Received: by 2002:a17:902:bf46:b0:185:441e:2212 with SMTP id u6-20020a170902bf4600b00185441e2212mr5953709pls.13.1670599625622; Fri, 09 Dec 2022 07:27:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670599625; cv=none; d=google.com; s=arc-20160816; b=ladba+Kfg01pu61nlwFMtaAPZIYPnzN9TqVwcRz0rzynVf5ysCKQWqIYGRWF5PIZTA RMBrVzHEehQP6cdcz9qrCQ+eNNeHm9iHGGn4BW9uC6410zbxY8i7mkZpAUaGbA20X1xr LCNJ1+PPlFd/kCg2TAplsODFYCCv1YAZmXudLxNX6qV24PLYn8393J6O8cQJnw8BJ8k5 VGRrrmM+BDr1/oJtXon01r37RAZ/OjgMvNL4LedECY/LiS/rziDohlhCh0STxGGbfpRR tgQxXJmCxh5oXq9LJzFfCcwgNWQg/LtJSARWmyHUr1zXHXVMbvJWG6HqnuqAElrXUi2+ Da9A== 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=D8mPqEQPN2em8iTEeAt5Sl90+CybIe48O5qmPtt0W8M=; b=0lBdMMXvcqOYJsa7kZlTY9pG3N/Oynj+U/e2FbWU+nF44HYH9o3HlLWHle+AofHhUh 1j2REmBmVqs1x4YuXd5sYYSMGkQ6+3PQwhEtoVLQ6AnoEdzHW4aPpitySXqg1Gx1m/Jz yjwg4BE6OTLcVUqqvwpPY5NtCCFdVzASHp1ypJcv/dUNKMTwHorrzxzLU0eJTTuNH47g H6eP0Lk8IquT0BMQBUVhfQ9MkvgjKn8MgQGiQL1Q9qj/zpIDlyCyueomhY9uzDX/IRV5 AJ87Byw0mWs4ZpF6yf/atTuR8u+JUwVyUj8p1Mj2ngYRaomoNJMW8gIV0FeVd03sVohL puYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=XmeybZQm; 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 o17-20020a170903301100b0018962f9b6adsor1037132pla.89.2022.12.09.07.27.05 for (Google Transport Security); Fri, 09 Dec 2022 07:27:05 -0800 (PST) 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:a17:902:8c8d:b0:187:262a:7955 with SMTP id t13-20020a1709028c8d00b00187262a7955mr5610383plo.9.1670599625243; Fri, 09 Dec 2022 07:27:05 -0800 (PST) Received: from localhost.localdomain ([2405:201:c00a:a809:6ba1:bbda:c542:ba0b]) by smtp.gmail.com with ESMTPSA id x14-20020a170902ec8e00b00188c5f0f9e9sm1477587plg.199.2022.12.09.07.26.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Dec 2022 07:27:04 -0800 (PST) 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 v9 09/18] drm: bridge: samsung-dsim: Add host init in pre_enable Date: Fri, 9 Dec 2022 20:53:34 +0530 Message-Id: <20221209152343.180139-10-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221209152343.180139-1-jagan@amarulasolutions.com> References: <20221209152343.180139-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=XmeybZQm; 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: , Host transfer() in DSI master will invoke only when the DSI commands are sent from DSI devices like DSI Panel or DSI bridges and this host transfer wouldn't invoke for I2C-based-DSI bridge drivers. Handling DSI host initialization in transfer calls misses the controller setup for I2C configured DSI bridges. This patch adds the DSI initialization from transfer to bridge pre_enable as the bridge pre_enable API is invoked by core as it is common across all classes of DSI device drivers. v9: * added the patch again v3: * none v2: * check initialized state in samsung_dsim_init v1: * keep DSI init in host transfer Signed-off-by: Jagan Teki --- drivers/gpu/drm/bridge/samsung-dsim.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 9adab5d372cc..2e15d753fdd0 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -1250,10 +1250,13 @@ static void samsung_dsim_disable_irq(struct samsung_dsim *dsi) disable_irq(dsi->irq); } -static int samsung_dsim_init(struct samsung_dsim *dsi) +static int samsung_dsim_init(struct samsung_dsim *dsi, unsigned int flag) { const struct samsung_dsim_driver_data *driver_data = dsi->driver_data; + if (dsi->state & flag) + return 0; + samsung_dsim_reset(dsi); samsung_dsim_enable_irq(dsi); @@ -1266,6 +1269,8 @@ static int samsung_dsim_init(struct samsung_dsim *dsi) samsung_dsim_set_phy_ctrl(dsi); samsung_dsim_init_link(dsi); + dsi->state |= flag; + return 0; } @@ -1285,6 +1290,10 @@ static void samsung_dsim_atomic_pre_enable(struct drm_bridge *bridge, } dsi->state |= DSIM_STATE_ENABLED; + + ret = samsung_dsim_init(dsi, DSIM_STATE_INITIALIZED); + if (ret) + return; } static void samsung_dsim_atomic_enable(struct drm_bridge *bridge, @@ -1458,12 +1467,9 @@ static ssize_t samsung_dsim_host_transfer(struct mipi_dsi_host *host, if (!(dsi->state & DSIM_STATE_ENABLED)) return -EINVAL; - if (!(dsi->state & DSIM_STATE_INITIALIZED)) { - ret = samsung_dsim_init(dsi); - if (ret) - return ret; - dsi->state |= DSIM_STATE_INITIALIZED; - } + ret = samsung_dsim_init(dsi, DSIM_STATE_INITIALIZED); + if (ret) + return ret; ret = mipi_dsi_create_packet(&xfer.packet, msg); if (ret < 0)