From patchwork Fri Jul 3 19:23:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642737 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5568060D for ; Fri, 3 Jul 2020 19:24:32 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 33945207FF for ; Fri, 3 Jul 2020 19:24:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sW8d7aVO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 33945207FF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E806B6EBAB; Fri, 3 Jul 2020 19:24:29 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x144.google.com (mail-lf1-x144.google.com [IPv6:2a00:1450:4864:20::144]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3AF3A6EBAB for ; Fri, 3 Jul 2020 19:24:28 +0000 (UTC) Received: by mail-lf1-x144.google.com with SMTP id t9so19074716lfl.5 for ; Fri, 03 Jul 2020 12:24:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WOEfCwKuizYX3a4QPepXPk/wA2p4A47g4u9D3PirCBM=; b=sW8d7aVOiHC8/6Ecj6+0gXYCIUBai9yFj2nEqQB5KCdjSumshoLkewJ51yGLmmFVTp VAUKKPRp4h+HJiZ2dfd3Vl30DLhUfZ1tIxfJq+bnwEjlQ+EIr1ZPUpyGwvkFiPdi0sAM jsFD6LACOyUVY/AG0rdGkHQOMSQiSozQkOivjHYdLzXaT//tgy9xBARFcS8+tIZ9OOyq TozECv1JXtOLIdVjFhmrYJCTVAdNp+8S6ugQB37OnSMbj4MRJIdtpj7EZLhDas2z0ulA jB3q2Ia7VdukzKwD6ugpyF+gO7KTDtJgRteK8GeV7VdsGlqn0c5Ww9zeC3J3xlUrE77y hB0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=WOEfCwKuizYX3a4QPepXPk/wA2p4A47g4u9D3PirCBM=; b=BF2Vkpaj2UNdduj5kn3OYisAsp2lX4FH/CFBMub6wG8vAsXIVIVXaXBNrkfmLK9Rb3 qrd7Rr3HxKm9vZdOgq3pIZe0AA+lsojbzxmEfafrAi+ooP/qkhVxwnNia+2HKEbGZACG +KtmEZDrKZ3Re6hUIbUC+6EASAPwRxpZjemPapVyBzaRQ+zL81fLr1Ub8gb5KvK+o4VZ NSaJW4Z7PG7rC/nZBtwCOHcBrPuU0wOJJDutvdc8j2lN0ywIaEZHITKmtTWVSOmcHRxv xqCXnIyio3wdBQrK1zNI4ray0he6HeeP0ba3YHLQqtFSzEtkpDfqowo81NmuueJRvHyH vhoA== X-Gm-Message-State: AOAM530eG/smfLjgbt+K2BB32Rakbq+ifQCLQNgwba362QFeD3yjgigQ kKFBxnv8XVYhFWcEza13rhY94lhQLww= X-Google-Smtp-Source: ABdhPJyvSUxT+dFL1Ae9Jw0GKs0HUhr/kbNzCuf7jLhAXTKtFqDp4L8YT+ViayThA46H+j42sVVjhw== X-Received: by 2002:ac2:46f0:: with SMTP id q16mr23100613lfo.51.1593804266502; Fri, 03 Jul 2020 12:24:26 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:26 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 01/21] drm/panel: add connector type to boe, hv070wsa-100 panel Date: Fri, 3 Jul 2020 21:23:57 +0200 Message-Id: <20200703192417.372164-2-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Laurent Pinchart , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The boe,hv070wsa-100 panel is a LVDS panel. Fix connector type to reflect this. With this change users of this panel do not have to specify the connector type. v3: - Drop PIXDATA bus_flag, not relevant v2: - Add .bus_format (Laurent) - Add .bus_flags Signed-off-by: Sam Ravnborg Cc: Laurent Pinchart Cc: Thierry Reding Cc: Sam Ravnborg Reviewed-by: Laurent Pinchart --- drivers/gpu/drm/panel/panel-simple.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 4f0ec5e5b0aa..7b5d212215e0 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -1188,6 +1188,9 @@ static const struct panel_desc boe_hv070wsa = { .width = 154, .height = 90, }, + .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .bus_flags = DRM_BUS_FLAG_DE_HIGH, + .connector_type = DRM_MODE_CONNECTOR_LVDS, }; static const struct drm_display_mode boe_nv101wxmn51_modes[] = { From patchwork Fri Jul 3 19:23:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642739 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 85FB013B6 for ; Fri, 3 Jul 2020 19:24:34 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 63EA4207FF for ; Fri, 3 Jul 2020 19:24:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="k21Kn1mq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 63EA4207FF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9559E6EBAE; Fri, 3 Jul 2020 19:24:30 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 373786EBAB for ; Fri, 3 Jul 2020 19:24:29 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id e4so38223836ljn.4 for ; Fri, 03 Jul 2020 12:24:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TTecFeWhnkJS04/6vJx6YjKZESPPJ5FYJVs0LA7y+wc=; b=k21Kn1mqEpNm0J4N9eAzvMcKPUp80/EqId9x76AOzNJl9hLAaOIE9t4CmymenpSL+3 udl/AkE4Fgu6mhnswUT9gmgT/JGi7invjCJl2IGplYYS7+YYpMQVIJspoqVNmnJ6gLfi SAdNFFWx5H5Z481ufKHtqJU8BXOaCGSUb9L55LKr5ahfW/BwkMpe73t5Pdj8JGcb+HHC jcr4RVapLrdXp7vsmpBvSUmo/khcZE9/pnPcq57O+obBet4iHF9Y8E6jkc7FDLwYCvft gVmEdHiBeab9MRW5xh2gf5vYcItyauCk/UE+tix1wfBIDEifn5N7zehnqI32rreI937k oXNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=TTecFeWhnkJS04/6vJx6YjKZESPPJ5FYJVs0LA7y+wc=; b=lASESnGxdXxIeXMUfajkI/d9b/RHCsVEheWhAZbfyK/8z/jLfnrm6asto2Zf0Jjwus dkeP7iOBNtB+5orumdIbsazv0K8YeD14B0zzY5/EjkM72qlz46oQYVgQ0211u8kOwdAR SRt9mmvOU7GSM87fnHdXswGUkTW4jhehABpBsoPmCvvWYH7rysbTMyU97CEyOGizNI+8 WohGpoD7P5uMlLjO4ZQsTB+MxSIb9c0NvIAY1aNHAak3fEW/kjzWtjhSuskOhPS7kdbi IlbGDEQtB4o++n6cnBJPZ1KsjQDMMWPsDelQc+zXozbQ/E+6HBZiUDnGwv7FyGQU/Hg/ +ulA== X-Gm-Message-State: AOAM5300ZZvaeVS0sImb0J2gmQqDuhOIPfK9yRz2U5gzOG+PGGXdkN00 +rcgzbVBoMGzyuoFE29IzF0OuNWJk7w= X-Google-Smtp-Source: ABdhPJxIL1rwJl7DS1D9whh/28L0b2F3QaArb6NnM64C9SsmbJNcTTjC0M8fdDAeDUtWTXRlCyVYTg== X-Received: by 2002:a2e:700e:: with SMTP id l14mr12971371ljc.131.1593804267477; Fri, 03 Jul 2020 12:24:27 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:27 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 02/21] drm/panel: panel-simple: add default connector_type Date: Fri, 3 Jul 2020 21:23:58 +0200 Message-Id: <20200703192417.372164-3-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" All panels shall report a connector type. panel-simple has a lot of panels with no connector_type, and for these fall back to DPI as the default. Signed-off-by: Sam Ravnborg Cc: Thierry Reding Cc: Sam Ravnborg --- drivers/gpu/drm/panel/panel-simple.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 7b5d212215e0..b3ec965721b0 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -500,6 +500,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) struct panel_simple *panel; struct display_timing dt; struct device_node *ddc; + int connector_type; int err; panel = devm_kzalloc(dev, sizeof(*panel), GFP_KERNEL); @@ -566,8 +567,13 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) desc->bpc != 8); } - drm_panel_init(&panel->base, dev, &panel_simple_funcs, - desc->connector_type); + /* Default DRM_MODE_CONNECTOR_DPI if no connector_type is set */ + if (desc->connector_type != 0) + connector_type = desc->connector_type; + else + connector_type = DRM_MODE_CONNECTOR_DPI; + + drm_panel_init(&panel->base, dev, &panel_simple_funcs, connector_type); err = drm_panel_of_backlight(&panel->base); if (err) From patchwork Fri Jul 3 19:23:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642741 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EC47D13B6 for ; Fri, 3 Jul 2020 19:24:36 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CB391208FE for ; Fri, 3 Jul 2020 19:24:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b7XT+/Gl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CB391208FE Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 66C6A6EBB0; Fri, 3 Jul 2020 19:24:31 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2E1A26EBAE for ; Fri, 3 Jul 2020 19:24:30 +0000 (UTC) Received: by mail-lf1-x143.google.com with SMTP id k15so19069005lfc.4 for ; Fri, 03 Jul 2020 12:24:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=s9+yqYON3+B159uDVRHmWDcBoh5JBmCFpO42dqnb8M8=; b=b7XT+/GlretaDw32GHh3aZlCryLC+MRCZ5VzA15iuUpDuxgxvohZAMNbu07LipX3d6 A8oimpn2jAc535y01xW2el3RkU6pOKs+j4EcgDZ0z9DpxIoOSxznvWkOa9zswQxwTRu7 9DR80BgEqGqI2i7RrXru3ThE/oybNOKolyzkJO+WOOYCnNlBQOXEnujlUa5vG4H1ojSc AKgML7JYW4g4yMJZEnQazLCyeoIStj33dm2X9lQA2REM8kNtH0iW9UgHo94sQc74pKxs c02LjPRMkqCutszKW2mWSYRLW3vWU+VrNDnO0LlCSUVu+OnsFtie5lHmxMzxePKmhBl9 WLAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=s9+yqYON3+B159uDVRHmWDcBoh5JBmCFpO42dqnb8M8=; b=PjnG1BvntRGgHEwSG1c28RxOjlJMgfQ3HogMPAAtzbUQgp73edFItrHkQBeJL/Ypjn vUr4efMzvp7ZVqOCKacGYvrYt09/KcjX9/cGUhFDYV6D11VBCPEfWR/ivDVoFORIsXlm l0RFTtjT3Q66O5ev6Pjmm3C27ecFyLE0/gxSHRJwZOJ4Ls8bMW6QnmY/KzjKN+7Bhige ROAveCrTqAm515dlUizoeGu/PBcurjA1RQ2UsE7dm72lVCSV5TUvGVpHfGjofEYIQ1OU PsnHYsDqS42zPU+GkN2GW3FQTL1Xe8aYlO63/L6JkgawnIrjH/HNNbC2JgNZaCBNQ6C0 5+rA== X-Gm-Message-State: AOAM533/Z/t0CEbHCuCwcv6Hum5N6yl2Q/f8Cx7sUScn1v12Iz+rPvsI ARylyHjyIkr7t8JMBIxtJ8Z4xKLyoUg= X-Google-Smtp-Source: ABdhPJyrf7VavIu1yA4+atGHqVLD0o2ZQuVoUwaEQ4Jzr+QYenW9EBkhPQBnycNnnoR/MZcFntv06g== X-Received: by 2002:ac2:544c:: with SMTP id d12mr22683431lfn.97.1593804268422; Fri, 03 Jul 2020 12:24:28 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:28 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 03/21] drm/bridge: tc358764: drop drm_connector_(un)register Date: Fri, 3 Jul 2020 21:23:59 +0200 Message-Id: <20200703192417.372164-4-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Laurent Pinchart , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Drop drm_connector handling that is not needed: - drm_dev_register() in the display controller driver takes care of registering connectors. So the call to drm_connector_register() call is not needed in the bridge driver. - Use of drm_connector_unregister() is only required for drivers that explicit have called drm_dev_register. - The reference counting using drm_connector_put() is likewise not needed. Signed-off-by: Sam Ravnborg Reviewed-by: Laurent Pinchart Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/tc358764.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c index 5ac1430fab04..a277739fab58 100644 --- a/drivers/gpu/drm/bridge/tc358764.c +++ b/drivers/gpu/drm/bridge/tc358764.c @@ -375,7 +375,6 @@ static int tc358764_attach(struct drm_bridge *bridge, drm_connector_attach_encoder(&ctx->connector, bridge->encoder); drm_panel_attach(ctx->panel, &ctx->connector); ctx->connector.funcs->reset(&ctx->connector); - drm_connector_register(&ctx->connector); return 0; } @@ -384,10 +383,8 @@ static void tc358764_detach(struct drm_bridge *bridge) { struct tc358764 *ctx = bridge_to_tc358764(bridge); - drm_connector_unregister(&ctx->connector); drm_panel_detach(ctx->panel); ctx->panel = NULL; - drm_connector_put(&ctx->connector); } static const struct drm_bridge_funcs tc358764_bridge_funcs = { From patchwork Fri Jul 3 19:24:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642747 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5B7E760D for ; Fri, 3 Jul 2020 19:24:43 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3167320884 for ; Fri, 3 Jul 2020 19:24:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZASSYPpr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3167320884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5FCA56EBB3; Fri, 3 Jul 2020 19:24:35 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8D67E6EBB1 for ; Fri, 3 Jul 2020 19:24:31 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id e8so3919804ljb.0 for ; Fri, 03 Jul 2020 12:24:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=F+9ADDByH21le+8zG13U5csfCtz+PMsoryQTuXOQ1W0=; b=ZASSYPprHMF5zWeC1nKh4RtLV99MxGQBpjWA4pZpNM3vIzkMKApAEAkRoZtKxfyGiY /Oaaq2IJlMtD8ybYMsXlIbIIlg0m3UjXNrXcbRMBGK8WB0rmPKxnz/GpfFLp6ksQNA7Z B/ebFHj1FkOsjvu/wupydBnnzyeQsTl8Yg3qtePF8mYQoFNbfxjSKipjVIlG+fx8Nq20 pOsuABclFvSwE6Z0woHFb2kgg1DqG86KYL6/+xf014Bt5GJLfBjMHXs54zSf6II/TRAu BM88ZJ0GR2U0rKJkVCjtKs9ADv4BtwyA3oed536G5fUoENHdZiXfLv7Oy06bvfKsGVSU OfNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=F+9ADDByH21le+8zG13U5csfCtz+PMsoryQTuXOQ1W0=; b=k8bA+VH8Hs6iFGcX0Ac7z99kEjOIBGjaZO1Ylus1i90BYhTEY/sjk2utdqA347LVAc PyFkMsNC25F2uU2kz5LlXX1VjahPCwz/bXesfWaf4cnhPRsRFCs4CWTsTFl9Jb8tTd9b d3Zb1tnSYr0PM8mw3yjyxX30AMZ36Nn0kPX8EABv0hrcd1NzziXTp1OG93G08DvMYEaX yyiz1LS1GN+mdf+nT6bNQZQOsojXCTifXkwKHNR76N9ISvfzOFH4blQJoC7u5MX74wZg jsHgH4VqCBwkZ5xoFLxRvwa+30+Hzji4XaBaDl6HhCFi0ku6Jk/pFeqQYQ7yNoj0yu99 CHOA== X-Gm-Message-State: AOAM533IoBNU++MNi1CE9c3oHoo0vvGjFFf/g2OTVe/EZ+lOmLaSJWFZ PD3hVW7uu4A4KQNXs2eNLs1334J11+Y= X-Google-Smtp-Source: ABdhPJzZkY6FhAI1nODayisYB2ITYisNGnRpoLiC1OnhKeqZF15R14YL3vX4ej4O7K1iCoCC7fQ/IA== X-Received: by 2002:a2e:94c9:: with SMTP id r9mr20161577ljh.445.1593804269564; Fri, 03 Jul 2020 12:24:29 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:29 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 04/21] drm/bridge: tc358764: add drm_panel_bridge support Date: Fri, 3 Jul 2020 21:24:00 +0200 Message-Id: <20200703192417.372164-5-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Laurent Pinchart , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Prepare the bridge driver for use in a chained setup by replacing direct use of drm_panel with drm_panel_bridge support. The bridge panel will use the connector type reported by the panel, where the connector for this driver hardcode DRM_MODE_CONNECTOR_LVDS. v2: - Use PTR_ERR_OR_ZERO() (kbuild test robot) Signed-off-by: Sam Ravnborg Reviewed-by: Laurent Pinchart Cc: kbuild test robot Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/tc358764.c | 57 ++++++++----------------------- 1 file changed, 14 insertions(+), 43 deletions(-) diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c index a277739fab58..e1f052a4f53b 100644 --- a/drivers/gpu/drm/bridge/tc358764.c +++ b/drivers/gpu/drm/bridge/tc358764.c @@ -156,7 +156,7 @@ struct tc358764 { struct drm_connector connector; struct regulator_bulk_data supplies[ARRAY_SIZE(tc358764_supplies)]; struct gpio_desc *gpio_reset; - struct drm_panel *panel; + struct drm_bridge *panel_bridge; int error; }; @@ -282,7 +282,7 @@ static int tc358764_get_modes(struct drm_connector *connector) { struct tc358764 *ctx = connector_to_tc358764(connector); - return drm_panel_get_modes(ctx->panel, connector); + return drm_bridge_get_modes(ctx->panel_bridge, connector); } static const @@ -298,23 +298,11 @@ static const struct drm_connector_funcs tc358764_connector_funcs = { .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; -static void tc358764_disable(struct drm_bridge *bridge) -{ - struct tc358764 *ctx = bridge_to_tc358764(bridge); - int ret = drm_panel_disable(bridge_to_tc358764(bridge)->panel); - - if (ret < 0) - dev_err(ctx->dev, "error disabling panel (%d)\n", ret); -} - static void tc358764_post_disable(struct drm_bridge *bridge) { struct tc358764 *ctx = bridge_to_tc358764(bridge); int ret; - ret = drm_panel_unprepare(ctx->panel); - if (ret < 0) - dev_err(ctx->dev, "error unpreparing panel (%d)\n", ret); tc358764_reset(ctx); usleep_range(10000, 15000); ret = regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); @@ -335,18 +323,6 @@ static void tc358764_pre_enable(struct drm_bridge *bridge) ret = tc358764_init(ctx); if (ret < 0) dev_err(ctx->dev, "error initializing bridge (%d)\n", ret); - ret = drm_panel_prepare(ctx->panel); - if (ret < 0) - dev_err(ctx->dev, "error preparing panel (%d)\n", ret); -} - -static void tc358764_enable(struct drm_bridge *bridge) -{ - struct tc358764 *ctx = bridge_to_tc358764(bridge); - int ret = drm_panel_enable(ctx->panel); - - if (ret < 0) - dev_err(ctx->dev, "error enabling panel (%d)\n", ret); } static int tc358764_attach(struct drm_bridge *bridge, @@ -356,6 +332,11 @@ static int tc358764_attach(struct drm_bridge *bridge, struct drm_device *drm = bridge->dev; int ret; + ret = drm_bridge_attach(bridge->encoder, ctx->panel_bridge, + bridge, flags); + if (ret < 0) + return ret; + if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { DRM_ERROR("Fix bridge driver to make connector optional!"); return -EINVAL; @@ -373,32 +354,21 @@ static int tc358764_attach(struct drm_bridge *bridge, drm_connector_helper_add(&ctx->connector, &tc358764_connector_helper_funcs); drm_connector_attach_encoder(&ctx->connector, bridge->encoder); - drm_panel_attach(ctx->panel, &ctx->connector); ctx->connector.funcs->reset(&ctx->connector); return 0; } -static void tc358764_detach(struct drm_bridge *bridge) -{ - struct tc358764 *ctx = bridge_to_tc358764(bridge); - - drm_panel_detach(ctx->panel); - ctx->panel = NULL; -} - static const struct drm_bridge_funcs tc358764_bridge_funcs = { - .disable = tc358764_disable, .post_disable = tc358764_post_disable, - .enable = tc358764_enable, .pre_enable = tc358764_pre_enable, .attach = tc358764_attach, - .detach = tc358764_detach, }; static int tc358764_parse_dt(struct tc358764 *ctx) { struct device *dev = ctx->dev; + struct drm_panel *panel; int ret; ctx->gpio_reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); @@ -407,12 +377,13 @@ static int tc358764_parse_dt(struct tc358764 *ctx) return PTR_ERR(ctx->gpio_reset); } - ret = drm_of_find_panel_or_bridge(ctx->dev->of_node, 1, 0, &ctx->panel, - NULL); - if (ret && ret != -EPROBE_DEFER) - dev_err(dev, "cannot find panel (%d)\n", ret); + ret = drm_of_find_panel_or_bridge(dev->of_node, 1, 0, &panel, NULL); + if (ret) + return ret; - return ret; + ctx->panel_bridge = devm_drm_panel_bridge_add(dev, panel); + + return PTR_ERR_OR_ZERO(ctx->panel_bridge); } static int tc358764_configure_regulators(struct tc358764 *ctx) From patchwork Fri Jul 3 19:24:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642743 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5197A60D for ; Fri, 3 Jul 2020 19:24:39 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3039820884 for ; Fri, 3 Jul 2020 19:24:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UOoqK6Io" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3039820884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3FAC26EBAF; Fri, 3 Jul 2020 19:24:34 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9588A6EBAF for ; Fri, 3 Jul 2020 19:24:32 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id n23so38239636ljh.7 for ; Fri, 03 Jul 2020 12:24:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=upzKaX2sdtPakB1l/KiuyqSYjHSkt6QVUVYFcE/BE7M=; b=UOoqK6IoNfYLUqo5GuwbLxLzgxJbHsNIH9iKcTVG8SpBEZrwJtbEVkMS3yJ7FD1PPo 2ldxFeJTkB8UngqEuZj+A1yyJJFjOVE8QY50T0aio4VsIGGCd+2nABBJUv7M22RFyybW WMpXdpBPhdPbp/pL27BhG/wE+XTjT1pdGdEBjTM9fy/hVTPEPCRftyIPSIL4ivERBGH6 Ni9r+L45C6kFRaTaqb0cjd2pzF6Jtk4D2C1eIu/okcO1/rAJgjjZvpreJV55C4GmvnvL itfhfA0ULQ7A35fx/QXyeFdsyMhZLzai/H4h3R2HUQCGVIN9+0LIolC4sc/By3Uh+Klf 8pZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=upzKaX2sdtPakB1l/KiuyqSYjHSkt6QVUVYFcE/BE7M=; b=oPztNo1qf1ga6NoX4+yxSpaGu/6+Iv6x7KTHb4f6deQd9bS+BNGdD1pfE0zNqxMpaS gBj9II0RjtOVgKaU1q0D6Mr9GGiJPTMkEAPyWeaUc0Of0UhAv7WfzvjT/a4gUzCCyWNg UjWR7KI84iTsR1w7docbnwKxYxMshpgyntD3/g0IT3duTnItycRG1MNl/ZFRkNgJKx6R 3ELIzx6ZZz0+tLl3NNclmO07ys9OyUAec/JtoAmLj8yhg7vkeAZVrBww7zEhr8fJs5NI eRzoXR8Bj+4bu20hDy/8mWrjP4iH5i8IDJEV2nImpuqMX+spTc0HuW9cLClOSEBB3flz 5x5w== X-Gm-Message-State: AOAM532TXpNlSxR/3AOeDsbRn6K5I2m8tmhVlfl/KILucfpXAuyAPAN9 Wn6BHJ5C2Gjp+Rgjmjb2zExscgr1E5A= X-Google-Smtp-Source: ABdhPJykQR/VPfjTnrKxvUZMWgvEhBv2VxoKyPt81Wx8E8oO+NMAn8JhUa8KhMHYm3CQyp7gTqt53g== X-Received: by 2002:a2e:9050:: with SMTP id n16mr20052513ljg.376.1593804270746; Fri, 03 Jul 2020 12:24:30 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:30 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 05/21] drm/bridge: tc358764: make connector creation optional Date: Fri, 3 Jul 2020 21:24:01 +0200 Message-Id: <20200703192417.372164-6-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Laurent Pinchart , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Make the connector creation optional to enable usage of the tc358764 bridge with the DRM bridge connector helper. Signed-off-by: Sam Ravnborg Reviewed-by: Laurent Pinchart Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/tc358764.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c index e1f052a4f53b..4477224e5079 100644 --- a/drivers/gpu/drm/bridge/tc358764.c +++ b/drivers/gpu/drm/bridge/tc358764.c @@ -337,10 +337,8 @@ static int tc358764_attach(struct drm_bridge *bridge, if (ret < 0) return ret; - if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { - DRM_ERROR("Fix bridge driver to make connector optional!"); - return -EINVAL; - } + if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) + return 0; ctx->connector.polled = DRM_CONNECTOR_POLL_HPD; ret = drm_connector_init(drm, &ctx->connector, From patchwork Fri Jul 3 19:24:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642745 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 58EB060D for ; Fri, 3 Jul 2020 19:24:41 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3769820884 for ; Fri, 3 Jul 2020 19:24:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GE1XSHq2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3769820884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B803B6EBB1; Fri, 3 Jul 2020 19:24:34 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8D3B56EBAF for ; Fri, 3 Jul 2020 19:24:33 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id q4so2472273lji.2 for ; Fri, 03 Jul 2020 12:24:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=crdsSYeE4Qjzpa6opYHv3IzGu7g1/qn81b/kyQvWzfg=; b=GE1XSHq2LB+NlblPoknxD8pJahuramxLr8jS7yhU3ooxI+CTZD1fbSIZGeAZa9P/0l idAgZAMv8hdKgEbUBk9PJouyuMfsWtRMLv1z64xkJ6vNZ6vvTLUKR8CHpDpkhZISbU/P 8AamrsjR/OSBESKaHHuINPybfn3aa78uyi4Txy1o87ABImBp8HPyho++lTsNUAf3erJR /f03ZTKoz7knPduoaFFJAIJz7gCLiT2lnM6wnlvnX2KyWdqsEIXSMy9JKqne8u/QRnza p0auqc/GUbVWZ6UXcguA0FSKr3knZKnNA0XOgXnDx5LwENwvPR/KjNarf/PxWcNASjIf g/yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=crdsSYeE4Qjzpa6opYHv3IzGu7g1/qn81b/kyQvWzfg=; b=Yc6+2G8W9lgiVmk8U2p+LnnwKZZ4lexggBupeFlCWxzXYHYPxrnwMQn9ETZCbrMX1l 3Xz1RmcvCVLOY2CoV0TGVkLkih5XEuoX4e5V9eY3qZxWKFeh+5TNenOaKtLMUo7WuafY dYJkljd4HhpTfVjREgnh74EHCPoTUMZOPsoY51aFHjWtJrexGyVf8TIAOtxgvDIe3Ui1 25RP3hlNmicv3rx694gwOjmUB9ftw5LCW3wipG1xdCr7IxCZDMqxWF7SJNdUxS4GT+np WOk0Y90n7jZToML916Bkzn+6lVbESwIKi6SLO6qKOWIbOQ8qmrWAKmit/Id3cfEgmmav tjnQ== X-Gm-Message-State: AOAM532LKGcAYofKP30CqNeeqEe1b8TDw1qzbmbebGYu5qFqet/a+C8l rCD4Kzj2HJzirc/ApMXuaBjzeiZVG5c= X-Google-Smtp-Source: ABdhPJywLPlQKN+mgmBPG5s4kYeuFL/9zKCiiM1YazEl0PCKdDHbQbqzYN/HbhN/XrXfH4ykRiir9Q== X-Received: by 2002:a2e:b5ab:: with SMTP id f11mr20322180ljn.438.1593804271671; Fri, 03 Jul 2020 12:24:31 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:31 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 06/21] drm/bridge: tc358767: add drm_panel_bridge support Date: Fri, 3 Jul 2020 21:24:02 +0200 Message-Id: <20200703192417.372164-7-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Prepare the bridge driver for use in a chained setup by replacing direct use of drm_panel with drm_panel_bridge support. The bridge driver assume the panel is optional. The relevant tests are migrated over to check for the pnale bridge to keep the same functionality. Note: the bridge panel will use the connector type from the panel. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec Reviewed-by: Laurent Pinchart --- drivers/gpu/drm/bridge/tc358767.c | 57 +++++++++++++++---------------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c index c2777b226c75..08d483664258 100644 --- a/drivers/gpu/drm/bridge/tc358767.c +++ b/drivers/gpu/drm/bridge/tc358767.c @@ -244,8 +244,8 @@ struct tc_data { struct drm_dp_aux aux; struct drm_bridge bridge; + struct drm_bridge *panel_bridge; struct drm_connector connector; - struct drm_panel *panel; /* link settings */ struct tc_edp_link link; @@ -1236,13 +1236,6 @@ static int tc_stream_disable(struct tc_data *tc) return 0; } -static void tc_bridge_pre_enable(struct drm_bridge *bridge) -{ - struct tc_data *tc = bridge_to_tc(bridge); - - drm_panel_prepare(tc->panel); -} - static void tc_bridge_enable(struct drm_bridge *bridge) { struct tc_data *tc = bridge_to_tc(bridge); @@ -1266,8 +1259,6 @@ static void tc_bridge_enable(struct drm_bridge *bridge) tc_main_link_disable(tc); return; } - - drm_panel_enable(tc->panel); } static void tc_bridge_disable(struct drm_bridge *bridge) @@ -1275,8 +1266,6 @@ static void tc_bridge_disable(struct drm_bridge *bridge) struct tc_data *tc = bridge_to_tc(bridge); int ret; - drm_panel_disable(tc->panel); - ret = tc_stream_disable(tc); if (ret < 0) dev_err(tc->dev, "main link stream stop error: %d\n", ret); @@ -1286,13 +1275,6 @@ static void tc_bridge_disable(struct drm_bridge *bridge) dev_err(tc->dev, "main link disable error: %d\n", ret); } -static void tc_bridge_post_disable(struct drm_bridge *bridge) -{ - struct tc_data *tc = bridge_to_tc(bridge); - - drm_panel_unprepare(tc->panel); -} - static bool tc_bridge_mode_fixup(struct drm_bridge *bridge, const struct drm_display_mode *mode, struct drm_display_mode *adj) @@ -1348,9 +1330,11 @@ static int tc_connector_get_modes(struct drm_connector *connector) return 0; } - count = drm_panel_get_modes(tc->panel, connector); - if (count > 0) - return count; + if (tc->panel_bridge) { + count = drm_bridge_get_modes(tc->panel_bridge, connector); + if (count > 0) + return count; + } edid = drm_get_edid(connector, &tc->aux.ddc); @@ -1378,7 +1362,7 @@ static enum drm_connector_status tc_connector_detect(struct drm_connector *conne int ret; if (tc->hpd_pin < 0) { - if (tc->panel) + if (tc->panel_bridge) return connector_status_connected; else return connector_status_unknown; @@ -1413,6 +1397,13 @@ static int tc_bridge_attach(struct drm_bridge *bridge, struct drm_device *drm = bridge->dev; int ret; + if (tc->panel_bridge) { + ret = drm_bridge_attach(tc->bridge.encoder, tc->panel_bridge, + &tc->bridge, flags); + if (ret < 0) + return ret; + } + if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { DRM_ERROR("Fix bridge driver to make connector optional!"); return -EINVAL; @@ -1421,7 +1412,7 @@ static int tc_bridge_attach(struct drm_bridge *bridge, /* Create DP/eDP connector */ drm_connector_helper_add(&tc->connector, &tc_connector_helper_funcs); ret = drm_connector_init(drm, &tc->connector, &tc_connector_funcs, - tc->panel ? DRM_MODE_CONNECTOR_eDP : + tc->panel_bridge ? DRM_MODE_CONNECTOR_eDP : DRM_MODE_CONNECTOR_DisplayPort); if (ret) return ret; @@ -1435,9 +1426,6 @@ static int tc_bridge_attach(struct drm_bridge *bridge, DRM_CONNECTOR_POLL_DISCONNECT; } - if (tc->panel) - drm_panel_attach(tc->panel, &tc->connector); - drm_display_info_set_bus_formats(&tc->connector.display_info, &bus_format, 1); tc->connector.display_info.bus_flags = @@ -1453,10 +1441,8 @@ static const struct drm_bridge_funcs tc_bridge_funcs = { .attach = tc_bridge_attach, .mode_valid = tc_mode_valid, .mode_set = tc_bridge_mode_set, - .pre_enable = tc_bridge_pre_enable, .enable = tc_bridge_enable, .disable = tc_bridge_disable, - .post_disable = tc_bridge_post_disable, .mode_fixup = tc_bridge_mode_fixup, }; @@ -1547,6 +1533,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) static int tc_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct device *dev = &client->dev; + struct drm_panel *panel; struct tc_data *tc; int ret; @@ -1557,10 +1544,20 @@ static int tc_probe(struct i2c_client *client, const struct i2c_device_id *id) tc->dev = dev; /* port@2 is the output port */ - ret = drm_of_find_panel_or_bridge(dev->of_node, 2, 0, &tc->panel, NULL); + ret = drm_of_find_panel_or_bridge(dev->of_node, 2, 0, &panel, NULL); if (ret && ret != -ENODEV) return ret; + if (panel) { + struct drm_bridge *pbridge; + + pbridge = devm_drm_panel_bridge_add(dev, panel); + if (IS_ERR(pbridge)) + return PTR_ERR(pbridge); + + tc->panel_bridge = pbridge; + } + /* Shut down GPIO is optional */ tc->sd_gpio = devm_gpiod_get_optional(dev, "shutdown", GPIOD_OUT_HIGH); if (IS_ERR(tc->sd_gpio)) From patchwork Fri Jul 3 19:24:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642749 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 41F6A60D for ; Fri, 3 Jul 2020 19:24:45 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1FF8E20884 for ; Fri, 3 Jul 2020 19:24:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TeaSiOj9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1FF8E20884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EA35E6EBB5; Fri, 3 Jul 2020 19:24:36 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 715F76EBB1 for ; Fri, 3 Jul 2020 19:24:34 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id f5so22319699ljj.10 for ; Fri, 03 Jul 2020 12:24:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ilng7Kli1eWnVw7MJjFUyca35KB0/YCP9yYYScKjbC0=; b=TeaSiOj9gn1A0rNDXlPuQ4OTzPmhaF8BAZD7FjCGWy2+wzMKiWEuYZ02f8Ub7A9la/ 41lyDILt+r94E08GP1QeEfCczgVdSBfs9/i806mKQ790Sz3fDca+ALTjkB2CwvyvP+yv /B9i9LsXDt6eT5v/64k5/UKhB8LHcyJ683aTZ/7rR54ANwe5tipav27EKHvhsZaObozZ DYH8F1I+mOLTMLuM9B+7OPF0FWtQMzdz782s44znIqcfKuV1LH96x4Ts59ZamAV8bWcO gBgk9AcGBYyio1casBP8Zk2jMUnFbuxax5f73RX9JTQ19Pk6P4qNlHIHQs7KP3E3HMhv Wmsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ilng7Kli1eWnVw7MJjFUyca35KB0/YCP9yYYScKjbC0=; b=D0cyhT6BtcBUS+impr6JmyVyQMk2tN09Laa1+ZUwLXfJzYv8rMv9PC5PT2Ip08bspB w5TtusJrHeAbS10Pe4MzXDfaIfBQkI9/W3CLtNnO0sCKM5TjMzQwEHYWFaJjE0LdiBm6 fc+zRRFyqweDTuYm2rW5TvIA0UABZa5mhT3sqXDBfDRWCsMRzB7yvgppjuBmuprtrC2f lLSxrPyn4BDiXRyogA/MIirPDXE5rE/lxv13GqKh91VCHma9tsbygqwkIn7tv0eEbxnD m80CEDYr9RVjoc1QpnRp9kKl0Ox+0I7OPf7htYg+rvDvwFLzFfjC1rTJz+kkJwz9M5EZ vz/g== X-Gm-Message-State: AOAM533QsscIC7vScnNa34lS+G5uKpPQCOb3/c9KtlLsGeABx/vOctWs ejlks6v9HAGpgnuxXNEtqLCYxQD9AZI= X-Google-Smtp-Source: ABdhPJzaQy5t3p238WDml+i7GzrZK/eS/gTfJJwX+dipxppk8hHtY5iPAIb8sH8TN9MlnVNmTRzmOw== X-Received: by 2002:a2e:9957:: with SMTP id r23mr21417154ljj.127.1593804272668; Fri, 03 Jul 2020 12:24:32 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:32 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 07/21] drm/bridge: tc358767: add detect bridge operation Date: Fri, 3 Jul 2020 21:24:03 +0200 Message-Id: <20200703192417.372164-8-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Prepare the bridge driver for chained operation by adding support for the detect operation. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/tc358767.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c index 08d483664258..85973ae728db 100644 --- a/drivers/gpu/drm/bridge/tc358767.c +++ b/drivers/gpu/drm/bridge/tc358767.c @@ -1353,10 +1353,9 @@ static const struct drm_connector_helper_funcs tc_connector_helper_funcs = { .get_modes = tc_connector_get_modes, }; -static enum drm_connector_status tc_connector_detect(struct drm_connector *connector, - bool force) +static enum drm_connector_status tc_bridge_detect(struct drm_bridge *bridge) { - struct tc_data *tc = connector_to_tc(connector); + struct tc_data *tc = bridge_to_tc(bridge); bool conn; u32 val; int ret; @@ -1380,6 +1379,14 @@ static enum drm_connector_status tc_connector_detect(struct drm_connector *conne return connector_status_disconnected; } +static enum drm_connector_status +tc_connector_detect(struct drm_connector *connector, bool force) +{ + struct tc_data *tc = connector_to_tc(connector); + + return tc_bridge_detect(&tc->bridge); +} + static const struct drm_connector_funcs tc_connector_funcs = { .detect = tc_connector_detect, .fill_modes = drm_helper_probe_single_connector_modes, @@ -1444,6 +1451,7 @@ static const struct drm_bridge_funcs tc_bridge_funcs = { .enable = tc_bridge_enable, .disable = tc_bridge_disable, .mode_fixup = tc_bridge_mode_fixup, + .detect = tc_bridge_detect, }; static bool tc_readable_reg(struct device *dev, unsigned int reg) @@ -1677,6 +1685,8 @@ static int tc_probe(struct i2c_client *client, const struct i2c_device_id *id) return ret; tc->bridge.funcs = &tc_bridge_funcs; + tc->bridge.ops = DRM_BRIDGE_OP_DETECT; + tc->bridge.of_node = dev->of_node; drm_bridge_add(&tc->bridge); From patchwork Fri Jul 3 19:24:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642751 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0563D13B6 for ; Fri, 3 Jul 2020 19:24:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D81FF20884 for ; Fri, 3 Jul 2020 19:24:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="D7Ja3Rdp" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D81FF20884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 979BF6EBB6; Fri, 3 Jul 2020 19:24:37 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6DF7F6EBB4 for ; Fri, 3 Jul 2020 19:24:35 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id q7so24949919ljm.1 for ; Fri, 03 Jul 2020 12:24:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JTVWqiM+BduXPJ5UHraanNT3752gujcMuWty5rcw5eg=; b=D7Ja3RdppZYNgVhoDnm+xi6k53gtN20Hp5ov4Ds/Aud82vjrjKwtdXAZEo4P+MQTIg fRN4zxHR8GfoNDLKVw34Uha15JiQsPF3E7t/X29ABWz2rNDZW4x+9JgDCAtfCrzZY5NV wJAU2D+GWtktk7y649Xt6Acllh1YShVDYaplL+woLSW9w/pjRVUydqX8+3ItRv44uUNw 0cFGx2xhoy+gEiITBRNev2aAayhRXVMHhkb4Hgw+w9AqKQ/TfEQUMCBgyodtLhmQilDH 7OcdGa2nGnXcOliuvzudws8yYPatL6QUTGoDboNHna2d/2b2XJ0N1JrMVEOQe8sFrzVJ ePmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=JTVWqiM+BduXPJ5UHraanNT3752gujcMuWty5rcw5eg=; b=J60N7UUC13JfSFZmYd0XVTD1sOGhtKRzRDOjHE4gDVwkNvdBO1PtvU4/Mu5MkG9dMS ZbuogfKe24rCQHib9Lzzv+NJ9aw7dALoVJSfdi0jDZth2pAxwcBnhUQSk0rv86jmRZVR zBiFTmgEYyU8zIcI1gGhR8a8H4Ejba7fYdTv6sVQAOowow1rKzvgJDh0ujPx6JbXRhNz a1u/S5mAyjXBUHQ5/vJt16t+0Wb95wOFTzgU9K4rIgvR7mukyrmWnKavvIZ0jOJdIUX2 70v3PsnWoU2AIMtUHjE1jEljwLJ8dXXuUmpSv9buV6xv3kgY6NVeFx/gEMv1hKABm6mY N2GQ== X-Gm-Message-State: AOAM5336s35TR1UdGpxWZrDx6dL4pghiYWFBtyCUzPuMym3iV5YmlHeZ 00qisD5jx+ouaPUX92J4k68JJVqsH1o= X-Google-Smtp-Source: ABdhPJw681iNMMANohG3+mI5Qnm4pgJd1xB6GYXHDWDaPC/8q4wyZhl2u/tf7XvlrB5G/Pffvm60FA== X-Received: by 2002:a2e:6c06:: with SMTP id h6mr18541373ljc.282.1593804273572; Fri, 03 Jul 2020 12:24:33 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:33 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 08/21] drm/bridge: tc358767: add get_edid bride operation Date: Fri, 3 Jul 2020 21:24:04 +0200 Message-Id: <20200703192417.372164-9-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Prepare for chained bridge with the addition of get_edid support. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/tc358767.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c index 85973ae728db..fb9d57967b2c 100644 --- a/drivers/gpu/drm/bridge/tc358767.c +++ b/drivers/gpu/drm/bridge/tc358767.c @@ -1317,6 +1317,20 @@ static void tc_bridge_mode_set(struct drm_bridge *bridge, tc->mode = *mode; } +static struct edid *tc_get_edid(struct drm_bridge *bridge, + struct drm_connector *connector) +{ + struct tc_data *tc = bridge_to_tc(bridge); + struct edid *edid; + + edid = drm_get_edid(connector, &tc->aux.ddc); + + kfree(tc->edid); + tc->edid = edid; + + return edid; +} + static int tc_connector_get_modes(struct drm_connector *connector) { struct tc_data *tc = connector_to_tc(connector); @@ -1336,12 +1350,7 @@ static int tc_connector_get_modes(struct drm_connector *connector) return count; } - edid = drm_get_edid(connector, &tc->aux.ddc); - - kfree(tc->edid); - tc->edid = edid; - if (!edid) - return 0; + edid = tc_get_edid(&tc->bridge, connector); drm_connector_update_edid_property(connector, edid); count = drm_add_edid_modes(connector, edid); @@ -1452,6 +1461,7 @@ static const struct drm_bridge_funcs tc_bridge_funcs = { .disable = tc_bridge_disable, .mode_fixup = tc_bridge_mode_fixup, .detect = tc_bridge_detect, + .get_edid = tc_get_edid, }; static bool tc_readable_reg(struct device *dev, unsigned int reg) @@ -1685,7 +1695,7 @@ static int tc_probe(struct i2c_client *client, const struct i2c_device_id *id) return ret; tc->bridge.funcs = &tc_bridge_funcs; - tc->bridge.ops = DRM_BRIDGE_OP_DETECT; + tc->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID; tc->bridge.of_node = dev->of_node; drm_bridge_add(&tc->bridge); From patchwork Fri Jul 3 19:24:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642755 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CEE0160D for ; Fri, 3 Jul 2020 19:24:49 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id ADA7720884 for ; Fri, 3 Jul 2020 19:24:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MMNrxqdO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ADA7720884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BF67D6EBB4; Fri, 3 Jul 2020 19:24:39 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 377C66EBB4 for ; Fri, 3 Jul 2020 19:24:36 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id t25so33590736lji.12 for ; Fri, 03 Jul 2020 12:24:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FQnhieVsd4eVB3uyKCGQN4vwKBBwB/LJbtTCKWQkRrE=; b=MMNrxqdOwWH+xExZcP8P4B8ISHK6/P4/FckJXwM42G6BGC4I/U2wjM+9RvY+Oqrne3 doSzp3O+/PgfdNo8mJNBpM2LqysK5N6sK1o7w/VUUlLYUkqBhxhcpMf1BR96N5fd/BRc aNSvZefp2lgczkkFceEOHEgVooAGgA9xAspGAl8PS4snh7U2N9/6/8dE1j8eZqXlJLoy Em4gLrhmOMtg9Rv6zNgz4h75LpW4aZpW5ZeQa70gf/k9I1eQama8epjEmJdNH94V+p98 K2VoXdMOn58ptuRoCBbIVr+LggqqKQh+p2QgPwK85372rx8JpVGMz0lc3QiCrAbFI0MS Wqnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=FQnhieVsd4eVB3uyKCGQN4vwKBBwB/LJbtTCKWQkRrE=; b=m1Y2CLtlkJjEXH8xCHz70JhiEoPjD6thdqV5xow07CdGocGbWlhOEg+7+to0XQya1l jlIaU/Gnx1RYXyhSN5+NAvy20CnT6lCB7Z4VvfYZkaAzs/fqS9lEoP5UA4kAOfhbTMod SCk3KDj+uVKds2zVd6nb/+iwnlRjAxRonTVZ9P6E/pbo+hLjlNGZIFPuJ7/QSVfZPJQq gMbPHkNFzelN7lguQrNwR8iGV+pIkIa4ASyzOCUcZdKOr4bb82YdfL+ux0w8icU2yyz0 sXXNgkZFRi4Qc4N2t6yp8uhXAUdka/PJsYdXhUGTm/VfUoVPyAAOyFOj5lw40fQmaZM3 T+Rw== X-Gm-Message-State: AOAM530F7yutwf2UZjuOgxwf4HAOgKmk366Yu7FS2xP9F5pnBSKtUSFd NI5VMVWyEOdnr8YGLdTcR/OLV5kdZ3I= X-Google-Smtp-Source: ABdhPJw6fyJVeCwX3WveGpOmXlM5QBx6VyIkDKORneY3LySODLv6FMcWdDRf+qhOs2Vi70BJyJgXzA== X-Received: by 2002:a05:651c:200f:: with SMTP id s15mr8019656ljo.125.1593804274493; Fri, 03 Jul 2020 12:24:34 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:34 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 09/21] drm/bridge: tc358767: make connector creation optional Date: Fri, 3 Jul 2020 21:24:05 +0200 Message-Id: <20200703192417.372164-10-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Display drivers are in the new model expected to create the connector using drm_bridge_connector_init(). Allow users of this bridge driver to support the new model by introducing support for optional connector creation. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec Reviewed-by: Laurent Pinchart --- drivers/gpu/drm/bridge/tc358767.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c index fb9d57967b2c..2eb00d39f619 100644 --- a/drivers/gpu/drm/bridge/tc358767.c +++ b/drivers/gpu/drm/bridge/tc358767.c @@ -1421,8 +1421,7 @@ static int tc_bridge_attach(struct drm_bridge *bridge, } if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { - DRM_ERROR("Fix bridge driver to make connector optional!"); - return -EINVAL; + return 0; } /* Create DP/eDP connector */ From patchwork Fri Jul 3 19:24:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642753 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 63DEC13B6 for ; Fri, 3 Jul 2020 19:24:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 426B620884 for ; Fri, 3 Jul 2020 19:24:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UMjMfU6y" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 426B620884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2D9976EBB8; Fri, 3 Jul 2020 19:24:38 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F39B6EBB4 for ; Fri, 3 Jul 2020 19:24:37 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id f5so22319820ljj.10 for ; Fri, 03 Jul 2020 12:24:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RisCUIYlCvVCA+CdEN3VYNEikSkgYtLF2Zy29I141ko=; b=UMjMfU6y+/Sj3L9Dc9fJp3OO4+TY9skiVDfX5AQNF66T3GY5thmKchqomDgxwqKPZG VHoByIAuv7aO5weuZLvuwqmUXuJ6F18eURlyvPnLtoTh4N98a0oYN6u4BPHaQI+80oTR anvpbwQqOJgs2T1DJcdu9IZekkjZf2JXE9jDpyOiM4g1mqkdkG9e3wK2Om4smol4P+aV Jf5rwVVs9jdjilQsElpGZHIdhK7lvJPvNaERQcir2pIUEDK2EbrpHxzM3O8eoPNVtLOM AKLKTHwOjq3LlZTif5CjpzS577tvoaWKiH7ytcKEoCgp3Zjua2FoVOk5HQTk0qCpdzr5 KO8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=RisCUIYlCvVCA+CdEN3VYNEikSkgYtLF2Zy29I141ko=; b=AoO79N+bcP1pTtqGmXwdI7m1hMthO6XU5D7bu2L/TMEqfQDDN88DUcvF9WxfNyYz8i M04fJwUpbixcx1XiQDdFwEq8vKVNNloTnzmqwFNBRWFAX6TcAsXiNioqgAo3KVM0wuR5 sPZ4OacQgjStHzKEWs5+tKurTAAeQEvHvqGIm06woYXna4zuH6hJJjjxBABxRWRDyPvo yiLk80xdjuEFdoJJlXM718S6gj5jREThcVnjSZlQhUSrN2qSXImSlO1WLKuNjlraCw7y H6313yDTAlqQBmYsHMbxi0PG6T8XHaWpJlKM3PYfYKcClz+ovgMKzHlJBeTtVyiW5nWv EEaw== X-Gm-Message-State: AOAM531XKMEjCjRja1BF0eHUM1WvBRzqMDPNDHJvBJlgkWPMwlbaah/u 8SznWjiSkGL/VUW+egumFXFg2/DCU/w= X-Google-Smtp-Source: ABdhPJzMK50fMMrPsYVnk856Bxi5KgIc08CYpyIjuxX/jW4ExYQR89SuzqdpHeTSvyfCpdEKMgLHhA== X-Received: by 2002:a2e:9cd8:: with SMTP id g24mr21253782ljj.245.1593804275621; Fri, 03 Jul 2020 12:24:35 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:35 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 10/21] drm/bridge: ti-tpd12s015: make connector creation optional Date: Fri, 3 Jul 2020 21:24:06 +0200 Message-Id: <20200703192417.372164-11-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The ti-tpd12s015 do not create any connector, so ignore the flags argument, just pass it on to the next bridge in the chain. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/ti-tpd12s015.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/ti-tpd12s015.c b/drivers/gpu/drm/bridge/ti-tpd12s015.c index 514cbf0eac75..4f1666422ab2 100644 --- a/drivers/gpu/drm/bridge/ti-tpd12s015.c +++ b/drivers/gpu/drm/bridge/ti-tpd12s015.c @@ -43,9 +43,6 @@ static int tpd12s015_attach(struct drm_bridge *bridge, struct tpd12s015_device *tpd = to_tpd12s015(bridge); int ret; - if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) - return -EINVAL; - ret = drm_bridge_attach(bridge->encoder, tpd->next_bridge, bridge, flags); if (ret < 0) From patchwork Fri Jul 3 19:24:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642757 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6B6DB13B6 for ; Fri, 3 Jul 2020 19:24:51 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 49CA320884 for ; Fri, 3 Jul 2020 19:24:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GQarI06k" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 49CA320884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id F1E9B6EBB9; Fri, 3 Jul 2020 19:24:39 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x141.google.com (mail-lf1-x141.google.com [IPv6:2a00:1450:4864:20::141]) by gabe.freedesktop.org (Postfix) with ESMTPS id 69D596EBB4 for ; Fri, 3 Jul 2020 19:24:38 +0000 (UTC) Received: by mail-lf1-x141.google.com with SMTP id t9so19074961lfl.5 for ; Fri, 03 Jul 2020 12:24:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=B5UFi+Myhc1G+0PO6AW3i0j1KDWVWYjhATwDqBAjUTE=; b=GQarI06kUCuIWrxvVyCVQfnoemHkyqH5w1Tx/DQX+bWxdZCFE+GU5XwRGjD5iISo/V Ld75mgy6zvVcTfek5Udg0NaidJfr2dipswngs4KkdTlZTqzQYp0tad954nqN19kW+42L gs1E4oAPyXvCxGayBHvanT4n79EKcO5UxCuLPSSt9dPSW5CML8otCbhxQ+ReImUH0xom 9+3iA/2ktReJ77KjcmdQ4Lt4jIl6OJ2CMl9VkXx130r2YibM/s3dEk4RQ2/uDCBogoDO P22kB80vHDBKCXlB6k7WlU/VJtPe5rD+OHKoSCq53RNlA3wGAz1ysRuHcIoe/VVKdoNJ jijA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=B5UFi+Myhc1G+0PO6AW3i0j1KDWVWYjhATwDqBAjUTE=; b=dQKaNZezDLq+k6pf/Q7gdSaPbCeDjeAm/uB8fUrd2tT18/5O9shwAOEG/Moj5kNEFD CuO3qacz+6DBo2IvfRxKt28G3o1+Im8Hexp33MPB9EYDY1Y+S2w2qxadza7oVd9Zu1ca nydNfYFPqz1AMxeNktK0uOP/WLdpg28B24oYIMx+F0hL0N2vuBaMaCdq/dRj5AWRex7d aPVxOYMeuQSU6fq02zev+oLYphYAqhBWKfTPQ4TBEYFBPziWifZiazHgf2jdb4vHHYRE /3V7qerU96eMmqhICibXEtChFZ97LSWeJgKiL4XV/xC2b2n8btl4DhQsIDC8E7qJsVsi uriA== X-Gm-Message-State: AOAM530MTES1TAc4j72xttvb9WmuQ0CfNK+teWwZfIKINL9B7jAucUY0 QUtPNHeHoAQRZNgKnv/hQXkRpzXnzDw= X-Google-Smtp-Source: ABdhPJyhBiUQ9SiJoMjOPUUjeiIgo93eOzF5goMYEPWfF4nNr4sHQuW2dpy9LkHQRSP/74zxoya3pQ== X-Received: by 2002:a19:23cc:: with SMTP id j195mr23039290lfj.210.1593804276551; Fri, 03 Jul 2020 12:24:36 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:36 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 11/21] drm/bridge: parade-ps8622: add drm_panel_bridge support Date: Fri, 3 Jul 2020 21:24:07 +0200 Message-Id: <20200703192417.372164-12-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Prepare the bridge driver for use in a chained setup by replacing direct use of drm_panel with drm_panel_bridge support. Note: the bridge panel will use the connector type from the panel. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/parade-ps8622.c | 46 ++++++++------------------ 1 file changed, 13 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c index d789ea2a7fb9..6ab6f60b9091 100644 --- a/drivers/gpu/drm/bridge/parade-ps8622.c +++ b/drivers/gpu/drm/bridge/parade-ps8622.c @@ -45,7 +45,7 @@ struct ps8622_bridge { struct drm_connector connector; struct i2c_client *client; struct drm_bridge bridge; - struct drm_panel *panel; + struct drm_bridge *panel_bridge; struct regulator *v12; struct backlight_device *bl; @@ -365,11 +365,6 @@ static void ps8622_pre_enable(struct drm_bridge *bridge) DRM_ERROR("fails to enable ps8622->v12"); } - if (drm_panel_prepare(ps8622->panel)) { - DRM_ERROR("failed to prepare panel\n"); - return; - } - gpiod_set_value(ps8622->gpio_slp, 1); /* @@ -399,24 +394,8 @@ static void ps8622_pre_enable(struct drm_bridge *bridge) ps8622->enabled = true; } -static void ps8622_enable(struct drm_bridge *bridge) -{ - struct ps8622_bridge *ps8622 = bridge_to_ps8622(bridge); - - if (drm_panel_enable(ps8622->panel)) { - DRM_ERROR("failed to enable panel\n"); - return; - } -} - static void ps8622_disable(struct drm_bridge *bridge) { - struct ps8622_bridge *ps8622 = bridge_to_ps8622(bridge); - - if (drm_panel_disable(ps8622->panel)) { - DRM_ERROR("failed to disable panel\n"); - return; - } msleep(PS8622_PWMO_END_T12_MS); } @@ -436,11 +415,6 @@ static void ps8622_post_disable(struct drm_bridge *bridge) */ gpiod_set_value(ps8622->gpio_slp, 0); - if (drm_panel_unprepare(ps8622->panel)) { - DRM_ERROR("failed to unprepare panel\n"); - return; - } - if (ps8622->v12) regulator_disable(ps8622->v12); @@ -461,7 +435,7 @@ static int ps8622_get_modes(struct drm_connector *connector) ps8622 = connector_to_ps8622(connector); - return drm_panel_get_modes(ps8622->panel, connector); + return drm_bridge_get_modes(ps8622->panel_bridge, connector); } static const struct drm_connector_helper_funcs ps8622_connector_helper_funcs = { @@ -482,6 +456,9 @@ static int ps8622_attach(struct drm_bridge *bridge, struct ps8622_bridge *ps8622 = bridge_to_ps8622(bridge); int ret; + ret = drm_bridge_attach(ps8622->bridge.encoder, ps8622->panel_bridge, + &ps8622->bridge, flags); + if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { DRM_ERROR("Fix bridge driver to make connector optional!"); return -EINVAL; @@ -505,9 +482,6 @@ static int ps8622_attach(struct drm_bridge *bridge, drm_connector_attach_encoder(&ps8622->connector, bridge->encoder); - if (ps8622->panel) - drm_panel_attach(ps8622->panel, &ps8622->connector); - drm_helper_hpd_irq_event(ps8622->connector.dev); return ret; @@ -515,7 +489,6 @@ static int ps8622_attach(struct drm_bridge *bridge, static const struct drm_bridge_funcs ps8622_bridge_funcs = { .pre_enable = ps8622_pre_enable, - .enable = ps8622_enable, .disable = ps8622_disable, .post_disable = ps8622_post_disable, .attach = ps8622_attach, @@ -533,16 +506,23 @@ static int ps8622_probe(struct i2c_client *client, { struct device *dev = &client->dev; struct ps8622_bridge *ps8622; + struct drm_bridge *pbridge; + struct drm_panel *panel; int ret; ps8622 = devm_kzalloc(dev, sizeof(*ps8622), GFP_KERNEL); if (!ps8622) return -ENOMEM; - ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, &ps8622->panel, NULL); + ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, &panel, NULL); if (ret) return ret; + pbridge = devm_drm_panel_bridge_add(dev, panel); + if (IS_ERR(pbridge)) + return PTR_ERR(pbridge); + + ps8622->panel_bridge = pbridge; ps8622->client = client; ps8622->v12 = devm_regulator_get(dev, "vdd12"); From patchwork Fri Jul 3 19:24:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642759 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CDDAC13B6 for ; Fri, 3 Jul 2020 19:24:52 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id ACBD420884 for ; Fri, 3 Jul 2020 19:24:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="md0jMJrG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ACBD420884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A28246EBBB; Fri, 3 Jul 2020 19:24:40 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3AFE36EBBB for ; Fri, 3 Jul 2020 19:24:39 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id t25so33590873lji.12 for ; Fri, 03 Jul 2020 12:24:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pG4sBLdV8sXhjJG9670kJDTdMvHOUXkksq9OtkoN0aw=; b=md0jMJrGaTV3NEIPKpYifFnT8UG0j1dEpQ/Y0JsrpM0TIYfVaJvT0ll7PxI90kCfcM GYAP8L8mnIka/CPcl4gu6uaM48kBDEmVWkXlsRFrutyp7MwvlaxG7jgwI3zbhqIr4c89 4JTswKC9KpEEZ3u5rxgCzuVQW5dXimIeo9KhtvLMamEgNxFGHQqth+kxb9v3AtM5D6F+ mWSAuAGbd0g8zb+M8V5fD8YqQUUNtl2DS+A83XCFKqDQUVr3lpnGvBLDTKIhBbWGTLgx Q2KYzJoX7/Wz7hIcUvtbCpXdQU4w3nCdHeeNbBh+oCr8LEZQbm8g/OADjHmmwVnnU+BO xBJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=pG4sBLdV8sXhjJG9670kJDTdMvHOUXkksq9OtkoN0aw=; b=FF2VgiQry87hXNBDtQyyw2fYGNKoZOLCwV+Dt3eDqcES0JBLucrU5DhSfH73EwTiIG ZFoJX0DNP6UkPpC+01Ggnly2RtnwLpHnm6v4C0qSFHldl83fwwCoX1xq7MSTopNqcVNC aW5FRpkMmmGJG8gxMUrQbHCdWWCPtu72uXWCC4jlPxuKa1Hda9FCmfzFIawSuBlOB7Tu E0TImsYqNxlI/gU7r8ajo1y9Nq3vb8oFHCfjsaxR/Q9DdhpXiubcM7F9pG8bEdSNlkQb hzYAm3T9OE/hd7BfWa/+rR85DooB8d62EcvluDDrztGFXEGGSxHE81FrqQX3M5KehVln SArQ== X-Gm-Message-State: AOAM532LUHkszykmdTI4ENygA384r/PglmhHjTV4Oufad/gYaOGpHNwB USlYeOxJ4Rusl4Q1Y9x1ipVkYZBkGAw= X-Google-Smtp-Source: ABdhPJxNYZPQVS1SAwN5aCudy3pB8pm9g8EJtDJhHHwh1KhMnvrRqIhUOIJXoj3oXV4ljo2rh4Y58A== X-Received: by 2002:a2e:9e58:: with SMTP id g24mr8574736ljk.195.1593804277460; Fri, 03 Jul 2020 12:24:37 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:37 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 12/21] drm/bridge: parade-ps8622: make connector creation optional Date: Fri, 3 Jul 2020 21:24:08 +0200 Message-Id: <20200703192417.372164-13-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Make the connector creation optional to enable usage of the parade-ps8622 bridge with the DRM bridge connector helper. This change moves drm_helper_hpd_irq_event() call in the attach function up before the connector creation. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/parade-ps8622.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c index 6ab6f60b9091..54aa5270d2c9 100644 --- a/drivers/gpu/drm/bridge/parade-ps8622.c +++ b/drivers/gpu/drm/bridge/parade-ps8622.c @@ -459,10 +459,8 @@ static int ps8622_attach(struct drm_bridge *bridge, ret = drm_bridge_attach(ps8622->bridge.encoder, ps8622->panel_bridge, &ps8622->bridge, flags); - if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { - DRM_ERROR("Fix bridge driver to make connector optional!"); - return -EINVAL; - } + if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) + return 0; if (!bridge->encoder) { DRM_ERROR("Parent encoder object not found"); @@ -482,7 +480,7 @@ static int ps8622_attach(struct drm_bridge *bridge, drm_connector_attach_encoder(&ps8622->connector, bridge->encoder); - drm_helper_hpd_irq_event(ps8622->connector.dev); + drm_helper_hpd_irq_event(ps8622->bridge.dev); return ret; } From patchwork Fri Jul 3 19:24:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642761 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 19B4860D for ; Fri, 3 Jul 2020 19:24:54 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EC5BE20884 for ; Fri, 3 Jul 2020 19:24:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mHOq8ZCx" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EC5BE20884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 50E2E6EBBD; Fri, 3 Jul 2020 19:24:42 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2E2CD6EBBA for ; Fri, 3 Jul 2020 19:24:40 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id s9so38141386ljm.11 for ; Fri, 03 Jul 2020 12:24:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eBYYS+sb5XoIj43xilaf9vPwWeYrGCFZbZjcQxACSwk=; b=mHOq8ZCxWXXw14hiRcoMESeoguUggrJJaaXnQK3HOpF1uSIjp9NmJHqqjFcLxYIxo1 A/vx7WNgDvzMcyqn8LBqXWMXacvJGPxC0+iiL2YNpjt2fZMU5bskEfsLoMSvVuv2pBqJ 74DnPTFPz4MW8YcdY1FuN8hEdEog5ld8aoUpPHrdXgXh5dKRZMoB7D0IxKD2WSUUAyvB q7AHUZDZ1voogmmMmYNJR7/cb2E07uu5Q/By98yL1HNBATY/hQ0qV4m6lN5E7KTRBvIb DUFbCsnmRhVbGZIgN6DiErW+Tk3ToBxdcXKd4gUCo0Z6eaN2rHNtAjje7gXrZ8TT3Tu5 ikjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=eBYYS+sb5XoIj43xilaf9vPwWeYrGCFZbZjcQxACSwk=; b=tGXvWeFCyx6P9b9GITsOqptDTsfBxNJZarcoeDUhwmSPgUjcX20l+m70cO+1TGsFGA +ei2Vvzpd342h4EDkrf9qJqAr/P1oxCio9L84yRnz9zr1WA4t63R0mOU3nQcEKihr9ZE pF/TDgkUmbTU5doWv/3NHeDyZApMbbbjk0fy8hBYpf9jqaXNwBmQ0pqEHDfRARFtU5yH 43qZ+Dn7GDFi4ZhxsZDPQckji7WmXPg3CQN43Pv7GIm+KtvQDmUmhTjdun8bZp582EHH BJyhd+ulJ/Js5OlrZu52NyIL+HLTxtX527syPhx3cyGmgfOZ7D2dbNJVnNvnZxJdnrjX if3g== X-Gm-Message-State: AOAM533uD4miio65A7DV6eJJPdCClmb6hhT+kNy/ujLCUwrl3mf3I0/6 YLaELdRPAOt3IU03UeqkbGllwqSsVAw= X-Google-Smtp-Source: ABdhPJyeWiBlml1l00YNLxz2PDLaJlpSvGud2opGVHvBE9FfQKW6dFU9vbKuu3xlxxVANvxDMcWBUg== X-Received: by 2002:a2e:89ca:: with SMTP id c10mr10474223ljk.407.1593804278412; Fri, 03 Jul 2020 12:24:38 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:38 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 13/21] drm/bridge: megachips: add helper to create connector Date: Fri, 3 Jul 2020 21:24:09 +0200 Message-Id: <20200703192417.372164-14-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Martin Donnelly , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Factor out connector creation to a small helper function. Signed-off-by: Sam Ravnborg Cc: Peter Senna Tschudin Cc: Martin Donnelly Cc: Martyn Welch Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec Reviewed-by: Laurent Pinchart --- .../bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 47 +++++++++++-------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c index 6200f12a37e6..258e0525cdcc 100644 --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c @@ -191,6 +191,32 @@ static const struct drm_connector_funcs ge_b850v3_lvds_connector_funcs = { .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; +static int ge_b850v3_lvds_create_connector(struct drm_bridge *bridge) +{ + struct drm_connector *connector = &ge_b850v3_lvds_ptr->connector; + int ret; + + if (!bridge->encoder) { + DRM_ERROR("Parent encoder object not found"); + return -ENODEV; + } + + connector->polled = DRM_CONNECTOR_POLL_HPD; + + drm_connector_helper_add(connector, + &ge_b850v3_lvds_connector_helper_funcs); + + ret = drm_connector_init(bridge->dev, connector, + &ge_b850v3_lvds_connector_funcs, + DRM_MODE_CONNECTOR_DisplayPort); + if (ret) { + DRM_ERROR("Failed to initialize connector with drm\n"); + return ret; + } + + return drm_connector_attach_encoder(connector, bridge->encoder); +} + static irqreturn_t ge_b850v3_lvds_irq_handler(int irq, void *dev_id) { struct i2c_client *stdp4028_i2c @@ -209,7 +235,6 @@ static irqreturn_t ge_b850v3_lvds_irq_handler(int irq, void *dev_id) static int ge_b850v3_lvds_attach(struct drm_bridge *bridge, enum drm_bridge_attach_flags flags) { - struct drm_connector *connector = &ge_b850v3_lvds_ptr->connector; struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c; int ret; @@ -219,25 +244,7 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge, return -EINVAL; } - if (!bridge->encoder) { - DRM_ERROR("Parent encoder object not found"); - return -ENODEV; - } - - connector->polled = DRM_CONNECTOR_POLL_HPD; - - drm_connector_helper_add(connector, - &ge_b850v3_lvds_connector_helper_funcs); - - ret = drm_connector_init(bridge->dev, connector, - &ge_b850v3_lvds_connector_funcs, - DRM_MODE_CONNECTOR_DisplayPort); - if (ret) { - DRM_ERROR("Failed to initialize connector with drm\n"); - return ret; - } - - ret = drm_connector_attach_encoder(connector, bridge->encoder); + ret = ge_b850v3_lvds_create_connector(bridge); if (ret) return ret; From patchwork Fri Jul 3 19:24:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642765 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 61F4760D for ; Fri, 3 Jul 2020 19:24:56 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 40D2F20884 for ; Fri, 3 Jul 2020 19:24:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="j99fxYkg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 40D2F20884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0E0DA6EBBE; Fri, 3 Jul 2020 19:24:43 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 529D76EBBC for ; Fri, 3 Jul 2020 19:24:41 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id s9so38141428ljm.11 for ; Fri, 03 Jul 2020 12:24:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gEjEqlUEaBaGVsNHIfs4atPa0ji8BhQ7KnwUv8i+lN0=; b=j99fxYkgDVg50VGEyqeFkAQ7BjVVR+hl1jvzn5TpjWFBzw6Qg3eDscDj4rQFs9fTNe nJwZ4izi99acGp0DtHjKAV5A14kx+qBvCReasvl8+tMEPfluC57weesTudxHVQ1mbCVI rJPxNHCLMgPEnnRD5ZRpA+zDCfL4FQb7zRYbAS9XfbSPC/f1mnL/wVCGlsLzH8lC0wJl w+XoXW6X023HUQK4UqUlRgVVq61NItcOVhjeAk626ZUL9AzAbEhcs6D8RiFDo/RlpmTp gaQHALm/teYX7yrwh22eHDtJl+cr7X4mp9rS/hHdto9T27rzKpXOTb3bPGDMA8Mw6xF4 Hw9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=gEjEqlUEaBaGVsNHIfs4atPa0ji8BhQ7KnwUv8i+lN0=; b=gKOtfTqyk7obBQtJBO4l8P+BMVOqEgxr+iJXcF4DjYSxEJu8GrAq7nh3Bu2x7rq03I jlJkPgKvMdcckT+lBEMWqYvlKSHEprc6dILBRUlQWQbe9aAI9zbjM3g0APO/eEkONq1P VIepCYPQZbyf2q7xl4BfLsunwi936qQD7SbrfDdqJXhuWg+EuGJ1LRKfUc4isCrwiuEp jOhswZj3hSCqE8UAcKZB3oBPDZ30QO6qHaMTVWZ/KNJVxSOXhr2p4P9Hvoks26SgMzJD xZ1B1zGwMp6iqvSglDBjlt8o2LMi9+sEKWnMHhasWbw1mURpQv7+fC+HXs+OjIMW1sF6 /rOw== X-Gm-Message-State: AOAM531CYK3ItYpgt3xe7Ig9qB8YjRPLDD38Q9M3cT2jjG+73oLRfQNr tpjU/iInt7VBDRbyfUJP8X6WT1TRygc= X-Google-Smtp-Source: ABdhPJxkhGZaPpxU90cHtv1xdmJXvNTAr8sEc2EeX4N5PbRKTdigCQhfpOvMVXznDzjAWJ3WU9Xphg== X-Received: by 2002:a2e:991:: with SMTP id 139mr20104182ljj.314.1593804279374; Fri, 03 Jul 2020 12:24:39 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:38 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 14/21] drm/bridge: megachips: get drm_device from bridge Date: Fri, 3 Jul 2020 21:24:10 +0200 Message-Id: <20200703192417.372164-15-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Martin Donnelly , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Fix so drm_device is read from the bridge. This is a preparation for the connector being optional. Signed-off-by: Sam Ravnborg Cc: Peter Senna Tschudin Cc: Martin Donnelly Cc: Martyn Welch Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec Reviewed-by: Laurent Pinchart --- drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c index 258e0525cdcc..cf1dfbc88acf 100644 --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c @@ -226,8 +226,8 @@ static irqreturn_t ge_b850v3_lvds_irq_handler(int irq, void *dev_id) STDP4028_DPTX_IRQ_STS_REG, STDP4028_DPTX_IRQ_CLEAR); - if (ge_b850v3_lvds_ptr->connector.dev) - drm_kms_helper_hotplug_event(ge_b850v3_lvds_ptr->connector.dev); + if (ge_b850v3_lvds_ptr->bridge.dev) + drm_kms_helper_hotplug_event(ge_b850v3_lvds_ptr->bridge.dev); return IRQ_HANDLED; } From patchwork Fri Jul 3 19:24:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642763 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 46A1660D for ; Fri, 3 Jul 2020 19:24:55 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 252A120884 for ; Fri, 3 Jul 2020 19:24:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pR9bfS2j" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 252A120884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 48E086EBC0; Fri, 3 Jul 2020 19:24:43 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 392E86EBBC for ; Fri, 3 Jul 2020 19:24:42 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id n23so38240048ljh.7 for ; Fri, 03 Jul 2020 12:24:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ciPmfbP4wW/UjwuM/Du28+ilIENqwL0j3RJ/7QbWQbY=; b=pR9bfS2jmg+IrZMDbUOmT7zOcHBA+ihIIjGlCFim93TE3UvmW3ULBzJ1GvCBhrydfj 67J4eXno3g3ki8rNb+6NxyPT8JF3HIaeYfBEf+rCyhA12rFFJapn3HV8TNBSvB+f07VY 5mCw4/i9MAeGzYAFzT6CfFQp3BZw411X+j82wJD5+BzQ0E2C3NYBmzK/1yz84uYuXoiJ azHd7irhIvGoORX3y4L7r1C/vGrkbxMiaxoPJ6He1NAGYStR5x+0OoyydtcdG4tQNMHn a9AAD5Qrg2HHyeO9CjdmJzggXTFFJA2GQJFPHCFYcHf3tNwaFFb+EuLu+I4ss6DVCEhY NmQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ciPmfbP4wW/UjwuM/Du28+ilIENqwL0j3RJ/7QbWQbY=; b=gQ1rmln0h3GrpCnqhCRk1NT9Lzmgcv9fQvLXMUcvz88Ob0vaIEgERxrH+T6TbkKzJr EDJH0fpwWoRDlMQfdgxMfGd7nszWmO5c5Sd/SuKNuSt7efcl0GvJZ+y56orBhemJMaTe FX1hfZrM7u0v1eZlluw9GoGeVp2CrWYYbuS6t1t2CoHnDMIVPLzPQhoIsbAU3/trvltl GXnA/t+/4I4rEIKBysqT6NDRBltxpdKLC7aqb0w8E9T9WWKA3EgOYtoEEEbjDDt/Iin+ PZiMHwcK75LAUsBIx4BV3ndHGkH4xUMSB0nVKFG0Tn1+MRoix12osABlZy4whFND/ShR A+CQ== X-Gm-Message-State: AOAM532+MerQkQ5i/zfMJYW4jiDyD/qvzHVP8qT6Alg6p06k4/6Yr6Vv l+7AR8lHr10s0xen42Hy6/vU+AMk+ZQ= X-Google-Smtp-Source: ABdhPJyaYByOPpusAyZMG7Urpuk+rq99jKcVnV6HtCbDbuBd2ya6EYPcEl1K/OE9BIYSldGeq4a5OA== X-Received: by 2002:a2e:8016:: with SMTP id j22mr12062443ljg.405.1593804280417; Fri, 03 Jul 2020 12:24:40 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:40 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 15/21] drm/bridge: megachips: enable detect bridge operation Date: Fri, 3 Jul 2020 21:24:11 +0200 Message-Id: <20200703192417.372164-16-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Martin Donnelly , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To prepare for use in a chained bridge setup enable the detect operation. Signed-off-by: Sam Ravnborg Cc: Peter Senna Tschudin Cc: Martin Donnelly Cc: Martyn Welch Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec Reviewed-by: Laurent Pinchart --- .../gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c index cf1dfbc88acf..78a9afe8f063 100644 --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c @@ -163,8 +163,8 @@ drm_connector_helper_funcs ge_b850v3_lvds_connector_helper_funcs = { .mode_valid = ge_b850v3_lvds_mode_valid, }; -static enum drm_connector_status ge_b850v3_lvds_detect( - struct drm_connector *connector, bool force) +static enum drm_connector_status ge_b850v3_lvds_bridge_detect( + struct drm_bridge *bridge) { struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c; @@ -182,6 +182,12 @@ static enum drm_connector_status ge_b850v3_lvds_detect( return connector_status_unknown; } +static enum drm_connector_status ge_b850v3_lvds_detect( + struct drm_connector *connector, bool force) +{ + return ge_b850v3_lvds_bridge_detect(&ge_b850v3_lvds_ptr->bridge); +} + static const struct drm_connector_funcs ge_b850v3_lvds_connector_funcs = { .fill_modes = drm_helper_probe_single_connector_modes, .detect = ge_b850v3_lvds_detect, @@ -263,6 +269,7 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge, static const struct drm_bridge_funcs ge_b850v3_lvds_funcs = { .attach = ge_b850v3_lvds_attach, + .detect = ge_b850v3_lvds_bridge_detect, }; static int ge_b850v3_lvds_init(struct device *dev) @@ -317,6 +324,7 @@ static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c, /* drm bridge initialization */ ge_b850v3_lvds_ptr->bridge.funcs = &ge_b850v3_lvds_funcs; + ge_b850v3_lvds_ptr->bridge.ops = DRM_BRIDGE_OP_DETECT; ge_b850v3_lvds_ptr->bridge.of_node = dev->of_node; drm_bridge_add(&ge_b850v3_lvds_ptr->bridge); From patchwork Fri Jul 3 19:24:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642767 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7856713B6 for ; Fri, 3 Jul 2020 19:24:57 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 56E5720884 for ; Fri, 3 Jul 2020 19:24:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ha/LA9jW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 56E5720884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3119F6EBBF; Fri, 3 Jul 2020 19:24:45 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 361466EBBF for ; Fri, 3 Jul 2020 19:24:43 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id s9so38141503ljm.11 for ; Fri, 03 Jul 2020 12:24:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0ObiJeIgdv9WzwB+UhsBPZAoG1cdWF1/TS/yoSc5/2o=; b=ha/LA9jWYLfHjypVxguJPj2Ytf4A9jmeF/D77ikcfVEeY0halDbQRADS9KuWMa/6NB pWkc4WgMkj6CmUdbCPcSdX94cZ2K4Gt8zTizYQKbN2BSb2LWakt6K47jow+UzWly5bFD jkpJnEal07NVCAfqsoq95xJnSTG/teFFoJOf/+clpJ76nCtwjkKtIfbPGqTwPqwF6E+Z OkUPDJ1k4f6QddpfuKh8qaQkJp4E3Wbva/89QsJ5oJnIDF0E+LLAG+pjSF+tr+tRTV53 H+dB8tDl1qdZlw5lyNk5bx9BvDd++az50n57M+kbDmzaFqe3rnygsyH6jZUNgeOOyVIv YxSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=0ObiJeIgdv9WzwB+UhsBPZAoG1cdWF1/TS/yoSc5/2o=; b=rwJ9MKva9AfeGK82j4wVGs2p4JZ5Xz9LLlVugM5XkRKYvr0UWy3GTH2WUeJb8myVOp e0oJxzQnxWs8tRWnoNpg0LaPqQZEBcAwowRBERSwtfSByGm6JJBX2P1XaoYsQjI5JjzL 6ZGBROrl+StHePJNd3fp2ObSiced9ALzOm8SbjWYdrWgQHhcSOjUojPJ5SKtrvhTCn/r ouBeLlWblWoUteYNRjfmi/5fFwhEE4DP3/z+zSDiETIKgy5P/+Fyq3egWDAuDoZHOlBl fH+xkxAOuGnDGvbt9QfUvgXyZoTxAUHapO5jnli2v0p1kg79kthD6kf6beOoUPgY1Q6s /Zxg== X-Gm-Message-State: AOAM532/HRV1eO2H37roP/1hcBXdXkGTrQVchhw8kWneCHBZp6Bo+QhV 0Mt1GFLJan80nPj6iG0H9ktWFmJfe0g= X-Google-Smtp-Source: ABdhPJxZhWKyaTy4T1gJsIM/jLbEjXlB0cQcpDJLjwxeTqWLLg/BsotLDKyI07lgPsAgprUvgOtjYg== X-Received: by 2002:a2e:9c95:: with SMTP id x21mr13741855lji.234.1593804281444; Fri, 03 Jul 2020 12:24:41 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:41 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 16/21] drm/bridge: megachips: add get_edid bridge operation Date: Fri, 3 Jul 2020 21:24:12 +0200 Message-Id: <20200703192417.372164-17-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Martin Donnelly , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To prepare for a chained bridge setup add support for the get_edid bridge operation. Signed-off-by: Sam Ravnborg Cc: Peter Senna Tschudin Cc: Martin Donnelly Cc: Martyn Welch Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- .../bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c index 78a9afe8f063..5f06e18f0a61 100644 --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c @@ -131,21 +131,29 @@ static u8 *stdp2690_get_edid(struct i2c_client *client) return NULL; } -static int ge_b850v3_lvds_get_modes(struct drm_connector *connector) +static struct edid *ge_b850v3_lvds_get_edid( + struct drm_bridge *bridge, struct drm_connector *connector) { struct i2c_client *client; - int num_modes = 0; client = ge_b850v3_lvds_ptr->stdp2690_i2c; kfree(ge_b850v3_lvds_ptr->edid); ge_b850v3_lvds_ptr->edid = (struct edid *)stdp2690_get_edid(client); - if (ge_b850v3_lvds_ptr->edid) { - drm_connector_update_edid_property(connector, - ge_b850v3_lvds_ptr->edid); - num_modes = drm_add_edid_modes(connector, - ge_b850v3_lvds_ptr->edid); + return ge_b850v3_lvds_ptr->edid; +} + +static int ge_b850v3_lvds_get_modes(struct drm_connector *connector) +{ + struct edid *edid; + int num_modes = 0; + + edid = ge_b850v3_lvds_get_edid(&ge_b850v3_lvds_ptr->bridge, connector); + + if (edid) { + drm_connector_update_edid_property(connector, edid); + num_modes = drm_add_edid_modes(connector, edid); } return num_modes; @@ -270,6 +278,7 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge, static const struct drm_bridge_funcs ge_b850v3_lvds_funcs = { .attach = ge_b850v3_lvds_attach, .detect = ge_b850v3_lvds_bridge_detect, + .get_edid = ge_b850v3_lvds_get_edid, }; static int ge_b850v3_lvds_init(struct device *dev) @@ -324,7 +333,8 @@ static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c, /* drm bridge initialization */ ge_b850v3_lvds_ptr->bridge.funcs = &ge_b850v3_lvds_funcs; - ge_b850v3_lvds_ptr->bridge.ops = DRM_BRIDGE_OP_DETECT; + ge_b850v3_lvds_ptr->bridge.ops = DRM_BRIDGE_OP_DETECT | + DRM_BRIDGE_OP_EDID; ge_b850v3_lvds_ptr->bridge.of_node = dev->of_node; drm_bridge_add(&ge_b850v3_lvds_ptr->bridge); From patchwork Fri Jul 3 19:24:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642769 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8300F13B6 for ; Fri, 3 Jul 2020 19:24:58 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 61AED208C7 for ; Fri, 3 Jul 2020 19:24:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hsa6YLbq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 61AED208C7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 719FE6EBBC; Fri, 3 Jul 2020 19:24:45 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 29B256EBBC for ; Fri, 3 Jul 2020 19:24:44 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id d17so23485413ljl.3 for ; Fri, 03 Jul 2020 12:24:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kDwBn0EdrtAQxrrQgBd693cs2JMOJ8+ROlWibMI4+Wg=; b=hsa6YLbq7OaOTzqUA6nsR0NYTKMufFiRhKk9HQC7n2KhFOtxUDIn7R09ok18SY66M6 5HmJ/7wefGBprYXqiUiQPR2Pdth+sneoOiDMDuuvvjlbOMso52QytbujNSoDMRA2oiq/ 2QP62eOeEyAUjO2878ijymNb+IO9XV5/EC+y/b9VWjH5IDBJgaazAF4b8uQDmUilTM/X l4u+lZtFwxxK0Hu5qD1bEVfBQZKRFwrj+SbmaFEtO3J/xMtJKfT6kJNbND7IlzHCHRmZ irAYcY3jA5ypgSMaU1lej59M4C48fod7XzBvKQ/Yc/Qg46JIbuIuedEgY8D8jaCGB1eu DmrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=kDwBn0EdrtAQxrrQgBd693cs2JMOJ8+ROlWibMI4+Wg=; b=RGwuIcGSemZ4Q+GnGcFosBCIuARL9XYTmlTt89wU3e9RNZMhKnsVkddbbUXDy43qq2 qOqpInA/R2/5tAmKhsF6h4uITaGpsQe8YgKy+gclQClUOFdQJGAU+Q3FUh9b9OkmnXFl HETFBax7CfnW/SGg+KrZVR9mTXCiiQfXrpOVsyh2tEcm3v+TwArPd5d6P6GKGTpJu04J NB6sg8LKfyagrzE+mobdcSQI5v+R1jyFLdeHHgI3n7GXqDFnc0ODZ3vJwvo61lZpSqv2 S3nM1x3/CKN4QzMIBxKyNrMk6MtZqPu/UKsg+ItybgQLCgmzJIsWkoaaMb/ZK9PwfiaY 8UuQ== X-Gm-Message-State: AOAM532g7HgHdYbUeOMUHK8h+KWGMGjqxjjwb9WGL87BOa+c5qurfxz4 OU2sbXHGxPa3ybo52Y7bEcrSfeTqgLg= X-Google-Smtp-Source: ABdhPJyTIvna8kOqF8Xm/B0XQtz+3XwXiCCBE6hs9C9X7FzLEWoDFb1R8p4g/NqpqmKNB4EzIt/Btw== X-Received: by 2002:a2e:95d3:: with SMTP id y19mr19970372ljh.60.1593804282386; Fri, 03 Jul 2020 12:24:42 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:42 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 17/21] drm/bridge: megachips: make connector creation optional Date: Fri, 3 Jul 2020 21:24:13 +0200 Message-Id: <20200703192417.372164-18-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Martin Donnelly , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Make the connector creation optional to enable usage of the megachips-stdpxxxx-ge-b850v3-fw bridge with the DRM bridge connector helper. Signed-off-by: Sam Ravnborg Cc: Peter Senna Tschudin Cc: Martin Donnelly Cc: Martyn Welch Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec Reviewed-by: Laurent Pinchart --- .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c index 5f06e18f0a61..991417ab35b6 100644 --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c @@ -251,16 +251,6 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge, { struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c; - int ret; - - if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { - DRM_ERROR("Fix bridge driver to make connector optional!"); - return -EINVAL; - } - - ret = ge_b850v3_lvds_create_connector(bridge); - if (ret) - return ret; /* Configures the bridge to re-enable interrupts after each ack. */ i2c_smbus_write_word_data(stdp4028_i2c, @@ -272,7 +262,10 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge, STDP4028_DPTX_IRQ_EN_REG, STDP4028_DPTX_IRQ_CONFIG); - return 0; + if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) + return 0; + + return ge_b850v3_lvds_create_connector(bridge); } static const struct drm_bridge_funcs ge_b850v3_lvds_funcs = { From patchwork Fri Jul 3 19:24:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642771 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A403F60D for ; Fri, 3 Jul 2020 19:24:59 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8297C20884 for ; Fri, 3 Jul 2020 19:24:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SM3VFc8b" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8297C20884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8C9446EBC1; Fri, 3 Jul 2020 19:24:47 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 29A706EBBC for ; Fri, 3 Jul 2020 19:24:45 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id s9so38141591ljm.11 for ; Fri, 03 Jul 2020 12:24:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vEAQ5gGsiTDdTz57IwHot9JAKAc3HnFvUfrCKECFUhE=; b=SM3VFc8bLlgqY2kvUjNdYCdxJwR/mcx+Q5Jbu6Py1GJhTPvoOB30HA5+IuBM/N/dlp RzZ4/+ehQXA6IzDv/fhqDe8keS8rxbAHwcj+yN3Mi+IqqYADmZUpOcZnp9ljwD5bSCcp UBf87jbhcYFBdiy2Z9LPciP5qbYo+Unp5mGOTwVgBKX8LJ0MGw708yCQiTIRIVTjuc3R L4hRH0vQGkbO4Du7U/MSuP9z8e8GVyKA3zlbUt6uk/dzqL5A3EF9JTQYTArs2fMsSjcd bZBwL45gEEdXS2VYtY6HoLmHTGolqYdSlSDHRi9/2flZHLwd1KA0aEXslZS5AX/sr00z JJUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=vEAQ5gGsiTDdTz57IwHot9JAKAc3HnFvUfrCKECFUhE=; b=SvBPtHneZPnsVdUH2SJrNw2+eMYhixjEO94o515Fo4y8URbXlYO1wcCvd+/HKwnW5M ruh9R+/CDpKEpToSaTxsZxxTgZlsTTztt2gt8Kzic4XS4O2zaySlwP6NcYr+ALg4tWbO keUa3waC7pS1ts3EOukT1mD6ObCcXCuaH9O3zRsm+1GVGMDplA2biEw/jw8fBYj8kbIr W4+JKZT9L4sV8yaOwUFxPnYeJYaf2dF9FAqpIlrUTXG6gSJ47dOhC4Ni34jsuWoHQiJi nHPBrC83yvawLZu4vzyxPMVrAuyFPRYH0NdFxH4kfnK0VFf4H+cJoC2BLyJK8WQb0q4j ovLQ== X-Gm-Message-State: AOAM532c0M1UPAXnFA1RcqpVHvob/7xjNyLp73cOkbK9wSmMvYWPTxgD 2tiC1zyPmO/1NHtOMH6q0zFkn8q+Fds= X-Google-Smtp-Source: ABdhPJzCR4rSjrisc6LCec6gXiMQK6bMX/f9IFEVNWBnOd7A/z/rY7jh4tmY9xhQp7mQYPu9y30HQw== X-Received: by 2002:a2e:9c59:: with SMTP id t25mr6676077ljj.402.1593804283368; Fri, 03 Jul 2020 12:24:43 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:42 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 18/21] drm/bridge: nxp-ptn3460: add drm_panel_bridge support Date: Fri, 3 Jul 2020 21:24:14 +0200 Message-Id: <20200703192417.372164-19-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Prepare the bridge driver for use in a chained setup by replacing direct use of drm_panel with drm_panel_bridge support. Note: the bridge panel will use the connector type from the panel. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/nxp-ptn3460.c | 51 ++++++++-------------------- 1 file changed, 14 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c index 438e566ce0a4..0bd9f0e451b3 100644 --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c @@ -30,7 +30,7 @@ struct ptn3460_bridge { struct i2c_client *client; struct drm_bridge bridge; struct edid *edid; - struct drm_panel *panel; + struct drm_bridge *panel_bridge; struct gpio_desc *gpio_pd_n; struct gpio_desc *gpio_rst_n; u32 edid_emulation; @@ -127,11 +127,6 @@ static void ptn3460_pre_enable(struct drm_bridge *bridge) usleep_range(10, 20); gpiod_set_value(ptn_bridge->gpio_rst_n, 1); - if (drm_panel_prepare(ptn_bridge->panel)) { - DRM_ERROR("failed to prepare panel\n"); - return; - } - /* * There's a bug in the PTN chip where it falsely asserts hotplug before * it is fully functional. We're forced to wait for the maximum start up @@ -146,16 +141,6 @@ static void ptn3460_pre_enable(struct drm_bridge *bridge) ptn_bridge->enabled = true; } -static void ptn3460_enable(struct drm_bridge *bridge) -{ - struct ptn3460_bridge *ptn_bridge = bridge_to_ptn3460(bridge); - - if (drm_panel_enable(ptn_bridge->panel)) { - DRM_ERROR("failed to enable panel\n"); - return; - } -} - static void ptn3460_disable(struct drm_bridge *bridge) { struct ptn3460_bridge *ptn_bridge = bridge_to_ptn3460(bridge); @@ -165,25 +150,10 @@ static void ptn3460_disable(struct drm_bridge *bridge) ptn_bridge->enabled = false; - if (drm_panel_disable(ptn_bridge->panel)) { - DRM_ERROR("failed to disable panel\n"); - return; - } - gpiod_set_value(ptn_bridge->gpio_rst_n, 1); gpiod_set_value(ptn_bridge->gpio_pd_n, 0); } -static void ptn3460_post_disable(struct drm_bridge *bridge) -{ - struct ptn3460_bridge *ptn_bridge = bridge_to_ptn3460(bridge); - - if (drm_panel_unprepare(ptn_bridge->panel)) { - DRM_ERROR("failed to unprepare panel\n"); - return; - } -} - static int ptn3460_get_modes(struct drm_connector *connector) { struct ptn3460_bridge *ptn_bridge; @@ -242,6 +212,11 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge, struct ptn3460_bridge *ptn_bridge = bridge_to_ptn3460(bridge); int ret; + ret = drm_bridge_attach(bridge->encoder, ptn_bridge->panel_bridge, + bridge, flags); + if (ret < 0) + return ret; + if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { DRM_ERROR("Fix bridge driver to make connector optional!"); return -EINVAL; @@ -265,9 +240,6 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge, drm_connector_attach_encoder(&ptn_bridge->connector, bridge->encoder); - if (ptn_bridge->panel) - drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector); - drm_helper_hpd_irq_event(ptn_bridge->connector.dev); return ret; @@ -275,9 +247,7 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge, static const struct drm_bridge_funcs ptn3460_bridge_funcs = { .pre_enable = ptn3460_pre_enable, - .enable = ptn3460_enable, .disable = ptn3460_disable, - .post_disable = ptn3460_post_disable, .attach = ptn3460_bridge_attach, }; @@ -286,6 +256,8 @@ static int ptn3460_probe(struct i2c_client *client, { struct device *dev = &client->dev; struct ptn3460_bridge *ptn_bridge; + struct drm_bridge *pbridge; + struct drm_panel *panel; int ret; ptn_bridge = devm_kzalloc(dev, sizeof(*ptn_bridge), GFP_KERNEL); @@ -293,10 +265,15 @@ static int ptn3460_probe(struct i2c_client *client, return -ENOMEM; } - ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, &ptn_bridge->panel, NULL); + ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, &panel, NULL); if (ret) return ret; + pbridge = devm_drm_panel_bridge_add(dev, panel); + if (IS_ERR(pbridge)) + return PTR_ERR(pbridge); + + ptn_bridge->panel_bridge = pbridge; ptn_bridge->client = client; ptn_bridge->gpio_pd_n = devm_gpiod_get(&client->dev, "powerdown", From patchwork Fri Jul 3 19:24:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642775 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1738560D for ; Fri, 3 Jul 2020 19:25:02 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EA06C20884 for ; Fri, 3 Jul 2020 19:25:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FGm5BDJk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EA06C20884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2AAFA6EBC3; Fri, 3 Jul 2020 19:24:50 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 493A46EBC1 for ; Fri, 3 Jul 2020 19:24:46 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id n23so38240225ljh.7 for ; Fri, 03 Jul 2020 12:24:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=E2awxpQwNdgliNiuyXwBUPI0+3Y9fl9Ao6gbJ2At26g=; b=FGm5BDJk5LnvGPrNimY/fzvo7CfLlZhTmykLykjHMKLdKYfM50ukl4toWyrIL2bbgG nceNIXKi9cpjYu03KPwcoN0iv8k+AoBgEZrYDN/Iz3+/pwDqWndv83B80bQvabwF1MHn oE0V4SC5H3yZOyRUY4OFR3lep17273NaNn2VsDfR5klNEd8/mtQ8Wf5WxYCi4K8Xwyln KMxjLnMzOvtJfrZ154cGmmgg6UJs0YSi7lLErWYCZHjGyOaAPwYRrFXxO9zAptJ61egX PlqkuNdkh2Iqe6OdhNEMRH2aspCR7dgtDq53ThasM0v7pL9+j17qFGsNUOdQNxU+8Tr+ ivnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=E2awxpQwNdgliNiuyXwBUPI0+3Y9fl9Ao6gbJ2At26g=; b=kMMR07D0Qh8ojT2vtrgnwuH4bGs1H8wO1vofX3Mj0qlAuh/hP+9PhYrDQ3UTICpaFo o3F23kD3eQIleRDiVK2qe8QhfsepFE3M6rZe5nuPUMuYsEERqCiiiGSHUmbeZz91GBW2 kJRL+znKV2dtlCMWxREE4WH3NhU8nKsBu9qnCVSKh5IkQrT8IOrvzD1fE7Jg+qscrJo5 bEegbHyrmhFYH/LCUg2YU5X9WUM/z3qk0cLUblN5W5+HH8HCnCL6Co0g/OLZ9qBAxoJv SeoxnIUA2S273oO4fAdyUg7/Wiv360aATu1uJE9eWJ6c0qXhG8vfBIKtoZ/rluqiCRem cIBA== X-Gm-Message-State: AOAM532bHHjt1EPIvz/w/u356RpUUEO+ORh+1Q+lZjaym5lEWaIrqhOX EfUoMlPMNwdOxujCElmpC8pOfRxM7BA= X-Google-Smtp-Source: ABdhPJxzddOVjCQQAkP9oHNDpS30Xaw3EZpOvWuHRbBUSK/ADv8qS4sOvhDKD28zfXE147aA4AZLWw== X-Received: by 2002:a2e:7e08:: with SMTP id z8mr15942295ljc.66.1593804284566; Fri, 03 Jul 2020 12:24:44 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:44 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 19/21] drm/bridge: nxp-ptn3460: add get_modes bridge operation Date: Fri, 3 Jul 2020 21:24:15 +0200 Message-Id: <20200703192417.372164-20-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add the get_modes() bridge operation to prepare for use as a chained bridge. Add helper function that is also used by the connector. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/nxp-ptn3460.c | 52 ++++++++++++++++++---------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c index 0bd9f0e451b3..e253c185f94c 100644 --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c @@ -154,17 +154,13 @@ static void ptn3460_disable(struct drm_bridge *bridge) gpiod_set_value(ptn_bridge->gpio_pd_n, 0); } -static int ptn3460_get_modes(struct drm_connector *connector) +static struct edid *ptn3460_get_edid(struct drm_bridge *bridge, + struct drm_connector *connector) { - struct ptn3460_bridge *ptn_bridge; - u8 *edid; - int ret, num_modes = 0; + struct ptn3460_bridge *ptn_bridge = bridge_to_ptn3460(bridge); bool power_off; - - ptn_bridge = connector_to_ptn3460(connector); - - if (ptn_bridge->edid) - return drm_add_edid_modes(connector, ptn_bridge->edid); + u8 *edid; + int ret; power_off = !ptn_bridge->enabled; ptn3460_pre_enable(&ptn_bridge->bridge); @@ -172,30 +168,46 @@ static int ptn3460_get_modes(struct drm_connector *connector) edid = kmalloc(EDID_LENGTH, GFP_KERNEL); if (!edid) { DRM_ERROR("Failed to allocate EDID\n"); - return 0; + return NULL; } ret = ptn3460_read_bytes(ptn_bridge, PTN3460_EDID_ADDR, edid, - EDID_LENGTH); + EDID_LENGTH); if (ret) { kfree(edid); - goto out; + return NULL; } + if (power_off) + ptn3460_disable(&ptn_bridge->bridge); + + kfree(ptn_bridge->edid); ptn_bridge->edid = (struct edid *)edid; - drm_connector_update_edid_property(connector, ptn_bridge->edid); - num_modes = drm_add_edid_modes(connector, ptn_bridge->edid); + return ptn_bridge->edid; +} -out: - if (power_off) - ptn3460_disable(&ptn_bridge->bridge); +static int ptn3460_connector_get_modes(struct drm_connector *connector) +{ + struct ptn3460_bridge *ptn_bridge; + struct edid *edid; + + ptn_bridge = connector_to_ptn3460(connector); + + if (ptn_bridge->edid) + return drm_add_edid_modes(connector, ptn_bridge->edid); + + edid = ptn3460_get_edid(&ptn_bridge->bridge, connector); + if (!edid) + return 0; + + drm_connector_update_edid_property(connector, edid); - return num_modes; + return drm_add_edid_modes(connector, edid); } static const struct drm_connector_helper_funcs ptn3460_connector_helper_funcs = { - .get_modes = ptn3460_get_modes, + .get_modes = ptn3460_connector_get_modes, }; static const struct drm_connector_funcs ptn3460_connector_funcs = { @@ -249,6 +261,7 @@ static const struct drm_bridge_funcs ptn3460_bridge_funcs = { .pre_enable = ptn3460_pre_enable, .disable = ptn3460_disable, .attach = ptn3460_bridge_attach, + .get_edid = ptn3460_get_edid, }; static int ptn3460_probe(struct i2c_client *client, @@ -304,6 +317,7 @@ static int ptn3460_probe(struct i2c_client *client, } ptn_bridge->bridge.funcs = &ptn3460_bridge_funcs; + ptn_bridge->bridge.ops = DRM_BRIDGE_OP_EDID; ptn_bridge->bridge.of_node = dev->of_node; drm_bridge_add(&ptn_bridge->bridge); From patchwork Fri Jul 3 19:24:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642773 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B709860D for ; Fri, 3 Jul 2020 19:25:00 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9575820884 for ; Fri, 3 Jul 2020 19:25:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="vQCAWWzh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9575820884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 453146EBC2; Fri, 3 Jul 2020 19:24:49 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id BA6A46EBC2 for ; Fri, 3 Jul 2020 19:24:47 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id n23so38240285ljh.7 for ; Fri, 03 Jul 2020 12:24:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=M88NeubDE2y5H9P6Cv7tSoKVIkco/TU4mlGIabC55e0=; b=vQCAWWzhjNiuTX6FMk4G0kO2kVCVSFncJlPFc5vcZ1roswR69erkojlXeVZEeGQfEI caJVpzrlhyRFrjRXXbzTHiOXrpS/hZjNmVAmUJCD6qaL2P0kouku068mfYSWjPol+cKk VOB2k0j9oNiKogB8Z0MUNEdQjvY30PdCXxyL1VUl9NSBxhZwIIUktw5KLOmn62zjOioK FyvmrcylmwiJoqfv5pBssh2jygaI9KWYtyKdMYeFVQ86i9CMnUXyBakvVoqT8ynnZJsp TfSD3RyXT3ROHfelkuep2HbQQ2ikR8CA9jD/SIbHlBUwn4TKMHh+jPucYvkFJN2t13t7 yLeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=M88NeubDE2y5H9P6Cv7tSoKVIkco/TU4mlGIabC55e0=; b=DIAUR2qsDWVYeUcgDPkLv9RfAydZDdU3LnJQtcdfNN/YfM1K+gokBA+hEWWnAYAIIE eE0SJgJBZWKz+e4Es6WrxGV5iYmAMtm5jQeflpL9iWZI5tg2PifmA3ap/M2KYTEPN4WT q5WxTnGNuhe7KKDLuZnRz8PwYIcz53SsOfUgO1O6srR6tMBIBz1ry6H5bByNT4pzWZMt nGHxezGLDm8L16Z8DT6xLWh1jPoYYb/6qM9hnSvr27XO9FJ7d9eJ7kY9iqlg2ivRh7aL WrG9L6MZE7aYDNblyFNIXqvQt4AiGnEeeGF5xE0rawvNW8qfSATr13MA5R/EO1gxgPrW 5mfw== X-Gm-Message-State: AOAM532ZIyr6pV+xve43DxbJvcw+vscERzvOj71i14mT+7CBROU5RUfs iPqNZJXVX46DtRkYJ7fdJ2xzskcpd/4= X-Google-Smtp-Source: ABdhPJx0dEGsLI5LgbIVQj1GUBoE6P6xS4edef0a83+d1ELGDQ80ucSFnDWDOezlkWGp+5kdZaAXBw== X-Received: by 2002:a2e:88d0:: with SMTP id a16mr21296280ljk.213.1593804285749; Fri, 03 Jul 2020 12:24:45 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:45 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 20/21] drm/bridge: nxp-ptn3460: make connector creation optional Date: Fri, 3 Jul 2020 21:24:16 +0200 Message-Id: <20200703192417.372164-21-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Make the connector creation optional to enable usage of the nxp-ptn3460 bridge with the DRM bridge connector helper. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec Reviewed-by: Laurent Pinchart --- drivers/gpu/drm/bridge/nxp-ptn3460.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c index e253c185f94c..6a65657087f9 100644 --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c @@ -229,10 +229,8 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge, if (ret < 0) return ret; - if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { - DRM_ERROR("Fix bridge driver to make connector optional!"); - return -EINVAL; - } + if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) + return 0; if (!bridge->encoder) { DRM_ERROR("Parent encoder object not found"); From patchwork Fri Jul 3 19:24:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11642777 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A11F713BD for ; Fri, 3 Jul 2020 19:25:03 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7F5FF20884 for ; Fri, 3 Jul 2020 19:25:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LtfIg/B6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7F5FF20884 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C7B346EBC5; Fri, 3 Jul 2020 19:24:50 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id C9C616EBC3 for ; Fri, 3 Jul 2020 19:24:48 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id 9so38153465ljv.5 for ; Fri, 03 Jul 2020 12:24:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9V8PtqBKGrK9wme2ZlfDKfugqp+2ikNzpWbUymFtbiM=; b=LtfIg/B6LI48aFNC0vhZQYE9/5x1bldeYjl/wj9p9QG1XFN2vdsdryGPFYjyRrgVMe a6eIGetktVBb4yBbaNlUDExEdD0aeIf2Lxl6SIehE702eN0YAeim02y3qGbx9YqFghzS 3w99FjCnDUQlstz1YxVNVh7a8plxsK63GSe6cGgIRCV/u99ic97ck6RQ4knPWsnBQ0r5 eyHc5CX9ecmC96X/0rOO+09wU5AmQ+BeqPBwOIJUtWg3r3x88zgAz0ViP/E04MRhqJjE McokoR1lfWs79kbUkU90AR5XiwDEz3OV3vPDY/vqRjldqpFaEcFoHUI6lVaGLlDqwVkF +y5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=9V8PtqBKGrK9wme2ZlfDKfugqp+2ikNzpWbUymFtbiM=; b=OQAliOaj/4VADe8EQr/qxPOQ2IA0x2ym2YBiW2cqulgGcHQrCGFXKDczdA3ktfi14u HAH+fkoJ9179HQAYYLaowxyGoLxffZtkjd/26pnQ5sryrthr76DvnvlzIhYI8ExFg6rR 3/+k35qpdfEy0RiZKmM48u7G0BP+pAk4zY4K3A+u+cAEiL9cWMABXyRNMIeb2pxcYo2C 4S9n/1uTYhMA4nNyWL/ozqLg2QH5XsO6r5nbh7Dg6YLCB6tdEgR/maaxerRbRQNd8tsn JDgOwzaqJybmtSGZ1WF3QoqJPZyRuyZv/vpai3GeaXL2PYz7nQcj7ptGWak4xrdFc3In D/ng== X-Gm-Message-State: AOAM531YuEQDcJGBUxvW5cTVdXnoeHWop7iygHV4KacN3ZHTKizWm0+4 PKZtp5wWTYM+XgoJZwbfi25RjNZQKrM= X-Google-Smtp-Source: ABdhPJy4OTHQoWIkYJSwNVyV0OCnI/FWQo8n/hjTG+d+SKRtiBHffKuQmri9IplC4xqOuFdX/JKCSg== X-Received: by 2002:a2e:9397:: with SMTP id g23mr21866042ljh.185.1593804287041; Fri, 03 Jul 2020 12:24:47 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:4025:a614:1d5c:b7bc]) by smtp.gmail.com with ESMTPSA id y26sm4411791ljm.46.2020.07.03.12.24.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 12:24:46 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Laurent Pinchart , Neil Armstrong Subject: [PATCH v3 21/21] drm/bridge: ti-sn65dsi86: add drm_panel_bridge support Date: Fri, 3 Jul 2020 21:24:17 +0200 Message-Id: <20200703192417.372164-22-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200703192417.372164-1-sam@ravnborg.org> References: <20200703192417.372164-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Martyn Welch , Jonas Karlman , Peter Senna Tschudin , Andrzej Hajda , Thierry Reding , Sam Ravnborg , kbuild test robot Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Prepare the bridge driver for use in a chained setup by replacing direct use of drm_panel with drm_panel_bridge support. Note: the bridge panel will use the connector type from the panel. Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c index 0f75bb2d7f56..ecf0693e3018 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -144,7 +144,7 @@ struct ti_sn_bridge { struct device_node *host_node; struct mipi_dsi_device *dsi; struct clk *refclk; - struct drm_panel *panel; + struct drm_bridge *panel_bridge; struct gpio_desc *enable_gpio; struct regulator_bulk_data supplies[SN_REGULATOR_SUPPLY_NUM]; int dp_lanes; @@ -263,7 +263,7 @@ static int ti_sn_bridge_connector_get_modes(struct drm_connector *connector) { struct ti_sn_bridge *pdata = connector_to_ti_sn_bridge(connector); - return drm_panel_get_modes(pdata->panel, connector); + return drm_bridge_get_modes(pdata->panel_bridge, connector); } static enum drm_mode_status @@ -395,9 +395,8 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge, pdata->dsi = dsi; /* attach panel to bridge */ - drm_panel_attach(pdata->panel, &pdata->connector); - - return 0; + return drm_bridge_attach(bridge->encoder, pdata->panel_bridge, + bridge, flags); err_dsi_attach: mipi_dsi_device_unregister(dsi); @@ -410,16 +409,12 @@ static void ti_sn_bridge_disable(struct drm_bridge *bridge) { struct ti_sn_bridge *pdata = bridge_to_ti_sn_bridge(bridge); - drm_panel_disable(pdata->panel); - /* disable video stream */ regmap_update_bits(pdata->regmap, SN_ENH_FRAME_REG, VSTREAM_ENABLE, 0); /* semi auto link training mode OFF */ regmap_write(pdata->regmap, SN_ML_TX_MODE_REG, 0); /* disable DP PLL */ regmap_write(pdata->regmap, SN_PLL_ENABLE_REG, 0); - - drm_panel_unprepare(pdata->panel); } static u32 ti_sn_bridge_get_dsi_freq(struct ti_sn_bridge *pdata) @@ -780,8 +775,6 @@ static void ti_sn_bridge_enable(struct drm_bridge *bridge) /* enable video stream */ regmap_update_bits(pdata->regmap, SN_ENH_FRAME_REG, VSTREAM_ENABLE, VSTREAM_ENABLE); - - drm_panel_enable(pdata->panel); } static void ti_sn_bridge_pre_enable(struct drm_bridge *bridge) @@ -811,8 +804,6 @@ static void ti_sn_bridge_pre_enable(struct drm_bridge *bridge) */ regmap_update_bits(pdata->regmap, SN_HPD_DISABLE_REG, HPD_DISABLE, HPD_DISABLE); - - drm_panel_prepare(pdata->panel); } static void ti_sn_bridge_post_disable(struct drm_bridge *bridge) @@ -1163,6 +1154,8 @@ static int ti_sn_bridge_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct ti_sn_bridge *pdata; + struct drm_bridge *bridge; + struct drm_panel *panel; int ret; if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { @@ -1185,12 +1178,18 @@ static int ti_sn_bridge_probe(struct i2c_client *client, pdata->dev = &client->dev; ret = drm_of_find_panel_or_bridge(pdata->dev->of_node, 1, 0, - &pdata->panel, NULL); + &panel, NULL); if (ret) { DRM_ERROR("could not find any panel node\n"); return ret; } + bridge = devm_drm_panel_bridge_add(pdata->dev, panel); + if (IS_ERR(bridge)) + return PTR_ERR(bridge); + + pdata->panel_bridge = bridge; + dev_set_drvdata(&client->dev, pdata); pdata->enable_gpio = devm_gpiod_get(pdata->dev, "enable",