From patchwork Sun Sep 24 19:25:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jernej_=C5=A0krabec?= X-Patchwork-Id: 13397064 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A720BCE7A8A for ; Sun, 24 Sep 2023 19:26:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=Vbx/idmrfc3BUrnEva2HYecxaJKIZc21pGyG+AkWO+4=; b=TrhMoggY4jG/d7 m8yPpSFa/Tzks50Ji4MlfAuRKorLR9uQXOksNTe4uoWKckwHG+3XN/a8v3EHGKTJt+FwTm0PI/N+w aV1ywLON/IH9+5kjIRRtHcGfaE9gyH6lHFC4EhjUvIiXU4sIa9WHlTBjpBxBMK55QmxHPQ84g11UX euRmtcY6BopXC4MV9VFochopLN6fwPDfZeHeFFT5ukBjdG/d9BXaDduEo2AIm52mFwypgVxw8ENAm JwWQGtLANRcO3HuxoYKeEtP9kOTp/pF8YgdMGXIpVECV1kD1OwuOt6h8uWP3oZeksMi793MAHld9F dkVBp4RwDF6Bxp8YWlxA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qkUkE-00CgVa-0e; Sun, 24 Sep 2023 19:26:18 +0000 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qkUkB-00CgTW-1H for linux-arm-kernel@lists.infradead.org; Sun, 24 Sep 2023 19:26:16 +0000 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-99bf3f59905so620602266b.3 for ; Sun, 24 Sep 2023 12:26:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695583573; x=1696188373; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=mum4j91XFiU8Xtc7TFcTf1fNSOJNvZg3YC6vHA1cwnU=; b=Dn7SRdUax1FRIz0a9vBV5RXrqc8hE9lujDTSUL2YuBloIy9OFaXV2XO6HAs6zi8WbB CGmnxs46Gjz7/xLVP9yOE9VsUK0gXAC27c9+suLSw1ebHT0HKOhYFj02gV4SySQccv8X t+z8P6JeKmWf+O+2ecPo5ROzIz3C6s3D8kPktSBjrrelCdXUtLaD5t3hSVf0/5j/gRMW sAK/JpHVpf5KgOwHYFhtk8IdL6pQkEtslaUnRf8BKp825SXG6+jrM8kBgmruYPT+v3Uk ktQv2QMJeF83M74vxdiimdsRy2B3/gcQR4MWfTXbWXiCtHgxzLVqnT+ypWu3WtJjf42V KNbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695583573; x=1696188373; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=mum4j91XFiU8Xtc7TFcTf1fNSOJNvZg3YC6vHA1cwnU=; b=iIPhLjGZvRwu5Ep+cNUmuJDdg7Sh/jQqP7h3qga9N5XqhE9Axz512KHlyxnVVmLxXW 6X82igDtQCD5fDtRm3ccUbf/tKVcpwIZQ305jyDd8VGMZ2T+8Aw+4gF6tkfIt5D0HlsC lcGe8wp+9UqdBC08gh7BONjmqKoXSScniVP/eOKGxFWQ9Vy+UcgV3GevdTpPMcJ27Eu9 b0r9OjbAtYhQFvIf2Qj2p71YkpJX6apcskFXjMn9K0ifOawuLgrvDFPZxFFuKtGAb4D9 aYx1VIb3HubgjgOhGqaxL39gDtj03iFwzdEvlE9hLJTH6DIbVLpUej1aX/3E2bYJfCFN mIWQ== X-Gm-Message-State: AOJu0YzA4qA/P4qks+zLh125ZVKuqPqkrB6NrHaJseznDLNYslqkUqMF nlA9vO/xN85cxsk8TzUEMgs= X-Google-Smtp-Source: AGHT+IHXITx2ykaLrpQKUUcUVgZplQwvgEedTJsw9ydWxvo2fANUWEHTFIz/szbg85S67tayV/onBg== X-Received: by 2002:a17:906:31ce:b0:9ae:6ffd:be12 with SMTP id f14-20020a17090631ce00b009ae6ffdbe12mr4738928ejf.76.1695583572612; Sun, 24 Sep 2023 12:26:12 -0700 (PDT) Received: from localhost.localdomain (82-149-12-148.dynamic.telemach.net. [82.149.12.148]) by smtp.gmail.com with ESMTPSA id z21-20020a1709063a1500b0099d0c0bb92bsm5317632eje.80.2023.09.24.12.26.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Sep 2023 12:26:12 -0700 (PDT) From: Jernej Skrabec To: mripard@kernel.org, wens@csie.org Cc: airlied@gmail.com, daniel@ffwll.ch, samuel@sholland.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Jernej Skrabec Subject: [PATCH 0/7] drm/sun4i: dw-hdmi: Fix initialization & refactor Date: Sun, 24 Sep 2023 21:25:57 +0200 Message-ID: <20230924192604.3262187-1-jernej.skrabec@gmail.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230924_122615_433785_FADB193A X-CRM114-Status: GOOD ( 12.96 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Main goal of this series is to fix race condition between probing display connector driver and sun8i dw-hdmi platform driver. Sometimes, boards have ddc-en gpio specified in DT file. This is handled by display connector driver since commit 920169041baa ("drm/sun4i: dw-hdmi: Fix ddc-en GPIO consumer conflict"). However, because there is no link between it and sun8i dw-hdmi driver, probe order isn't determined. If display connector driver if probed afterwards, then sun8i dw-hdmi driver won't be able to read EDID and thus fall back to 1024x768. This can be easily solved by using bridges and linking them together. Coincidentally, switching to bridge model is also long term goal. I found out some other issues when working on them (missing phy deinit and memory corruption during executing fail path). Since there is now a bigger chance of deferring probe, it's also good to skip reporting deferred probe as error. This often confuses users when examining dmesg output, especially if there is no error code reported. I also throw 2 refactoring patches for a good measure. Please take a look. Best regards, Jernej Jernej Skrabec (7): drm/sun4i: dw-hdmi: Deinit PHY in fail path drm/sun4i: dw-hdmi: Remove double encoder cleanup drm/sun4i: dw-hdmi: Switch to bridge functions drm/sun4i: Don't show error for deferred probes. drm/sun4i: dw-hdmi: Split driver registration drm/sun4i: dw-hdmi: Make sun8i_hdmi_phy_get() more intuitive drm/sun4i: dw-hdmi: check for phy device first drivers/gpu/drm/sun4i/sun4i_drv.c | 3 +- drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 191 ++++++++++++++++++------- drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h | 9 +- drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 13 +- 4 files changed, 151 insertions(+), 65 deletions(-)