From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161909AbcE3TK7 (ORCPT ); Mon, 30 May 2016 15:10:59 -0400 Received: from pandora.armlinux.org.uk ([78.32.30.218]:42857 "EHLO pandora.armlinux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161631AbcE3TK6 (ORCPT ); Mon, 30 May 2016 15:10:58 -0400 Date: Mon, 30 May 2016 20:10:44 +0100 From: Russell King - ARM Linux To: Joao Pinto Cc: linux-kernel@vger.kernel.org, ijc+devicetree@hellion.org.uk, liviu.dudau@arm.com, ryan.harkin@linaro.org Subject: Re: [PATCH 3/3] tda998x: add HPD delay to avoid disabling sound when EDID checksum fails. Message-ID: <20160530191044.GR19428@n2100.arm.linux.org.uk> References: <2f242f545c99fc604fb70eeffcfd5d7703ace18d.1464619185.git.jpinto@synopsys.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2f242f545c99fc604fb70eeffcfd5d7703ace18d.1464619185.git.jpinto@synopsys.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 30, 2016 at 04:15:54PM +0100, Joao Pinto wrote: > When using ffplay to reproduce video+sound it was noticed that sometimes the > sound was disabled. The cause was an initial EDID checksum error that disabled > the HDMI sound. By adding this tweak, it was noticed that the sound is not > even when initial EDID checksum error ocurres. > > Signed-off-by: Joao Pinto > --- > drivers/gpu/drm/i2c/tda998x_drv.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c > index 7020b50..fc7c1c3 100644 > --- a/drivers/gpu/drm/i2c/tda998x_drv.c > +++ b/drivers/gpu/drm/i2c/tda998x_drv.c > @@ -587,6 +587,17 @@ static void tda998x_detect_work(struct work_struct *work) > drm_kms_helper_hotplug_event(dev); > } > > +/* handle HDMI connect/disconnect */ > +static void tda998x_hpd(struct work_struct *work) > +{ > + struct delayed_work *dwork = to_delayed_work(work); > + struct tda998x_priv *priv = > + container_of(dwork, struct tda998x_priv, dwork); > + > + if (&priv->encoder && priv->encoder.dev) > + drm_kms_helper_hotplug_event(priv->encoder.dev); > +} > + > /* > * only 2 interrupts may occur: screen plug/unplug and EDID read > */ > @@ -1313,6 +1324,7 @@ static int tda998x_create(struct i2c_client *client, struct tda998x_priv *priv) > > /* init read EDID waitqueue and HDP work */ > init_waitqueue_head(&priv->wq_edid); > + INIT_DELAYED_WORK(&priv->dwork, tda998x_hpd); > > /* clear pending interrupts */ > reg_read(priv, REG_INT_FLAGS_0); Clearly, this patch is incomplete. There's nothing that schedules this work to be run. In any case, this is reintroducing the code which I deleted when I fixed the (rather crappy) previous implemention of delaying the EDID read after a hotplug event. You should not need this patch. -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.