From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752307AbaAXRsE (ORCPT ); Fri, 24 Jan 2014 12:48:04 -0500 Received: from gw-1.arm.linux.org.uk ([78.32.30.217]:47890 "EHLO pandora.arm.linux.org.uk" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750997AbaAXRsC (ORCPT ); Fri, 24 Jan 2014 12:48:02 -0500 Date: Fri, 24 Jan 2014 17:47:52 +0000 From: Russell King - ARM Linux To: Sebastian Hesselbarth Cc: Jean-Francois Moine , dri-devel@lists.freedesktop.org, Dave Airlie , Rob Clark , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 15/24] drm/i2c: tda998x: use irq for connection status and EDID read Message-ID: <20140124174752.GF15937@n2100.arm.linux.org.uk> References: <20140119195843.7ae9753d@armhf> <20140122222705.GL15937@n2100.arm.linux.org.uk> <52E2A2E8.50806@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <52E2A2E8.50806@gmail.com> User-Agent: Mutt/1.5.19 (2009-01-05) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 24, 2014 at 06:29:12PM +0100, Sebastian Hesselbarth wrote: > On 01/22/14 23:27, Russell King - ARM Linux wrote: >> On Sun, Jan 19, 2014 at 07:58:43PM +0100, Jean-Francois Moine wrote: >>> This patch adds the optional treatment of the tda998x IRQ. >>> >>> The interrupt function is used to know the display connection status >>> without polling and to speedup reading the EDID. >>> >>> The interrupt number may be defined either in the DT or at encoder set >>> config time for non-DT boards. >>> >>> Signed-off-by: Jean-Francois Moine >>> --- > [...] >>> @@ -720,6 +787,10 @@ tda998x_encoder_set_config(struct drm_encoder *encoder, void *params) >>> priv->audio_port = p->audio_cfg; >>> priv->audio_format = p->audio_format; >>> } >>> + >>> + priv->irq = p->irq; >>> + if (p->irq) >>> + tda_irq_init(priv); >> >> If we're going to do it this way, this should probably release the IRQ if >> there was one before re-claiming it, just in case this function gets called >> more than once by some driver using it. >> >> The alternative is, as I said before, to use the infrastructure which is >> already there, namely setting the interrupt via struct i2c_client's >> irq member. Yes, that doesn't satisfy Sebastian's comment about using >> a GPIO, but there's no sign of GPIO usage in here at the moment anyway. >> So we might as well use what's already provided. > > Russell, > > I am fine with using an irq instead of gpio here. I remember you telling > me on a similar patch, that from the gpio you can derive the irq but > not the other way round. Anyway, I also remember reading discussions > about DT gpios vs interrupts, and IIRC the outcome was that passing > interrupts is fine, too. Sebastian, You can derive the irq from a gpio (using gpio_to_irq()), but you can't derive a gpio from an irq. It's annoying that i2c_client and the i2c board data do not allow a GPIO to be specified, but only an IRQ, but that's a separate problem which when solved will also get solved here. So, I'm not too worried about the "should this be an IRQ or should it be a GPIO" question here. For us on ARM, it's less of a problem because we can just deal with GPIOs or IRQs at the DT level, and so we don't care what's in i2c_client. -- FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up. Estimation in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad. Estimate before purchase was "up to 13.2Mbit". From mboxrd@z Thu Jan 1 00:00:00 1970 From: linux@arm.linux.org.uk (Russell King - ARM Linux) Date: Fri, 24 Jan 2014 17:47:52 +0000 Subject: [PATCH v3 15/24] drm/i2c: tda998x: use irq for connection status and EDID read In-Reply-To: <52E2A2E8.50806@gmail.com> References: <20140119195843.7ae9753d@armhf> <20140122222705.GL15937@n2100.arm.linux.org.uk> <52E2A2E8.50806@gmail.com> Message-ID: <20140124174752.GF15937@n2100.arm.linux.org.uk> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Jan 24, 2014 at 06:29:12PM +0100, Sebastian Hesselbarth wrote: > On 01/22/14 23:27, Russell King - ARM Linux wrote: >> On Sun, Jan 19, 2014 at 07:58:43PM +0100, Jean-Francois Moine wrote: >>> This patch adds the optional treatment of the tda998x IRQ. >>> >>> The interrupt function is used to know the display connection status >>> without polling and to speedup reading the EDID. >>> >>> The interrupt number may be defined either in the DT or at encoder set >>> config time for non-DT boards. >>> >>> Signed-off-by: Jean-Francois Moine >>> --- > [...] >>> @@ -720,6 +787,10 @@ tda998x_encoder_set_config(struct drm_encoder *encoder, void *params) >>> priv->audio_port = p->audio_cfg; >>> priv->audio_format = p->audio_format; >>> } >>> + >>> + priv->irq = p->irq; >>> + if (p->irq) >>> + tda_irq_init(priv); >> >> If we're going to do it this way, this should probably release the IRQ if >> there was one before re-claiming it, just in case this function gets called >> more than once by some driver using it. >> >> The alternative is, as I said before, to use the infrastructure which is >> already there, namely setting the interrupt via struct i2c_client's >> irq member. Yes, that doesn't satisfy Sebastian's comment about using >> a GPIO, but there's no sign of GPIO usage in here at the moment anyway. >> So we might as well use what's already provided. > > Russell, > > I am fine with using an irq instead of gpio here. I remember you telling > me on a similar patch, that from the gpio you can derive the irq but > not the other way round. Anyway, I also remember reading discussions > about DT gpios vs interrupts, and IIRC the outcome was that passing > interrupts is fine, too. Sebastian, You can derive the irq from a gpio (using gpio_to_irq()), but you can't derive a gpio from an irq. It's annoying that i2c_client and the i2c board data do not allow a GPIO to be specified, but only an IRQ, but that's a separate problem which when solved will also get solved here. So, I'm not too worried about the "should this be an IRQ or should it be a GPIO" question here. For us on ARM, it's less of a problem because we can just deal with GPIOs or IRQs at the DT level, and so we don't care what's in i2c_client. -- FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up. Estimation in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad. Estimate before purchase was "up to 13.2Mbit".