From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758137Ab1LNX3M (ORCPT ); Wed, 14 Dec 2011 18:29:12 -0500 Received: from mail-gy0-f174.google.com ([209.85.160.174]:61244 "EHLO mail-gy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753150Ab1LNX3L (ORCPT ); Wed, 14 Dec 2011 18:29:11 -0500 Message-ID: <4EE93142.9060904@gmail.com> Date: Wed, 14 Dec 2011 17:29:06 -0600 From: Rob Herring User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111124 Thunderbird/8.0 MIME-Version: 1.0 To: Grant Likely CC: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree-discuss@lists.ozlabs.org, shawn.guo@freescale.com, Kukjin Kim , Kevin Hilman , Tony Lindgren , Barry Song , Linus Walleij , Thomas Gleixner Subject: Re: [PATCH 3/9] irq: convert generic-chip to use irq_domain References: <1323876538-20406-1-git-send-email-robherring2@gmail.com> <1323876538-20406-4-git-send-email-robherring2@gmail.com> <4EE913C7.1060901@gmail.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/14/2011 03:26 PM, Grant Likely wrote: > On Wed, Dec 14, 2011 at 2:23 PM, Rob Herring wrote: >> >> >> On 12/14/2011 03:14 PM, Grant Likely wrote: >>> On Wed, Dec 14, 2011 at 8:28 AM, Rob Herring wrote: >>>> From: Rob Herring >>>> >>>> Add irq domain support to irq generic-chip. This enables users of >>>> generic-chip to support dynamic irq assignment needed for DT interrupt >>>> binding. Users must be converted to use irq_data.hwirq for determining >>>> local interrupt numbers rather than using the Linux irq number. >>>> >>>> irq_base is kept for now as there are a few users of it. Once they >>>> are converted to use the irq domain, it can be removed. >>>> >>>> Signed-off-by: Rob Herring >>>> Cc: Thomas Gleixner >>>> --- >>>> include/linux/irq.h | 2 +- >>>> kernel/irq/Kconfig | 1 + >>>> kernel/irq/generic-chip.c | 57 ++++++++++++++++++++++++++++---------------- >>>> 3 files changed, 38 insertions(+), 22 deletions(-) >>>> >>>> diff --git a/include/linux/irq.h b/include/linux/irq.h >>>> index bff29c5..9ba8a30 100644 >>>> --- a/include/linux/irq.h >>>> +++ b/include/linux/irq.h >>>> @@ -664,7 +664,7 @@ struct irq_chip_generic { >>>> raw_spinlock_t lock; >>>> void __iomem *reg_base; >>>> unsigned int irq_base; >>>> - unsigned int irq_cnt; >>>> + struct irq_domain *domain; >>> >>> Instead of making domain a pointer, why not embed the structure inside >>> irq_chip_generic? I don't see a reason for keeping it separate. >>> >> >> There is a circular header dependency between irq.h and irq_domain.h. >> Maybe I just need to put the include of irq_domain.h just above here >> rather than the top of the file. > > Yes, try that. I'd rather get the dependency problem sorted out. > Alternately, problematic bit of irq_domain.h can be moved to another > header. > Things always start out so simple... Removing irq.h from irqdomain.h fixes my original problem. However, that breaks on x86 since x86 has it's own struct irq_domain. Some ifdef'ing could fix it since x86 doesn't use irq_chip_generic. Didn't you have converting x86 in your original irq domain patches? Rob