Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1820250rwl; Thu, 6 Apr 2023 01:28:13 -0700 (PDT) X-Google-Smtp-Source: AKy350Y4btavd3dhC3UEPlzqBSVnq0nOrw9btD57QsP+x2Shm8XBafw6NMZ1eUz1aUl3UCzM8EJA X-Received: by 2002:a05:6a20:3826:b0:cc:a5d4:c31e with SMTP id p38-20020a056a20382600b000cca5d4c31emr2054752pzf.10.1680769693629; Thu, 06 Apr 2023 01:28:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680769693; cv=none; d=google.com; s=arc-20160816; b=yJSDX1oDnSmKoNLheQQboQB3X2+S726+41cNqv0HZNVrlt1trZYoWzeNC5+GpOa8hk dP6/x/3F+yucnEqQPLJWhPkDTq014kZ57zqJ7bbAN2F8HnFtA2prpp9AhMt9VImkZcyV Idzl786NIVCUbywbIlaf7jart76uFUOhkS2VAqxtTDyLxkVIVu5JrJe6dWy1jz7Sdx72 IcWACaLp3LVyLJt4ByipKnJ8BdjZbRmL0otbjS3gE2sabDcvl217dYMfQG/X2P3FxYxx /xMzyUg5YD5ryckD98e9EUxqY5LRSODfmDvVlxaoXJ4uPmMhhaPh09cPLxTvJu5OZ+Bm 4sTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=g28qTdarn5T1CQwl0LUd8q9n28ZuC0xYE9nwtd0SmPM=; b=AfBKQBoK/niKwTMln8chf1QPuAgFLHU6ByMTPrH1u/jqiZ0FM1+jsN2y4LEQeoLBI6 k+Qpb5xr9piTCNqqS/9nSJhYpnMV6RfldpABKObuJBnqr0gWgvUn/KUTU6rlW/wCbZkW VX/nn5mMS6XnFJ3PqdTkRH3aaD2EUpyyhiN/0tSwZOs0MEhLyQ3+h9pcBVr/xK+1+ebs mhARKwzaIQ6VI9tECRpK5aPOgbe9mpcMs0S6u/FcAq9bPydsSegYi/xkE3s+Z1rqhmVT fIq+L8gfLQyGveFLQBaIKdWpQl8XW0nWnej1/k5fKkwuiJ37jwg9nwYw/0Zv6Bfy0sNe +qig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=ai2Nd2YO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o25-20020aa79799000000b0062a3f8af23bsi820776pfp.323.2023.04.06.01.28.02; Thu, 06 Apr 2023 01:28:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=ai2Nd2YO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235895AbjDFI0p (ORCPT + 99 others); Thu, 6 Apr 2023 04:26:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42140 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235635AbjDFI0n (ORCPT ); Thu, 6 Apr 2023 04:26:43 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 97F4E4C05 for ; Thu, 6 Apr 2023 01:26:42 -0700 (PDT) Received: from [192.168.1.100] (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: kholk11) by madras.collabora.co.uk (Postfix) with ESMTPSA id D2DB566031BB; Thu, 6 Apr 2023 09:26:40 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1680769601; bh=oav4Q570+IEqHszuEMrP/J+ZVB35sBCGUh4o0TPxawM=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=ai2Nd2YO8SxMM8/ddeAPkrdFMoD9kv3YFuruuXcJoU4pioQJAjxuWLunBQm8OHtvg CEVHsiOPZQqmQszmzYO3GFGgwU6hGEzLfaPVLxPHtr6mLZiwhpqhktR/7i4QViRcLs +LhTwZFKXMsTDlnDX10dsLft1tKLnaJurc9ZlZp+w/HpdytqmIroTGMN5HIJkIz7ub PEkvXvSsuDIbVrdl9+qNGWzHKyV+ooIzfu9j6DdtJ2evtHUm/w8IS836F5VLM8Jq7p kGYXH29+uxtbILPM0IByxVUG3lSZzdOh7uhY6Pwr2/wmuy9/LNfv9E91NNXz6fvhpX WJiqXMgl638Jg== Message-ID: <17342952-ce6b-a473-4bf0-f96a49d13632@collabora.com> Date: Thu, 6 Apr 2023 10:26:38 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Subject: Re: [PATCH v3 2/9] drm/mediatek: dp: Move AUX and panel poweron/off sequence to function Content-Language: en-US To: Chen-Yu Tsai Cc: chunkuang.hu@kernel.org, p.zabel@pengutronix.de, airlied@gmail.com, daniel@ffwll.ch, matthias.bgg@gmail.com, dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@collabora.com References: <20230404104800.301150-1-angelogioacchino.delregno@collabora.com> <20230404104800.301150-3-angelogioacchino.delregno@collabora.com> From: AngeloGioacchino Del Regno In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Il 06/04/23 10:20, Chen-Yu Tsai ha scritto: > On Tue, Apr 4, 2023 at 6:48 PM AngeloGioacchino Del Regno > wrote: >> >> Everytime we run bridge detection and/or EDID read we run a poweron >> and poweroff sequence for both the AUX and the panel; moreover, this >> is also done when enabling the bridge in the .atomic_enable() callback. >> >> Move this power on/off sequence to a new mtk_dp_aux_panel_poweron() >> function as to commonize it. >> Note that, before this commit, in mtk_dp_bridge_atomic_enable() only >> the AUX was getting powered on but the panel was left powered off if >> the DP cable wasn't plugged in while now we unconditionally send a D0 >> request and this is done for two reasons: >> - First, whether this request fails or not, it takes the same time >> and anyway the DP hardware won't produce any error (or, if it >> does, it's ignorable because it won't block further commands) >> - Second, training the link between a sleeping/standby/unpowered >> display makes little sense. >> >> Signed-off-by: AngeloGioacchino Del Regno >> --- >> drivers/gpu/drm/mediatek/mtk_dp.c | 76 ++++++++++++------------------- >> 1 file changed, 30 insertions(+), 46 deletions(-) >> >> diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c b/drivers/gpu/drm/mediatek/mtk_dp.c >> index 84f82cc68672..76ea94167531 100644 >> --- a/drivers/gpu/drm/mediatek/mtk_dp.c >> +++ b/drivers/gpu/drm/mediatek/mtk_dp.c >> @@ -1253,6 +1253,29 @@ static void mtk_dp_audio_mute(struct mtk_dp *mtk_dp, bool mute) >> val[2], AU_TS_CFG_DP_ENC0_P0_MASK); >> } >> >> +static void mtk_dp_aux_panel_poweron(struct mtk_dp *mtk_dp, bool pwron) >> +{ >> + if (pwron) { >> + /* power on aux */ >> + mtk_dp_update_bits(mtk_dp, MTK_DP_TOP_PWR_STATE, >> + DP_PWR_STATE_BANDGAP_TPLL_LANE, >> + DP_PWR_STATE_MASK); >> + >> + /* power on panel */ >> + drm_dp_dpcd_writeb(&mtk_dp->aux, DP_SET_POWER, DP_SET_POWER_D0); >> + usleep_range(2000, 5000); >> + } else { >> + /* power off panel */ >> + drm_dp_dpcd_writeb(&mtk_dp->aux, DP_SET_POWER, DP_SET_POWER_D3); >> + usleep_range(2000, 3000); >> + >> + /* power off aux */ >> + mtk_dp_update_bits(mtk_dp, MTK_DP_TOP_PWR_STATE, >> + DP_PWR_STATE_BANDGAP_TPLL, >> + DP_PWR_STATE_MASK); >> + } >> +} >> + >> static void mtk_dp_power_enable(struct mtk_dp *mtk_dp) >> { >> mtk_dp_update_bits(mtk_dp, MTK_DP_TOP_RESET_AND_PROBE, >> @@ -1937,16 +1960,9 @@ static enum drm_connector_status mtk_dp_bdg_detect(struct drm_bridge *bridge) >> if (!mtk_dp->train_info.cable_plugged_in) >> return ret; >> >> - if (!enabled) { >> - /* power on aux */ >> - mtk_dp_update_bits(mtk_dp, MTK_DP_TOP_PWR_STATE, >> - DP_PWR_STATE_BANDGAP_TPLL_LANE, >> - DP_PWR_STATE_MASK); >> + if (!enabled) >> + mtk_dp_aux_panel_poweron(mtk_dp, true); >> >> - /* power on panel */ >> - drm_dp_dpcd_writeb(&mtk_dp->aux, DP_SET_POWER, DP_SET_POWER_D0); > > I suspect the original code was somewhat wrong already? We shouldn't need > to pull the panel out of standby just for HPD or reading EDID. > > This driver probably needs a lot more cleanup. :/ > I believe the same... but I wanted to play safe, as I don't know if there's any panel in particular that requires such quirk... Angelo