Return-path: Received: from mail-qw0-f46.google.com ([209.85.216.46]:33947 "EHLO mail-qw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754662Ab1BIRrN (ORCPT ); Wed, 9 Feb 2011 12:47:13 -0500 Received: by qwa26 with SMTP id 26so335411qwa.19 for ; Wed, 09 Feb 2011 09:47:12 -0800 (PST) Message-ID: <4D52D358.5050208@lwfinger.net> Date: Wed, 09 Feb 2011 11:48:08 -0600 From: Larry Finger MIME-Version: 1.0 To: George Kashperko CC: linux-wireless Subject: Re: SSB AI support code ([RFC3/11] SSB irqflag device op) References: <1297258590.17400.37.camel@dev.znau.edu.ua> <1297261973.18053.20.camel@dev.znau.edu.ua> <4D52BE92.5070503@lwfinger.net> <1297271450.3361.0.camel@dev.znau.edu.ua> In-Reply-To: <1297271450.3361.0.camel@dev.znau.edu.ua> Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: On 02/09/2011 11:10 AM, George Kashperko wrote: >> On 02/09/2011 08:32 AM, George Kashperko wrote: >>> From: George Kashperko >>> >>> SB- and AI-style buses read irq flags from different locations. >>> SB-ones read them from TPSFLAG whereas AI-ones from core oob register. >>> In order to support both SB- and AI-style buses transparently >>> irq flag accessor is implemented as ssb device op. >>> Signed-off-by: George Kashperko >>> --- >>> drivers/ssb/driver_mipscore.c | 2 +- >>> drivers/ssb/main.c | 1 + >>> include/linux/ssb/ssb.h | 5 +++++ >>> include/linux/ssb/ssb_driver_mips.h | 1 + >>> 4 files changed, 8 insertions(+), 1 deletion(-) >>> --- linux-next-20110203.orig/drivers/ssb/driver_mipscore.c 2011-02-01 05:05:49.000000000 +0200 >>> +++ linux-next-20110203/drivers/ssb/driver_mipscore.c 2011-02-07 16:39:46.000000000 +0200 >>> @@ -47,7 +47,7 @@ static const u32 ipsflag_irq_shift[] = { >>> SSB_IPSFLAG_IRQ4_SHIFT, >>> }; >>> >>> -static inline u32 ssb_irqflag(struct ssb_device *dev) >>> +u32 ssb_irqflag_sb(struct ssb_device *dev) >>> { >>> u32 tpsflag = ssb_read32(dev, SSB_TPSFLAG); >>> if (tpsflag) >>> --- linux-next-20110203.orig/drivers/ssb/main.c 2011-02-07 16:35:50.000000000 +0200 >>> +++ linux-next-20110203/drivers/ssb/main.c 2011-02-07 16:49:40.000000000 +0200 >>> @@ -1367,6 +1367,7 @@ static const struct ssb_bus_ops ssb_ssb_ >>> .device_disable = ssb_device_disable_sb, >>> .admatch_base = ssb_admatch_base_sb, >>> .admatch_size = ssb_admatch_size_sb, >>> + .irqflag = ssb_irqflag_sb, >>> }; >>> >>> static int __init ssb_modinit(void) >>> --- linux-next-20110203.orig/include/linux/ssb/ssb_driver_mips.h 2011-02-01 05:05:49.000000000 +0200 >>> +++ linux-next-20110203/include/linux/ssb/ssb_driver_mips.h 2011-02-07 16:39:10.000000000 +0200 >>> @@ -29,6 +29,7 @@ extern void ssb_mipscore_init(struct ssb >>> extern u32 ssb_cpu_clock(struct ssb_mipscore *mcore); >>> >>> extern unsigned int ssb_mips_irq(struct ssb_device *dev); >>> +extern u32 ssb_irqflag_sb(struct ssb_device *dev); >>> >>> >>> #else /* CONFIG_SSB_DRIVER_MIPS */ >>> --- linux-next-20110203.orig/include/linux/ssb/ssb.h 2011-02-07 16:35:50.000000000 +0200 >>> +++ linux-next-20110203/include/linux/ssb/ssb.h 2011-02-07 16:38:34.000000000 +0200 >>> @@ -124,6 +124,7 @@ struct ssb_bus_ops { >>> void (*device_disable)(struct ssb_device *dev, u32 core_specific_flags); >>> u32 (*admatch_base)(struct ssb_device *dev, u32 adm); >>> u32 (*admatch_size)(struct ssb_device *dev, u32 adm); >>> + u32 (*irqflag)(struct ssb_device *dev); >>> }; >>> >>> >>> @@ -485,6 +486,10 @@ static inline u32 ssb_admatch_size(struc >>> { >>> return dev->ops->admatch_size(dev, adm); >>> } >>> +static inline u32 ssb_irqflag(struct ssb_device *dev) >>> +{ >>> + return dev->ops->irqflag(dev); >>> +} >>> >>> >>> /* The SSB DMA API. Use this API for any DMA operation on the device. >>> >>> >>> >>> -- >> >> This one fails to compile with the following error: >> >> drivers/ssb/main.c:1370:14: error: ‘ssb_irqflag_sb’ undeclared here (not in a >> function) >> make[1]: *** [drivers/ssb/main.o] Error 1 >> make: *** [drivers/ssb/] Error 2 >> >> Larry >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > Well, might the problem here is again caused with mine wrong post of <[RFC9/11] SSB modify irqflag treatment> > Could you please remove that one and reaply whole set of patches again. > Sorry for inconveniences. That cannot be the problem with this one. Each patch in a series MUST compile correctly so that anyone that is bisecting the code always can build a kernel. The code doesn't necessarily have to work correctly - that would be nice, but it must compile. #3 fails this test. Larry