* Re: [PATCH 5/6 v2] 85xxCDS: Misc 8548 PCI Corrections.
From: Randy Vinson @ 2007-07-23 18:04 UTC (permalink / raw)
To: Zang Roy-r61911; +Cc: linuxppc-dev list
In-Reply-To: <1185185072.25737.1.camel@localhost.localdomain>
Zang Roy-r61911 wrote:
> On Sat, 2007-07-21 at 06:31, Randy Vinson wrote:
>
>> @@ -272,10 +272,10 @@ static void __init mpc85xx_cds_setup_arch(void)
>> for (np = NULL; (np = of_find_node_by_type(np, "pci")) !=
>> NULL;) {
>> struct resource rsrc;
>> of_address_to_resource(np, 0, &rsrc);
>> - if ((rsrc.start & 0xfffff) == 0x9000)
>> - fsl_add_bridge(np, 0);
>> - else
>> + if ((rsrc.start & 0xfffff) == 0x8000)
>> fsl_add_bridge(np, 1);
>> + else
>> + fsl_add_bridge(np, 0);
> Why this is needed?
> For pcie@a000, fsl_add_bridge(np, 0)?
The old version of the code would call fsl_add_bridge(np, 1) for the
host bridges @8000 and @a000. When I tried it that way, it didn't work.
I don't think you can have 2 primary bridges.
Randy V.
^ permalink raw reply
* Re: Gdbserver syscall clobber
From: Andreas Schwab @ 2007-07-23 16:19 UTC (permalink / raw)
To: Bill Gatliff; +Cc: gdb, linuxppc-embedded
In-Reply-To: <46A4D1F5.1060005@billgatliff.com>
Bill Gatliff <bgat@billgatliff.com> writes:
> Daniel Jacobowitz wrote:
>> On Wed, Jul 18, 2007 at 12:59:42PM -0500, Bill Gatliff wrote:
>>
>>> Now, I'm a little rusty on PPC asm (I've been doing a lot of ARM
>>> lately), but it looks to me like the kernel is setting bit 0 in CR0
>>> (oris r10, r10, 0x1000) a.k.a LT, but the user side is looking at CR0
>>> (bnslr+) bit 3 a.k.a. SO.
Bits are numbered from left to right, thus 0x10000000 is bit 3 of CR0
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply
* Re: Gdbserver syscall clobber
From: Daniel Jacobowitz @ 2007-07-23 16:15 UTC (permalink / raw)
To: Bill Gatliff; +Cc: gdb, linuxppc-embedded
In-Reply-To: <46A4D1F5.1060005@billgatliff.com>
On Mon, Jul 23, 2007 at 11:06:13AM -0500, Bill Gatliff wrote:
> Daniel Jacobowitz wrote:
> > On Wed, Jul 18, 2007 at 12:59:42PM -0500, Bill Gatliff wrote:
> >
> >> Now, I'm a little rusty on PPC asm (I've been doing a lot of ARM
> >> lately), but it looks to me like the kernel is setting bit 0 in CR0
> >> (oris r10, r10, 0x1000) a.k.a LT, but the user side is looking at CR0
> >> (bnslr+) bit 3 a.k.a. SO. Or maybe the other way around, I'm not sure
> >> after reading Sections 1.2 and 2.1 of the Programming Environments manual.
> >>
> >
> > It's not checking for restart here - userspace isn't supposed to have to.
> > It's probably checking for error. Check for the bit of kernel code
> > that's supposed to back you up two instructions.
> >
> >
>
> I don't see it in this kernel. What I see is this after the call to the
> syscall handler:
Look around do_signal:
regs->nip -= 4; /* Back up & retry system call */
If your kernel has corrupted the register containing the syscall
number at this point, that would explain your problem. It will then
do the wrong syscall. I guess PPC only backs up one instruction.
--
Daniel Jacobowitz
CodeSourcery
^ permalink raw reply
* Re: Gdbserver syscall clobber
From: Bill Gatliff @ 2007-07-23 16:06 UTC (permalink / raw)
To: Bill Gatliff, gdb, linuxppc-embedded
In-Reply-To: <20070718183143.GA25324@caradoc.them.org>
Daniel Jacobowitz wrote:
> On Wed, Jul 18, 2007 at 12:59:42PM -0500, Bill Gatliff wrote:
>
>> Now, I'm a little rusty on PPC asm (I've been doing a lot of ARM
>> lately), but it looks to me like the kernel is setting bit 0 in CR0
>> (oris r10, r10, 0x1000) a.k.a LT, but the user side is looking at CR0
>> (bnslr+) bit 3 a.k.a. SO. Or maybe the other way around, I'm not sure
>> after reading Sections 1.2 and 2.1 of the Programming Environments manual.
>>
>
> It's not checking for restart here - userspace isn't supposed to have to.
> It's probably checking for error. Check for the bit of kernel code
> that's supposed to back you up two instructions.
>
>
I don't see it in this kernel. What I see is this after the call to the
syscall handler:
li r10,-_LAST_ERRNO
cmpl 0,r3,r10
blt 30f
neg r3,r3
cmpi 0,r3,ERESTARTNOHAND
bne 22f
li r3,EINTR
22: lwz r10,_CCR(r1) /* Set SO bit in CR */
oris r10,r10,0x1000
stw r10,_CCR(r1)
30: stw r3,GPR3(r1) /* Update return value */
b ret_from_except
66: li r3,ENOSYS
b 22b
?
--
Bill Gatliff
bgat@billgatliff.com
^ permalink raw reply
* Re: Someone broke my allmodconfig build
From: Timur Tabi @ 2007-07-23 15:47 UTC (permalink / raw)
To: Grant Likely; +Cc: Stephen Rothwell, Paul Mackerras, ppc-dev
In-Reply-To: <fa686aa40707230807k450ff82dv11201ca3a4ce4c9b@mail.gmail.com>
Grant Likely wrote:
> On 7/23/07, Timur Tabi <timur@freescale.com> wrote:
>> Stephen Rothwell wrote:
>>
>> >> Hmmm, we should be shipping .dtb files with the tree, so people don't
>> >> have to have dtc installed.
>> >
>> > Unless, of course, we ship dtc ...
>>
>> I like that idea.
>>
>> I don't know much about the kernel build process, but is it normal to
>> ship C files and have kbuild build them and then use the executables
>> to build the rest of the kernel?
>
> That's how Kconfig is built.
Then it shouldn't be too hard to refactor the dtc build environment to make it
Kbuild-compatible, and then Paul can pull from Jon's dtc repo whenever it gets updated.
Jon, what do you think?
--
Timur Tabi
Linux Kernel Developer @ Freescale
^ permalink raw reply
* Re: Gdbserver syscall clobber
From: Bill Gatliff @ 2007-07-23 15:38 UTC (permalink / raw)
To: Bill Gatliff, gdb, linuxppc-embedded
In-Reply-To: <20070718183143.GA25324@caradoc.them.org>
[-- Attachment #1: Type: text/plain, Size: 1175 bytes --]
Daniel Jacobowitz wrote:
> On Wed, Jul 18, 2007 at 12:59:42PM -0500, Bill Gatliff wrote:
>
>> Now, I'm a little rusty on PPC asm (I've been doing a lot of ARM
>> lately), but it looks to me like the kernel is setting bit 0 in CR0
>> (oris r10, r10, 0x1000) a.k.a LT, but the user side is looking at CR0
>> (bnslr+) bit 3 a.k.a. SO. Or maybe the other way around, I'm not sure
>> after reading Sections 1.2 and 2.1 of the Programming Environments manual.
>>
>
> It's not checking for restart here - userspace isn't supposed to have to.
> It's probably checking for error. Check for the bit of kernel code
> that's supposed to back you up two instructions.
>
>
I don't see it in this kernel. What I see is this after the call to the
syscall handler:
li r10,-_LAST_ERRNO
cmpl 0,r3,r10
blt 30f
neg r3,r3
cmpi 0,r3,ERESTARTNOHAND
bne 22f
li r3,EINTR
22: lwz r10,_CCR(r1) /* Set SO bit in CR */
oris r10,r10,0x1000
stw r10,_CCR(r1)
30: stw r3,GPR3(r1) /* Update return value */
b ret_from_except
66: li r3,ENOSYS
b 22b
?
--
Bill Gatliff
bgat@billgatliff.com
[-- Attachment #2: Type: text/html, Size: 2229 bytes --]
^ permalink raw reply
* Re: Gdbserver syscall clobber
From: Bill Gatliff @ 2007-07-23 15:37 UTC (permalink / raw)
To: Bill Gatliff, gdb, linuxppc-embedded
In-Reply-To: <20070718183143.GA25324@caradoc.them.org>
[-- Attachment #1: Type: text/plain, Size: 1175 bytes --]
Daniel Jacobowitz wrote:
> On Wed, Jul 18, 2007 at 12:59:42PM -0500, Bill Gatliff wrote:
>
>> Now, I'm a little rusty on PPC asm (I've been doing a lot of ARM
>> lately), but it looks to me like the kernel is setting bit 0 in CR0
>> (oris r10, r10, 0x1000) a.k.a LT, but the user side is looking at CR0
>> (bnslr+) bit 3 a.k.a. SO. Or maybe the other way around, I'm not sure
>> after reading Sections 1.2 and 2.1 of the Programming Environments manual.
>>
>
> It's not checking for restart here - userspace isn't supposed to have to.
> It's probably checking for error. Check for the bit of kernel code
> that's supposed to back you up two instructions.
>
>
I don't see it in this kernel. What I see is this after the call to the
syscall handler:
li r10,-_LAST_ERRNO
cmpl 0,r3,r10
blt 30f
neg r3,r3
cmpi 0,r3,ERESTARTNOHAND
bne 22f
li r3,EINTR
22: lwz r10,_CCR(r1) /* Set SO bit in CR */
oris r10,r10,0x1000
stw r10,_CCR(r1)
30: stw r3,GPR3(r1) /* Update return value */
b ret_from_except
66: li r3,ENOSYS
b 22b
?
--
Bill Gatliff
bgat@billgatliff.com
[-- Attachment #2: Type: text/html, Size: 2229 bytes --]
^ permalink raw reply
* support for MPC8220?
From: Leisner, Martin @ 2007-07-23 15:27 UTC (permalink / raw)
To: linuxppc-embedded
Is there support for MPC8220 in current kernels?
I didn't see it there, in freescale's site it mentions Montavista Pro
3.1.
marty
^ permalink raw reply
* Re: Someone broke my allmodconfig build
From: Mark A. Greer @ 2007-07-23 15:24 UTC (permalink / raw)
To: Josh Boyer, Paul Mackerras, Stephen Rothwell, ppc-dev
In-Reply-To: <20070723014337.GC3272@localhost.localdomain>
On Mon, Jul 23, 2007 at 11:43:37AM +1000, David Gibson wrote:
> On Sat, Jul 21, 2007 at 09:04:13PM -0500, Josh Boyer wrote:
> > On Sun, Jul 22, 2007 at 10:37:06AM +1000, Paul Mackerras wrote:
> > > Stephen Rothwell writes:
> > >
> > > > WRAP arch/powerpc/boot/zImage.ps3
> > > > /home/sfr/kernels/linus/arch/powerpc/boot/wrapper: line 113: dtc: command not found
> > > > make[2]: *** [arch/powerpc/boot/zImage.ps3] Error 1
> > >
> > > Hmmm, we should be shipping .dtb files with the tree, so people don't
> > > have to have dtc installed.
> >
> > Really? I don't think we're quite ready for that. Particularly for the
> > embedded boards. Those DTS files still get lots of churn, and having to
> > update both the .dts and .dtb at the same time seems a bit fragile.
>
> I sort of prefer this option in theory, but it's basically
> impossible. People updating dts files by patch would also have to
> update the dtb, which can't be done in a normal patch, since they're
> binary.
I agree. Shipping a magic binary blob, especially ones that haven't
really settled out, will be a real headache for poeple.
> I'm working with sfr now on importing dtc into the kernel tree.
IIRC, this was discussed when dtc first came into existence but it was
pooh-poohed. I forget why now.
Mark
^ permalink raw reply
* Re: Someone broke my allmodconfig build
From: Josh Boyer @ 2007-07-23 15:17 UTC (permalink / raw)
To: Grant Likely; +Cc: Stephen Rothwell, Paul Mackerras, Timur Tabi, ppc-dev
In-Reply-To: <fa686aa40707230807k450ff82dv11201ca3a4ce4c9b@mail.gmail.com>
On Mon, 2007-07-23 at 09:07 -0600, Grant Likely wrote:
> On 7/23/07, Timur Tabi <timur@freescale.com> wrote:
> > Stephen Rothwell wrote:
> >
> > >> Hmmm, we should be shipping .dtb files with the tree, so people don't
> > >> have to have dtc installed.
> > >
> > > Unless, of course, we ship dtc ...
> >
> > I like that idea.
> >
> > I don't know much about the kernel build process, but is it normal to ship C files and have kbuild build them and then use the executables to build the rest of the kernel?
>
> That's how Kconfig is built.
And mktree.
josh
^ permalink raw reply
* Re: Someone broke my allmodconfig build
From: Grant Likely @ 2007-07-23 15:07 UTC (permalink / raw)
To: Timur Tabi; +Cc: Stephen Rothwell, Paul Mackerras, ppc-dev
In-Reply-To: <46A4A9DC.6010602@freescale.com>
On 7/23/07, Timur Tabi <timur@freescale.com> wrote:
> Stephen Rothwell wrote:
>
> >> Hmmm, we should be shipping .dtb files with the tree, so people don't
> >> have to have dtc installed.
> >
> > Unless, of course, we ship dtc ...
>
> I like that idea.
>
> I don't know much about the kernel build process, but is it normal to ship C files and have kbuild build them and then use the executables to build the rest of the kernel?
That's how Kconfig is built.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply
* 2.6.23-rc1 breaks on JS20 w/SLOF
From: Adrian Reber @ 2007-07-23 14:47 UTC (permalink / raw)
To: linuxppc-dev
On a JS20 with SLOF (pretending to be Maple) 2.6.23-rc1 breaks with
following oops. 2.6.22 is working. Let me know if I can help debug this.
Maple: Found RTC at IO 0x1070
Unable to handle kernel paging request for data at address 0xd000080000001070
Faulting instruction address: 0xc00000000004d948
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=32 Maple
Modules linked in:
NIP: c00000000004d948 LR: c00000000004d8e4 CTR: c000000000029308
REGS: c00000000088b8e0 TRAP: 0300 Not tainted (2.6.23-rc1)
MSR: 9000000000001032 <ME,IR,DR> CR: 24000022 XER: 000fffff
DAR: d000080000001070, DSISR: 0000000042000000
TASK = c00000000079db50[0] 'swapper' THREAD: c000000000888000 CPU: 0
GPR00: d000080000000000 c00000000088bb60 c0000000008884a8 000000000000000a
GPR04: d000080000001070 0000000000000001 0000000000000000 0000000000000001
GPR08: 0000000000001070 d000080000001070 0000000000000000 c0000000008b33b0
GPR12: c00000000088bab4 c00000000079e480 0000000000000000 0000000000000000
GPR16: 0000000004000000 0000000000000000 0000000000000000 4000000001400000
GPR20: c000000000752370 0000000001b525e0 0000000000000000 c0000000008b47f0
GPR24: c00000000088be70 c0000000008b4820 000000003b9aca00 c0000000008b47f8
GPR28: 0000000000000000 000000000000000a c000000000821af8 c00000000088bcf0
NIP [c00000000004d948] .maple_clock_read+0x88/0x17c
LR [c00000000004d8e4] .maple_clock_read+0x24/0x17c
Call Trace:
[c00000000088bb60] [c00000000088bbe0] init_thread_union+0x3be0/0x4000 (unreliable)
[c00000000088bbf0] [c00000000004dc40] .maple_get_rtc_time+0x28/0x174
[c00000000088bc80] [c000000000731000] .maple_get_boot_time+0xe4/0x12c
[c00000000088bd60] [c000000000022694] .get_boot_time+0x3c/0xb8
[c00000000088be00] [c000000000721088] .time_init+0x290/0x46c
[c00000000088bee0] [c000000000716c18] .start_kernel+0x23c/0x3e4
[c00000000088bf90] [c000000000008524] .start_here_common+0x54/0xb0
Instruction dump:
419e0024 e80a0000 f8410028 7c0903a6 e96a0010 e84a0008 4e800421 e8410028
4800001c 78892300 7929e002 7c0004ac <98690000> 38000001 980d01dc e97e8008
Kernel panic - not syncing: Attempted to kill the idle task!
------------[ cut here ]------------
Badness at arch/powerpc/kernel/smp.c:202
NIP: c000000000028ae0 LR: c000000000069410 CTR: c000000000029308
REGS: c00000000088b2b0 TRAP: 0700 Tainted: G D (2.6.23-rc1)
MSR: 9000000000021032 <ME,IR,DR> CR: 28000022 XER: 000fffff
TASK = c00000000079db50[0] 'swapper' THREAD: c000000000888000 CPU: 0
GPR00: 0000000000000001 c00000000088b530 c0000000008884a8 c000000000841418
GPR04: 0000000000000000 0000000000000001 0000000000000000 0000000000000001
GPR08: 0000000000000001 c0000000008b4b88 c0000000008c1af8 c000000000841418
GPR12: c000000000008524 c00000000079e480 0000000000000000 0000000000000000
GPR16: 0000000004000000 0000000000000000 0000000000000000 4000000001400000
GPR20: c000000000752370 0000000001b525e0 0000000000000000 c0000000008b47f0
GPR24: c00000000088be70 000000000000000b 000000003b9aca00 000000000000000b
GPR28: c0000000006778f0 0000000000000000 c000000000822a98 0000000000000000
NIP [c000000000028ae0] .smp_call_function_map+0x30/0x2a4
LR [c000000000069410] .panic+0x98/0x1b0
Call Trace:
[c00000000088b530] [c00000000082ebe8] gss_kerberos_pfs+0x16e18/0x25ff0 (unreliable)
[c00000000088b5e0] [c000000000069410] .panic+0x98/0x1b0
[c00000000088b680] [c00000000006dffc] .do_exit+0x8c/0xa60
[c00000000088b750] [c000000000023dcc] .die+0x238/0x264
[c00000000088b7f0] [c00000000002d2a8] .bad_page_fault+0xb8/0xd4
[c00000000088b870] [c000000000005418] handle_page_fault+0x3c/0x58
--- Exception: 300 at .maple_clock_read+0x88/0x17c
LR = .maple_clock_read+0x24/0x17c
[c00000000088bb60] [c00000000088bbe0] init_thread_union+0x3be0/0x4000 (unreliable)
[c00000000088bbf0] [c00000000004dc40] .maple_get_rtc_time+0x28/0x174
[c00000000088bc80] [c000000000731000] .maple_get_boot_time+0xe4/0x12c
[c00000000088bd60] [c000000000022694] .get_boot_time+0x3c/0xb8
[c00000000088be00] [c000000000721088] .time_init+0x290/0x46c
[c00000000088bee0] [c000000000716c18] .start_kernel+0x23c/0x3e4
[c00000000088bf90] [c000000000008524] .start_here_common+0x54/0xb0
Instruction dump:
7c0802a6 fba1ffe8 fbc1fff0 fbe1fff8 7c6b1b78 f8010010 f821ff51 7cdd3378
f8e10100 880d01da 7c000074 7800d182 <0b000000> e922a900 3860ffff e8090000
Rebooting in 180 seconds..
Adrian
^ permalink raw reply
* Re: [PATCH][36/37] Clean up duplicate includes in sound/ppc/
From: Takashi Iwai @ 2007-07-23 14:45 UTC (permalink / raw)
To: Jesper Juhl
Cc: linuxppc-dev, Andrew Morton, Linux Kernel Mailing List,
cbe-oss-dev
In-Reply-To: <200707211704.07263.jesper.juhl@gmail.com>
At Sat, 21 Jul 2007 17:04:07 +0200,
Jesper Juhl wrote:
>
> Hi,
>
> This patch cleans up duplicate includes in
> XXXX/
sound/ppc? :)
>
>
> Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Now applied to ALSA tree. Thanks.
Takashi
> ---
>
> diff --git a/sound/ppc/snd_ps3.c b/sound/ppc/snd_ps3.c
> index 1aa0b46..27b6189 100644
> --- a/sound/ppc/snd_ps3.c
> +++ b/sound/ppc/snd_ps3.c
> @@ -33,7 +33,6 @@
> #include <linux/dmapool.h>
> #include <linux/dma-mapping.h>
> #include <asm/firmware.h>
> -#include <linux/io.h>
> #include <asm/dma.h>
> #include <asm/lv1call.h>
> #include <asm/ps3.h>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
^ permalink raw reply
* [PATCH] eHEA: net_poll support
From: Jan-Bernd Themann @ 2007-07-23 14:05 UTC (permalink / raw)
To: Jeff Garzik
Cc: Thomas Klein, Jan-Bernd Themann, netdev, linux-kernel, linux-ppc,
Christoph Raisch, Marcus Eder, Stefan Roscher
net_poll support for eHEA added
Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
---
drivers/net/ehea/ehea.h | 2 +-
drivers/net/ehea/ehea_main.c | 22 +++++++++++++++++++++-
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index 489c8b2..8ee2c2c 100644
--- a/drivers/net/ehea/ehea.h
+++ b/drivers/net/ehea/ehea.h
@@ -39,7 +39,7 @@
#include <asm/io.h>
#define DRV_NAME "ehea"
-#define DRV_VERSION "EHEA_0071"
+#define DRV_VERSION "EHEA_0072"
/* eHEA capability flags */
#define DLPAR_PORT_ADD_REM 1
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 4c70a93..58702f5 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -589,6 +589,23 @@ static int ehea_poll(struct net_device *dev, int *budget)
return 1;
}
+#ifdef CONFIG_NET_POLL_CONTROLLER
+static void ehea_netpoll(struct net_device *dev)
+{
+ struct ehea_port *port = netdev_priv(dev);
+
+ netif_rx_schedule(port->port_res[0].d_netdev);
+}
+#endif
+
+static int ehea_poll_firstqueue(struct net_device *dev, int *budget)
+{
+ struct ehea_port *port = netdev_priv(dev);
+ struct net_device *d_dev = port->port_res[0].d_netdev;
+
+ return ehea_poll(d_dev, budget);
+}
+
static irqreturn_t ehea_recv_irq_handler(int irq, void *param)
{
struct ehea_port_res *pr = param;
@@ -2626,7 +2643,10 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,
memcpy(dev->dev_addr, &port->mac_addr, ETH_ALEN);
dev->open = ehea_open;
- dev->poll = ehea_poll;
+ dev->poll = ehea_poll_firstqueue;
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ dev->poll_controller = ehea_netpoll;
+#endif
dev->weight = 64;
dev->stop = ehea_stop;
dev->hard_start_xmit = ehea_start_xmit;
--
1.5.2
^ permalink raw reply related
* Re: [PATCH] Use resource_size_t for serial port IO addresses
From: Josh Boyer @ 2007-07-23 14:08 UTC (permalink / raw)
To: Russell King; +Cc: linuxppc-dev, Andrew Morton, paulus, david
In-Reply-To: <20070715110606.GA32577@flint.arm.linux.org.uk>
On Sun, 2007-07-15 at 12:06 +0100, Russell King wrote:
> > This is something we should do, but I have recollections of Russell
> > identifying problems with this patch, or at least an earlier version of it?
>
> Basically, there's two patches. This one (let's call this patch A)
> and another to prevent users being surprised (let's call that patch B).
>
> I didn't have any real objections to patch A, provided something like
> patch B was merged. I did have objections against patch B, and I was
> intermittently working on a revised solution.
>
> However, for whatever reason [*], during the last merge window patch B
> got merged and patch A got dropped, and as a result I've now given up
> with my revised solution, and TBH, I no longer care.
Patch B in this case was commit abb4a2390. Since that has already been
merged, can we please merge this patch into 2.6.23? I'd really like to
avoid 44x not working in yet another kernel, so if this patch can't be
merged I'll have to come up with some alternate solution soon.
josh
^ permalink raw reply
* Re: [PATCH][12/37] Clean up duplicate includes in drivers/net/
From: John W. Linville @ 2007-07-23 13:22 UTC (permalink / raw)
To: Jesper Juhl
Cc: info, Luke Yang, Judy Fischbach, Patrick McHardy, bonding-devel,
Bryan Wu, kong.lai, Jay Vosburgh, James Morris, linuxppc-embedded,
Daniel Drake, Alex V Lasso, Ulrich Kunitz, Chad Tindel,
Amit S Kale, Jay Cliburn, Samuel Ortiz, Brian Pugh,
Alexey Kuznetsov, Chris Snook, alexandre.bounine,
Pantelis Antoniou, netdev, linux-wireless,
Linux Kernel Mailing List, Ralf Baechle, Vitaly Bordug,
Lukasz Stelmach, Ron Mercer, atl1-devel, Andrew Morton,
David S. Miller, James P Ketrenos
In-Reply-To: <200707211702.46375.jesper.juhl@gmail.com>
On Sat, Jul 21, 2007 at 05:02:45PM +0200, Jesper Juhl wrote:
> Hi,
>
> This patch cleans up duplicate includes in
> drivers/net/
>
>
> Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
> diff --git a/drivers/net/wireless/ipw2200.h b/drivers/net/wireless/ipw2200.h
> index 626a240..9c973b9 100644
> --- a/drivers/net/wireless/ipw2200.h
> +++ b/drivers/net/wireless/ipw2200.h
> @@ -45,7 +45,6 @@
>
> #include <linux/firmware.h>
> #include <linux/wireless.h>
> -#include <linux/dma-mapping.h>
> #include <linux/jiffies.h>
> #include <asm/io.h>
>
> diff --git a/drivers/net/wireless/zd1211rw/zd_def.h b/drivers/net/wireless/zd1211rw/zd_def.h
> index deb99d1..505b4d7 100644
> --- a/drivers/net/wireless/zd1211rw/zd_def.h
> +++ b/drivers/net/wireless/zd1211rw/zd_def.h
> @@ -21,7 +21,6 @@
> #include <linux/kernel.h>
> #include <linux/stringify.h>
> #include <linux/device.h>
> -#include <linux/kernel.h>
>
> typedef u16 __nocast zd_addr_t;
ACK
--
John W. Linville
linville@tuxdriver.com
^ permalink raw reply
* Re: Someone broke my allmodconfig build
From: Timur Tabi @ 2007-07-23 13:15 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: ppc-dev, Paul Mackerras
In-Reply-To: <20070722115354.0c28d704.sfr@canb.auug.org.au>
Stephen Rothwell wrote:
>> Hmmm, we should be shipping .dtb files with the tree, so people don't
>> have to have dtc installed.
>
> Unless, of course, we ship dtc ...
I like that idea.
I don't know much about the kernel build process, but is it normal to ship C files and have kbuild build them and then use the executables to build the rest of the kernel?
^ permalink raw reply
* Re: [PATCH 3/4] mpc8349emitx: Add chosen node for default stdout path
From: Timur Tabi @ 2007-07-23 13:12 UTC (permalink / raw)
To: Jerry Van Baren; +Cc: linuxppc-dev
In-Reply-To: <46A01733.6080609@gmail.com>
Jerry Van Baren wrote:
> The "force" parameter was added to sort of emulate the previous bootm
> command behavior (but behave better in the case where /chosen already
> existed).
I don't think the previous bootm behavior was ever desirable. In fact, I think most people didn't realize that bootm used to create an additional /chosen section if one was in the DTS, and the only reason it worked was because the kernel picked the right one. IMHO, I think you can safely remove the 'force' parameter and change to code to match "force==true", and no one will care.
I believe all of the DTS files have already been scrubbed of their /chosen section, so "force" doesn't matter with any recent DTS.
^ permalink raw reply
* Re: [PATCH 0/3] Add virq mapping debugfs for PowerPC
From: Stephen Rothwell @ 2007-07-23 11:55 UTC (permalink / raw)
To: Chen Gong; +Cc: linuxppc-dev, paulus
In-Reply-To: <11851892302391-git-send-email-g.chen@freescale.com>
[-- Attachment #1: Type: text/plain, Size: 454 bytes --]
On Mon, 23 Jul 2007 19:13:47 +0800 Chen Gong <g.chen@freescale.com> wrote:
>
> [PATCH 1/3] Add a new member name to structure irq_host
> [PATCH 2/3] Add irq host name for interrupt controllors
You should really combine patches 1 and 2 so that the tree will build and
run after each final commit in the git tree (so bisect works better).
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* [PATCH 0/3] Add virq mapping debugfs for PowerPC
From: Chen Gong @ 2007-07-23 11:13 UTC (permalink / raw)
To: paulus, galak; +Cc: linuxppc-dev, g.chen
Cc: g.chen@freescale.com
Hi
These patches are the update as follows:
http://ozlabs.org/pipermail/linuxppc-dev/2007-March/033091.html
http://ozlabs.org/pipermail/linuxppc-dev/2007-March/033093.html
http://ozlabs.org/pipermail/linuxppc-dev/2007-March/033092.html
http://ozlabs.org/pipermail/linuxppc-dev/2007-March/033094.html
These patches are used for supplying virq mapping debugfs function.
It can be used for displaying irq-virq mapping relationship under debugfs.
Meanwhile, to express these information more clearly, we also add a new member
named "name" for struct irq_host.
[PATCH 1/3] Add a new member name to structure irq_host
[PATCH 2/3] Add irq host name for interrupt controllors
[PATCH 3/3] Add irq debugfs and virq mapping for getting the virq
Any feedback is welcome!
Best Regards,
Chen Gong
^ permalink raw reply
* [PATCH 2/3] Add irq host name for all powerpc interrupt controllors.
From: Chen Gong @ 2007-07-23 11:13 UTC (permalink / raw)
To: paulus, galak; +Cc: linuxppc-dev, Chen Gong, Chen Gong
In-Reply-To: <11851892311178-git-send-email-g.chen@freescale.com>
If there is an OF-tree node for the interrupt controller, we will
use ofnode->full_name as the INT controller's name.
NULL is a proper choice if there is not binding OF-tree node
for the INT controller.
Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
Signed-off-by: Chen Gong <G.Chen@freescale.com>
---
arch/powerpc/platforms/52xx/mpc52xx_pic.c | 2 +-
arch/powerpc/platforms/82xx/mpc82xx_ads.c | 2 +-
arch/powerpc/platforms/cell/interrupt.c | 2 +-
arch/powerpc/platforms/cell/spider-pic.c | 2 +-
arch/powerpc/platforms/celleb/interrupt.c | 2 +-
arch/powerpc/platforms/iseries/irq.c | 2 +-
arch/powerpc/platforms/powermac/pic.c | 2 +-
arch/powerpc/platforms/ps3/interrupt.c | 2 +-
arch/powerpc/platforms/pseries/xics.c | 2 +-
arch/powerpc/sysdev/commproc.c | 3 ++-
arch/powerpc/sysdev/cpm2_pic.c | 2 +-
arch/powerpc/sysdev/i8259.c | 3 ++-
arch/powerpc/sysdev/ipic.c | 3 ++-
arch/powerpc/sysdev/mpc8xx_pic.c | 2 +-
arch/powerpc/sysdev/mpic.c | 3 ++-
arch/powerpc/sysdev/mv64x60_pic.c | 3 ++-
arch/powerpc/sysdev/qe_lib/qe_ic.c | 3 ++-
arch/powerpc/sysdev/tsi108_pci.c | 2 +-
arch/powerpc/sysdev/uic.c | 2 +-
19 files changed, 25 insertions(+), 19 deletions(-)
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
index fbfff95..d5efdbc 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -422,7 +422,7 @@ void __init mpc52xx_init_irq(void)
mpc52xx_irqhost = irq_alloc_host(IRQ_HOST_MAP_LINEAR,
MPC52xx_IRQ_HIGHTESTHWIRQ,
- &mpc52xx_irqhost_ops, -1);
+ &mpc52xx_irqhost_ops, -1, picnode->full_name);
if (!mpc52xx_irqhost)
panic(__FILE__ ": Cannot allocate the IRQ host\n");
diff --git a/arch/powerpc/platforms/82xx/mpc82xx_ads.c b/arch/powerpc/platforms/82xx/mpc82xx_ads.c
index da20832..3e27d3d 100644
--- a/arch/powerpc/platforms/82xx/mpc82xx_ads.c
+++ b/arch/powerpc/platforms/82xx/mpc82xx_ads.c
@@ -503,7 +503,7 @@ void m82xx_pci_init_irq(void)
iounmap(immap);
pci_pic_host =
irq_alloc_host(IRQ_HOST_MAP_LINEAR, irq_max - irq_min + 1,
- &pci_pic_host_ops, irq_max + 1);
+ &pci_pic_host_ops, irq_max + 1, NULL);
return;
}
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c
index 47264e7..9768ba2 100644
--- a/arch/powerpc/platforms/cell/interrupt.c
+++ b/arch/powerpc/platforms/cell/interrupt.c
@@ -382,7 +382,7 @@ void __init iic_init_IRQ(void)
{
/* Setup an irq host data structure */
iic_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, IIC_SOURCE_COUNT,
- &iic_host_ops, IIC_IRQ_INVALID);
+ &iic_host_ops, IIC_IRQ_INVALID, NULL);
BUG_ON(iic_host == NULL);
irq_set_default_host(iic_host);
diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c
index 05f4b3d..79c8d4f 100644
--- a/arch/powerpc/platforms/cell/spider-pic.c
+++ b/arch/powerpc/platforms/cell/spider-pic.c
@@ -309,7 +309,7 @@ static void __init spider_init_one(struct device_node *of_node, int chip,
/* Allocate a host */
pic->host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, SPIDER_SRC_COUNT,
- &spider_host_ops, SPIDER_IRQ_INVALID);
+ &spider_host_ops, SPIDER_IRQ_INVALID, of_node->full_name);
if (pic->host == NULL)
panic("spider_pic: can't allocate irq host !");
pic->host->host_data = pic;
diff --git a/arch/powerpc/platforms/celleb/interrupt.c b/arch/powerpc/platforms/celleb/interrupt.c
index 98e6665..0a08a99 100644
--- a/arch/powerpc/platforms/celleb/interrupt.c
+++ b/arch/powerpc/platforms/celleb/interrupt.c
@@ -244,7 +244,7 @@ void __init beatic_init_IRQ(void)
/* Allocate an irq host */
beatic_host = irq_alloc_host(IRQ_HOST_MAP_NOMAP, 0,
&beatic_pic_host_ops,
- 0);
+ 0, NULL);
BUG_ON(beatic_host == NULL);
irq_set_default_host(beatic_host);
}
diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c
index 63b3367..766f5d3 100644
--- a/arch/powerpc/platforms/iseries/irq.c
+++ b/arch/powerpc/platforms/iseries/irq.c
@@ -369,7 +369,7 @@ void __init iSeries_init_IRQ(void)
/* Create irq host. No need for a revmap since HV will give us
* back our virtual irq number
*/
- host = irq_alloc_host(IRQ_HOST_MAP_NOMAP, 0, &iseries_irq_host_ops, 0);
+ host = irq_alloc_host(IRQ_HOST_MAP_NOMAP, 0, &iseries_irq_host_ops, 0, NULL);
BUG_ON(host == NULL);
irq_set_default_host(host);
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 87cd680..9d4b3e1 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -386,7 +386,7 @@ static void __init pmac_pic_probe_oldstyle(void)
*/
pmac_pic_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, max_irqs,
&pmac_pic_host_ops,
- max_irqs);
+ max_irqs, NULL);
BUG_ON(pmac_pic_host == NULL);
irq_set_default_host(pmac_pic_host);
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c
index 67e32ec..2b56b81 100644
--- a/arch/powerpc/platforms/ps3/interrupt.c
+++ b/arch/powerpc/platforms/ps3/interrupt.c
@@ -727,7 +727,7 @@ void __init ps3_init_IRQ(void)
struct irq_host *host;
host = irq_alloc_host(IRQ_HOST_MAP_NOMAP, 0, &ps3_host_ops,
- PS3_INVALID_OUTLET);
+ PS3_INVALID_OUTLET, NULL);
irq_set_default_host(host);
irq_set_virq_count(PS3_PLUG_MAX + 1);
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index 5bd90a7..7f8a5c7 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -541,7 +541,7 @@ static void __init xics_init_host(void)
else
ops = &xics_host_direct_ops;
xics_host = irq_alloc_host(IRQ_HOST_MAP_TREE, 0, ops,
- XICS_IRQ_SPURIOUS);
+ XICS_IRQ_SPURIOUS, NULL);
BUG_ON(xics_host == NULL);
irq_set_default_host(xics_host);
}
diff --git a/arch/powerpc/sysdev/commproc.c b/arch/powerpc/sysdev/commproc.c
index 4f67b89..91dc738 100644
--- a/arch/powerpc/sysdev/commproc.c
+++ b/arch/powerpc/sysdev/commproc.c
@@ -167,7 +167,8 @@ unsigned int cpm_pic_init(void)
cpm_pic_node = of_node_get(np);
- cpm_pic_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, 64, &cpm_pic_host_ops, 64);
+ cpm_pic_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, 64, &cpm_pic_host_ops, 64,
+ cpm_pic_node->full_name);
if (cpm_pic_host == NULL) {
printk(KERN_ERR "CPM2 PIC: failed to allocate irq host!\n");
sirq = NO_IRQ;
diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
index eabfe06..1aaebf8 100644
--- a/arch/powerpc/sysdev/cpm2_pic.c
+++ b/arch/powerpc/sysdev/cpm2_pic.c
@@ -274,7 +274,7 @@ void cpm2_pic_init(struct device_node *node)
/* create a legacy host */
cpm2_pic_node = of_node_get(node);
- cpm2_pic_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, 64, &cpm2_pic_host_ops, 64);
+ cpm2_pic_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, 64, &cpm2_pic_host_ops, 64, cpm2_pic_node->full_name);
if (cpm2_pic_host == NULL) {
printk(KERN_ERR "CPM2 PIC: failed to allocate irq host!\n");
return;
diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c
index ad87adc..e80c127 100644
--- a/arch/powerpc/sysdev/i8259.c
+++ b/arch/powerpc/sysdev/i8259.c
@@ -278,7 +278,8 @@ void i8259_init(struct device_node *node, unsigned long intack_addr)
/* create a legacy host */
if (node)
i8259_node = of_node_get(node);
- i8259_host = irq_alloc_host(IRQ_HOST_MAP_LEGACY, 0, &i8259_host_ops, 0);
+ i8259_host = irq_alloc_host(IRQ_HOST_MAP_LEGACY, 0, &i8259_host_ops, 0,
+ (node) ? i8259_node->full_name : NULL);
if (i8259_host == NULL) {
printk(KERN_ERR "i8259: failed to allocate irq host !\n");
return;
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 473c415..4fe6770 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -572,7 +572,8 @@ struct ipic * __init ipic_init(struct device_node *node, unsigned int flags)
ipic->irqhost = irq_alloc_host(IRQ_HOST_MAP_LINEAR,
NR_IPIC_INTS,
- &ipic_host_ops, 0);
+ &ipic_host_ops, 0,
+ ipic->of_node->full_name);
if (ipic->irqhost == NULL) {
of_node_put(node);
return NULL;
diff --git a/arch/powerpc/sysdev/mpc8xx_pic.c b/arch/powerpc/sysdev/mpc8xx_pic.c
index 2fc2bcd..c3eb805 100644
--- a/arch/powerpc/sysdev/mpc8xx_pic.c
+++ b/arch/powerpc/sysdev/mpc8xx_pic.c
@@ -187,7 +187,7 @@ int mpc8xx_pic_init(void)
if (siu_reg == NULL)
return -EINVAL;
- mpc8xx_pic_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, 64, &mpc8xx_pic_host_ops, 64);
+ mpc8xx_pic_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, 64, &mpc8xx_pic_host_ops, 64, np->full_name);
if (mpc8xx_pic_host == NULL) {
printk(KERN_ERR "MPC8xx PIC: failed to allocate irq host!\n");
ret = -ENOMEM;
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 74c64c0..d71441e 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -989,7 +989,8 @@ struct mpic * __init mpic_alloc(struct device_node *node,
mpic->irqhost = irq_alloc_host(IRQ_HOST_MAP_LINEAR, isu_size,
&mpic_host_ops,
- flags & MPIC_LARGE_VECTORS ? 2048 : 256);
+ flags & MPIC_LARGE_VECTORS ? 2048 : 256,
+ mpic->of_node->full_name);
if (mpic->irqhost == NULL) {
of_node_put(node);
return NULL;
diff --git a/arch/powerpc/sysdev/mv64x60_pic.c b/arch/powerpc/sysdev/mv64x60_pic.c
index 01d3162..2bb5b12 100644
--- a/arch/powerpc/sysdev/mv64x60_pic.c
+++ b/arch/powerpc/sysdev/mv64x60_pic.c
@@ -257,7 +257,8 @@ void __init mv64x60_init_irq(void)
mv64x60_irq_reg_base = ioremap(paddr, reg[1]);
mv64x60_irq_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, MV64x60_NUM_IRQS,
- &mv64x60_host_ops, MV64x60_NUM_IRQS);
+ &mv64x60_host_ops, MV64x60_NUM_IRQS,
+ np->full_name);
mv64x60_irq_host->host_data = np;
diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c
index 4d1dcb4..1e78a02 100644
--- a/arch/powerpc/sysdev/qe_lib/qe_ic.c
+++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c
@@ -355,7 +355,8 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags)
qe_ic->of_node = of_node_get(node);
qe_ic->irqhost = irq_alloc_host(IRQ_HOST_MAP_LINEAR,
- NR_QE_IC_INTS, &qe_ic_host_ops, 0);
+ NR_QE_IC_INTS, &qe_ic_host_ops, 0,
+ qe_ic->of_node->full_name);
if (qe_ic->irqhost == NULL) {
of_node_put(node);
return;
diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c
index 90db8a7..84dc543 100644
--- a/arch/powerpc/sysdev/tsi108_pci.c
+++ b/arch/powerpc/sysdev/tsi108_pci.c
@@ -434,7 +434,7 @@ void __init tsi108_pci_int_init(struct device_node *node)
DBG("Tsi108_pci_int_init: initializing PCI interrupts\n");
pci_irq_node = of_node_get(node);
- pci_irq_host = irq_alloc_host(IRQ_HOST_MAP_LEGACY, 0, &pci_irq_host_ops, 0);
+ pci_irq_host = irq_alloc_host(IRQ_HOST_MAP_LEGACY, 0, &pci_irq_host_ops, 0, pci_irq_node->full_name);
if (pci_irq_host == NULL) {
printk(KERN_ERR "pci_irq_host: failed to allocate irq host !\n");
return;
diff --git a/arch/powerpc/sysdev/uic.c b/arch/powerpc/sysdev/uic.c
index 8905989..7705676 100644
--- a/arch/powerpc/sysdev/uic.c
+++ b/arch/powerpc/sysdev/uic.c
@@ -247,7 +247,7 @@ static struct uic * __init uic_init_one(struct device_node *node)
uic->dcrbase = *dcrreg;
uic->irqhost = irq_alloc_host(IRQ_HOST_MAP_LINEAR, NR_UIC_INTS,
- &uic_host_ops, -1);
+ &uic_host_ops, -1, node->full_name);
if (! uic->irqhost) {
of_node_put(node);
return NULL; /* FIXME: panic? */
--
1.5.1
^ permalink raw reply related
* [PATCH 1/3] Add a new member name to structure irq_host
From: Chen Gong @ 2007-07-23 11:13 UTC (permalink / raw)
To: paulus, galak; +Cc: linuxppc-dev, Chen Gong, Chen Gong
In-Reply-To: <11851892302391-git-send-email-g.chen@freescale.com>
This patch adds a new member 'name' for irq host's name to
structure irq_host and modifies the definition of the
function irq_alloc_host(). The assignment to the
irq host's name is also added to irq_alloc_host().
Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
Signed-off-by: Chen Gong <G.Chen@freescale.com>
---
arch/powerpc/kernel/irq.c | 4 +++-
include/asm-powerpc/irq.h | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 2fc8786..2c46c6d 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -421,7 +421,8 @@ EXPORT_SYMBOL_GPL(virq_to_hw);
struct irq_host *irq_alloc_host(unsigned int revmap_type,
unsigned int revmap_arg,
struct irq_host_ops *ops,
- irq_hw_number_t inval_irq)
+ irq_hw_number_t inval_irq,
+ const char *name)
{
struct irq_host *host;
unsigned int size = sizeof(struct irq_host);
@@ -446,6 +447,7 @@ struct irq_host *irq_alloc_host(unsigned int revmap_type,
host->revmap_type = revmap_type;
host->inval_irq = inval_irq;
host->ops = ops;
+ host->name = name;
spin_lock_irqsave(&irq_big_lock, flags);
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h
index 0485c53..cd0ba2d 100644
--- a/include/asm-powerpc/irq.h
+++ b/include/asm-powerpc/irq.h
@@ -124,6 +124,7 @@ struct irq_host {
struct irq_host_ops *ops;
void *host_data;
irq_hw_number_t inval_irq;
+ const char *name;
};
/* The main irq map itself is an array of NR_IRQ entries containing the
@@ -159,7 +160,8 @@ extern irq_hw_number_t virq_to_hw(unsigned int virq);
extern struct irq_host *irq_alloc_host(unsigned int revmap_type,
unsigned int revmap_arg,
struct irq_host_ops *ops,
- irq_hw_number_t inval_irq);
+ irq_hw_number_t inval_irq,
+ const char *name);
/**
--
1.5.1
^ permalink raw reply related
* [PATCH 3/3] Add irq debugfs and virq_mapping for getting the virq
From: Chen Gong @ 2007-07-23 11:13 UTC (permalink / raw)
To: paulus, galak; +Cc: linuxppc-dev, Chen Gong, Chen Gong
In-Reply-To: <11851892322112-git-send-email-g.chen@freescale.com>
This patch adds irq debugfs and virq_mapping for getting the virq.
The virq_mapping node is in powerpc/irq directory of the root debugfs.
Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
Signed-off-by: Chen Gong <G.Chen@freescale.com>
---
arch/powerpc/Kconfig.debug | 7 ++
arch/powerpc/kernel/Makefile | 1 +
arch/powerpc/kernel/irq_debugfs.c | 140 +++++++++++++++++++++++++++++++++++++
3 files changed, 148 insertions(+), 0 deletions(-)
create mode 100644 arch/powerpc/kernel/irq_debugfs.c
diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
index 346cd3b..7ae8df1 100644
--- a/arch/powerpc/Kconfig.debug
+++ b/arch/powerpc/Kconfig.debug
@@ -2,6 +2,13 @@ menu "Kernel hacking"
source "lib/Kconfig.debug"
+config PPC_VIRQ_DEBUGFS
+ bool "Check virqs mapping"
+ depends on DEBUG_FS
+ help
+ This option will show the mapping relationship between hardware irq
+ and virtual irq based on debugfs
+
config DEBUG_STACKOVERFLOW
bool "Check for stack overflows"
depends on DEBUG_KERNEL
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 42c42ec..cc3e1e5 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -15,6 +15,7 @@ obj-y := semaphore.o cputable.o ptrace.o syscalls.o \
init_task.o process.o systbl.o idle.o \
signal.o
obj-y += vdso32/
+obj-$(CONFIG_PPC_VIRQ_DEBUGFS) += irq_debugfs.o
obj-$(CONFIG_PPC64) += setup_64.o binfmt_elf32.o sys_ppc32.o \
signal_64.o ptrace32.o \
paca.o cpu_setup_ppc970.o \
diff --git a/arch/powerpc/kernel/irq_debugfs.c b/arch/powerpc/kernel/irq_debugfs.c
new file mode 100644
index 0000000..53ac12e
--- /dev/null
+++ b/arch/powerpc/kernel/irq_debugfs.c
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2007 Freescale Semiconductor, Inc. All rights reserved.
+ *
+ * Auther: Zhang Wei <wei.zhang@freescale.com>
+ *
+ * Description:
+ * This file is used for debug the irq. It will create 'irq' directory
+ * in the powerpc directory of debugfs.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#include <linux/module.h>
+#include <linux/threads.h>
+#include <linux/kernel_stat.h>
+#include <linux/signal.h>
+#include <linux/sched.h>
+#include <linux/ptrace.h>
+#include <linux/ioport.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/seq_file.h>
+#include <linux/mutex.h>
+#include <linux/list.h>
+
+#include <asm/uaccess.h>
+#include <asm/system.h>
+#include <asm/irq.h>
+#include <asm/pgtable.h>
+#include <asm/prom.h>
+
+extern struct dentry *powerpc_debugfs_root;
+
+static void *irq_dbg_start(struct seq_file *m, loff_t *pos)
+{
+ return (*pos <= NR_IRQS) ? pos : NULL;
+}
+
+static void *irq_dbg_next(struct seq_file *m, void *p, loff_t * pos)
+{
+ (*pos)++;
+
+ return (*pos <= NR_IRQS) ? pos : NULL;
+}
+
+static void irq_dbg_stop(struct seq_file *m, void *p)
+{
+ /* Nothing to do */
+}
+
+static int irq_dbg_show(struct seq_file *m, void *p)
+{
+ int i = *(loff_t *)p;
+ struct irqaction *action;
+ irq_desc_t *desc;
+ unsigned long flags;
+
+ if (i == 0)
+ seq_puts(m, "VIRQ HWIRQ Chip Name Host Name\n");
+
+ if (i < NR_IRQS) {
+ desc = get_irq_desc(i);
+ spin_lock_irqsave(&desc->lock, flags);
+ action = desc->action;
+ if (!action || !action->handler)
+ goto skip;
+ seq_printf(m, "%3d: ", i);
+
+ seq_printf(m, " %3d ", (irq_map[i].host->revmap_type == IRQ_HOST_MAP_LEGACY) ? i : virq_to_hw(i));
+
+ if (desc->chip)
+ seq_printf(m, " %s ", desc->chip->typename);
+ else
+ seq_puts(m, " None ");
+
+ seq_printf(m, " %s ", (irq_map[i].host->name) ? irq_map[i].host->name : " None ");
+ seq_putc(m, '\n');
+skip:
+ spin_unlock_irqrestore(&desc->lock, flags);
+ } else if (i == NR_IRQS) {
+#ifdef CONFIG_PPC32
+#ifdef CONFIG_TAU_INT
+ if (tau_initialized)
+ seq_puts(m, "TAU: PowerPC Thermal Assist (cpu temp)\n");
+#endif
+#endif /* CONFIG_PPC32 */
+ }
+
+ return 0;
+}
+
+static struct seq_operations irq_dbg_seq_ops = {
+ .start = irq_dbg_start,
+ .next = irq_dbg_next,
+ .stop = irq_dbg_stop,
+ .show = irq_dbg_show
+};
+
+static int irq_dbg_seq_open(struct inode *inode, struct file *file)
+{
+ int rc;
+ struct seq_file *seq;
+
+ rc = seq_open(file, &irq_dbg_seq_ops);
+ seq = file->private_data;
+ seq->private = file->f_path.dentry->d_inode->i_private;
+
+ return rc;
+}
+
+static const struct file_operations irq_dbg_seq_fops = {
+ .open = irq_dbg_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = seq_release,
+};
+
+static int __init irq_debugfs_init(void)
+{
+ struct dentry *irq_root;
+ struct dentry *irq_file;
+
+ if (!powerpc_debugfs_root)
+ return 1;
+
+ irq_root = debugfs_create_dir("irq", powerpc_debugfs_root);
+ if (!irq_root)
+ return -ENOMEM;
+
+ irq_file = debugfs_create_file("virq_mapping", S_IRUGO,
+ irq_root, NULL, &irq_dbg_seq_fops);
+ if (!irq_file)
+ return -ENOMEM;
+
+ return 0;
+}
+__initcall(irq_debugfs_init);
--
1.5.1
^ permalink raw reply related
* Re: [RFC 1/1] lro: Generic Large Receive Offload for TCP traffic
From: Evgeniy Polyakov @ 2007-07-23 10:38 UTC (permalink / raw)
To: Jan-Bernd Themann
Cc: Thomas Klein, Jan-Bernd Themann, netdev, linux-kernel, linux-ppc,
Christoph Raisch, Marcus Eder, Stefan Roscher, David Miller
In-Reply-To: <200707201741.49290.ossthema@de.ibm.com>
Hi Jan-Bernd.
On Fri, Jul 20, 2007 at 05:41:48PM +0200, Jan-Bernd Themann (ossthema@de.ibm.com) wrote:
> Generic LRO patch
>
> Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
Besides couple trivial codyng/formatting nits I did not found any
problematic places after review. Details below.
Thanks.
> +#define TCP_PAYLOAD_LENGTH(iph, tcph) \
> +(ntohs(iph->tot_len) - IP_HDR_LEN(iph) - TCP_HDR_LEN(tcph))
A tab?
> +static void lro_add_common(struct net_lro_desc *lro_desc, struct iphdr *iph,
> + struct tcphdr *tcph, int tcp_data_len)
> +{
> + struct sk_buff *parent = lro_desc->parent;
> + u32 *topt;
> +
> + lro_desc->pkt_aggr_cnt++;
> + lro_desc->ip_tot_len += tcp_data_len;
> + lro_desc->tcp_next_seq += tcp_data_len;
> + lro_desc->tcp_window = tcph->window;
> + lro_desc->tcp_ack = tcph->ack_seq;
> +
> + /* don't update tcp_rcv_tsval, would not work with PAWS */
> + if (lro_desc->tcp_saw_tstamp) {
> + topt = (u32 *) (tcph + 1);
> + lro_desc->tcp_rcv_tsecr = *(topt + 2);
> + }
> +
> + parent->len += tcp_data_len;
> + parent->data_len += tcp_data_len;
> +
> + lro_desc->data_csum = csum_add(lro_desc->data_csum,
> + lro_tcp_data_csum(iph, tcph,
> + tcp_data_len));
> + return;
> +}
return from void? And in other places too.
> +int __lro_proc_skb(struct net_lro_mgr *lro_mgr, struct sk_buff *skb,
> + struct vlan_group *vgrp, u16 vlan_tag, void *priv)
> +{
> + struct net_lro_desc *lro_desc;
> + struct iphdr *iph;
> + struct tcphdr *tcph;
> + u64 flags;
Broken tab and spaces.
> +struct sk_buff *lro_gen_skb(struct net_lro_mgr *lro_mgr,
> + struct skb_frag_struct *frags,
> + int len, int true_size,
> + void *mac_hdr,
> + int hlen)
> +{
> + struct sk_buff *skb;
> + struct skb_frag_struct *skb_frags;
> + int data_len = len;
The same.
> + skb = netdev_alloc_skb(lro_mgr->dev, hlen);
> + if (!skb)
> + return NULL;
> +
> + skb->len = len;
> + skb->data_len = len - hlen;
Here too.
There is number of such places, ommitted others.
--
Evgeniy Polyakov
^ permalink raw reply
* Re: [PATCH] Fix tas_suspend/resume build warning
From: Takashi Iwai @ 2007-07-23 10:11 UTC (permalink / raw)
To: Johannes Berg; +Cc: Stephen Rothwell, alsa-devel, Andrew Morton, linuxppc-dev
In-Reply-To: <1185038966.868.5.camel@johannes.berg>
At Sat, 21 Jul 2007 19:29:26 +0200,
Johannes Berg wrote:
>
> On Sun, 2007-07-22 at 00:29 +1000, Stephen Rothwell wrote:
> > sound/aoa/codecs/snd-aoa-codec-tas.c:750: warning: 'tas_suspend' defined but not used
> > sound/aoa/codecs/snd-aoa-codec-tas.c:760: warning: 'tas_resume' defined but not used
>
> Heh. I daresay I never compiled a kernel without PM. Not sure why you'd
> want to, but still good to have it fixed. Thanks.
>
>
> [full copy below for Takashi, I suppose it'll go through his tree]
Thanks, I applied it to ALSA tree now.
Takashi
>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Subject: Fix tas_suspend/resume build warning
>
> sound/aoa/codecs/snd-aoa-codec-tas.c:750: warning: 'tas_suspend' defined but not used
> sound/aoa/codecs/snd-aoa-codec-tas.c:760: warning: 'tas_resume' defined but not used
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Acked-by: Johannes Berg <johannes@sipsolutions.net>
> ---
> sound/aoa/codecs/snd-aoa-codec-tas.c | 9 +++++----
> 1 files changed, 5 insertions(+), 4 deletions(-)
>
> --
> Cheers,
> Stephen Rothwell sfr@canb.auug.org.au
>
> diff --git a/sound/aoa/codecs/snd-aoa-codec-tas.c b/sound/aoa/codecs/snd-aoa-codec-tas.c
> index 2f771f5..3cbfe46 100644
> --- a/sound/aoa/codecs/snd-aoa-codec-tas.c
> +++ b/sound/aoa/codecs/snd-aoa-codec-tas.c
> @@ -743,6 +743,7 @@ static int tas_switch_clock(struct codec_info_item *cii, enum clock_switch clock
> return 0;
> }
>
> +#ifdef CONFIG_PM
> /* we are controlled via i2c and assume that is always up
> * If that wasn't the case, we'd have to suspend once
> * our i2c device is suspended, and then take note of that! */
> @@ -768,7 +769,6 @@ static int tas_resume(struct tas *tas)
> return 0;
> }
>
> -#ifdef CONFIG_PM
> static int _tas_suspend(struct codec_info_item *cii, pm_message_t state)
> {
> return tas_suspend(cii->codec_data);
> @@ -778,7 +778,10 @@ static int _tas_resume(struct codec_info_item *cii)
> {
> return tas_resume(cii->codec_data);
> }
> -#endif
> +#else /* CONFIG_PM */
> +#define _tas_suspend NULL
> +#define _tas_resume NULL
> +#endif /* CONFIG_PM */
>
> static struct codec_info tas_codec_info = {
> .transfers = tas_transfers,
> @@ -791,10 +794,8 @@ static struct codec_info tas_codec_info = {
> .owner = THIS_MODULE,
> .usable = tas_usable,
> .switch_clock = tas_switch_clock,
> -#ifdef CONFIG_PM
> .suspend = _tas_suspend,
> .resume = _tas_resume,
> -#endif
> };
>
> static int tas_init_codec(struct aoa_codec *codec)
>
>
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox