Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp7086277imu; Mon, 21 Jan 2019 23:34:53 -0800 (PST) X-Google-Smtp-Source: ALg8bN5Z7f6BflUFjv+Xg5PVxAQtwbDs9etqyzm3LnJs4KpI98B1RdcCOFzdmwvxvbx6Gy2/MmOD X-Received: by 2002:a63:4b60:: with SMTP id k32mr30756646pgl.186.1548142493708; Mon, 21 Jan 2019 23:34:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548142493; cv=none; d=google.com; s=arc-20160816; b=vpwEkQ4+lQpGCQVeqVZ6yPh0MJrThvfmiUDMueikTbGbFA/fy2Qdr/sQSbFJS9Qcwj bfHDuAK657g2POv1iS9kOlpBSXtRHywTArGRPk311ql0hqhDPyKm/W9jXx30wRC8oSxn gYMq0AV2ggWDAprOD8ucw+5csMK2qjLsw/A5y1if04ZNG6KA+eSAqzhivMA+V66w9GM2 qhnk0Z2rw766xQlh3MnhAa1gDuQHun/GWL2DXkBCJFFOP2sf8qWkpdEy8l3xcfR7Xl61 EfygSQatukw9TU/Wat0FTI6/XetJ3V1mV4+xyUmHOp2lFS5kJ+ba4K64LQ9YhaDgaBum LjEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=n+cvbrCUsPiKt6YrwZJCGNmAofM6rBLjWWqkWZ42Ee4=; b=xtDT6fws4yfbxAXkRAVFN2Fq4zM1cwTQoe4R0EtJDBZ8sBy0V4J8kQu7LtQLDFvurM GR6NZFSElOn8bhM2Z9eNmMnPkhmNgzuIR4p+NKgGF7Npj8bSJ3S+v9war/SP8bJl7QS4 1vLWxMWypXK8XmUOrArQ45i2xgkfUzd36gQZ4p5kfRnBYuM+eqVob6EfLmAmg790UCbX zK++EHBLlFucATsn08MQ8YpP+rTornJPzSqPR+N34WSWnNd4kYXS91MajvcdVV3DJ4sw 4PWozu6HhCI6qun9vrid/PKlsG53Cb6Lkvy6OP8Xq9pEP7dWWMZpdOPn6ckLYY8j6gYA zltQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@plaes.org header.s=mail header.b=jI91dIFh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w32si13866078pga.337.2019.01.21.23.34.25; Mon, 21 Jan 2019 23:34:53 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@plaes.org header.s=mail header.b=jI91dIFh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727244AbfAVHcg (ORCPT + 99 others); Tue, 22 Jan 2019 02:32:36 -0500 Received: from plaes.org ([188.166.43.21]:41700 "EHLO plaes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726423AbfAVHcg (ORCPT ); Tue, 22 Jan 2019 02:32:36 -0500 Received: from localhost (unknown [IPv6:2001:bb8:4008:ff:21a:64ff:fe97:f62]) by plaes.org (Postfix) with ESMTPSA id 4366E40377; Tue, 22 Jan 2019 07:32:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=plaes.org; s=mail; t=1548142354; bh=B1Qep9dESQIpSgo3ifGmlcmiBpGPcpysADD3kbecHoI=; h=From:To:Cc:Subject:Date:From; b=jI91dIFhE51RhvSc3Ns5QVancwYQOppbWroe3RREntyxrC4DxKFTEr8gG6nnCEmUj 1hc0Rzd5hD8t/5jP5h5vqJOSF/bb7zwp795niUohEZU+rsQOX0UZ7FLSbh3455mdzn iyY+64aNn8zKfZXqTKux4ezUbGhkWt0ciw1Pc/Tdkc0a3ZIiqHKp9tJM/j3HtEijiL TphNjOzZAy2XoUta3m4/j+7O7NP62NxBWSQBIPgtnVm1xgI9Wskzo5UnaqysdTOb4q yrpOv/yRbTee1HQbK3M90L/StNDW2vfwbUlM3c6E1Cds+9VhpL5VZhiffIjuHPz8E5 L+uY1yvHoEoMw== From: Priit Laes To: Maxime Ripard , David Airlie , Daniel Vetter , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Priit Laes Subject: [PATCH] drm/sun4i: hdmi: Fix usage of TMDS clock Date: Tue, 22 Jan 2019 09:32:32 +0200 Message-Id: <20190122073232.7240-1-plaes@plaes.org> X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Priit Laes Although TMDS clock is required for HDMI to properly function, nobody called clk_prepare_enable(). This fixes reference counting issues and makes sure clock is running when it needs to be running. Due to TDMS clock being parent clock for DDC clock, TDMS clock was turned on/off for each EDID probe, causing spurious failures for certain HDMI/DVI screens. Fixes: 9c5681011a0c ("drm/sun4i: Add HDMI support") Signed-off-by: Priit Laes --- drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c index 061d2e0d9011..25f4d676fd82 100644 --- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c @@ -92,6 +92,8 @@ static void sun4i_hdmi_disable(struct drm_encoder *encoder) val = readl(hdmi->base + SUN4I_HDMI_VID_CTRL_REG); val &= ~SUN4I_HDMI_VID_CTRL_ENABLE; writel(val, hdmi->base + SUN4I_HDMI_VID_CTRL_REG); + + clk_disable_unprepare(hdmi->tmds_clk); } static void sun4i_hdmi_enable(struct drm_encoder *encoder) @@ -112,6 +114,8 @@ static void sun4i_hdmi_enable(struct drm_encoder *encoder) val |= SUN4I_HDMI_VID_CTRL_HDMI_MODE; writel(val, hdmi->base + SUN4I_HDMI_VID_CTRL_REG); + + clk_prepare_enable(hdmi->tmds_clk); } static void sun4i_hdmi_mode_set(struct drm_encoder *encoder, -- 2.11.0