From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757279AbaHGGJd (ORCPT ); Thu, 7 Aug 2014 02:09:33 -0400 Received: from mail-pa0-f48.google.com ([209.85.220.48]:59195 "EHLO mail-pa0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755000AbaHGGJb (ORCPT ); Thu, 7 Aug 2014 02:09:31 -0400 Date: Wed, 6 Aug 2014 23:09:26 -0700 From: Dmitry Torokhov To: Javier Martinez Canillas Cc: Tomasz Figa , Nick Dyer , Stephen Warren , Yufeng Shen , Benson Leung , Doug Anderson , Olof Johansson , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] Input: atmel_mxt_ts - Get IRQ edge/level flags on DT booting Message-ID: <20140807060926.GA651@core.coreip.homeip.net> References: <1407372486-25881-1-git-send-email-javier.martinez@collabora.co.uk> <53E2D2F8.7010606@gmail.com> <53E2DAAC.1060602@collabora.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53E2DAAC.1060602@collabora.co.uk> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 07, 2014 at 03:47:24AM +0200, Javier Martinez Canillas wrote: > Hello Tomasz, > > Thanks a lot for your feedback. > > On 08/07/2014 03:14 AM, Tomasz Figa wrote: > > Hi Javier, > > > > > > Have you observed an actual failure due to this? I believe that > > Yes, I found this issue since the driver was not taking into account the value > defined in the edge/level type cells from the "interrupts" DT property. > > Only doing the change in the following patch was not enough: > > [PATCH 1/1] ARM: dts: Add Peach Pit and Pi dts entry for atmel touchpad [0]. > > > irq_of_parse_and_map() already sets up IRQ trigger type based on DT > > data, by calling irq_create_of_mapping() which in turn calls > > irq_set_irq_type(). > > > > Right but somehow when the IRQ is actually requested the type is overwritten by > the value passed to request_threaded_irq() and interrupts are not being > generated by the device without this patch. > > Do you think that this is a bug in the "interrupt-parent" irqchip driver or the > IRQ core? I'm not that familiar with the IRQ subsystem. No, this is clearly driver fault - it smashed previously done setup with new flags. > > >> > >> + if (client->dev.of_node) > >> + irqflags = irq_get_trigger_type(client->irq); > > > > It might be a bit cleaner to just assign the flags to pdata->irqflags in > > mxt_parse_dt() instead. That would also account for the fact that pdata, > > if provided, should have priority over DT. > > > > You are totally right, also this will break if CONFIG_OF is not enabled since > dev.of_node will not be defined. While this already is taken into account for > mxt_parse_dt() by defining an empty function. > > I'll change it in v2 if getting the flags from the driver is the right approach Yes, please. > instead of fixing the irqchip driver or the IRQ core. Thanks. -- Dmitry