From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756873AbbHZRLp (ORCPT ); Wed, 26 Aug 2015 13:11:45 -0400 Received: from mail.kmu-office.ch ([178.209.48.109]:48808 "EHLO mail.kmu-office.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756765AbbHZRLn (ORCPT ); Wed, 26 Aug 2015 13:11:43 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Date: Wed, 26 Aug 2015 10:11:25 -0700 From: Stefan Agner To: Linus Walleij Cc: Alexandre Courbot , linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] gpio: vf610: handle level IRQ's properly In-Reply-To: References: <1440197802-29720-1-git-send-email-stefan@agner.ch> Message-ID: <99db8c092e8b54d485e88887630d51c0@agner.ch> User-Agent: Roundcube Webmail/1.1.2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2015-08-26 05:47, Linus Walleij wrote: > On Sat, Aug 22, 2015 at 12:56 AM, Stefan Agner wrote: > >> The GPIO IRQ controller is able to generate level triggered >> interrupts, however, these were handled by handle_simple_irq so far >> which did not take care of IRQ masking. This lead to "nobody cared >> (try booting with the "irqpoll" option)" stack traces. >> >> Use the generic interrupt handlers depending on the IRQ type. >> >> Signed-off-by: Stefan Agner > > Patch applied. Thx > Hm, this looks like a problem that could exist in a few more > GPIO drivers. Can you look around and see if there is something > immediately suspicious in drivers/gpio? Just looked a bit around. There are some which use handle_simple_irq but also run their handler in threaded/one-shot handler. I guess in that case it is fine to use the simple_irq handler. However, those GPIO drivers look suspicious: gpio-altera.c: Uses handle_simple_irq, supports edge and level gpio-bcm-kona.c: Uses handle_simple_irq, supports only edge gpio-grgpio.c: Uses handle_simple_irq, supports edge and level gpio-intel-mid.c: Uses handle_simple_irq, supports only edge gpio-lynxpoint.c: Uses handle_simple_irq, supports edge and level gpio-ml-ioh.c: Uses handle_simple_irq, supports edge and level gpio-pl061.c: Uses handle_simple_irq, supports edge and level gpio-rcar.c: Uses handle_level_irq, supports edge and level gpio-timberdale.c: Uses handle_simple_irq, supports edge and level -- Stefan