From patchwork Mon Jan 23 15:11:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 2656 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 19B413F046 for ; Mon, 23 Jan 2023 16:12:48 +0100 (CET) Received: by mail-pf1-f200.google.com with SMTP id dc11-20020a056a0035cb00b00589a6a97519sf5366779pfb.8 for ; Mon, 23 Jan 2023 07:12:48 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1674486766; cv=pass; d=google.com; s=arc-20160816; b=TWM9FdX5DH1HTjP2C3l9rTmV0UoHD/dcRN2MW7q1EP4dL7qlFT8T2l0H0Tu+6Dqsxs drd/gbnfMRpcYlZQa6w9zCv6pBvDmP/dud6BiscJtJY7GGW5HW9/QDpFYthUPVvzX5VD C9pZDSFGGrIm6zYGvGGJh5uL6ufzG0j2R3CnKKkVnZFp73i0gOfkMI/c+ELlBnuyuetK eOYVvvoEMruLIlNYpxcOIDMW013jH8AWl7e6lvJos5OKroo16F0+UIowoUVcac2nWPMR cfPnbmrKtijJMqzh9OnaO2k6LEzAehpom0kwFWrLNfN1f1RYh2bYYzCfncKDGTMlshy8 6npw== 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=jwuk9rSWQ8k8RLMJbV9PvQBNt+q4cA55Uql6eCk+MiI=; b=Ne70DcHuvtek86dD+nM8BgxBjhzXR4Y6wI18X+Prh1uFGwa+r0OZZVFJfjLlaMo2um BMXtmhI3tKbNSKX9msIRNeqCWNyOBM4L7R2J6ESZZzwGUGJ9B0KK9bFoObPf6VaOOfeB X7dwBJSFH13vEMqEJ+HzQHl8RwwMVGGhg+WVtKJzT64vGEqnncb83Oo1qsK2B+HIa6e0 B4TyjiVoJgH5xqREw0XAmP9yP+uZHfEaLyvop+V7g+gumT5TxAE/uDK6pqlS7H9QbZGS P30bdBiy++3pD1Uy1UhF5v2+aEM1HdfxbDuRMPIe8MONStJpLuVapsPSe/ACsmy7k06X Gl1Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=kjwzEN1J; 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=jwuk9rSWQ8k8RLMJbV9PvQBNt+q4cA55Uql6eCk+MiI=; b=eKKhnS1wb+F7LsueM9K3FbDJcJQ8DWQk2HOJ5ScUiK5cH8r0PMMJvPPMJwoOSPLsh7 itv2C39x4aUngbavjjuPaia3ESwezZa3mPk/I81TqrBHdRnxQpqLKW1kPSzt8+WtDbxc RZ4Z25Sm3nr83bB9r6JyHZkCb6fL7seZYpeSY= 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=jwuk9rSWQ8k8RLMJbV9PvQBNt+q4cA55Uql6eCk+MiI=; b=A4Q+aex/O8gfGy99WAXUR20ZRjbJaIk7rqEokQ1f7T7oyHVKxLmDxflz7dh2K6Y32B XO3du7YIvTPldBsqam+TUacByeXbpkm2BrgHdkCINw7r2KRQwTIjiey84rAGdjhYJyQa do9u2cfgEg2o4aDJrtUifvQsy+sRDQUA2YsX9aLGXf8oTCcRNZhF1mDy8r98/qPGuUKM d0CCQAzZFm4k6wBToJ6AMarSCjCY1bqQL84ffdO3/buSAzH4xIgQlZbY8x3dnFbT5IbT YtDZznbIk/7zl6Rsran3KsOJZ3hMf/PXyfiGGWrKtOcui0Fm+KeIEnVAUx04g+aVkZWe ZhMg== X-Gm-Message-State: AFqh2kpcw1WXML2zGf1Q4BLJeS2Yeebd4+YUBu95DBv4dmuztVNKIbya K7WhDQLxBjyqcBGQ+EtRAWoQto+X X-Google-Smtp-Source: AMrXdXvHtDtkrjgv5Ld5nru3l2BZXPk5WZOnd0cDkTUG5fxG5IV29wRR9AIUHkZHm8oYKIY4+Dyxmg== X-Received: by 2002:a62:7b10:0:b0:588:fea7:15bb with SMTP id w16-20020a627b10000000b00588fea715bbmr2276525pfc.76.1674486766742; Mon, 23 Jan 2023 07:12:46 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:90a:3801:b0:227:1b53:908c with SMTP id w1-20020a17090a380100b002271b53908cls16960483pjb.1.-pod-canary-gmail; Mon, 23 Jan 2023 07:12:46 -0800 (PST) X-Received: by 2002:a17:902:8541:b0:194:d3df:a9d1 with SMTP id d1-20020a170902854100b00194d3dfa9d1mr15053527plo.4.1674486765733; Mon, 23 Jan 2023 07:12:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674486765; cv=none; d=google.com; s=arc-20160816; b=Z3pn2fEP7HDBftMm0q+vi02OtBgPLL2dsvqk6L2q6tiZW983plKMhmwV5MomBZlQHl TFfBdgfCuRfIqmGo0v9fLJwrNL5uDl8WQAbbxjJFsMiGKlaZFiNi/pC7TN0LB3cHOARl 2KrvWnO6F9KyiWa93IJUplgORZCF1Rbc4XWPhgk06KloomGIocPqpwrbKg9j3xpRpPWM 5YyXcLOKzlgRj9gdubgGV6n+fQVvqOAVpjr+GUdItyac0+/2oc+Ycn0Gpk2C5ikBrYEX 7r19ypcjoIJvcZGUtHHL87f44o+uygLwxy2or/Yvou0bS5kpO7TOTr57JtwTTjqpOvPD Enew== 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=tSTOOV1UI3u7LdjXOPnQjVzALAHz+1al5IvaQmAe3co=; b=h46fV5hRdZGboJFIaY7bkNbQaikxMly+ZqDou/5S2sHsKqB+ySDhuVHWhIzMh3sn9+ wpNHcP8YM4IwqfuC1aZ3p2ofLzUELrqHrHOZt18pD43SA6oRb8NoqGQ48cJHzhhszd+h QXhClUFJHFNepaBSJcdjHGnie/bOTInIdJN/dK4dWWRhzhf8RUqJpVNyLObtoCjePr2k Fw0lg1VunsMbMfgSqCsqwKVdwqzMWI8xRRzFnUPNl62+XsywlXf+H1kDnE6tShpmPd9y zEoYx3tky6oUThXVsiqGJjuYz1km2W3GjzTw6VQfyai6J03vnDc1Fpk/wjwFYO66YYmx Ztbw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=kjwzEN1J; 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 o8-20020a1709026b0800b0019304d850bbsor1943593plk.118.2023.01.23.07.12.45 for (Google Transport Security); Mon, 23 Jan 2023 07:12:45 -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:c24c:b0:194:7696:b0f9 with SMTP id 12-20020a170902c24c00b001947696b0f9mr38420938plg.66.1674486765410; Mon, 23 Jan 2023 07:12:45 -0800 (PST) Received: from localhost.localdomain ([2405:201:c00a:a15f:2279:f361:f93b:7971]) by smtp.gmail.com with ESMTPSA id d5-20020a170903230500b001754fa42065sm19207111plh.143.2023.01.23.07.12.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Jan 2023 07:12:44 -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 , Maxime Ripard , Linus Walleij , Maarten Lankhorst Subject: [RESEND PATCH v11 02/18] drm: bridge: panel: Add devm_drm_of_dsi_get_bridge helper Date: Mon, 23 Jan 2023 20:41:56 +0530 Message-Id: <20230123151212.269082-3-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230123151212.269082-1-jagan@amarulasolutions.com> References: <20230123151212.269082-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=kjwzEN1J; 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: , Add devm OF helper to return the next DSI bridge in the chain. Unlike general bridge return helper devm_drm_of_get_bridge, this helper uses the dsi specific panel_or_bridge helper to find the next DSI device in the pipeline. Helper lookup a given child DSI node or a DT node's port and endpoint number, find the connected node and return either the associated struct drm_panel or drm_bridge device. Cc: Maxime Ripard Cc: Laurent Pinchart Cc: Linus Walleij Cc: Maarten Lankhorst Signed-off-by: Jagan Teki --- Changes for v11: - none Changes for v10: - new patch drivers/gpu/drm/bridge/panel.c | 34 ++++++++++++++++++++++++++++++++++ include/drm/drm_bridge.h | 2 ++ 2 files changed, 36 insertions(+) diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c index e8aae3cdc73d..be281eb26356 100644 --- a/drivers/gpu/drm/bridge/panel.c +++ b/drivers/gpu/drm/bridge/panel.c @@ -499,4 +499,38 @@ struct drm_bridge *drmm_of_get_bridge(struct drm_device *drm, } EXPORT_SYMBOL(drmm_of_get_bridge); +/** + * devm_drm_of_dsi_get_bridge - Return next DSI bridge in the chain + * @dev: device to tie the bridge lifetime to + * @np: device tree node containing encoder output ports + * @port: port in the device tree node + * @endpoint: endpoint in the device tree node + * + * Lookup a given child DSI node or a DT node's port and endpoint number, + * find the connected node and return either the associated struct drm_panel + * or drm_bridge device. Either @panel or @bridge must not be NULL. + * + * Returns a pointer to the bridge if successful, or an error pointer + * otherwise. + */ +struct drm_bridge *devm_drm_of_dsi_get_bridge(struct device *dev, + struct device_node *np, + u32 port, u32 endpoint) +{ + struct drm_bridge *bridge; + struct drm_panel *panel; + int ret; + + ret = drm_of_dsi_find_panel_or_bridge(np, port, endpoint, + &panel, &bridge); + if (ret) + return ERR_PTR(ret); + + if (panel) + bridge = devm_drm_panel_bridge_add(dev, panel); + + return bridge; +} +EXPORT_SYMBOL(devm_drm_of_dsi_get_bridge); + #endif diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index 42f86327b40a..ccb14e361d3f 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -931,6 +931,8 @@ struct drm_bridge *devm_drm_of_get_bridge(struct device *dev, struct device_node u32 port, u32 endpoint); struct drm_bridge *drmm_of_get_bridge(struct drm_device *drm, struct device_node *node, u32 port, u32 endpoint); +struct drm_bridge *devm_drm_of_dsi_get_bridge(struct device *dev, struct device_node *node, + u32 port, u32 endpoint); #else static inline struct drm_bridge *devm_drm_of_get_bridge(struct device *dev, struct device_node *node,