From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753085AbbIRJIg (ORCPT ); Fri, 18 Sep 2015 05:08:36 -0400 Received: from pandora.arm.linux.org.uk ([78.32.30.218]:57467 "EHLO pandora.arm.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753021AbbIRJIc (ORCPT ); Fri, 18 Sep 2015 05:08:32 -0400 Date: Fri, 18 Sep 2015 10:08:17 +0100 From: Russell King - ARM Linux To: Daniel Lezcano Cc: Caesar Wang , Heiko Stuebner , Catalin Marinas , Will Deacon , linux-rockchip@lists.infradead.org, Thomas Gleixner , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 1/3] clocksource: rockchip: Make the driver more readability and compatible Message-ID: <20150918090817.GA21084@n2100.arm.linux.org.uk> References: <1442476272-31723-1-git-send-email-wxt@rock-chips.com> <1442476272-31723-2-git-send-email-wxt@rock-chips.com> <55FA83D5.9010504@linaro.org> <55FA87AA.4040807@gmail.com> <55FA9099.7000903@linaro.org> <55FA93B0.40504@gmail.com> <55FBC36C.2090801@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <55FBC36C.2090801@linaro.org> 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 Fri, Sep 18, 2015 at 09:55:24AM +0200, Daniel Lezcano wrote: > On 09/17/2015 12:19 PM, Caesar Wang wrote: > > > > > >在 2015年09月17日 18:06, Daniel Lezcano 写道: > >>On 09/17/2015 11:28 AM, Caesar Wang wrote: > >>>Hi Daniel, > >>> > >>> > >>>在 2015年09月17日 17:11, Daniel Lezcano 写道: > >>>> > >>>>Hi Caesar, > >>>> > >>>> > >>>>On 09/17/2015 09:51 AM, Caesar Wang wrote: > >>>>>Build the arm64 SoCs (e.g.: RK3368) on Rockchip platform, > >>>>>There are some failure with build up on timer driver for rockchip. > >>>>> > >>>>>logs: > >>>>>... > >>>>>drivers/clocksource/rockchip_timer.c:156:13: error: 'NO_IRQ' > >>>>>undeclared > >>>> > >>>>I think the NO_IRQ definition is missing for ARM64. > >>> > >>>Yep, Maybe better to compatible if we don't use the 'NO_IRQ', > >> > >>Hmm, after digging into drivers/of/irq.c and kernel/irq/irqdomain.c > >> > >>when there is an error it returns zero. So NO_IRQ and -1 are not > >>correct and on the other side zero can be a valid irq. That sounds a > >>little bit fuzzy to me. > > > >I believe the 'NO_IRQ' is better select if 'NO_IRQ' is defined on ARM64 > >platform. > > > > irq = irq_of_parse_and_map(np, 0); > > > > if (irq == NO_IRQ) > >... > >Also, that's ok if we instead of the 'irq < 0' or '!irq' , right? > > > Hi Caesar, > > so regarding Thomas and Russel answers, let's replace NO_IRQ by '!irq'. ^ Definitely in this case. irq_create_of_mapping() and therefore irq_of_parse_and_map() both return _zero_ when they fail, not whatever happens to be NO_IRQ on a particular architecture. New code should _never_ be making any use of NO_IRQ. That's why I said: "Modern drivers should _all_ be using !irq to detect invalid IRQs, and not using NO_IRQ." -- FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.