RE: 83xx: Marking or Allocating Pages as Cache-Inhibited

2009-03-09 Thread Liu Dave-R63238
Hi Ben,
 
The second issue. you told me some hosts has problem,
and some hosts worked well.
 
what is the problem-hosts?
 
The issue seems like the hosts did set the NO SNOOP attribute
bit at TLP.
 
The PEX_DEVICE_CONTROL is standard PCI configuration space
register, it controls the behavior of the initiator's transaction.
For 8315, it is outbound, not inbound transaction.
 
Thanks, Dave




From: Ben Menchaca [mailto:ben.mench...@gmail.com] 
Sent: Saturday, March 07, 2009 12:30 AM
To: Liu Dave-R63238
Cc: linuxppc-dev@ozlabs.org
Subject: Re: 83xx: Marking or Allocating Pages as
Cache-Inhibited


Thank you for your help!  That bit resolved all of the RDMA/WDMA
coherency issues on the CSB side...except:

We expose a 1MB region of memory from CSB via a BAR (BAR1, if it
matters) to the Host.  This region is also not behaving correctly with
respect to coherency on SOME hosts; again, disabling our cache makes it
work correctly on all hosts.  We have set PEX_DEVICE_CONTROL in PCI-E
Config Space (0x54) to 0x2010 (sorry about the endianness below).  We
thought that CLEARING the no-snoop bit here would indicate that snooping
was required for this region...is this a similar issue?

- Ben


On Fri, Mar 6, 2009 at 10:12 AM, Ben Menchaca
ben.mench...@gmail.com wrote:


Testing now...it looks like it (almost) works, though!
Why does setting no-snoop cause snooping to work?  More on the effect on
setting that bit in a few minutes...need more testing.
 
ACR is 0x00030300.

- Ben 


On Fri, Mar 6, 2009 at 12:30 AM, Liu Dave-R63238
dave...@freescale.com wrote:


Did you enable the descriptor bit 3 to have a
try?





From: Ben Menchaca
[mailto:ben.mench...@gmail.com] 

Sent: Friday, March 06, 2009 2:10 PM 

To: Liu Dave-R63238
Cc: linuxppc-dev@ozlabs.org
Subject: Re: 83xx: Marking or Allocating
Pages as Cache-Inhibited


I can look at ACR morning...although I
can say with a fair amount of certainty that I have not changed it from
the POR value.

I will try enabling No Snoop for CSB in
the descriptor (bit 3, yes?)...this seems a bit counterintuitive to me.

What is the hope regarding these two?
Some combination I am not seeing?



On Thu, Mar 5, 2009 at 11:40 PM, Liu
Dave-R63238 dave...@freescale.com wrote:


what is the value of ACR register?




From: Ben Menchaca
[mailto:ben.mench...@gmail.com] 
Sent: Friday, March 06, 2009 1:38 PM
To: Liu Dave-R63238
Cc: linuxppc-dev@ozlabs.org
Subject: Re: 83xx: Marking or Allocating
Pages as Cache-Inhibited


1.  BAT2 in linux is set to WIMG=0010,
and covers all 64M
2.  PEX_DEVICE_CONTROL in PCI-E Config
Space (0x54): 0x1020
3.  PEX_xDMA_CTRL is set to 0x0401
at the initiation of the DMA.
4.  OWAR0 is set to 0xF005, so NSNP
is 0.
5.  The DMA descriptor (randomly chosen
when I hit a trigger...just ignore the size...) contains 0002AFF3 at
offset 0, so nosnoops are cleared.  

Core is 400MHz, and CSB is 133MHz.

- Ben


On Thu, Mar 5, 2009 at 11:27 PM, Liu
Dave-R63238 dave...@freescale.com wrote:


and what settings  is DMA description
bit 3?


 -Original Message-
 From:
linuxppc-dev-bounces+daveliu=freescale@ozlabs.org
 [mailto:linuxppc-dev-bounces+daveliu
mailto:linuxppc-dev-bounces%2Bdaveliu =freescale@ozlabs.org]
   

RE: 83xx: Marking or Allocating Pages as Cache-Inhibited

2009-03-09 Thread Liu Dave-R63238
Hi Ben,
 
The second issue. you told me some hosts has problem,
and some hosts worked well.
 
what is the problem-hosts?
 
The issue seems like the hosts did set the NO SNOOP attribute
bit at TLP.
 
The PEX_DEVICE_CONTROL is standard PCI configuration space
register, it controls the behavior of the initiator's transaction.
For 8315, it is outbound, not inbound transaction.
 
Thanks, Dave




From: Ben Menchaca [mailto:ben.mench...@gmail.com] 
Sent: Saturday, March 07, 2009 12:30 AM
To: Liu Dave-R63238
Cc: linuxppc-dev@ozlabs.org
Subject: Re: 83xx: Marking or Allocating Pages as
Cache-Inhibited


Thank you for your help!  That bit resolved all of the RDMA/WDMA
coherency issues on the CSB side...except:

We expose a 1MB region of memory from CSB via a BAR (BAR1, if it
matters) to the Host.  This region is also not behaving correctly with
respect to coherency on SOME hosts; again, disabling our cache makes it
work correctly on all hosts.  We have set PEX_DEVICE_CONTROL in PCI-E
Config Space (0x54) to 0x2010 (sorry about the endianness below).  We
thought that CLEARING the no-snoop bit here would indicate that snooping
was required for this region...is this a similar issue?

- Ben


On Fri, Mar 6, 2009 at 10:12 AM, Ben Menchaca
ben.mench...@gmail.com wrote:


Testing now...it looks like it (almost) works, though!
Why does setting no-snoop cause snooping to work?  More on the effect on
setting that bit in a few minutes...need more testing.
 
ACR is 0x00030300.

- Ben 


On Fri, Mar 6, 2009 at 12:30 AM, Liu Dave-R63238
dave...@freescale.com wrote:


Did you enable the descriptor bit 3 to have a
try?





From: Ben Menchaca
[mailto:ben.mench...@gmail.com] 

Sent: Friday, March 06, 2009 2:10 PM 

To: Liu Dave-R63238
Cc: linuxppc-dev@ozlabs.org
Subject: Re: 83xx: Marking or Allocating
Pages as Cache-Inhibited


I can look at ACR morning...although I
can say with a fair amount of certainty that I have not changed it from
the POR value.

I will try enabling No Snoop for CSB in
the descriptor (bit 3, yes?)...this seems a bit counterintuitive to me.

What is the hope regarding these two?
Some combination I am not seeing?



On Thu, Mar 5, 2009 at 11:40 PM, Liu
Dave-R63238 dave...@freescale.com wrote:


what is the value of ACR register?




From: Ben Menchaca
[mailto:ben.mench...@gmail.com] 
Sent: Friday, March 06, 2009 1:38 PM
To: Liu Dave-R63238
Cc: linuxppc-dev@ozlabs.org
Subject: Re: 83xx: Marking or Allocating
Pages as Cache-Inhibited


1.  BAT2 in linux is set to WIMG=0010,
and covers all 64M
2.  PEX_DEVICE_CONTROL in PCI-E Config
Space (0x54): 0x1020
3.  PEX_xDMA_CTRL is set to 0x0401
at the initiation of the DMA.
4.  OWAR0 is set to 0xF005, so NSNP
is 0.
5.  The DMA descriptor (randomly chosen
when I hit a trigger...just ignore the size...) contains 0002AFF3 at
offset 0, so nosnoops are cleared.  

Core is 400MHz, and CSB is 133MHz.

- Ben


On Thu, Mar 5, 2009 at 11:27 PM, Liu
Dave-R63238 dave...@freescale.com wrote:


and what settings  is DMA description
bit 3?


 -Original Message-
 From:
linuxppc-dev-bounces+daveliu=freescale@ozlabs.org
 [mailto:linuxppc-dev-bounces+daveliu
mailto:linuxppc-dev-bounces%2Bdaveliu =freescale@ozlabs.org]
   

Re: 83xx: Marking or Allocating Pages as Cache-Inhibited

2009-03-09 Thread Ben Menchaca
The only problem host found so far is a newer Asus 970FX motherboard,
regardless of OS.

We are seeing that some time after LTSSM finishes, but long before OS load,
our PEX_DEVICE_CONTROL register is changed.  On the working motherboards,
NO_SNOOP is enabled; if I read the spec correctly, this means that TLPs with
no-snoop are permitted.  On the non-working motherboards, NO_SNOOP is
disabled; this is supposed to mean that TLPs with no-snoop are not permitted
(again, if I understand correctly).  Is it possible that there has been
another misinterpretation of this bit?  Something regarding the generation
of snoops on CSB when it is cleared?

This bit could be a complete red herring; it was one of the few differences
in the config space, however, so it was my best guess.

- Ben

On Sun, Mar 8, 2009 at 9:56 PM, Liu Dave-R63238 dave...@freescale.comwrote:

  Hi Ben,

 The second issue. you told me some hosts has problem,
 and some hosts worked well.

 what is the problem-hosts?

 The issue seems like the hosts did set the NO SNOOP attribute
 bit at TLP.

 The PEX_DEVICE_CONTROL is standard PCI configuration space
 register, it controls the behavior of the initiator's transaction.
 For 8315, it is outbound, not inbound transaction.

 Thanks, Dave

  --
 *From:* Ben Menchaca [mailto:ben.mench...@gmail.com]
 *Sent:* Saturday, March 07, 2009 12:30 AM
 *To:* Liu Dave-R63238
 *Cc:* linuxppc-dev@ozlabs.org
 *Subject:* Re: 83xx: Marking or Allocating Pages as Cache-Inhibited

 Thank you for your help!  That bit resolved all of the RDMA/WDMA coherency
 issues on the CSB side...except:

 We expose a 1MB region of memory from CSB via a BAR (BAR1, if it matters)
 to the Host.  This region is also not behaving correctly with respect to
 coherency on SOME hosts; again, disabling our cache makes it work correctly
 on all hosts.  We have set PEX_DEVICE_CONTROL in PCI-E Config Space (0x54)
 to 0x2010 (sorry about the endianness below).  We thought that CLEARING
 the no-snoop bit here would indicate that snooping was required for this
 region...is this a similar issue?

 - Ben

 On Fri, Mar 6, 2009 at 10:12 AM, Ben Menchaca ben.mench...@gmail.comwrote:

 Testing now...it looks like it (almost) works, though!  Why does setting
 no-snoop cause snooping to work?  More on the effect on setting that bit in
 a few minutes...need more testing.

 ACR is 0x00030300.

 - Ben


 On Fri, Mar 6, 2009 at 12:30 AM, Liu Dave-R63238 
 dave...@freescale.comwrote:

  Did you enable the descriptor bit 3 to have a try?

  --
  *From:* Ben Menchaca [mailto:ben.mench...@gmail.com]
 *Sent:* Friday, March 06, 2009 2:10 PM

 *To:* Liu Dave-R63238
 *Cc:* linuxppc-dev@ozlabs.org
 *Subject:* Re: 83xx: Marking or Allocating Pages as Cache-Inhibited

   I can look at ACR morning...although I can say with a fair amount of
 certainty that I have not changed it from the POR value.

 I will try enabling No Snoop for CSB in the descriptor (bit 3,
 yes?)...this seems a bit counterintuitive to me.

 What is the hope regarding these two?  Some combination I am not seeing?


 On Thu, Mar 5, 2009 at 11:40 PM, Liu Dave-R63238 
 dave...@freescale.comwrote:

  what is the value of ACR register?

  --
 *From:* Ben Menchaca [mailto:ben.mench...@gmail.com]
 *Sent:* Friday, March 06, 2009 1:38 PM
 *To:* Liu Dave-R63238
 *Cc:* linuxppc-dev@ozlabs.org
 *Subject:* Re: 83xx: Marking or Allocating Pages as Cache-Inhibited

   1.  BAT2 in linux is set to WIMG=0010, and covers all 64M
 2.  PEX_DEVICE_CONTROL in PCI-E Config Space (0x54): 0x1020
 3.  PEX_xDMA_CTRL is set to 0x0401 at the initiation of the DMA.
 4.  OWAR0 is set to 0xF005, so NSNP is 0.
 5.  The DMA descriptor (randomly chosen when I hit a trigger...just
 ignore the size...) contains 0002AFF3 at offset 0, so nosnoops are cleared.


 Core is 400MHz, and CSB is 133MHz.

 - Ben

 On Thu, Mar 5, 2009 at 11:27 PM, Liu Dave-R63238 dave...@freescale.com
  wrote:

 and what settings  is DMA description bit 3?

  -Original Message-
  From: linuxppc-dev-bounces+daveliu=freescale@ozlabs.org
  [mailto:linuxppc-dev-bounces+daveliulinuxppc-dev-bounces%2Bdaveliu
 =freescale@ozlabs.org]
On Behalf Of Liu Dave-R63238
  Sent: Friday, March 06, 2009 1:22 PM
  To: Ben Menchaca; linuxppc-dev@ozlabs.org
  Subject: RE: 83xx: Marking or Allocating Pages as Cache-Inhibited
 
  Did you enable the snoop bit at PEX_WDMA_CTRL[SNOOP] and
  PEX_RDMA_CTRL[SNOOP]?
 
  What is the freq settings? CORE/CSB bus.
 
  Thanks, Dave
 
  
 
From: linuxppc-dev-bounces+daveliu=freescale@ozlabs.org
  [mailto:linuxppc-dev-bounces+daveliulinuxppc-dev-bounces%2Bdaveliu
 =freescale@ozlabs.org]
   On Behalf Of Ben Menchaca
Sent: Friday, March 06, 2009 12:33 PM
To: linuxppc-dev@ozlabs.org
Subject: 83xx: Marking or Allocating Pages as Cache-Inhibited
 
 
I am working on a 

fasync (Async Notification)

2009-03-09 Thread Vijay Nikam
Hello All,

I have mpc8313erdb eval board and kernel 2..6.20 on it. I have written
GPIO driver and have enabled Async Notification (SIGIO)

In the driver I am generating interrupt whenever the status of GPIO
pin (GPIO 2) changes, this part is working correct (as soon as the
GPIO pin status changes the interrupt is generated).

Then I included Async Notification to notify the particluar user space
process (to the process which I want to) by using fasync method,
kill_fasync is called in Interrupt handler and also the kill_fasync
signals the particular process and the Signal handler executes and
says SIGIO is received.

But the problem is, if I change GPIO pin status twice then two
interrupts are generated but I get SIGIO Async Notification only once.
Whereras I am expecting that I should get twice SIGIO Async
Notification (Theory says the same).

Could anyone please let me what is the reason for this ? ? ?

Kindly please acknowledge ... thank you ...

Kind Regards,
Vijay Nikam
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Machine check in 4xx ethernet driver

2009-03-09 Thread Felix Radensky

Hi,

I'm getting machine check exception when trying to dump
emac registers on 405EX Kilauea board. The kernel is 2.6.29-rc7
The problem seems not new, I can reproduce it on 2.6.25 Denx kernel

-bash-3.2# ethtool -d eth0
Data machine check in kernel mode.
Oops: Machine check, sig: 7 [#1]
Kilauea
Modules linked in:
NIP: c000e240 LR: c0158358 CTR: 0004
REGS: cfffdf50 TRAP: 0202   Not tainted  (2.6.29-rc7)
MSR: 00029030 EE,ME,CE,IR,DR  CR: 22002044  XER: 205f
TASK = cfa79740[1011] 'ethtool' THREAD: cfa82000
GPR00: 0001 cfa83d10 cfa79740 cf8d7a34 d105696c 0004 cfa83d40

GPR08:  001b 0004 0004 22002022 1005f4d0 1001
1000d9c4
GPR16: 1000d9bc 1000d9b4 1000fbec 10057650 100118a4 1001 1000da10
100570ec
GPR24: bf90f790  cfa83d38 cf8d7800 10058008 cf8d7800 cf8d79c0
cf811360
NIP [c000e240] _memcpy_fromio+0x9c/0xc4
LR [c0158358] emac_ethtool_get_regs+0x68/0xc4
Call Trace:
[cfa83d10] [c015831c] emac_ethtool_get_regs+0x2c/0xc4 (unreliable)
[cfa83d30] [c017ed00] ethtool_get_regs+0xf8/0x1f8
[cfa83d60] [c018036c] dev_ethtool+0x10f4/0x13ac
[cfa83df0] [c017d7dc] dev_ioctl+0x430/0x700
[cfa83e70] [c016ad80] sock_ioctl+0x80/0x2ec
[cfa83e90] [c0088104] vfs_ioctl+0x34/0x98
[cfa83ea0] [c0088550] do_vfs_ioctl+0x3c0/0x734
[cfa83f10] [c0088904] sys_ioctl+0x40/0x74
[cfa83f40] [c000eb60] ret_from_syscall+0x0/0x3c
Instruction dump:
419c004c 8004 9003 7c0006ac 38840004 38630004 38a5fffc 4200ffe8
2f05 41baffb4 7ca903a6 8804 9803 7c0006ac 38840001 38630001
---[ end trace 075752cbf5bce2a1 ]---
Bus error

Felix.
-- 
View this message in context: 
http://www.nabble.com/Machine-check-in-4xx-ethernet-driver-tp22408005p22408005.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Davicom DM9000A on MPC5200B (powerpc) works using a dirty offsetting and byte trick

2009-03-09 Thread Henk Stegeman
Juergen,


I don't understand how this would work,

Now I do one byte-swap, which works.
 -I byteswap in software, for 16-bit cycles by byte swapping and for 8
bit cycles by adding an offset of 1.
 (The byte swapping on the chipselect is off)

Your advice includes two byteswaps, one by re-routing the data bus and
one by enabling the byte swap on the chip-select.
Or does one of them not really swap bytes?


Henk

On Sat, Mar 7, 2009 at 11:09 AM, Juergen Beisert j...@pengutronix.de wrote:
 Henk,

 On Freitag, 20. Februar 2009, Henk Stegeman wrote:
 - Any suggestions to what could be wrong here? Or does the MPC5200 in
 this case only byte swap u16 reads, but a u8 read is unchanged?

 You should not follow the Freescale bus signal names when you connect your
 external little endian device. Otherwise the offsets are always wrong.

 Do it in this way instead:

    MPC          LE Device
  D[0..7]   -  D[24..31]
  D[8..15]  -  D[16..23]
  D[16..23] -  D[8..15]
  D[24..31] -  D[0..7]

 If you connect your device in such a way, just enable CS's byte swap feature
 depending on your bus size and you are done (no additional software
 manipulation required). Now you can write bytes, words or longs and you will
 always write the correct data into the corresponding device register.

 Hope it helps
 Juergen

 --
 Pengutronix e.K.                              | Juergen Beisert             |
 Linux Solutions for Science and Industry      | Phone: +49-8766-939 228     |
 Vertretung Sued/Muenchen, Germany             | Fax:   +49-5121-206917- |
 Amtsgericht Hildesheim, HRA 2686              | http://www.pengutronix.de/  |

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


RE: [PATCH] powerpc/usb: Fix 440EPx USBH_3 USBH_5 EHCI errata

2009-03-09 Thread - Reyneke

 Please provide a valid email address here.

New email client helpfully stripped out the address...

 called in a context where you can't iomap ? (ie with a spinlock held).

That is indeed the case. Keeping ehci generic is a valid point, but because of 
the above I don't think adding a hook is going to work. I'll take a look at 
the *platform_private option and re-post - this would also allow for better 
runtime checking, as you suggested.

 Cheers
  Jan




--
 On Fri, 2009-03-06 at 11:30 +, - Reyneke wrote:
 Patch applies to 440EPx devices in USB EHCI host mode (USB 2.0).

From the 440EPx errata:

 USBH_3: Host hangs after underrun or overrun occurs
 USBH_5: EHCI0_INSNREGxx registers are reset by a Soft or Light Host 
 Controller Reset

 Workround for USBH_3 is to enable Break Memory Transfer (BMT) in INSNREG3. 
 But the controller is reset after this fix is applied, and thus the current 
 workround is lost. The following short patch ensures INSNREG3 is correctly 
 set after reset.

 Signed-off-by: Jan Reyneke

 Please provide a valid email address here.

 ---


 A few issues here. First, it would be preferable to have this in the
 ehci-ppc-of.c file. If you can't stick that in such a place that it will
 be called after ehci_reset, then maybe you can add a reset hook so
 that ehci-ppc-of.c gets to wrap the real ehci_reset().

 Also, while the ifdef CONFIG_440EPX is good to prevent building the code
 on machines that don't need it, it's also not enough. We allow building
 kernels that support multiple boards and SoC's within the same major CPU
 family and thus you -also- need runtime detection. Either using a quirk
 (I think the USB drivers have quirk flags) or just always doing the
 of_device_is_compatible() thingy which is yet another reason for finding
 a way to move that up into ehci-ppc-of.c

 That would also avoid some duplication...



 So if you manage to move the quirk here, you can thus re-use the
 existing code, or is the reset always called in a context where you
 can't iomap ? (ie with a spinlock held).

 In any case, I don't like adding a specific field to the generic ehci
 structure like that. If that's what it takes, add a void
 *platform_private to it, and use -that- to stick a host specific data
 structure, but for something not performance sensitive such as a reset,
 if you can get away with always mapping/unmapping, it's probably better.

 Cheers,
 Ben.



_
View your Twitter and Flickr updates from one place – Learn more!
http://clk.atdmt.com/UKM/go/137984870/direct/01/
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Machine check in 4xx ethernet driver

2009-03-09 Thread Josh Boyer
On Mon, Mar 09, 2009 at 12:47:02AM -0700, Felix Radensky wrote:

Hi,

I'm getting machine check exception when trying to dump
emac registers on 405EX Kilauea board. The kernel is 2.6.29-rc7
The problem seems not new, I can reproduce it on 2.6.25 Denx kernel

I've not looked at what that code path does, but the EMAC regs are
in DCR space, not MMIO.  Using memcpy_fromio there seems odd.

josh
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH/RFC] ps3/block: Add ps3vram-ng driver for accessing video RAM as block device

2009-03-09 Thread Geert Uytterhoeven
On Fri, 6 Mar 2009, Jens Axboe wrote:
 On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
  On Fri, 6 Mar 2009, Jens Axboe wrote:
   On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
On Fri, 6 Mar 2009, Jens Axboe wrote:
 On Thu, Mar 05 2009, Geert Uytterhoeven wrote:
  But then I noticed ps3vram_make_request() may be called 
  concurrently,
  so I had to add a mutex to avoid data corruption. This slows the
  driver down, and in the end, the version with a thread turns out to 
  be
  ca. 1% faster. The version without a thread is about 50 lines less
  code, though.

 That is correct, -make_request_fn may get reentered. I'm not 
 surprised
 that performance dropped if you just shoved everything under a mutex.
 You could be a little more smart and queue concurrent bio's for
 processing when the current one is complete though, there are several
 approaches there that be a lot faster than going all the way through 
 the
 IO stack and scheduler just to avoid concurrency.
   
Yes, using a spinlock and queueing requests on a list if the driver is
busy can be done after 2.6.29...
  
   Certainly. Even just replacing your current mutex with a spinlock during
   the memcpy() would surely be a lot faster. Or even just grabbing the
   mutex before calling into the write for the duration of the bio. The way
   you do it is certain context switch death :-)
  
  It's not just the memcpy(). ps3vram_{up,down}load() call msleep(), so
  I cannot use a spinlock.
 
 Ah right, I hadn't looked close enough. But putting the mutex_lock()
 outside of the bio_for_each_segment() is going to be much faster than
 getting/releasing it for each segment.

It doesn't seem to make any measurable difference, so I'm gonna leave it for
now.

With kind regards,

Geert Uytterhoeven
Software Architect

Sony Techsoft Centre Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone:+32 (0)2 700 8453
Fax:  +32 (0)2 700 8622
E-mail:   geert.uytterhoe...@sonycom.com
Internet: http://www.sony-europe.com/

A division of Sony Europe (Belgium) N.V.
VAT BE 0413.825.160 · RPR Brussels
Fortis · BIC GEBABEBB · IBAN BE41293037680010
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH/RFC] ps3/block: Add ps3vram-ng driver for accessing video RAM as block device

2009-03-09 Thread Jens Axboe
On Mon, Mar 09 2009, Geert Uytterhoeven wrote:
 On Fri, 6 Mar 2009, Jens Axboe wrote:
  On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
   On Fri, 6 Mar 2009, Jens Axboe wrote:
On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
 On Fri, 6 Mar 2009, Jens Axboe wrote:
  On Thu, Mar 05 2009, Geert Uytterhoeven wrote:
   But then I noticed ps3vram_make_request() may be called 
   concurrently,
   so I had to add a mutex to avoid data corruption. This slows the
   driver down, and in the end, the version with a thread turns out 
   to be
   ca. 1% faster. The version without a thread is about 50 lines less
   code, though.
 
  That is correct, -make_request_fn may get reentered. I'm not 
  surprised
  that performance dropped if you just shoved everything under a 
  mutex.
  You could be a little more smart and queue concurrent bio's for
  processing when the current one is complete though, there are 
  several
  approaches there that be a lot faster than going all the way 
  through the
  IO stack and scheduler just to avoid concurrency.

 Yes, using a spinlock and queueing requests on a list if the driver is
 busy can be done after 2.6.29...
   
Certainly. Even just replacing your current mutex with a spinlock during
the memcpy() would surely be a lot faster. Or even just grabbing the
mutex before calling into the write for the duration of the bio. The way
you do it is certain context switch death :-)
  
   It's not just the memcpy(). ps3vram_{up,down}load() call msleep(), so
   I cannot use a spinlock.
 
  Ah right, I hadn't looked close enough. But putting the mutex_lock()
  outside of the bio_for_each_segment() is going to be much faster than
  getting/releasing it for each segment.
 
 It doesn't seem to make any measurable difference, so I'm gonna leave it for
 now.

It will depend on where the bio's are coming from. If they are all
single segment, then there will be no difference. If they contain
multiple segments, you reduce the lock/release by that amount.

But yeah, just leave it as-is for now. You can send a final patch for
inclusion though. Unless I'm mistaken, I only saw the original and then
an incremental patch for changing it to -make_request_fn?

-- 
Jens Axboe

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH/RFC] ps3/block: Add ps3vram-ng driver for accessing video RAM as block device

2009-03-09 Thread Jens Axboe
On Mon, Mar 09 2009, Jens Axboe wrote:
 On Mon, Mar 09 2009, Geert Uytterhoeven wrote:
  On Fri, 6 Mar 2009, Jens Axboe wrote:
   On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
On Fri, 6 Mar 2009, Jens Axboe wrote:
 On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
  On Fri, 6 Mar 2009, Jens Axboe wrote:
   On Thu, Mar 05 2009, Geert Uytterhoeven wrote:
But then I noticed ps3vram_make_request() may be called 
concurrently,
so I had to add a mutex to avoid data corruption. This slows the
driver down, and in the end, the version with a thread turns 
out to be
ca. 1% faster. The version without a thread is about 50 lines 
less
code, though.
  
   That is correct, -make_request_fn may get reentered. I'm not 
   surprised
   that performance dropped if you just shoved everything under a 
   mutex.
   You could be a little more smart and queue concurrent bio's for
   processing when the current one is complete though, there are 
   several
   approaches there that be a lot faster than going all the way 
   through the
   IO stack and scheduler just to avoid concurrency.
 
  Yes, using a spinlock and queueing requests on a list if the driver 
  is
  busy can be done after 2.6.29...

 Certainly. Even just replacing your current mutex with a spinlock 
 during
 the memcpy() would surely be a lot faster. Or even just grabbing the
 mutex before calling into the write for the duration of the bio. The 
 way
 you do it is certain context switch death :-)
   
It's not just the memcpy(). ps3vram_{up,down}load() call msleep(), so
I cannot use a spinlock.
  
   Ah right, I hadn't looked close enough. But putting the mutex_lock()
   outside of the bio_for_each_segment() is going to be much faster than
   getting/releasing it for each segment.
  
  It doesn't seem to make any measurable difference, so I'm gonna leave it for
  now.
 
 It will depend on where the bio's are coming from. If they are all
 single segment, then there will be no difference. If they contain
 multiple segments, you reduce the lock/release by that amount.
 
 But yeah, just leave it as-is for now. You can send a final patch for
 inclusion though. Unless I'm mistaken, I only saw the original and then
 an incremental patch for changing it to -make_request_fn?

There was a full version, my mistake. I got confused by the removal of
the old driver in another directory :-)

-- 
Jens Axboe

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH/RFC] ps3/block: Add ps3vram-ng driver for accessing video RAM as block device

2009-03-09 Thread Geert Uytterhoeven
On Mon, 9 Mar 2009, Jens Axboe wrote:
 On Mon, Mar 09 2009, Jens Axboe wrote:
  On Mon, Mar 09 2009, Geert Uytterhoeven wrote:
   On Fri, 6 Mar 2009, Jens Axboe wrote:
On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
 On Fri, 6 Mar 2009, Jens Axboe wrote:
  On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
   On Fri, 6 Mar 2009, Jens Axboe wrote:
On Thu, Mar 05 2009, Geert Uytterhoeven wrote:
 But then I noticed ps3vram_make_request() may be called 
 concurrently,
 so I had to add a mutex to avoid data corruption. This slows 
 the
 driver down, and in the end, the version with a thread turns 
 out to be
 ca. 1% faster. The version without a thread is about 50 lines 
 less
 code, though.
   
That is correct, -make_request_fn may get reentered. I'm not 
surprised
that performance dropped if you just shoved everything under a 
mutex.
You could be a little more smart and queue concurrent bio's for
processing when the current one is complete though, there are 
several
approaches there that be a lot faster than going all the way 
through the
IO stack and scheduler just to avoid concurrency.
  
   Yes, using a spinlock and queueing requests on a list if the 
   driver is
   busy can be done after 2.6.29...
 
  Certainly. Even just replacing your current mutex with a spinlock 
  during
  the memcpy() would surely be a lot faster. Or even just grabbing the
  mutex before calling into the write for the duration of the bio. 
  The way
  you do it is certain context switch death :-)

 It's not just the memcpy(). ps3vram_{up,down}load() call msleep(), so
 I cannot use a spinlock.
   
Ah right, I hadn't looked close enough. But putting the mutex_lock()
outside of the bio_for_each_segment() is going to be much faster than
getting/releasing it for each segment.
   
   It doesn't seem to make any measurable difference, so I'm gonna leave it 
   for
   now.
  
  It will depend on where the bio's are coming from. If they are all
  single segment, then there will be no difference. If they contain
  multiple segments, you reduce the lock/release by that amount.
  
  But yeah, just leave it as-is for now. You can send a final patch for
  inclusion though. Unless I'm mistaken, I only saw the original and then
  an incremental patch for changing it to -make_request_fn?
 
 There was a full version, my mistake. I got confused by the removal of

Indeed.

 the old driver in another directory :-)

Can you please ack it? Thx!

With kind regards,

Geert Uytterhoeven
Software Architect

Sony Techsoft Centre Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone:+32 (0)2 700 8453
Fax:  +32 (0)2 700 8622
E-mail:   geert.uytterhoe...@sonycom.com
Internet: http://www.sony-europe.com/

A division of Sony Europe (Belgium) N.V.
VAT BE 0413.825.160 · RPR Brussels
Fortis · BIC GEBABEBB · IBAN BE41293037680010
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Machine check in 4xx ethernet driver

2009-03-09 Thread Felix Radensky



Josh Boyer-4 wrote:
 
 On Mon, Mar 09, 2009 at 12:47:02AM -0700, Felix Radensky wrote:

Hi,

I'm getting machine check exception when trying to dump
emac registers on 405EX Kilauea board. The kernel is 2.6.29-rc7
The problem seems not new, I can reproduce it on 2.6.25 Denx kernel
 
 I've not looked at what that code path does, but the EMAC regs are
 in DCR space, not MMIO.  Using memcpy_fromio there seems odd.
 
 

At least on 405EX MAL registers are in DCR space, but EMAC and RGMII
ones are in MMIO space.

-- 
View this message in context: 
http://www.nabble.com/Machine-check-in-4xx-ethernet-driver-tp22408005p22410889.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH/RFC] ps3/block: Add ps3vram-ng driver for accessing video RAM as block device

2009-03-09 Thread Jens Axboe
On Mon, Mar 09 2009, Geert Uytterhoeven wrote:
 On Mon, 9 Mar 2009, Jens Axboe wrote:
  On Mon, Mar 09 2009, Jens Axboe wrote:
   On Mon, Mar 09 2009, Geert Uytterhoeven wrote:
On Fri, 6 Mar 2009, Jens Axboe wrote:
 On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
  On Fri, 6 Mar 2009, Jens Axboe wrote:
   On Fri, Mar 06 2009, Geert Uytterhoeven wrote:
On Fri, 6 Mar 2009, Jens Axboe wrote:
 On Thu, Mar 05 2009, Geert Uytterhoeven wrote:
  But then I noticed ps3vram_make_request() may be called 
  concurrently,
  so I had to add a mutex to avoid data corruption. This 
  slows the
  driver down, and in the end, the version with a thread 
  turns out to be
  ca. 1% faster. The version without a thread is about 50 
  lines less
  code, though.

 That is correct, -make_request_fn may get reentered. I'm not 
 surprised
 that performance dropped if you just shoved everything under 
 a mutex.
 You could be a little more smart and queue concurrent bio's 
 for
 processing when the current one is complete though, there are 
 several
 approaches there that be a lot faster than going all the way 
 through the
 IO stack and scheduler just to avoid concurrency.
   
Yes, using a spinlock and queueing requests on a list if the 
driver is
busy can be done after 2.6.29...
  
   Certainly. Even just replacing your current mutex with a spinlock 
   during
   the memcpy() would surely be a lot faster. Or even just grabbing 
   the
   mutex before calling into the write for the duration of the bio. 
   The way
   you do it is certain context switch death :-)
 
  It's not just the memcpy(). ps3vram_{up,down}load() call msleep(), 
  so
  I cannot use a spinlock.

 Ah right, I hadn't looked close enough. But putting the mutex_lock()
 outside of the bio_for_each_segment() is going to be much faster than
 getting/releasing it for each segment.
   
It doesn't seem to make any measurable difference, so I'm gonna leave 
it for
now.
  
   It will depend on where the bio's are coming from. If they are all
   single segment, then there will be no difference. If they contain
   multiple segments, you reduce the lock/release by that amount.
  
   But yeah, just leave it as-is for now. You can send a final patch for
   inclusion though. Unless I'm mistaken, I only saw the original and then
   an incremental patch for changing it to -make_request_fn?
 
  There was a full version, my mistake. I got confused by the removal of
 
 Indeed.
 
  the old driver in another directory :-)
 
 Can you please ack it? Thx!

Sure, I thought we had agreed to queue it up for 2.6.29?

-- 
Jens Axboe

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Davicom DM9000A on MPC5200B (powerpc) works using a dirty offsetting and byte trick

2009-03-09 Thread Juergen Beisert
Henk,

On Montag, 9. März 2009, Henk Stegeman wrote:
 I don't understand how this would work,

 Now I do one byte-swap, which works.
  -I byteswap in software, for 16-bit cycles by byte swapping and for 8
 bit cycles by adding an offset of 1.
  (The byte swapping on the chipselect is off)

 Your advice includes two byteswaps, one by re-routing the data bus and
 one by enabling the byte swap on the chip-select.

My experience is the chip select byte swap feature only works correctly if you 
connect a little endian device like I showed you.

 Or does one of them not really swap bytes?

Let me show you how it works. You must ensure you can write/read data in any 
data width, but at the side of the little endian device it always must be in 
the correct endianess. This example uses a 32 bit data width, but it works 
for 16 bit, too.
- LE shows how a real litte endian CPU would write data
- MPC1 shows how MPC5200 will do it, without any byte swap and DO at the
  MPC5200 side is also D0 at the little endian device
- MPC2 shows how MPC5200 will do it, with D0 at the MPC5200 side is D24 at the
  little endian device
- MPC3 shows how MPC5200 will do it, connected like MPC2 but also the chip
  select byte swap feature enabled
- LE DEV shows how the little endian device expects the data

You want to write this data at the given offset into the little endian device:

 Bytes: 0:0x34, 1:0x12, 2:0x78, 3:0x56
 Worte: 0:0x1234   2:0x5678
 LONG:0:0x56781234

Writing as bytes:

 Bytes: 0:0x34, 1:0x12, 2:0x78, 3:0x56

Offset  LEMPC1  MPC2  MPC3  LE DEV
 0  0x34  0x56  0x34  0x34  0x34
 1  0x12  0x78  0x12  0x12  0x12
 2  0x78  0x12  0x78  0x78  0x78
 3  0x56  0x34  0x56  0x56  0x56
------ these are correct
   this is wrong

Writing as words:

 Words: 0:0x1234   2:0x5678

Offset   LE MPC1  MPC2  MPC3  LE DEV
  0  0x34   0x78  0x12  0x34  0x34
 (1) 0x12   0x56  0x34  0x12  0x12
  2  0x78   0x34  0x56  0x78  0x78
 (3) 0x56   0x12  0x78  0x56  0x56
 ------- these are correct
---- these are wrong

Writing as longs:

 LONG: 0:0x56781234

Offset   LE MPC1  MPC2  MPC3  LE DEV
  0  0x34   0x34  0x56  0x34  0x34
 (1) 0x12   0x12  0x78  0x12  0x12
 (2) 0x78   0x78  0x12  0x78  0x78
 (3) 0x56   0x56  0x34  0x56  0x56
 --- ------- these are correct
  -- this is wrong

So, the MPC3 example always writes correct data.

Hope it helps,
Juergen

-- 
Pengutronix e.K.  | Juergen Beisert |
Linux Solutions for Science and Industry  | Phone: +49-8766-939 228 |
Vertretung Sued/Muenchen, Germany | Fax:   +49-5121-206917- |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de/  |
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Machine check in 4xx ethernet driver

2009-03-09 Thread Josh Boyer
On Mon, Mar 09, 2009 at 03:53:25AM -0700, Felix Radensky wrote:



Josh Boyer-4 wrote:
 
 On Mon, Mar 09, 2009 at 12:47:02AM -0700, Felix Radensky wrote:

Hi,

I'm getting machine check exception when trying to dump
emac registers on 405EX Kilauea board. The kernel is 2.6.29-rc7
The problem seems not new, I can reproduce it on 2.6.25 Denx kernel
 
 I've not looked at what that code path does, but the EMAC regs are
 in DCR space, not MMIO.  Using memcpy_fromio there seems odd.
 
 

At least on 405EX MAL registers are in DCR space, but EMAC and RGMII
ones are in MMIO space.

Ah, quite right.  No coffee yet this morning.

You'll need to look at the code path ethtool is forcing.  Perhaps it's doing
something stupid.

josh
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


KGDB over serial on xilinx virtex-5 (ppc440)

2009-03-09 Thread srikanth krishnakar
Hi all,

Has anybody  tested KGDBOC in linux-2.6.28 for Xilinx Virtex-5 PowerPC
target boards..

I just see that KGDB waits for remote connection from GDB host, but
unfortunately


Command line arguments were :

console=ttyS0 ip=bootp root=/dev/nfs rw kgdboc=ttyS0 kgdbwait

The test is been done on xilinx virtex-5 ppc440 target

Target side:


Serial: 8250/16550 driver4 ports, IRQ sharing disabled
83e0.serial: ttyS0 at MMIO 0x83e01003 (irq = 16) is a 16550A
console [ttyS0] enabled
kgdb: Registered I/O driver kgdboc.
kgdb: Waiting for connection from remote gdb...

--

Host side
--
(gdb) target remote /dev/ttyS0
Remote debugging using /dev/ttyS0
Sending packet: $qSupported#37...Sending packet: $qSupported#37...Sending
packet: $qSupported#37...Sending packet: $qSupported#37...Timed out.
Timed out.
Timed out
.
.

--

Is anything else need to be implemented for ppc44x for KGDB to work ?




-- 
The Good You Do, The Best You GET

Regards
Srikanth Krishnakar
**
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: Machine check in 4xx ethernet driver

2009-03-09 Thread Felix Radensky



Josh Boyer-4 wrote:
 
 On Mon, Mar 09, 2009 at 03:53:25AM -0700, Felix Radensky wrote:



Josh Boyer-4 wrote:
 
 On Mon, Mar 09, 2009 at 12:47:02AM -0700, Felix Radensky wrote:

Hi,

I'm getting machine check exception when trying to dump
emac registers on 405EX Kilauea board. The kernel is 2.6.29-rc7
The problem seems not new, I can reproduce it on 2.6.25 Denx kernel
 
 I've not looked at what that code path does, but the EMAC regs are
 in DCR space, not MMIO.  Using memcpy_fromio there seems odd.
 
 

At least on 405EX MAL registers are in DCR space, but EMAC and RGMII
ones are in MMIO space.
 
 Ah, quite right.  No coffee yet this morning.
 
 You'll need to look at the code path ethtool is forcing.  Perhaps it's
 doing
 something stupid.
 
 The problem goes away if I replace memcpy_fromio() by memcpy().
 Is memcpy_fromio() really necessary in this case ?
 
 

-- 
View this message in context: 
http://www.nabble.com/Machine-check-in-4xx-ethernet-driver-tp22408005p22412825.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH 0/7] Generic RTC class driver

2009-03-09 Thread Geert Uytterhoeven

Hi Alessandro et al,

This patch series:
  1. Adds the missing module alias to rtc-parisc (which is a bugfix), and
 performs a few cleanups,
  2. Moves the platform device creation out of rtc-ppc and into arch-specific
 code (which is also a bugfix),
  3. Consolidates rtc-parisc and rtc-ppc into rtc-generic (which is a cleanup),
  4. Hooks up rtc-generic on m68k (it's been using [sg]et_rtc_time() since
 ages),
  5. Makes rtc-generic dependent on PARISC, PPC, and M68K (the existing
 [sg]et_rtc_time() users):
   a. without introducing ARCH_HAS_GENERIC_RTC,
   b. with a big fat warning in the Kconfig comment discouraging people
  from relaxing the dependencies.
  6. Converts the PS3 RTC support into a separate driver, called rtc-ps3
 (as a bonus ;-)

To reduce code churn, the order and number of the actual patches slightly
differs:
  [1] parisc: rtc: get_rtc_time() returns unsigned int
  [2] parisc: rtc: platform_driver_probe() fixups
  [3] parisc: rtc: Add missing module alias
  [4] parisc: rtc: Rename rtc-parisc to rtc-generic
  [5] m68k: Hook up rtc-generic
  [6] powerpc: Hook up rtc-generic, and kill rtc-ppc
  [7] powerpc/ps3: Add rtc-ps3

 a/drivers/rtc/rtc-parisc.c  |   85 -
 b/arch/m68k/include/asm/rtc.h   |7 +-
 b/arch/m68k/kernel/time.c   |   18 +
 b/arch/parisc/Kconfig   |2 
 b/arch/parisc/kernel/time.c |6 -
 b/arch/powerpc/include/asm/ps3.h|3 
 b/arch/powerpc/kernel/time.c|   16 
 b/arch/powerpc/platforms/ps3/os-area.c  |2 
 b/arch/powerpc/platforms/ps3/platform.h |2 
 b/arch/powerpc/platforms/ps3/setup.c|2 
 b/arch/powerpc/platforms/ps3/time.c |   26 +++
 b/drivers/rtc/Kconfig   |   10 +--
 b/drivers/rtc/Makefile  |2 
 b/drivers/rtc/rtc-generic.c |   84 +
 b/drivers/rtc/rtc-parisc.c  |5 -
 b/drivers/rtc/rtc-ps3.c |  106 +++-
 drivers/rtc/Kconfig |   22 +++---
 drivers/rtc/Makefile|2 
 drivers/rtc/rtc-parisc.c|6 -
 drivers/rtc/rtc-ppc.c   |   70 -
 20 files changed, 271 insertions(+), 205 deletions(-)

These patches are relative to the rtc-parisc branch of Kyle's PA-RISC git
repository, which already contains some cleanups for the rtc-parisc driver by
Dann, which already have been ack'ed by Alessandro:

http://git.kernel.org/?p=linux/kernel/git/kyle/parisc-2.6.git;a=shortlog;h=rtc-parisc

Paul: Feel free to add your SuperH support.

I suppose the easiest way for this to go in is through Kyle's PA-RISC tree, as
he already has the preceding patches? Can I have your acks, please?

Thanks!

With kind regards,

Geert Uytterhoeven
Software Architect

Sony Techsoft Centre Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone:+32 (0)2 700 8453
Fax:  +32 (0)2 700 8622
E-mail:   geert.uytterhoe...@sonycom.com
Internet: http://www.sony-europe.com/

A division of Sony Europe (Belgium) N.V.
VAT BE 0413.825.160 · RPR Brussels
Fortis · BIC GEBABEBB · IBAN BE41293037680010
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

[PATCH 1/7] parisc: rtc: get_rtc_time() returns unsigned int

2009-03-09 Thread Geert Uytterhoeven
Signed-off-by: Geert Uytterhoeven geert.uytterhoe...@sonycom.com
---
 drivers/rtc/rtc-parisc.c |4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/drivers/rtc/rtc-parisc.c b/drivers/rtc/rtc-parisc.c
index b966f56..620b949 100644
--- a/drivers/rtc/rtc-parisc.c
+++ b/drivers/rtc/rtc-parisc.c
@@ -13,9 +13,7 @@
 
 static int parisc_get_time(struct device *dev, struct rtc_time *tm)
 {
-   unsigned long ret;
-
-   ret = get_rtc_time(tm);
+   unsigned int ret = get_rtc_time(tm);
 
if (ret  RTC_BATT_BAD)
return -EOPNOTSUPP;
-- 
1.6.0.4

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH 2/7] parisc: rtc: platform_driver_probe() fixups

2009-03-09 Thread Geert Uytterhoeven
When using platform_driver_probe(), it's not needed to setup a .probe
function, and .remove should be marked __exit_p(), not __devexit_p().

Signed-off-by: Geert Uytterhoeven geert.uytterhoe...@sonycom.com
Cc: dann frazier da...@hp.com
---
 drivers/rtc/rtc-parisc.c |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-parisc.c b/drivers/rtc/rtc-parisc.c
index 620b949..f4e871c 100644
--- a/drivers/rtc/rtc-parisc.c
+++ b/drivers/rtc/rtc-parisc.c
@@ -62,8 +62,7 @@ static struct platform_driver parisc_rtc_driver = {
.name = rtc-parisc,
.owner = THIS_MODULE,
},
-   .probe = parisc_rtc_probe,
-   .remove = __devexit_p(parisc_rtc_remove),
+   .remove = __exit_p(parisc_rtc_remove),
 };
 
 static int __init parisc_rtc_init(void)
-- 
1.6.0.4

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH 3/7] parisc: rtc: Add missing module alias

2009-03-09 Thread Geert Uytterhoeven
Make udev autoload the driver

Signed-off-by: Geert Uytterhoeven geert.uytterhoe...@sonycom.com
---
 drivers/rtc/rtc-parisc.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/rtc/rtc-parisc.c b/drivers/rtc/rtc-parisc.c
index f4e871c..48ef5b4 100644
--- a/drivers/rtc/rtc-parisc.c
+++ b/drivers/rtc/rtc-parisc.c
@@ -81,3 +81,4 @@ module_exit(parisc_rtc_fini);
 MODULE_AUTHOR(Kyle McMartin k...@mcmartin.ca);
 MODULE_LICENSE(GPL);
 MODULE_DESCRIPTION(HP PA-RISC RTC driver);
+MODULE_ALIAS(platform:rtc-parisc);
-- 
1.6.0.4

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH 5/7] m68k: Hook up rtc-generic

2009-03-09 Thread Geert Uytterhoeven
m68k has been a long time user of the generic RTC abstraction, so hook up
rtc-generic:
  - Create the rtc-generic platform device if mach_hwclk is set,
  - Add checks for mach_hwclk, in anticipation of RTC chip drivers being moved
to drivers/rtc/.

Signed-off-by: Geert Uytterhoeven geert.uytterhoe...@sonycom.com
---
 arch/m68k/include/asm/rtc.h |7 +--
 arch/m68k/kernel/time.c |   18 ++
 drivers/rtc/Kconfig |2 +-
 3 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/arch/m68k/include/asm/rtc.h b/arch/m68k/include/asm/rtc.h
index 5d3e038..a4d08ea 100644
--- a/arch/m68k/include/asm/rtc.h
+++ b/arch/m68k/include/asm/rtc.h
@@ -36,13 +36,16 @@ static inline unsigned int get_rtc_time(struct rtc_time 
*time)
 * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
 * by the RTC when initially set to a non-zero value.
 */
-   mach_hwclk(0, time);
+   if (mach_hwclk)
+   mach_hwclk(0, time);
return RTC_24H;
 }
 
 static inline int set_rtc_time(struct rtc_time *time)
 {
-   return mach_hwclk(1, time);
+   if (mach_hwclk)
+   return mach_hwclk(1, time);
+   return -EINVAL;
 }
 
 static inline unsigned int get_rtc_ss(void)
diff --git a/arch/m68k/kernel/time.c b/arch/m68k/kernel/time.c
index 7db4159..54d9807 100644
--- a/arch/m68k/kernel/time.c
+++ b/arch/m68k/kernel/time.c
@@ -18,6 +18,7 @@
 #include linux/string.h
 #include linux/mm.h
 #include linux/rtc.h
+#include linux/platform_device.h
 
 #include asm/machdep.h
 #include asm/io.h
@@ -159,3 +160,20 @@ int do_settimeofday(struct timespec *tv)
 }
 
 EXPORT_SYMBOL(do_settimeofday);
+
+
+static int __init rtc_init(void)
+{
+   struct platform_device *pdev;
+
+   if (!mach_hwclk)
+   return -ENODEV;
+
+   pdev = platform_device_register_simple(rtc-generic, -1, NULL, 0);
+   if (IS_ERR(pdev))
+   return PTR_ERR(pdev);
+
+   return 0;
+}
+
+module_init(rtc_init);
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index d0aeff2..c8ead87 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -681,7 +681,7 @@ config RTC_DRV_GENERIC
tristate Generic RTC support
# Please consider writing a new RTC driver instead of using the generic
# RTC abstraction
-   depends on PARISC
+   depends on PARISC || M68K
help
  Say Y or M here to enable RTC support on systems using the generic
  RTC abstraction. If you do not know what you are doing, you should
-- 
1.6.0.4

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH 4/7] parisc: rtc: Rename rtc-parisc to rtc-generic

2009-03-09 Thread Geert Uytterhoeven
The rtc-parisc driver is not PA-RISC specific at all, as it uses the existing
(but deprecated) generic RTC infrastructure ([gs]et_rtc_time()).
Rename the driver from rtc-parisc to rtc-generic.

Signed-off-by: Geert Uytterhoeven geert.uytterhoe...@sonycom.com
---
 arch/parisc/Kconfig   |2 +-
 arch/parisc/kernel/time.c |6 ++--
 drivers/rtc/Kconfig   |   10 +++--
 drivers/rtc/Makefile  |2 +-
 drivers/rtc/rtc-generic.c |   84 +
 drivers/rtc/rtc-parisc.c  |   84 -
 6 files changed, 95 insertions(+), 93 deletions(-)
 create mode 100644 drivers/rtc/rtc-generic.c
 delete mode 100644 drivers/rtc/rtc-parisc.c

diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index aacf11d..378b649 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -10,7 +10,7 @@ config PARISC
select HAVE_IDE
select HAVE_OPROFILE
select RTC_CLASS
-   select RTC_DRV_PARISC
+   select RTC_DRV_GENERIC
select INIT_ALL_POSSIBLE
help
  The PA-RISC microprocessor is designed by Hewlett-Packard and used
diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c
index e75cae6..86a99d0 100644
--- a/arch/parisc/kernel/time.c
+++ b/arch/parisc/kernel/time.c
@@ -216,14 +216,14 @@ void __init start_cpu_itimer(void)
per_cpu(cpu_data, cpu).it_value = next_tick;
 }
 
-static struct platform_device rtc_parisc_dev = {
-   .name = rtc-parisc,
+static struct platform_device rtc_generic_dev = {
+   .name = rtc-generic,
.id = -1,
 };
 
 static int __init rtc_init(void)
 {
-   if (platform_device_register(rtc_parisc_dev)  0)
+   if (platform_device_register(rtc_generic_dev)  0)
printk(KERN_ERR unable to register rtc device...\n);
 
/* not necessarily an error */
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 81450fb..d0aeff2 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -677,12 +677,14 @@ config RTC_DRV_RS5C313
help
  If you say yes here you get support for the Ricoh RS5C313 RTC chips.
 
-config RTC_DRV_PARISC
-   tristate PA-RISC firmware RTC support
+config RTC_DRV_GENERIC
+   tristate Generic RTC support
+   # Please consider writing a new RTC driver instead of using the generic
+   # RTC abstraction
depends on PARISC
help
- Say Y or M here to enable RTC support on PA-RISC systems using
- firmware calls. If you do not know what you are doing, you should
+ Say Y or M here to enable RTC support on systems using the generic
+ RTC abstraction. If you do not know what you are doing, you should
  just say Y.
 
 config RTC_DRV_PPC
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index 0e697aa..9c18a01 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -55,7 +55,7 @@ obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o
 obj-$(CONFIG_RTC_DRV_PCF8583)  += rtc-pcf8583.o
 obj-$(CONFIG_RTC_DRV_PL030)+= rtc-pl030.o
 obj-$(CONFIG_RTC_DRV_PL031)+= rtc-pl031.o
-obj-$(CONFIG_RTC_DRV_PARISC)   += rtc-parisc.o
+obj-$(CONFIG_RTC_DRV_GENERIC)  += rtc-generic.o
 obj-$(CONFIG_RTC_DRV_PPC)  += rtc-ppc.o
 obj-$(CONFIG_RTC_DRV_PXA)  += rtc-pxa.o
 obj-$(CONFIG_RTC_DRV_R9701)+= rtc-r9701.o
diff --git a/drivers/rtc/rtc-generic.c b/drivers/rtc/rtc-generic.c
new file mode 100644
index 000..9832200
--- /dev/null
+++ b/drivers/rtc/rtc-generic.c
@@ -0,0 +1,84 @@
+/* rtc-generic: RTC driver using the generic RTC abstraction
+ *
+ * Copyright (C) 2008 Kyle McMartin k...@mcmartin.ca
+ */
+
+#include linux/kernel.h
+#include linux/module.h
+#include linux/time.h
+#include linux/platform_device.h
+#include linux/rtc.h
+
+#include asm/rtc.h
+
+static int generic_get_time(struct device *dev, struct rtc_time *tm)
+{
+   unsigned int ret = get_rtc_time(tm);
+
+   if (ret  RTC_BATT_BAD)
+   return -EOPNOTSUPP;
+
+   return rtc_valid_tm(tm);
+}
+
+static int generic_set_time(struct device *dev, struct rtc_time *tm)
+{
+   if (set_rtc_time(tm)  0)
+   return -EOPNOTSUPP;
+
+   return 0;
+}
+
+static const struct rtc_class_ops generic_rtc_ops = {
+   .read_time = generic_get_time,
+   .set_time = generic_set_time,
+};
+
+static int __init generic_rtc_probe(struct platform_device *dev)
+{
+   struct rtc_device *rtc;
+
+   rtc = rtc_device_register(rtc-generic, dev-dev, generic_rtc_ops,
+ THIS_MODULE);
+   if (IS_ERR(rtc))
+   return PTR_ERR(rtc);
+
+   platform_set_drvdata(dev, rtc);
+
+   return 0;
+}
+
+static int __exit generic_rtc_remove(struct platform_device *dev)
+{
+   struct rtc_device *rtc = platform_get_drvdata(dev);
+
+   rtc_device_unregister(rtc);
+
+   return 0;
+}
+
+static struct platform_driver generic_rtc_driver = {
+   .driver = {
+   .name = rtc-generic,
+   

[PATCH 6/7] powerpc: Hook up rtc-generic, and kill rtc-ppc

2009-03-09 Thread Geert Uytterhoeven
PowerPC has been a long time user of the generic RTC abstraction, so hook up
rtc-generic:
  - Create the rtc-generic platform device if ppc_md.get_rtc_time is set,
  - Kill rtc-ppc, as rtc-generic offers the same functionality in a more
generic way, and supports autoloading through udev.

Signed-off-by: Geert Uytterhoeven geert.uytterhoe...@sonycom.com
Cc: David Woodhouse dw...@infradead.org
---
 arch/powerpc/kernel/time.c |   16 ++
 drivers/rtc/Kconfig|   10 +--
 drivers/rtc/Makefile   |1 -
 drivers/rtc/rtc-ppc.c  |   69 
 4 files changed, 17 insertions(+), 79 deletions(-)
 delete mode 100644 drivers/rtc/rtc-ppc.c

diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index c956403..926ea86 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -1127,3 +1127,19 @@ void div128_by_32(u64 dividend_high, u64 dividend_low,
dr-result_low  = ((u64)y  32) + z;
 
 }
+
+static int __init rtc_init(void)
+{
+   struct platform_device *pdev;
+
+   if (!ppc_md.get_rtc_time)
+   return -ENODEV;
+
+   pdev = platform_device_register_simple(rtc-generic, -1, NULL, 0);
+   if (IS_ERR(pdev))
+   return PTR_ERR(pdev);
+
+   return 0;
+}
+
+module_init(rtc_init);
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index c8ead87..6488c50 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -681,20 +681,12 @@ config RTC_DRV_GENERIC
tristate Generic RTC support
# Please consider writing a new RTC driver instead of using the generic
# RTC abstraction
-   depends on PARISC || M68K
+   depends on PARISC || M68K || PPC
help
  Say Y or M here to enable RTC support on systems using the generic
  RTC abstraction. If you do not know what you are doing, you should
  just say Y.
 
-config RTC_DRV_PPC
-   tristate PowerPC machine dependent RTC support
-   depends on PPC
-   help
-The PowerPC kernel has machine-specific functions for accessing
-the RTC. This exposes that functionality through the generic RTC
-class.
-
 config RTC_DRV_PXA
tristate PXA27x/PXA3xx
depends on ARCH_PXA
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index 9c18a01..bd209a5 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -56,7 +56,6 @@ obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o
 obj-$(CONFIG_RTC_DRV_PL030)+= rtc-pl030.o
 obj-$(CONFIG_RTC_DRV_PL031)+= rtc-pl031.o
 obj-$(CONFIG_RTC_DRV_GENERIC)  += rtc-generic.o
-obj-$(CONFIG_RTC_DRV_PPC)  += rtc-ppc.o
 obj-$(CONFIG_RTC_DRV_PXA)  += rtc-pxa.o
 obj-$(CONFIG_RTC_DRV_R9701)+= rtc-r9701.o
 obj-$(CONFIG_RTC_DRV_RS5C313)  += rtc-rs5c313.o
diff --git a/drivers/rtc/rtc-ppc.c b/drivers/rtc/rtc-ppc.c
deleted file mode 100644
index c8e97e2..000
--- a/drivers/rtc/rtc-ppc.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * RTC driver for ppc_md RTC functions
- *
- * © 2007 Red Hat, Inc.
- *
- * Author: David Woodhouse dw...@infradead.org
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-
-#include linux/module.h
-#include linux/err.h
-#include linux/rtc.h
-#include linux/platform_device.h
-#include asm/machdep.h
-
-static int ppc_rtc_read_time(struct device *dev, struct rtc_time *tm)
-{
-   ppc_md.get_rtc_time(tm);
-   return 0;
-}
-
-static int ppc_rtc_set_time(struct device *dev, struct rtc_time *tm)
-{
-   return ppc_md.set_rtc_time(tm);
-}
-
-static const struct rtc_class_ops ppc_rtc_ops = {
-   .set_time = ppc_rtc_set_time,
-   .read_time = ppc_rtc_read_time,
-};
-
-static struct rtc_device *rtc;
-static struct platform_device *ppc_rtc_pdev;
-
-static int __init ppc_rtc_init(void)
-{
-   if (!ppc_md.get_rtc_time || !ppc_md.set_rtc_time)
-   return -ENODEV;
-
-   ppc_rtc_pdev = platform_device_register_simple(ppc-rtc, 0, NULL, 0);
-   if (IS_ERR(ppc_rtc_pdev))
-   return PTR_ERR(ppc_rtc_pdev);
-
-   rtc = rtc_device_register(ppc_md, ppc_rtc_pdev-dev,
- ppc_rtc_ops, THIS_MODULE);
-   if (IS_ERR(rtc)) {
-   platform_device_unregister(ppc_rtc_pdev);
-   return PTR_ERR(rtc);
-   }
-
-   return 0;
-}
-
-static void __exit ppc_rtc_exit(void)
-{
-   rtc_device_unregister(rtc);
-   platform_device_unregister(ppc_rtc_pdev);
-}
-
-module_init(ppc_rtc_init);
-module_exit(ppc_rtc_exit);
-
-MODULE_LICENSE(GPL);
-MODULE_AUTHOR(David Woodhouse dw...@infradead.org);
-MODULE_DESCRIPTION(Generic RTC class driver for PowerPC);
-- 
1.6.0.4

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

[PATCH 7/7] powerpc/ps3: Add rtc-ps3

2009-03-09 Thread Geert Uytterhoeven
Create a real RTC driver for PS3, and unhook the deprecated
ppc_md.[gs]et_rtc_time.

Signed-off-by: Geert Uytterhoeven geert.uytterhoe...@sonycom.com
Cc: Geoff Levand geoffrey.lev...@am.sony.com
---
 arch/powerpc/include/asm/ps3.h|3 +
 arch/powerpc/platforms/ps3/os-area.c  |2 +
 arch/powerpc/platforms/ps3/platform.h |2 -
 arch/powerpc/platforms/ps3/setup.c|2 -
 arch/powerpc/platforms/ps3/time.c |   26 -
 drivers/rtc/Kconfig   |9 +++
 drivers/rtc/Makefile  |1 +
 drivers/rtc/rtc-ps3.c |  105 +
 8 files changed, 132 insertions(+), 18 deletions(-)
 create mode 100644 drivers/rtc/rtc-ps3.c

diff --git a/arch/powerpc/include/asm/ps3.h b/arch/powerpc/include/asm/ps3.h
index 67f1812..cdb6fd8 100644
--- a/arch/powerpc/include/asm/ps3.h
+++ b/arch/powerpc/include/asm/ps3.h
@@ -50,6 +50,9 @@ enum ps3_param_av_multi_out {
 
 enum ps3_param_av_multi_out ps3_os_area_get_av_multi_out(void);
 
+extern u64 ps3_os_area_get_rtc_diff(void);
+extern void ps3_os_area_set_rtc_diff(u64 rtc_diff);
+
 /* dma routines */
 
 enum ps3_dma_page_size {
diff --git a/arch/powerpc/platforms/ps3/os-area.c 
b/arch/powerpc/platforms/ps3/os-area.c
index e1c83c2..86e392b 100644
--- a/arch/powerpc/platforms/ps3/os-area.c
+++ b/arch/powerpc/platforms/ps3/os-area.c
@@ -808,6 +808,7 @@ u64 ps3_os_area_get_rtc_diff(void)
 {
return saved_params.rtc_diff;
 }
+EXPORT_SYMBOL(ps3_os_area_get_rtc_diff);
 
 /**
  * ps3_os_area_set_rtc_diff - Set the rtc diff value.
@@ -823,6 +824,7 @@ void ps3_os_area_set_rtc_diff(u64 rtc_diff)
os_area_queue_work();
}
 }
+EXPORT_SYMBOL(ps3_os_area_set_rtc_diff);
 
 /**
  * ps3_os_area_get_av_multi_out - Returns the default video mode.
diff --git a/arch/powerpc/platforms/ps3/platform.h 
b/arch/powerpc/platforms/ps3/platform.h
index 235c13e..136aa06 100644
--- a/arch/powerpc/platforms/ps3/platform.h
+++ b/arch/powerpc/platforms/ps3/platform.h
@@ -64,8 +64,6 @@ int ps3_set_rtc_time(struct rtc_time *time);
 
 void __init ps3_os_area_save_params(void);
 void __init ps3_os_area_init(void);
-u64 ps3_os_area_get_rtc_diff(void);
-void ps3_os_area_set_rtc_diff(u64 rtc_diff);
 
 /* spu */
 
diff --git a/arch/powerpc/platforms/ps3/setup.c 
b/arch/powerpc/platforms/ps3/setup.c
index 3331ccb..6618182 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -270,8 +270,6 @@ define_machine(ps3) {
.init_IRQ   = ps3_init_IRQ,
.panic  = ps3_panic,
.get_boot_time  = ps3_get_boot_time,
-   .set_rtc_time   = ps3_set_rtc_time,
-   .get_rtc_time   = ps3_get_rtc_time,
.set_dabr   = ps3_set_dabr,
.calibrate_decr = ps3_calibrate_decr,
.progress   = ps3_progress,
diff --git a/arch/powerpc/platforms/ps3/time.c 
b/arch/powerpc/platforms/ps3/time.c
index d0daf7d..b178a1e 100644
--- a/arch/powerpc/platforms/ps3/time.c
+++ b/arch/powerpc/platforms/ps3/time.c
@@ -19,6 +19,7 @@
  */
 
 #include linux/kernel.h
+#include linux/platform_device.h
 
 #include asm/rtc.h
 #include asm/lv1call.h
@@ -74,23 +75,20 @@ static u64 read_rtc(void)
return rtc_val;
 }
 
-int ps3_set_rtc_time(struct rtc_time *tm)
+unsigned long __init ps3_get_boot_time(void)
 {
-   u64 now = mktime(tm-tm_year + 1900, tm-tm_mon + 1, tm-tm_mday,
-   tm-tm_hour, tm-tm_min, tm-tm_sec);
-
-   ps3_os_area_set_rtc_diff(now - read_rtc());
-   return 0;
+   return read_rtc() + ps3_os_area_get_rtc_diff();
 }
 
-void ps3_get_rtc_time(struct rtc_time *tm)
+static int __init ps3_rtc_init(void)
 {
-   to_tm(read_rtc() + ps3_os_area_get_rtc_diff(), tm);
-   tm-tm_year -= 1900;
-   tm-tm_mon -= 1;
-}
+   struct platform_device *pdev;
 
-unsigned long __init ps3_get_boot_time(void)
-{
-   return read_rtc() + ps3_os_area_get_rtc_diff();
+   pdev = platform_device_register_simple(rtc-ps3, -1, NULL, 0);
+   if (IS_ERR(pdev))
+   return PTR_ERR(pdev);
+
+   return 0;
 }
+
+module_init(ps3_rtc_init);
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 6488c50..7b6b63a 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -730,4 +730,13 @@ config RTC_DRV_MV
  This driver can also be built as a module. If so, the module
  will be called rtc-mv.
 
+config RTC_DRV_PS3
+   tristate PS3 RTC
+   depends on PPC_PS3
+   help
+ If you say yes here you will get support for the RTC on PS3.
+
+ This driver can also be built as a module. If so, the module
+ will be called rtc-ps3.
+
 endif # RTC_CLASS
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index bd209a5..d161d1d 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -75,3 +75,4 @@ obj-$(CONFIG_RTC_DRV_VR41XX)  

Re: [PATCH 6/7] powerpc: Hook up rtc-generic, and kill rtc-ppc

2009-03-09 Thread David Woodhouse
On Mon, 2009-03-09 at 14:26 +0100, Geert Uytterhoeven wrote:
 PowerPC has been a long time user of the generic RTC abstraction, so hook up
 rtc-generic:
   - Create the rtc-generic platform device if ppc_md.get_rtc_time is set,
   - Kill rtc-ppc, as rtc-generic offers the same functionality in a more
 generic way, and supports autoloading through udev.
 
 Signed-off-by: Geert Uytterhoeven geert.uytterhoe...@sonycom.com

Acked-By: David Woodhouse david.woodho...@intel.com

-- 
David WoodhouseOpen Source Technology Centre
david.woodho...@intel.com  Intel Corporation

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [rtc-linux] [PATCH 7/7] powerpc/ps3: Add rtc-ps3

2009-03-09 Thread Alessandro Zummo
On Mon,  9 Mar 2009 14:26:23 +0100
Geert Uytterhoeven geert.uytterhoe...@sonycom.com wrote:

 Hi,

   just a few notes:

 +
 +static int ps3_get_time(struct device *dev, struct rtc_time *tm)
 +{
 + to_tm(read_rtc() + ps3_os_area_get_rtc_diff(), tm);
 + tm-tm_year -= 1900;
 + tm-tm_mon -= 1;
 + return 0;
 +}

 this should be return rtc_valid_tm() .

 can't you use functions from rtc-lib.c instead of 
 that to_tm ?

 +
 +MODULE_AUTHOR(Sony Corporation);

 real name, if possible and a contact address
 here . Just in case I need someone to bother :)

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [rtc-linux] [PATCH 0/7] Generic RTC class driver

2009-03-09 Thread Alessandro Zummo
On Mon,  9 Mar 2009 14:26:16 +0100
Geert Uytterhoeven geert.uytterhoe...@sonycom.com wrote:


 Hi Alessandro et al,
 
 These patches are relative to the rtc-parisc branch of Kyle's PA-RISC git
 repository, which already contains some cleanups for the rtc-parisc driver by
 Dann, which already have been ack'ed by Alessandro:
 
 http://git.kernel.org/?p=linux/kernel/git/kyle/parisc-2.6.git;a=shortlog;h=rtc-parisc
 
 Paul: Feel free to add your SuperH support.
 
 I suppose the easiest way for this to go in is through Kyle's PA-RISC tree, as
 he already has the preceding patches? Can I have your acks, please?

 Here's mine. Thanks for your efforts . 
 
 Acked-by: Alessandro Zummo a.zu...@towertech.it

 btw I'll pretend I had never seen this patch
 if asked in court :)

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [U-Boot] ppc4xx: u-boot sees PCIe endpoint, linux does not.

2009-03-09 Thread Leon Woestenberg
Hello Stefan,

On Mon, Dec 1, 2008 at 8:46 PM, Stefan Roese s...@denx.de wrote:
 On Monday 01 December 2008, Leon Woestenberg wrote:
  Now, if I re-program the end-point FPGA during the u-boot boot
  time-out, Linux will recognize the end-point.
 
  It's possible that either the reset in between goes bonkers or something
  else causes your FPGA to stop responding. It looks like a programming
  problem with the FPGA to me.

 I have verified that the end point does not receive any kind of reset.

 Also, this problem only happens on the Canyonlands board; on x86 and
 powerpc MPC8315E it remains properly working after soft/hard resets,
 u-boot init etc.

 This could be because only the 4xx Linux PCI(e) driver really resets the
 endpoint (PHY reset). But you seem to have analyzed this already.


Some progress:

Using au-boot  GIT checkout of 9-2-2009 (one month old) I now have
different behaviour:
u-boot does report a link, but no longer the PCIe vendor id:

CPU:   AMCC PowerPC 460EX Rev. A at 800 MHz (PLB=200, OPB=100, EBC=100 MHz)
   Security/Kasumi support
   Bootstrap Option H - Boot ROM Location I2C (Addr 0x52)
   Internal PCI arbiter disabled
   32 kB I-Cache 32 kB D-Cache
Board: Canyonlands - AMCC PPC460EX Evaluation Board, 2*PCIe, Rev. 16
I2C:   ready
DTT:   1 is 44 C
DRAM:  512 MB (ECC not enabled, 400 MHz, CL3)
FLASH: 64 MB
NAND:  128 MiB
PCI:   Bus Dev VenId DevId Class Int
PCIE0: link is not up.
PCIE0: initialization as root-complex failed
PCIE1: successfully set as root-complex

Linux now correctly recognizes the device.
The FPGA with PCIe end point now also survives both a hard reset
(reset button) and soft reset (shutdown -r now in Linux).

Regards,
-- 
Leon
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Machine check in 4xx ethernet driver

2009-03-09 Thread Felix Radensky



Josh Boyer-4 wrote:
 
 On Mon, Mar 09, 2009 at 03:53:25AM -0700, Felix Radensky wrote:



Josh Boyer-4 wrote:
 
 On Mon, Mar 09, 2009 at 12:47:02AM -0700, Felix Radensky wrote:

Hi,

I'm getting machine check exception when trying to dump
emac registers on 405EX Kilauea board. The kernel is 2.6.29-rc7
The problem seems not new, I can reproduce it on 2.6.25 Denx kernel
 
 I've not looked at what that code path does, but the EMAC regs are
 in DCR space, not MMIO.  Using memcpy_fromio there seems odd.
 
 

At least on 405EX MAL registers are in DCR space, but EMAC and RGMII
ones are in MMIO space.
 
 Ah, quite right.  No coffee yet this morning.
 
 You'll need to look at the code path ethtool is forcing.  Perhaps it's
 doing
 something stupid.
 
 

Bad quoting in previous message, sorry.

The problem goes away if I replace memcpy_fromio() by memcpy().,
but register values seem wrong. Why would memcpy() work when
memcpy_fromio()  doesn't ?


-- 
View this message in context: 
http://www.nabble.com/Machine-check-in-4xx-ethernet-driver-tp22408005p22413434.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH] powerpc/bootwrapper: add fixed-head.o to simpleimage wrappers

2009-03-09 Thread Grant Likely
From: Grant Likely grant.lik...@secretlab.ca

fixed-head.o must be linked into the bootwrapper for raw-binary images to
work.  This patch adds it into the bootwrapper.

Signed-off-by: Grant Likely grant.lik...@secretlab.ca
Reported-by: Eddie Dawydiuk ed...@embeddedarm.com
---

I pulled this chunk out of Eddie's bigger patch and also modified the other
case where it applies.  This is a definite bug on the simpleimage generation.
Once I get an ack, I'll add it to my -next tree and ask Ben to pull.

Cheers,
g.

 arch/powerpc/boot/wrapper |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index 965c237..c5bd9cf 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -211,11 +211,11 @@ simpleboot-virtex405-*)
 binary=y
 ;;
 simpleboot-virtex440-*)
-platformo=$object/simpleboot.o $object/virtex.o
+platformo=$object/fixed-head.o $object/simpleboot.o $object/virtex.o
 binary=y
 ;;
 simpleboot-*)
-platformo=$object/simpleboot.o
+platformo=$object/fixed-head.o $object/simpleboot.o
 binary=y
 ;;
 asp834x-redboot)

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [rtc-linux] [PATCH 7/7] powerpc/ps3: Add rtc-ps3

2009-03-09 Thread Geert Uytterhoeven
On Mon, 9 Mar 2009, Alessandro Zummo wrote:
 On Mon,  9 Mar 2009 14:26:23 +0100
 Geert Uytterhoeven geert.uytterhoe...@sonycom.com wrote:
  +
  +static int ps3_get_time(struct device *dev, struct rtc_time *tm)
  +{
  +   to_tm(read_rtc() + ps3_os_area_get_rtc_diff(), tm);
  +   tm-tm_year -= 1900;
  +   tm-tm_mon -= 1;
  +   return 0;
  +}
 
  this should be return rtc_valid_tm() .

Fixed.

  can't you use functions from rtc-lib.c instead of 
  that to_tm ?

Ah, those pesky PPC-specific functions... switched to rtc_time_to_tm() and
rtc_tm_to_time().

  +
  +MODULE_AUTHOR(Sony Corporation);
 
  real name, if possible and a contact address
  here . Just in case I need someone to bother :)

All PS3-specific drivers have this. But there's an official PS3 platform
maintainer in MAINTAINERS.

From 41020647c3e2b07e0302a905a926d6221061a128 Mon Sep 17 00:00:00 2001
From: Geert Uytterhoeven geert.uytterhoe...@sonycom.com
Date: Tue, 24 Feb 2009 14:04:20 +0100
Subject: powerpc/ps3: Add rtc-ps3

Create a real RTC driver for PS3, and unhook the deprecated
ppc_md.[gs]et_rtc_time.

Signed-off-by: Geert Uytterhoeven geert.uytterhoe...@sonycom.com
Acked-by: Alessandro Zummo a.zu...@towertech.it
---
 arch/powerpc/include/asm/ps3.h|3 +
 arch/powerpc/platforms/ps3/os-area.c  |2 +
 arch/powerpc/platforms/ps3/platform.h |2 -
 arch/powerpc/platforms/ps3/setup.c|2 -
 arch/powerpc/platforms/ps3/time.c |   26 -
 drivers/rtc/Kconfig   |9 +++
 drivers/rtc/Makefile  |1 +
 drivers/rtc/rtc-ps3.c |  104 +
 8 files changed, 131 insertions(+), 18 deletions(-)
 create mode 100644 drivers/rtc/rtc-ps3.c

diff --git a/arch/powerpc/include/asm/ps3.h b/arch/powerpc/include/asm/ps3.h
index 67f1812..cdb6fd8 100644
--- a/arch/powerpc/include/asm/ps3.h
+++ b/arch/powerpc/include/asm/ps3.h
@@ -50,6 +50,9 @@ enum ps3_param_av_multi_out {
 
 enum ps3_param_av_multi_out ps3_os_area_get_av_multi_out(void);
 
+extern u64 ps3_os_area_get_rtc_diff(void);
+extern void ps3_os_area_set_rtc_diff(u64 rtc_diff);
+
 /* dma routines */
 
 enum ps3_dma_page_size {
diff --git a/arch/powerpc/platforms/ps3/os-area.c 
b/arch/powerpc/platforms/ps3/os-area.c
index e1c83c2..86e392b 100644
--- a/arch/powerpc/platforms/ps3/os-area.c
+++ b/arch/powerpc/platforms/ps3/os-area.c
@@ -808,6 +808,7 @@ u64 ps3_os_area_get_rtc_diff(void)
 {
return saved_params.rtc_diff;
 }
+EXPORT_SYMBOL(ps3_os_area_get_rtc_diff);
 
 /**
  * ps3_os_area_set_rtc_diff - Set the rtc diff value.
@@ -823,6 +824,7 @@ void ps3_os_area_set_rtc_diff(u64 rtc_diff)
os_area_queue_work();
}
 }
+EXPORT_SYMBOL(ps3_os_area_set_rtc_diff);
 
 /**
  * ps3_os_area_get_av_multi_out - Returns the default video mode.
diff --git a/arch/powerpc/platforms/ps3/platform.h 
b/arch/powerpc/platforms/ps3/platform.h
index 235c13e..136aa06 100644
--- a/arch/powerpc/platforms/ps3/platform.h
+++ b/arch/powerpc/platforms/ps3/platform.h
@@ -64,8 +64,6 @@ int ps3_set_rtc_time(struct rtc_time *time);
 
 void __init ps3_os_area_save_params(void);
 void __init ps3_os_area_init(void);
-u64 ps3_os_area_get_rtc_diff(void);
-void ps3_os_area_set_rtc_diff(u64 rtc_diff);
 
 /* spu */
 
diff --git a/arch/powerpc/platforms/ps3/setup.c 
b/arch/powerpc/platforms/ps3/setup.c
index 3331ccb..6618182 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -270,8 +270,6 @@ define_machine(ps3) {
.init_IRQ   = ps3_init_IRQ,
.panic  = ps3_panic,
.get_boot_time  = ps3_get_boot_time,
-   .set_rtc_time   = ps3_set_rtc_time,
-   .get_rtc_time   = ps3_get_rtc_time,
.set_dabr   = ps3_set_dabr,
.calibrate_decr = ps3_calibrate_decr,
.progress   = ps3_progress,
diff --git a/arch/powerpc/platforms/ps3/time.c 
b/arch/powerpc/platforms/ps3/time.c
index d0daf7d..b178a1e 100644
--- a/arch/powerpc/platforms/ps3/time.c
+++ b/arch/powerpc/platforms/ps3/time.c
@@ -19,6 +19,7 @@
  */
 
 #include linux/kernel.h
+#include linux/platform_device.h
 
 #include asm/rtc.h
 #include asm/lv1call.h
@@ -74,23 +75,20 @@ static u64 read_rtc(void)
return rtc_val;
 }
 
-int ps3_set_rtc_time(struct rtc_time *tm)
+unsigned long __init ps3_get_boot_time(void)
 {
-   u64 now = mktime(tm-tm_year + 1900, tm-tm_mon + 1, tm-tm_mday,
-   tm-tm_hour, tm-tm_min, tm-tm_sec);
-
-   ps3_os_area_set_rtc_diff(now - read_rtc());
-   return 0;
+   return read_rtc() + ps3_os_area_get_rtc_diff();
 }
 
-void ps3_get_rtc_time(struct rtc_time *tm)
+static int __init ps3_rtc_init(void)
 {
-   to_tm(read_rtc() + ps3_os_area_get_rtc_diff(), tm);
-   tm-tm_year -= 1900;
-   tm-tm_mon -= 1;
-}
+   struct platform_device *pdev;
 
-unsigned long __init ps3_get_boot_time(void)

Re: next branch status

2009-03-09 Thread Kumar Gala


On Mar 2, 2009, at 10:55 PM, Benjamin Herrenschmidt wrote:


Note: Kumar and Grant, pls be a bit more careful with files outside of
arch/powerpc ... like the 5200 fec driver change, even if it's really
powerpc only stuff and quite clearly so, it's in drivers/net, it
wouldn't have hurt to seek davem ack for it... No big deal, it's  
only 2
or 3 files that I might need to give Linus an explanation about  
tho :-)


Which files are you taking about?  The i2c driver changes got ack'd by  
Ben Dooks.


- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH 0/7] Generic RTC class driver

2009-03-09 Thread Paul Mundt
On Mon, Mar 09, 2009 at 02:26:16PM +0100, Geert Uytterhoeven wrote:
 Paul: Feel free to add your SuperH support.
 
 I suppose the easiest way for this to go in is through Kyle's PA-RISC tree, as
 he already has the preceding patches? Can I have your acks, please?
 
I'll add the SH support once the patch set is merged, it's not a very
pressing matter, so no need to make the patch juggling any more
complicated :-)
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH v2] powerpc: clean up ssi.txt, add definition for fsl, ssi-asynchronous

2009-03-09 Thread Kumar Gala


On Mar 6, 2009, at 1:43 PM, Timur Tabi wrote:

Add the definition of the fsl,ssi-asynchronous property to ssi.txt  
(documentation

of the device tree bindings for the Freescale SSI device).

Also tidy up the layout of ssi.txt.

Signed-off-by: Timur Tabi ti...@freescale.com
---

v2: fixed typo, improved wording.

Documentation/powerpc/dts-bindings/fsl/ssi.txt |   68 + 
+--

1 files changed, 40 insertions(+), 28 deletions(-)


does not apply cleanly if/after I apply:

powerpc: add fsl, fifo-depth property to Freescale SSI device nodes


- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] powerpc: add fsl, fifo-depth property to Freescale SSI device nodes

2009-03-09 Thread Kumar Gala


On Mar 4, 2009, at 2:55 PM, Timur Tabi wrote:

The Freescale Serial Synchronous Interface (SSI) is an audio device  
present on
some Freescale SOCs.  Various implementations of the SSI have a  
different
transmit and receive FIFO depth, but are otherwise identical.  To  
support
these variations, add a new property fsl,fifo-depth to the SSI node  
that

specifies the depth of the FIFOs.

Also update the MPC8610 HPCD device tree with this property.

Signed-off-by: Timur Tabi ti...@freescale.com
---

Updates to the SSI audio driver will come later.  Currently, this  
driver
supports only one Freescale SOC, and so it's hard-coded to use the  
value 8.
If/when this driver is updated to support other SOCs (e.g. the i.MX  
parts
that have a FIFO depth of 15), the driver will check for this  
property.  I

just want to get this DTS change in now.

Documentation/powerpc/dts-bindings/fsl/ssi.txt |2 ++
arch/powerpc/boot/dts/mpc8610_hpcd.dts |2 ++
2 files changed, 4 insertions(+), 0 deletions(-)


applied to next

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH v2] powerpc: clean up ssi.txt, add definition for fsl, ssi-asynchronous

2009-03-09 Thread Timur Tabi
Kumar Gala wrote:

 does not apply cleanly if/after I apply:
 
 powerpc: add fsl, fifo-depth property to Freescale SSI device nodes

That's weird -- I designed the patch so that it would.  Oh well, I'll
rebase and repost.


-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Please pull from 'merge'

2009-03-09 Thread Kumar Gala
Please pull from 'merge' branch of

master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc.git merge

to receive the following updates:

 arch/powerpc/configs/linkstation_defconfig   |   36 +
 arch/powerpc/configs/storcenter_defconfig|   35 +
 arch/powerpc/platforms/embedded6xx/linkstation.c |   38 ---
 arch/powerpc/platforms/embedded6xx/storcenter.c  |   32 ---
 4 files changed, 44 insertions(+), 97 deletions(-)

Guennadi Liakhovetski (1):
  powerpc: fix linkstation and storcenter compilation breakage

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH] eHEA: Don't do memory allocation under lock if not necessary

2009-03-09 Thread David Howells
In ehea_probe_adapter() the initial memory allocation and initialisation does
not need to be done with the ehea_fw_handles.lock semaphore held.  Doing so
extends the amount of time the lock is held unnecessarily.

Signed-off-by: David Howells dhowe...@redhat.com
---

 drivers/net/ehea/ehea_main.c |   13 ++---
 1 files changed, 6 insertions(+), 7 deletions(-)


diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index dfe9226..34480ae 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -3370,18 +3370,19 @@ static int __devinit ehea_probe_adapter(struct 
of_device *dev,
ehea_error(Invalid ibmebus device probed);
return -EINVAL;
}
-   mutex_lock(ehea_fw_handles.lock);
 
adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
if (!adapter) {
-   ret = -ENOMEM;
dev_err(dev-dev, no mem for ehea_adapter\n);
-   goto out;
+   return -ENOMEM;
}
 
-   list_add(adapter-list, adapter_list);
-
adapter-ofdev = dev;
+   adapter-pd = EHEA_PD_ID;
+
+   mutex_lock(ehea_fw_handles.lock);
+
+   list_add(adapter-list, adapter_list);
 
adapter_handle = of_get_property(dev-node, ibm,hea-handle,
 NULL);
@@ -3395,8 +3396,6 @@ static int __devinit ehea_probe_adapter(struct of_device 
*dev,
goto out_free_ad;
}
 
-   adapter-pd = EHEA_PD_ID;
-
dev-dev.driver_data = adapter;
 
 

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] Add unwind information for SPE registers of E500 core

2009-03-09 Thread Kumar Gala


On Mar 3, 2009, at 10:51 PM, Liming Wang wrote:


SPE registers use the high part bit0~bit31 of E500 GPR0~GPR31.
The unwind information in eh_frame section is used during exception
handling and describes register information in the signal frame. But
current unwind information doesn't cover SPE registers, which have
been saved in the signal frame. This patch adds this unwind  
information

to eh_frame section.

SPE registers use register number 1200+N to identify register 'N', but
they start from 113 in unwind column, which is computed from gcc
source code, macro DWARF_REG_TO_UNWIND_COLUMN:

#define FIRST_PSEUDO_REGISTER 114
#define DWARF_REG_TO_UNWIND_COLUMN(r) \
  ((r)  1200 ? ((r) - 1200 + FIRST_PSEUDO_REGISTER - 1) : (r))

Signed-off-by: Liming Wang liming.w...@windriver.com
---
arch/powerpc/kernel/vdso32/sigtramp.S |   34  
+

1 files changed, 34 insertions(+), 0 deletions(-)


What about SPEFSCR  the accumulator?  Are they not part of the  
frame?  They probably should be.


diff --git a/arch/powerpc/kernel/vdso32/sigtramp.S b/arch/powerpc/ 
kernel/vdso32/sigtramp.S

index 68d49dd..789a343 100644
--- a/arch/powerpc/kernel/vdso32/sigtramp.S
+++ b/arch/powerpc/kernel/vdso32/sigtramp.S
@@ -251,6 +251,40 @@ V_FUNCTION_END(__kernel_sigtramp_rt32)
  vsave_msr1 (31);  \
  vsave_msr2 (33, 32*16+12);\
  vsave  (32, 32*16)
+#elif defined(CONFIG_SPE)
+#define EH_FRAME_VMX \


introduce EH_FRAME_SPE.


+  rsave (113, VREGS);  \


we should probably be doing the same thing as vsave_msr1()

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH 1/2] powerpc/kernel: typo: s/resouces/resources/

2009-03-09 Thread Wolfram Sang
Signed-off-by: Wolfram Sang w.s...@pengutronix.de
---
 arch/powerpc/kernel/pci-common.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 0f41812..f57b7bf 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1453,7 +1453,7 @@ void __init pcibios_resource_survey(void)
 * we proceed to assigning things that were left unassigned
 */
if (!(ppc_pci_flags  PPC_PCI_PROBE_ONLY)) {
-   pr_debug(PCI: Assigning unassigned resouces...\n);
+   pr_debug(PCI: Assigning unassigned resources...\n);
pci_assign_unassigned_resources();
}
 
-- 
1.5.6.5

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] cpm_uart: fix non-console port startup bug

2009-03-09 Thread Kumar Gala


On Mar 5, 2009, at 9:01 PM, Xiaotian Feng wrote:


 After UART interrupt handler is installed and rx is enabled, if an rx
interrupt comes before hardware init, rx-cur will be updated. Then  
the
hardware init will reset BD and make rx-cur out of sync, move the  
hardware

init code before request_irq.

 Signed-off-by: Xiaotian Feng xiaotian.f...@windriver.com
---
drivers/serial/cpm_uart/cpm_uart_core.c |   14 --
1 files changed, 12 insertions(+), 2 deletions(-)


applied to next

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH] powerpc 4xx: DDR0_14[REDUC] decoded incorrectly

2009-03-09 Thread Mikhail Zolotaryov

Hi,

according to the PPC440EPx Embedded Processor User Manual (rev 1.14) 
DDR0_14[REDUC] bit has the following meaning:


REDUC - Enable the half data path feature of the controller
0 = Standard operation using full 64/72-bit memory bus
1 = Memory data path width is 32/40 bits

However, 1 is decoded as 64 bit (8 byte), 0 - as 32 bit (4 byte) bus 
by the kernel code. My understanding is this is not correct - patch 
attached.



--- linux.orig/arch/powerpc/boot/4xx.c  2009-03-09 17:55:01.0 +0200
+++ linux/arch/powerpc/boot/4xx.c   2009-03-09 17:58:07.0 +0200
@@ -193,9 +193,9 @@
val = SDRAM0_READ(DDR0_14);
 
if (DDR_GET_VAL(val, DDR_REDUC, DDR_REDUC_SHIFT))
-   dpath = 8; /* 64 bits */
-   else
dpath = 4; /* 32 bits */
+   else
+   dpath = 8; /* 64 bits */
 
/* get address pins (rows) */
val = SDRAM0_READ(DDR0_42);
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [PATCH resend 0/6] OpenFirmware support for the spi_mpc83xx driver

2009-03-09 Thread Kumar Gala


On Jan 23, 2009, at 1:49 PM, Anton Vorontsov wrote:


On Tue, Jan 06, 2009 at 10:28:10PM -0600, Kumar Gala wrote:

On Dec 5, 2008, at 2:09 PM, Anton Vorontsov wrote:

Hi all,

The patch series are used to support SPI via the OF SPI subsystem
(driver/of/of_spi.c). Now the driver is able to manage its own
chip selects, and doesn't need any auxiliary support from the
board files or fsl_soc constructors.

The series also contains PowerPC portions of the MMC SPI support.

Since the series touches spi and powerpc trees, I think it would
be most convenient to pass it via one of these trees. The patches
doesn't touch any SPI functionality, only some probe routines, so
I believe powerpc.git is the best candidate...

The other reason for powerpc tree is that the patches depends on
other patches as found in paulus/powerpc.git + of_gpio_count()
as found here:
http://ozlabs.org/pipermail/linuxppc-dev/2008-December/065917.html

David, if you're OK with the patches, may I ask you to sign off on
the ones that touch drivers/spi so that we could pass it via Kumar's
powerpc.git?

The queue:

[1/7] powerpc: Implement get_brgfreq() and get_baudrate() stubs
[2/7] spi_mpc83xx: Fix sparse warnings
[3/7] spi_mpc83xx: Rework chip selects handling
[4/7] spi_mpc83xx: Add OF platform driver bindings
[5/7] powerpc/fsl_soc: Isolate legacy fsl_spi support to mpc832x_rdb
boards
[6/7] powerpc: Add mmc-spi-slot bindings
[7/7] powerpc/83xx: Add mmc-spi support via the device tree for
MPC8323E-RDB



David,

Any status on these patches?


Ping? No single comment on this patch set for ~2 months...

Resending...

Thanks,


David,

Anything going on here?  Should we send this via some other channel?

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] powerpc/86xx: Correct local bus registers in GE Fanuc SBC610 dts file

2009-03-09 Thread Kumar Gala


On Feb 27, 2009, at 9:53 AM, Martyn Welch wrote:

The registers for the local bus are incorrectly set to 0xf8005000  
rather

than there actual location of 0xfef05000.

Signed-off-by: Martyn Welch martyn.we...@gefanuc.com
---

arch/powerpc/boot/dts/gef_sbc610.dts |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)


applied to next

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] powerpc 4xx: DDR0_14[REDUC] decoded incorrectly

2009-03-09 Thread Josh Boyer
On Mon, Mar 09, 2009 at 06:21:36PM +0200, Mikhail Zolotaryov wrote:
 Hi,

 according to the PPC440EPx Embedded Processor User Manual (rev 1.14)  
 DDR0_14[REDUC] bit has the following meaning:

 REDUC - Enable the half data path feature of the controller
 0 = Standard operation using full 64/72-bit memory bus
 1 = Memory data path width is 32/40 bits

 However, 1 is decoded as 64 bit (8 byte), 0 - as 32 bit (4 byte) bus  
 by the kernel code. My understanding is this is not correct - patch  
 attached.

You are missing the Signed-off-by tag that is needed.

Aside from that, I'm curious if you found this just through inspection, or
if you actually had a problem because of it.  Your fix seems correct, yet
I've had no problems with my boards at all.

josh
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] ps3/block: Replace mtd/ps3vram by block/ps3vram

2009-03-09 Thread Geoff Levand
On 03/06/2009 04:54 AM, Geert Uytterhoeven wrote:
 Convert the PS3 Video RAM Storage Driver from an MTD driver to a plain block
 device driver.
 
 The ps3vram driver exposes unused video RAM on the PS3 as a block device
 suitable for storage or swap.  Fast data transfer is achieved using a local
 cache in system RAM and DMA transfers via the GPU.
 
 The new driver is ca. 50% faster for reading, and ca. 10% for writing.
 
  arch/powerpc/platforms/ps3/Kconfig |7 +
  drivers/block/Makefile |1 +
  drivers/block/ps3vram.c|  865 
 
  drivers/mtd/devices/Kconfig|7 -
  drivers/mtd/devices/Makefile   |1 -
  drivers/mtd/devices/ps3vram.c  |  768 
  6 files changed, 873 insertions(+), 776 deletions(-)
  create mode 100644 drivers/block/ps3vram.c
  delete mode 100644 drivers/mtd/devices/ps3vram.c

Looks good, certainly an improvement.

Acked-by: Geoff Levand geoffrey.lev...@am.sony.com

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: 2.6.29-rc7-git2 : crash in kmem_list3_init()

2009-03-09 Thread Mel Gorman
On Mon, Mar 09, 2009 at 10:02:11PM +0530, Sachin P. Sant wrote:
 While trying to boot 2.6.29-rc7-git2 on a power5 box ran into
 following crash.

 Unable to handle kernel paging request for data at address 0xc00070001008
 Faulting instruction address: 0xc0119070
 cpu 0x0: Vector: 300 (Data Access) at [c0ac3980]
pc: c0119070: .kmem_list3_init+0x68/0x8c
lr: c011906c: .kmem_list3_init+0x64/0x8c
sp: c0ac3c00
   msr: 80009032
   dar: c00070001008
 dsisr: 4200
  current = 0xc09ea610
  paca= 0xc0b43480
pid   = 0, comm = swapper
 enter ? for help
 [c0ac3c90] c068b788 .setup_cpu_cache+0xf8/0x1e8
 [c0ac3d20] c011c8a0 .kmem_cache_create+0x43c/0x500
 [c0ac3e20] c0948c54 .kmem_cache_init+0x284/0x640
 [c0ac3ee0] c0920a5c .start_kernel+0x360/0x480
 [c0ac3f90] c00083d8 .start_here_common+0x1c/0x44

 Attached here is the dmesg log with loglevel=8 mminit_loglevel=4
 as well as .config used.

 Tried to boot a kernel.org kernel on this box for first time so not
 sure if this is a new problem or a recurring one. Will try booting
 some older kernels on this box and will report the results.

 Node 0 Memory: 0x800-0x3a00
 Node 1 Memory: 0x0-0x800 0x3a00-0x7200
 PCI host bridge /p...@8002003  ranges:
   IO 0x03fe0070..0x03fe007f - 0x
  MEM 0x0401c000..0x0401 - 0xc000 
 EEH: PCI Enhanced I/O Error Handling Enabled
 PPC64 nvram contains 7168 bytes
 Using shared processor idle loop
 Zone PFN ranges:
   DMA  0x - 0x7200
   Normal   0x7200 - 0x7200
 Movable zone start PFN for each node
 early_node_map[3] active PFN ranges
 1: 0x - 0x0800
 0: 0x0800 - 0x3a00
 1: 0x3a00 - 0x7200

What's interesting about this machine is that the nodes are interleaving. It's
possible someone is double initialising incorrectly.

 mminit::pageflags_layout_widths Section 0 Node 4 Zone 2 Flags 22
 mminit::pageflags_layout_shifts Section 20 Node 4 Zone 2
 mminit::pageflags_layout_offsets Section 0 Node 60 Zone 58
 mminit::pageflags_layout_zoneid Zone ID: 58 - 64
 mminit::pageflags_layout_usage location: 64 - 58 unused 58 - 22 flags 22 -  0
 On node 0 totalpages: 12800
   DMA zone: 18 pages used for memmap
   DMA zone: 0 pages reserved
   DMA zone: 12782 pages, LIFO batch:1
 mminit::memmap_init Initialising map node 0 zone 0 pfns 2048 - 14848
 On node 1 totalpages: 16384
   DMA zone: 40 pages used for memmap
   DMA zone: 0 pages reserved
   DMA zone: 16344 pages, LIFO batch:1
 mminit::memmap_init Initialising map node 1 zone 0 pfns 0 - 29184

See, the core initialising at least goes over both nodes when
initialising node 1. The page mappings should be ok because this
situation is checked for but it's possible the SLAB allocator is missing
something.

 [boot]0015 Setup Done
 mminit::zonelist general 0:DMA = 0:DMA 1:DMA 
 mminit::zonelist thisnode 0:DMA = 0:DMA 
 mminit::zonelist general 1:DMA = 1:DMA 0:DMA 
 mminit::zonelist thisnode 1:DMA = 1:DMA 
 Built 2 zonelists in Node order, mobility grouping on.  Total pages: 29126
 Policy zone: DMA
 Kernel command line: root=/dev/sda5 quiet sysrq=1 loglevel=8 
 mminit_loglevel=4 
 [boot]0020 XICS Init
 [boot]0021 XICS Done
 pic: no ISA interrupt controller
 PID hash table entries: 4096 (order: 12, 32768 bytes)
 time_init: decrementer frequency = 207.05 MHz
 time_init: processor frequency   = 1656.40 MHz
 clocksource: timebase mult[1351aa5] shift[22] registered
 clockevent: decrementer mult[3501] shift[16] cpu[0]
 Console: colour dummy device 80x25
 console handover: boot [udbg0] - real [hvc0]
 Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
 ... MAX_LOCKDEP_SUBCLASSES:  8
 ... MAX_LOCK_DEPTH:  48
 ... MAX_LOCKDEP_KEYS:8191
 ... CLASSHASH_SIZE:  4096
 ... MAX_LOCKDEP_ENTRIES: 8192
 ... MAX_LOCKDEP_CHAINS:  16384
 ... CHAINHASH_SIZE:  8192
  memory used by lock dependency info: 3839 kB
  per task-struct memory footprint: 1920 bytes
 Dentry cache hash table entries: 262144 (order: 5, 2097152 bytes)
 Inode-cache hash table entries: 131072 (order: 4, 1048576 bytes)
 freeing bootmem node 0
 freeing bootmem node 1
 Memory: 1812096k/1867776k available (9792k kernel code, 57856k reserved, 
 1216k data, 8025k bss, 448k init)
 Unable to handle kernel paging request for data at address 0xc00070001008

What is meant to be stored at this address 0xc00070001008? Because the
error occurs aftre freeing bootmem memory, I wonder with the interleaving
node if memory is getting inappropriately freed.

 Faulting instruction address: 0xc0119070
 cpu 0x0: Vector: 300 (Data Access) at [c0ac3980]
 pc: c0119070: .kmem_list3_init+0x68/0x8c
 lr: c011906c: .kmem_list3_init+0x64/0x8c
 sp: 

[PATCH] powerpc udbg: fix lost byte during console handover; change LFCR to CRLF

2009-03-09 Thread Andrew Klossner
When the console is on a serial port to be driven by serial8250, a
character can be lost from the end of the first line in the two-line
sequence

serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 42) is a 16550A
console handover: boot [udbg0] - real [ttyS0]

This happens because udbg_puts or udbg_write stuff the last byte of
the line into the Tx FIFO and return, whereupon the serial8250
initialization code immediately empties that FIFO.  The fix: udbg_puts
and udbg_write now wait for the Tx FIFO to clear before returning.
This delays the system by one additional serial frame time for each
line written by udbg, but the effect is not noticeable, a cumulative
17 milliseconds for 200 lines of early printk output at 115200 baud.

Also, the routines in udbg_16550.c now emit CRLF instead of LFCR.
Linux makes a point of emitting CRLF because, when serial output is
captured to a file, LFCR sequences can confuse text editors.  See
http://lkml.org/lkml/2006/2/4/50 for some history.

Signed-off-by: Andrew Klossner and...@cesa.opbu.xerox.com
---
 arch/powerpc/include/asm/udbg.h  |1 +
 arch/powerpc/kernel/udbg.c   |7 
 arch/powerpc/kernel/udbg_16550.c |   60 +++--
 3 files changed, 58 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/include/asm/udbg.h b/arch/powerpc/include/asm/udbg.h
index 6418cee..cd21e5e 100644
--- a/arch/powerpc/include/asm/udbg.h
+++ b/arch/powerpc/include/asm/udbg.h
@@ -15,6 +15,7 @@
 #include linux/init.h
 
 extern void (*udbg_putc)(char c);
+extern void (*udbg_flush)(void);
 extern int (*udbg_getc)(void);
 extern int (*udbg_getc_poll)(void);
 
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c
index 7d6c9bb..fc9af47 100644
--- a/arch/powerpc/kernel/udbg.c
+++ b/arch/powerpc/kernel/udbg.c
@@ -18,6 +18,7 @@
 #include asm/udbg.h
 
 void (*udbg_putc)(char c);
+void (*udbg_flush)(void);
 int (*udbg_getc)(void);
 int (*udbg_getc_poll)(void);
 
@@ -76,6 +77,9 @@ void udbg_puts(const char *s)
while ((c = *s++) != '\0')
udbg_putc(c);
}
+
+   if (udbg_flush)
+   udbg_flush();
}
 #if 0
else {
@@ -98,6 +102,9 @@ int udbg_write(const char *s, int n)
}
}
 
+   if (udbg_flush)
+   udbg_flush();
+
return n - remain;
 }
 
diff --git a/arch/powerpc/kernel/udbg_16550.c b/arch/powerpc/kernel/udbg_16550.c
index 7b7da8c..0362a89 100644
--- a/arch/powerpc/kernel/udbg_16550.c
+++ b/arch/powerpc/kernel/udbg_16550.c
@@ -48,14 +48,21 @@ struct NS16550 {
 
 static struct NS16550 __iomem *udbg_comport;
 
-static void udbg_550_putc(char c)
+static void udbg_550_flush(void)
 {
if (udbg_comport) {
while ((in_8(udbg_comport-lsr)  LSR_THRE) == 0)
/* wait for idle */;
-   out_8(udbg_comport-thr, c);
+   }
+}
+
+static void udbg_550_putc(char c)
+{
+   if (udbg_comport) {
if (c == '\n')
udbg_550_putc('\r');
+   udbg_550_flush();
+   out_8(udbg_comport-thr, c);
}
 }
 
@@ -108,6 +115,7 @@ void udbg_init_uart(void __iomem *comport, unsigned int 
speed,
/* Clear  enable FIFOs */
out_8(udbg_comport-fcr ,0x07);
udbg_putc = udbg_550_putc;
+   udbg_flush = udbg_550_flush;
udbg_getc = udbg_550_getc;
udbg_getc_poll = udbg_550_getc_poll;
}
@@ -149,14 +157,21 @@ unsigned int udbg_probe_uart_speed(void __iomem *comport, 
unsigned int clock)
 }
 
 #ifdef CONFIG_PPC_MAPLE
-void udbg_maple_real_putc(char c)
+void udbg_maple_real_flush(void)
 {
if (udbg_comport) {
while ((real_readb(udbg_comport-lsr)  LSR_THRE) == 0)
/* wait for idle */;
-   real_writeb(c, udbg_comport-thr); eieio();
+   }
+}
+
+void udbg_maple_real_putc(char c)
+{
+   if (udbg_comport) {
if (c == '\n')
udbg_maple_real_putc('\r');
+   udbg_maple_real_flush();
+   real_writeb(c, udbg_comport-thr); eieio();
}
 }
 
@@ -165,20 +180,28 @@ void __init udbg_init_maple_realmode(void)
udbg_comport = (struct NS16550 __iomem *)0xf40003f8;
 
udbg_putc = udbg_maple_real_putc;
+   udbg_flush = udbg_maple_real_flush;
udbg_getc = NULL;
udbg_getc_poll = NULL;
 }
 #endif /* CONFIG_PPC_MAPLE */
 
 #ifdef CONFIG_PPC_PASEMI
-void udbg_pas_real_putc(char c)
+void udbg_pas_real_flush(void)
 {
if (udbg_comport) {
while ((real_205_readb(udbg_comport-lsr)  LSR_THRE) == 0)
/* wait for idle */;
-   real_205_writeb(c, udbg_comport-thr); eieio();
+   }
+}
+
+void udbg_pas_real_putc(char c)
+{
+   if (udbg_comport) {
if (c == '\n')

Re: [rtc-linux] [PATCH 7/7] powerpc/ps3: Add rtc-ps3

2009-03-09 Thread Geoff Levand
Hi,

On 03/09/2009 07:12 AM, Alessandro Zummo wrote:
 On Mon,  9 Mar 2009 14:26:23 +0100
 Geert Uytterhoeven geert.uytterhoe...@sonycom.com wrote:
 +
 +MODULE_AUTHOR(Sony Corporation);
 
  real name, if possible and a contact address
  here . Just in case I need someone to bother :)

Please look at the MAINTAINERS file, that will give
the contact for PS3.  It is much easier to maintain
a single place for the contact than many spread
throughout the kernel sources.

-Geoff

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [rtc-linux] Re: [PATCH 7/7] powerpc/ps3: Add rtc-ps3

2009-03-09 Thread Alessandro Zummo
On Mon, 9 Mar 2009 11:04:17 -0700
Geoff Levand geoffrey.lev...@am.sony.com wrote:

 
 Hi,
 
 On 03/09/2009 07:12 AM, Alessandro Zummo wrote:
  On Mon,  9 Mar 2009 14:26:23 +0100
  Geert Uytterhoeven geert.uytterhoe...@sonycom.com wrote:
  +
  +MODULE_AUTHOR(Sony Corporation);
  
   real name, if possible and a contact address
   here . Just in case I need someone to bother :)
 
 Please look at the MAINTAINERS file, that will give
 the contact for PS3.  It is much easier to maintain
 a single place for the contact than many spread
 throughout the kernel sources.

 Having it in MODULE_AUTHOR allow my scripts to automatically
 send an email when appropriate.

 MAINTAINERS lists the files with an arbitrary
 driver title so that the search must be made by an human and there's
 no field that links a person to a specific .c .

 so every time I want to address someone I need to check MODULE_AUTHOR,
 the git log and the MAINTAINERS file.

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH 7/7] powerpc/ps3: Add rtc-ps3

2009-03-09 Thread Geoff Levand
On 03/09/2009 06:26 AM, Geert Uytterhoeven wrote:
 Create a real RTC driver for PS3, and unhook the deprecated
 ppc_md.[gs]et_rtc_time.

  8 files changed, 132 insertions(+), 18 deletions(-)

Sorry, I hadn't been following the discussion closely, but
could you explain why we are going from a generic framework
where we hook in our platform specific part to a totally
independent driver that has such an increase in code size.

Why couldn't you fix the generic part so that udev could
load it automatically?

I much prefer to have this code in the platform support
code as it was.  It is much more effort (a pain) to maintain
a separate driver were I have to cater to a subsystem's
maintainer, and with this rtc it seems everyone who was
using the generic PPC driver will need to do the same.

-Geoff

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [rtc-linux] Re: [PATCH 7/7] powerpc/ps3: Add rtc-ps3

2009-03-09 Thread Geoff Levand
Hi,

On 03/09/2009 11:43 AM, Alessandro Zummo wrote:
 Geoff Levand geoffrey.lev...@am.sony.com wrote:
 On 03/09/2009 07:12 AM, Alessandro Zummo wrote:
  On Mon,  9 Mar 2009 14:26:23 +0100
  Geert Uytterhoeven geert.uytterhoe...@sonycom.com wrote:
  +
  +MODULE_AUTHOR(Sony Corporation);
  
   real name, if possible and a contact address
   here . Just in case I need someone to bother :)
 
 Please look at the MAINTAINERS file, that will give
 the contact for PS3.  It is much easier to maintain
 a single place for the contact than many spread
 throughout the kernel sources.
 
  Having it in MODULE_AUTHOR allow my scripts to automatically
  send an email when appropriate.
 
  MAINTAINERS lists the files with an arbitrary
  driver title so that the search must be made by an human and there's
  no field that links a person to a specific .c .
 
  so every time I want to address someone I need to check MODULE_AUTHOR,
  the git log and the MAINTAINERS file.

I see.  It seems what you want is MODULE_MAINTAINER, as author is
the author, who after some time, may not be the maintainer any more.

There was some work by Joe Perches to list the files a maintainer is
responsible for into the MAINTAINERS file.  I think that would give
you what you want, a way to automatically get the maintainer of a
file.

Joe, could you let us know the status of that work?

-Geoff

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [rtc-linux] Re: [PATCH 7/7] powerpc/ps3: Add rtc-ps3

2009-03-09 Thread Joe Perches
On Mon, 2009-03-09 at 12:06 -0700, Geoff Levand wrote:
 There was some work by Joe Perches to list the files a maintainer is
 responsible for into the MAINTAINERS file.  I think that would give
 you what you want, a way to automatically get the maintainer of a
 file.
 
 Joe, could you let us know the status of that work?

I think it works fine, and is an acceptable
approach to finding a maintainer for either a
patch or a specific file.

The changes I've posted are probably not suitable
for merging by anyone other than Linus as
MAINTAINERS is the most heavily modified file
in the kernel tree.

I've submitted it several times after merging it
with the latest kernel without response from Linus.

I'd merge and submit it again if it could be accepted.

If someone would propose a mechanism that would
improve the possibility to get it merged, I'd
also appreciate that.

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] powerpc 4xx: DDR0_14[REDUC] decoded incorrectly

2009-03-09 Thread Mikhail Zolotaryov


However, 1 is decoded as 64 bit (8 byte), 0 - as 32 bit (4 byte) bus  
by the kernel code. My understanding is this is not correct - patch  
attached.


You are missing the Signed-off-by tag that is needed.


I'm sorry.

Signed-off-by: Mikhail Zolotaryov le...@lebon.org.ua


Aside from that, I'm curious if you found this just through inspection, or
if you actually had a problem because of it.  Your fix seems correct, yet
I've had no problems with my boards at all.



I'm actually working on custom PowerPC 440EPX board development here and 
have found the problem: without applying changes described, Linux 
detects memory size incorrectly and is unable to start. The rest of 
memory size computation process seems to be correct.


I have checked Sequoia evaluation board with U-Boot 2009.1 and confirm 
that original kernel code reported memory size correctly. So, for my 
understanding, if computation algorithm was wrong but result was correct 
- the problem is source data i.e. initial DDR configuration parameters 
loaded by U-Boot (please don't give a damn that memory size is always 
reported correctly by U-Boot - it's hard-coded constant there). I have 
checked Sequoia board schematics (DES0211_11_SCH_11.pdf, page 5, unit 
U1D) and noted that BankSel#1 is not connected, while bootloader memory 
configuration is (board/amcc/sequoia/sdram.c):

   mtsdram(DDR0_10, 0x0300);
i.e. both Chip Selects used.

If I change this line to:
   mtsdram(DDR0_10, 0x0100);
memory is accessible, patched kernel detects memory size correctly and 
kernel seems to be working well.


Please check my considerations, possibly it may be necessary to request 
additional information from board manufacturer.


___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Does DRI/DRM still work on non-coherent DMA platforms?

2009-03-09 Thread Gerhard Pircher
Hi,

I heard rumors that DRI doesn't work on SAM440EP (onboard Radeon GPU)
boards. I had DRI halfway working on my AmigaOne (Radeon 9250) with an
early release candidate of the 2.6.25 kernel and IIRC this patch here
(manually applied):
http://kerneltrap.org/index.php?q=mailarchive/git-commits-head/2008/3/30/1301044

I just tested DRI again on my A1 (I don't have a SAM board) with
v2.6.29-rc6 and the machine looks up while starting the X server.
Curiously DRI seems to work, if I specify udbg-immortal on the
kernel command line and enable DRM debugging.
Did anyone try out DRI on a non-coherent DMA PPC platform and can
confirm that it still works?

best regards,

Gerhard

-- 
Pt! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: 
http://www.gmx.net/de/go/multimessenger01
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Please pull mpc52xx-next

2009-03-09 Thread Michael Neuling
 Hey Ben,
 
 Here are some more for -next.
 
 The following changes since commit 652e8f8d579d61745094e36b4ff085026a332e73:
   Benjamin Herrenschmidt (1):
 Merge commit 'jwb/next' into next
 
 are available in the git repository at:
 
   git://git.secretlab.ca/git/linux-2.6-mpc52xx next

Grant, 

Can you grab this guy too?

http://patchwork.ozlabs.org/patch/24082/

Mikey

 
 Grant Likely (2):
   powerpc/5200: Add 'simple-bus' to the of_platform probe list.
   powerpc/4xx: update ml507 .dts file to release reference design
 
 Grzegorz Bernacki (2):
   powerpc/5200: Add digsy-mtc support to mpc5200_defconfig
   powerpc/5200: On the digsy-mtc, configure PSC4 and PSC5 as UARTs
 
  arch/powerpc/boot/dts/digsy_mtc.dts  |   12 ++--
  arch/powerpc/boot/dts/virtex440-ml507.dts|  124 +++-
--
  arch/powerpc/configs/mpc5200_defconfig   |   71 +--
  arch/powerpc/platforms/52xx/mpc52xx_common.c |3 +-
  4 files changed, 184 insertions(+), 26 deletions(-)
 
 
 -- 
 Grant Likely, B.Sc., P.Eng.
 Secret Lab Technologies Ltd.
 ___
 Linuxppc-dev mailing list
 Linuxppc-dev@ozlabs.org
 https://ozlabs.org/mailman/listinfo/linuxppc-dev
 
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Does DRI/DRM still work on non-coherent DMA platforms?

2009-03-09 Thread Benjamin Herrenschmidt
On Mon, 2009-03-09 at 22:30 +0100, Gerhard Pircher wrote:
 Hi,
 
 I heard rumors that DRI doesn't work on SAM440EP (onboard Radeon GPU)
 boards. I had DRI halfway working on my AmigaOne (Radeon 9250) with an
 early release candidate of the 2.6.25 kernel and IIRC this patch here
 (manually applied):
 http://kerneltrap.org/index.php?q=mailarchive/git-commits-head/2008/3/30/1301044
 
 I just tested DRI again on my A1 (I don't have a SAM board) with
 v2.6.29-rc6 and the machine looks up while starting the X server.
 Curiously DRI seems to work, if I specify udbg-immortal on the
 kernel command line and enable DRM debugging.
 Did anyone try out DRI on a non-coherent DMA PPC platform and can
 confirm that it still works?

It should work... try using dri-next branch from airlied tree, I had
that working on a Canyonlands after DaveM and I fixed a whole bunch of
issues. Also make sure you use the latest X side driver too.

Cheers,
Ben.


___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Oops with 2.6.29-rc7 on POWER5

2009-03-09 Thread Josh Boyer
I get the following oops on a ppc64 machine using a Fedora rawhide kernel,
which is very close to 2.6.29-rc7.

It's a POWER5, pSeries CHRP IBM,9123-710.

Haven't looked into it just quite yet, but I found it interesting and was
wondering if anyone had seen anything like this or could recreate.

josh

BUG: sleeping function called from invalid context at kernel/mutex.c:207
in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper
[ cut here ]
Badness at kernel/mutex.c:135
NIP: c05fe54c LR: c05fe530 CTR: 0001
REGS: cfffb5b0 TRAP: 0700   Not tainted  (2.6.29-0.215.rc7.fc11.ppc64)
MSR: 80021032 ME,CE,IR,DR  CR: 2882  XER: 000f
TASK = c0f69e90[0] 'swapper' THREAD: c101 CPU: 0
GPR00:  cfffb830 c10106b8 0001 
GPR04: c0f69e90 0070  0002 
GPR08:  c179a3b8 c104cb58 c1086a10 
GPR12: 003c c1058400 c0006f09b4d0 c0006f09b270 
GPR16: c0006f09b408 cfffba60 0001 c0006f09b3c8 
GPR20: 0001 c0006e570129  c0006f09b8c0 
GPR24:  c039d520 c0006f09b248 c0f69e90 
GPR28: c0006f09b8c0 c0006f09b8c0 c0fa15c0 cfffb830 
NIP [c05fe54c] .mutex_lock_nested+0xc0/0x4b0
LR [c05fe530] .mutex_lock_nested+0xa4/0x4b0
Call Trace:
[cfffb830] [c05fe504] .mutex_lock_nested+0x78/0x4b0 (unreliable)
[cfffb950] [c039d520] .echo_char_raw+0x40/0x98
[cfffb9f0] [c039fd68] .n_tty_receive_buf+0xb48/0x1104
[cfffbbb0] [c03a3a08] .flush_to_ldisc+0x160/0x244
[cfffbc80] [c03a3b5c] .tty_flip_buffer_push+0x70/0x9c
[cfffbd10] [c03b9e94] .hvsi_interrupt+0x464/0x590
[cfffbe50] [c0119168] .handle_IRQ_event+0x60/0xdc
[cfffbef0] [c011baf0] .handle_fasteoi_irq+0x108/0x1a8
[cfffbf90] [c002f1c4] .call_handle_irq+0x1c/0x2c
[c1013970] [c000e0ac] .do_IRQ+0x144/0x258
[c1013a30] [c0004d28] hardware_interrupt_entry+0x28/0x2c
--- Exception: 501 at .raw_local_irq_restore+0xa4/0xc0
LR = .cpu_idle+0x13c/0x1e0
[c1013d20] [c0f9af28] mv88e6131_switch_driver+0x8d08/0x275f8 
(unreliable)
[c1013dc0] [c0014d34] .cpu_idle+0x13c/0x1e0
[c1013e60] [c06062b8] .rest_init+0x94/0xb0
[c1013ee0] [c088bd08] .start_kernel+0x4a4/0x4c8
[c1013f90] [c0008408] .start_here_common+0x2c/0xa4
Instruction dump:
78290464 80090014 5409012f 41a20028 4bcb199d 6000 2fa3 419e0018 
e93e8008 8009 2f80 409e0008 0fe0 3800 8b8d01da 980d01da 

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Please pull mpc52xx-next

2009-03-09 Thread Grant Likely
Hey Mikey,

On Mon, Mar 9, 2009 at 5:46 PM, Michael Neuling mi...@neuling.org wrote:
 Grant,

 Can you grab this guy too?

 http://patchwork.ozlabs.org/patch/24082/

Oops, forgot to email you about this one.  I actually wrote another
patch the eliminates the sysfs attributes entirely which also
eliminates the problem.  It will be in my next pull request to Ben
(any day now; just waiting for an ack on another patch).

g.


-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Please pull mpc52xx-next

2009-03-09 Thread Michael Neuling
  Grant,
 
  Can you grab this guy too?
 
  http://patchwork.ozlabs.org/patch/24082/
 
 Oops, forgot to email you about this one.  I actually wrote another
 patch the eliminates the sysfs attributes entirely which also
 eliminates the problem.  It will be in my next pull request to Ben
 (any day now; just waiting for an ack on another patch).

OK, sounds good.

Mikey
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Oops with 2.6.29-rc7 on POWER5

2009-03-09 Thread Benjamin Herrenschmidt
On Mon, 2009-03-09 at 20:05 -0400, Josh Boyer wrote:
 [cfffb830] [c05fe504] .mutex_lock_nested+0x78/0x4b0
 (unreliable)
 [cfffb950] [c039d520] .echo_char_raw+0x40/0x98
 [cfffb9f0] [c039fd68] .n_tty_receive_buf+0xb48/0x1104
 [cfffbbb0] [c03a3a08] .flush_to_ldisc+0x160/0x244
 [cfffbc80] [c03a3b5c] .tty_flip_buffer_push+0x70/0x9c
 [cfffbd10] [c03b9e94] .hvsi_interrupt+0x464/0x590
 [cfffbe50] [c0119168] .handle_IRQ_event+0x60/0xdc
 [cfffbef0] [c011baf0] .handle_fasteoi_irq+0x108/0x1a8
 
Do that patch help ?

Alan, any comment about the races talked about in those comments ? Are
they still something I should worry about ?

hvc: Remove tty-low_latency on pseries backends

The hvcs and hvsi backends both set tty-low_latency to one, along
with more or less scary comments regarding bugs or races that would
happen if not doing so.

However, they also both call tty_flip_buffer_push() in conexts where
it's illegal to do so since some recent tty changes (or at least it
may have been illegal always but it nows blows) when low_latency is
set (ie, hard interrupt or with spinlock held and irqs disabled).

This removes the setting for now to get them back to working condition,
we'll have to address the races described in the comments separately
if they are still an issue (some of this might have been fixed already).

Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
---

Index: linux-work/drivers/char/hvcs.c
===
--- linux-work.orig/drivers/char/hvcs.c 2009-03-10 11:28:03.0 +1100
+++ linux-work/drivers/char/hvcs.c  2009-03-10 11:28:08.0 +1100
@@ -1139,15 +1139,6 @@ static int hvcs_open(struct tty_struct *
hvcsd-tty = tty;
tty-driver_data = hvcsd;
 
-   /*
-* Set this driver to low latency so that we actually have a chance at
-* catching a throttled TTY after we flip_buffer_push.  Otherwise the
-* flush_to_async may not execute until after the kernel_thread has
-* yielded and resumed the next flip_buffer_push resulting in data
-* loss.
-*/
-   tty-low_latency = 1;
-
memset(hvcsd-buffer[0], 0x00, HVCS_BUFF_LEN);
 
/*
Index: linux-work/drivers/char/hvsi.c
===
--- linux-work.orig/drivers/char/hvsi.c 2009-03-10 11:27:19.0 +1100
+++ linux-work/drivers/char/hvsi.c  2009-03-10 11:27:22.0 +1100
@@ -810,7 +810,6 @@ static int hvsi_open(struct tty_struct *
hp = hvsi_ports[line];
 
tty-driver_data = hp;
-   tty-low_latency = 1; /* avoid throttle/tty_flip_buffer_push race */
 
mb();
if (hp-state == HVSI_FSP_DIED)


___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: GPIO and SPI on CPM2 (8260)?

2009-03-09 Thread Daniel Ng
Hi Sergej,

On Fri, Mar 6, 2009 at 9:07 PM, Stepanov, Sergej sergej.stepa...@ids.de wrote:
 gpio - driver functions pretty well for a pin-setup, but 
 uninitialized/unexported pins have undefined states

-did you achieve this using gpiolib.c? If not, then what files and
what kernel are you using? We are trying to get it working for 2.6.27.

 I found no spi-support for 8260-based boards with CPM2/1.

This is unfortunate. I guess this means SPI on these boards is not
used by many engineers...

 P.s. Have you seen cpm2-spi-support in u-boot?

No, sorry- not in u-boot.
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH] efp: Fix efp dependence

2009-03-09 Thread Liu Yu
There is no dependece between efp and math-emu.
But when disalbe math-emu, the efp code cannot be built.
This patch fixes it.

Signed-off-by: Liu Yu yu@freescale.com
---
It would be nice to see this patch go along with 2.6.29

 arch/powerpc/Makefile  |4 ++--
 arch/powerpc/math-emu/Makefile |5 ++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 72d17f5..551fc58 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -147,8 +147,8 @@ core-y  += arch/powerpc/kernel/ 
\
   arch/powerpc/mm/ \
   arch/powerpc/lib/ \
   arch/powerpc/sysdev/ \
-  arch/powerpc/platforms/
-core-$(CONFIG_MATH_EMULATION)  += arch/powerpc/math-emu/
+  arch/powerpc/platforms/ \
+  arch/powerpc/math-emu/
 core-$(CONFIG_XMON)+= arch/powerpc/xmon/
 core-$(CONFIG_KVM) += arch/powerpc/kvm/
 
diff --git a/arch/powerpc/math-emu/Makefile b/arch/powerpc/math-emu/Makefile
index f9e506a..0c16ab9 100644
--- a/arch/powerpc/math-emu/Makefile
+++ b/arch/powerpc/math-emu/Makefile
@@ -1,6 +1,4 @@
 
-obj-y  := math.o fmr.o lfd.o stfd.o
-
 obj-$(CONFIG_MATH_EMULATION)   += fabs.o fadd.o fadds.o fcmpo.o fcmpu.o \
fctiw.o fctiwz.o fdiv.o fdivs.o \
fmadd.o fmadds.o fmsub.o fmsubs.o \
@@ -9,7 +7,8 @@ obj-$(CONFIG_MATH_EMULATION)+= fabs.o fadd.o fadds.o 
fcmpo.o fcmpu.o \
fres.o frsp.o frsqrte.o fsel.o lfs.o \
fsqrt.o fsqrts.o fsub.o fsubs.o \
mcrfs.o mffs.o mtfsb0.o mtfsb1.o \
-   mtfsf.o mtfsfi.o stfiwx.o stfs.o
+   mtfsf.o mtfsfi.o stfiwx.o stfs.o \
+   math.o fmr.o lfd.o stfd.o
 
 obj-$(CONFIG_SPE)  += math_efp.o
 
-- 
1.5.4

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev