Re: [PATCH v2 1/2] powerpc/8xx: Fix NR_IRQ bugs and refactor 8xx interrupt controller

2012-04-24 Thread Joakim Tjernlund
Benjamin Herrenschmidt b...@kernel.crashing.org wrote on 2012/04/24 05:13:15:

 On Mon, 2012-04-23 at 16:30 -0600, Grant Likely wrote:
  The mpc8xx driver uses a reference to NR_IRQS that is buggy.  It uses
  NR_IRQs for the array size of the ppc_cached_irq_mask bitmap, but
  NR_IRQs could be smaller than the number of hardware irqs that
  ppc_cached_irq_mask tracks.

 Joakim, any chance you can test this ASAP ? :-)

Sorry, but no.  We have not moved our 8xx boards to 3.x as it in maintenance
and takes too much space.

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


Re: [PATCH v2 1/2] powerpc/8xx: Fix NR_IRQ bugs and refactor 8xx interrupt controller

2012-04-24 Thread Benjamin Herrenschmidt
On Tue, 2012-04-24 at 09:41 +0200, Joakim Tjernlund wrote:
 Benjamin Herrenschmidt b...@kernel.crashing.org wrote on 2012/04/24 
 05:13:15:
 
  On Mon, 2012-04-23 at 16:30 -0600, Grant Likely wrote:
   The mpc8xx driver uses a reference to NR_IRQS that is buggy.  It uses
   NR_IRQs for the array size of the ppc_cached_irq_mask bitmap, but
   NR_IRQs could be smaller than the number of hardware irqs that
   ppc_cached_irq_mask tracks.
 
  Joakim, any chance you can test this ASAP ? :-)
 
 Sorry, but no.  We have not moved our 8xx boards to 3.x as it in maintenance
 and takes too much space.

Ah ok... Anybody else on the list who still has some 8xx gear ?

Cheers,
Ben.


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


Re: PowerPC radeon KMS - is it possible?

2012-04-24 Thread Michel Dänzer
On Mon, 2012-04-23 at 18:45 +0200, Gerhard Pircher wrote:
  Von: Michel Dänzer mic...@daenzer.net
  On Fre, 2012-04-20 at 18:14 +0200, Gerhard Pircher wrote: 
Von: Michel Dänzer mic...@daenzer.net
On Fre, 2012-04-20 at 13:15 +0200, Gerhard Pircher wrote: 
 
 What I didn't understand yet is how this uncacheable memory is
 allocated (well, I never took the time to look at this again). The
 functions in ttm_page_alloc.c seem to allocate normal cacheable
 memory and try to set the page flags with set_pages_array_uc(),
 which is more or less a no-op on powerpc. ttm_page_alloc_dma.c on
 the other side is only used with SWIOTLB!?
[...] 
 Could it be that the memory is finally mapped uncacheable by
radeon_bo_kmap()/
 ttm_bo_kmap()/..some other TTM functions../vmap()?

Yeah, AFAICT, basically ttm_io_prot() defines the mapping
attributes, and vmap() is used to enforce them for kernel mappings.
   Okay, that sounds like the approach used by arch/powerpc/mm/dma-
   noncoherent.c in my (green) ears. What about the PCIGART mode?
   Is the driver free to use cached memory in this mode?
  
  Yes, it assumes PCI(e) GART to be CPU cache coherent.
 Okay. I guess it should be possible to modify it so that it makes use
 of uncacheable memory - just for testing!?

Sure. Just set man-available_caching and man-default_caching as in the
AGP case in radeon_init_mem_type(). 

 PCIGART was working somehow on my platform up to the ~2.6.39 kernel,
 i.e. I could login to GNOME and open a program until the machine
 locked-up. :-)

But it's worse with newer kernels?


 BTW: I see that the uninorth driver defines needs_scratch_page. What
 is this actually good for?

It causes the code in drivers/char/agp/backend.c to allocate a scratch
page (bridge-scratch_page) which the driver can use for unused GART
entries. 


-- 
Earthling Michel Dänzer   |   http://www.amd.com
Libre software enthusiast |  Debian, X and DRI developer
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: PowerPC radeon KMS - is it possible?

2012-04-24 Thread Gerhard Pircher

 Original-Nachricht 
 Datum: Tue, 24 Apr 2012 16:15:00 +0200
 Von: Michel Dänzer mic...@daenzer.net
 An: Gerhard Pircher gerhard_pirc...@gmx.net
 CC: linuxppc-dev@lists.ozlabs.org
 Betreff: Re: PowerPC radeon KMS - is it possible?

 On Mon, 2012-04-23 at 18:45 +0200, Gerhard Pircher wrote:
   Von: Michel Dänzer mic...@daenzer.net
   On Fre, 2012-04-20 at 18:14 +0200, Gerhard Pircher wrote: 
 Von: Michel Dänzer mic...@daenzer.net
 [...] 
  Could it be that the memory is finally mapped uncacheable by
  radeon_bo_kmap()/ttm_bo_kmap()/..some other TTM
  functions../vmap()?
 
 Yeah, AFAICT, basically ttm_io_prot() defines the mapping
 attributes, and vmap() is used to enforce them for kernel
 mappings.
Okay, that sounds like the approach used by arch/powerpc/mm/dma-
noncoherent.c in my (green) ears. What about the PCIGART mode?
Is the driver free to use cached memory in this mode?
   
   Yes, it assumes PCI(e) GART to be CPU cache coherent.
  Okay. I guess it should be possible to modify it so that it makes use
  of uncacheable memory - just for testing!?
 
 Sure. Just set man-available_caching and man-default_caching as in the
 AGP case in radeon_init_mem_type(). 
Thanks for the info! I'll play around with it.

  PCIGART was working somehow on my platform up to the ~2.6.39 kernel,
  i.e. I could login to GNOME and open a program until the machine
  locked-up. :-)
 
 But it's worse with newer kernels?
Yes, it's worse. But that's surely the fault of the buggy northbridge.
I believe the bridge doesn't like some of the code that the driver uses
to avoid ordering issues. But I still have to find out where the lockups
exactly happen.

  BTW: I see that the uninorth driver defines needs_scratch_page. What
  is this actually good for?
 
 It causes the code in drivers/char/agp/backend.c to allocate a scratch
 page (bridge-scratch_page) which the driver can use for unused GART
 entries.
Okay, so it would make sense to set this for my platform's AGP bridge,
which doesn't seem to support a GATT entry valid bit.

Gerhard
-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [EDAC ABI v13 24/25] edac: change the mem allocation scheme to make Documentation/kobject.txt happy

2012-04-24 Thread Joe Perches
On Thu, 2012-04-19 at 10:14 -0300, Mauro Carvalho Chehab wrote:
 diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
[]
 @@ -296,7 +296,7 @@ struct mem_ctl_info *edac_mc_alloc(unsigned edac_index,
   /*
* Alocate and fill the csrow/channels structs
*/
 - mci-csrows = kzalloc(sizeof(*mci-csrows) * tot_csrows, GFP_KERNEL);
 + mci-csrows = kcalloc(sizeof(*mci-csrows), tot_csrows, GFP_KERNEL);

trivia:  the first 2 args to kcalloc should be swapped.

static inline void *kcalloc(size_t n, size_t size, gfp_t flags)

kcalloc(tot_csrows, sizeof(*mci-csrows), GFP_KERNEL);
[]
 @@ -307,7 +307,7 @@ struct mem_ctl_info *edac_mc_alloc(unsigned edac_index,
   csr-csrow_idx = row;
   csr-mci = mci;
   csr-nr_channels = tot_cschannels;
 - csr-channels = kzalloc(sizeof(*csr-channels) * tot_cschannels,
 + csr-channels = kcalloc(sizeof(*csr-channels), tot_cschannels,

and here.

[]
 @@ -323,7 +323,7 @@ struct mem_ctl_info *edac_mc_alloc(unsigned edac_index,
   /*
* Allocate and fill the dimm structs
*/
 - mci-dimms  = kzalloc(sizeof(*mci-dimms) * tot_dimms, GFP_KERNEL);
 + mci-dimms  = kcalloc(sizeof(*mci-dimms), tot_dimms, GFP_KERNEL);

and here too.


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


[PATCH EDACv16 1/2] edac: Change internal representation to work with layers

2012-04-24 Thread Mauro Carvalho Chehab
Change the EDAC internal representation to work with non-csrow
based memory controllers.

There are lots of those memory controllers nowadays, and more
are coming. So, the EDAC internal representation needs to be
changed, in order to work with those memory controllers, while
preserving backward compatibility with the old ones.

The edac core were written with the idea that memory controllers
are able to directly access csrows, and that the channels are
used inside a csrows select.

This is not true for FB-DIMM and RAMBUS memory controllers.

Also, some recent advanced memory controllers don't present a per-csrows
view. Instead, they view memories as DIMM's, instead of ranks, accessed
via csrow/channel.

So, change the allocation and error report routines to allow
them to work with all types of architectures.

This will allow the removal of several hacks on FB-DIMM and RAMBUS
memory controllers on the next patches.

Also, several tests were done on different platforms using different
x86 drivers.

TODO: a multi-rank DIMM's are currently represented by multiple DIMM
entries at struct dimm_info. That means that changing a label for one
rank won't change the same label for the other ranks at the same dimm.
Such bug is there since the beginning of the EDAC, so it is not a big
deal. However, on several drivers, it is possible to fix this issue, but
it should be a per-driver fix, as the csrow = DIMM arrangement may not
be equal for all. So, don't try to fix it here yet.

PS.: I tried to make this patch as short as possible, preceding it with
several other patches that simplified the logic here. Yet, as the
internal API changes, all drivers need changes. The changes are
generally bigger on the drivers for FB-DIMM's.

FIXME: while the FB-DIMMs are not converted to use the new
design, uncorrected errors will show just one channel. In
the past, all changes were on a big patch with about 150K.
As it needed to be split, in order to be accepted by the
EDAC ML at vger, we've opted to have this small drawback.
As an advantage, it is now easier to review the patch series.

Cc: Aristeu Rozanski aroza...@redhat.com
Cc: Doug Thompson nor...@yahoo.com
Cc: Borislav Petkov borislav.pet...@amd.com
Cc: Mark Gross mark.gr...@intel.com
Cc: Jason Uhlenkott juhle...@akamai.com
Cc: Tim Small t...@buttersideup.com
Cc: Ranganathan Desikan r...@jetztechnologies.com
Cc: Arvind R. arvin...@gmail.com
Cc: Olof Johansson o...@lixom.net
Cc: Egor Martovetsky e...@pasemi.com
Cc: Chris Metcalf cmetc...@tilera.com
Cc: Michal Marek mma...@suse.cz
Cc: Jiri Kosina jkos...@suse.cz
Cc: Joe Perches j...@perches.com
Cc: Dmitry Eremin-Solenikov dbarysh...@gmail.com
Cc: Benjamin Herrenschmidt b...@kernel.crashing.org
Cc: Hitoshi Mitake h.mit...@gmail.com
Cc: Andrew Morton a...@linux-foundation.org
Cc: Niklas Söderlund niklas.soderl...@ericsson.com
Cc: Shaohui Xie shaohui@freescale.com
Cc: Josh Boyer jwbo...@gmail.com
Cc: linuxppc-dev@lists.ozlabs.org
Signed-off-by: Mauro Carvalho Chehab mche...@redhat.com
---

v16: Only context changes

 drivers/edac/edac_core.h |   92 ++-
 drivers/edac/edac_mc.c   |  682 --
 include/linux/edac.h |   40 ++-
 3 files changed, 526 insertions(+), 288 deletions(-)

diff --git a/drivers/edac/edac_core.h b/drivers/edac/edac_core.h
index e48ab31..7201bb1 100644
--- a/drivers/edac/edac_core.h
+++ b/drivers/edac/edac_core.h
@@ -447,8 +447,13 @@ static inline void pci_write_bits32(struct pci_dev *pdev, 
int offset,
 
 #endif /* CONFIG_PCI */
 
-extern struct mem_ctl_info *edac_mc_alloc(unsigned sz_pvt, unsigned nr_csrows,
- unsigned nr_chans, int edac_index);
+struct mem_ctl_info *edac_mc_alloc(unsigned sz_pvt, unsigned nr_csrows,
+  unsigned nr_chans, int edac_index);
+struct mem_ctl_info *new_edac_mc_alloc(unsigned edac_index,
+  unsigned n_layers,
+  struct edac_mc_layer *layers,
+  bool rev_order,
+  unsigned sz_pvt);
 extern int edac_mc_add_mc(struct mem_ctl_info *mci);
 extern void edac_mc_free(struct mem_ctl_info *mci);
 extern struct mem_ctl_info *edac_mc_find(int idx);
@@ -467,24 +472,80 @@ extern int edac_mc_find_csrow_by_page(struct mem_ctl_info 
*mci,
  * reporting logic and function interface - reduces conditional
  * statement clutter and extra function arguments.
  */
-extern void edac_mc_handle_ce(struct mem_ctl_info *mci,
+
+void edac_mc_handle_error(const enum hw_event_mc_err_type type,
+ struct mem_ctl_info *mci,
+ const unsigned long page_frame_number,
+ const unsigned long offset_in_page,
+ const unsigned long syndrome,
+ const int layer0,
+ const int layer1,
+ const int 

Re: [PATCH v2 1/2] powerpc/8xx: Fix NR_IRQ bugs and refactor 8xx interrupt controller

2012-04-24 Thread Scott Wood
On 04/24/2012 06:22 AM, Benjamin Herrenschmidt wrote:
 On Tue, 2012-04-24 at 09:41 +0200, Joakim Tjernlund wrote:
 Benjamin Herrenschmidt b...@kernel.crashing.org wrote on 2012/04/24 
 05:13:15:

 On Mon, 2012-04-23 at 16:30 -0600, Grant Likely wrote:
 The mpc8xx driver uses a reference to NR_IRQS that is buggy.  It uses
 NR_IRQs for the array size of the ppc_cached_irq_mask bitmap, but
 NR_IRQs could be smaller than the number of hardware irqs that
 ppc_cached_irq_mask tracks.

 Joakim, any chance you can test this ASAP ? :-)

 Sorry, but no.  We have not moved our 8xx boards to 3.x as it in maintenance
 and takes too much space.
 
 Ah ok... Anybody else on the list who still has some 8xx gear ?

Boots OK on ep88xc.

-Scott

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


Regression in 32-bit ppc kernel

2012-04-24 Thread Larry Finger

Hi,

Somewhere between v3.2 and v3.3, the kernel in my Powerbook G4 started issuing 
the following traceback on bootup:


[   40.264006] irq 23: nobody cared (try booting with the irqpoll option)
[   40.264031] Call Trace:
[   40.264070] [dfff3f00] [c000984c] show_stack+0x7c/0x194 (unreliable)
[   40.264102] [dfff3f40] [c00a6840] __report_bad_irq+0x44/0xf4
[   40.264119] [dfff3f60] [c00a6adc] note_interrupt+0x1ec/0x2ac
[   40.264135] [dfff3f80] [c00a48a8] handle_irq_event_percpu+0x250/0x2b8
[   40.264152] [dfff3fd0] [c00a4944] handle_irq_event+0x34/0x54
[   40.264169] [dfff3fe0] [c00a7514] handle_fasteoi_irq+0xb4/0x124
[   40.264192] [dfff3ff0] [c000f5bc] call_handle_irq+0x18/0x28
[   40.264208] [dec85ce0] [c000719c] do_IRQ+0x114/0x1cc
[   40.264226] [dec85d10] [c0015868] ret_from_except+0x0/0x1c
[   40.264254] --- Exception: 501 at find_vma+0x10/0x80
[   40.264259] LR = do_page_fault+0x26c/0x6ac
[   40.264272] [dec85dd0] [c03f0128] do_page_fault+0x25c/0x6ac (unreliable)
[   40.264289] [dec85f40] [c00155e4] handle_page_fault+0xc/0x80
[   40.264327] --- Exception: 301 at 0x4800a174

The problem still exists in v3.4-rc3. I am currently doing a bisection of this 
problem, but it will take a long time to complete.


Note: IRQ 23 is not active in v3.2.

Thanks,

Larry

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


Re: Regression in 32-bit ppc kernel

2012-04-24 Thread Benjamin Herrenschmidt
On Tue, 2012-04-24 at 17:58 -0500, Larry Finger wrote:
 Hi,
 
 Somewhere between v3.2 and v3.3, the kernel in my Powerbook G4 started 
 issuing 
 the following traceback on bootup:

Does it continue working afterward or not at all ?

Are you using the old IDE driver or the newer libata based pata_macio ?

Cheers,
Ben.

 [   40.264006] irq 23: nobody cared (try booting with the irqpoll option)
 [   40.264031] Call Trace:
 [   40.264070] [dfff3f00] [c000984c] show_stack+0x7c/0x194 (unreliable)
 [   40.264102] [dfff3f40] [c00a6840] __report_bad_irq+0x44/0xf4
 [   40.264119] [dfff3f60] [c00a6adc] note_interrupt+0x1ec/0x2ac
 [   40.264135] [dfff3f80] [c00a48a8] handle_irq_event_percpu+0x250/0x2b8
 [   40.264152] [dfff3fd0] [c00a4944] handle_irq_event+0x34/0x54
 [   40.264169] [dfff3fe0] [c00a7514] handle_fasteoi_irq+0xb4/0x124
 [   40.264192] [dfff3ff0] [c000f5bc] call_handle_irq+0x18/0x28
 [   40.264208] [dec85ce0] [c000719c] do_IRQ+0x114/0x1cc
 [   40.264226] [dec85d10] [c0015868] ret_from_except+0x0/0x1c
 [   40.264254] --- Exception: 501 at find_vma+0x10/0x80
 [   40.264259] LR = do_page_fault+0x26c/0x6ac
 [   40.264272] [dec85dd0] [c03f0128] do_page_fault+0x25c/0x6ac (unreliable)
 [   40.264289] [dec85f40] [c00155e4] handle_page_fault+0xc/0x80
 [   40.264327] --- Exception: 301 at 0x4800a174
 
 The problem still exists in v3.4-rc3. I am currently doing a bisection of 
 this 
 problem, but it will take a long time to complete.
 
 Note: IRQ 23 is not active in v3.2.
 
 Thanks,
 
 Larry


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


3.4-rc3 compile failed on IBM Power6

2012-04-24 Thread Ryan Wang
# gcc --version
gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

platform: pSeries
model: IBM,9117-MMA
machine: CHRP IBM,9117-MMA



# make O=../build/3.4-rc4/
  GEN /usr/src/kernels/build/3.4-rc4/Makefile
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
  Using /usr/src/kernels/linux as source for kernel
  GEN /usr/src/kernels/build/3.4-rc4/Makefile
  WRAParch/powerpc/include/generated/asm/rwsem.h
  CHK include/linux/version.h
  UPD include/linux/version.h
  CHK include/generated/utsrelease.h
  UPD include/generated/utsrelease.h
  CC  kernel/bounds.s
  GEN include/generated/bounds.h
  CC  arch/powerpc/kernel/asm-offsets.s
  GEN include/generated/asm-offsets.h
  CALL/usr/src/kernels/linux/scripts/checksyscalls.sh
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/data.o
  SHIPPED scripts/dtc/dtc-lexer.lex.c
  SHIPPED scripts/dtc/dtc-parser.tab.h
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  SHIPPED scripts/dtc/dtc-parser.tab.c
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/util.o
  HOSTLD  scripts/dtc/dtc
  HOSTCC  scripts/genksyms/genksyms.o
  SHIPPED scripts/genksyms/lex.lex.c
  SHIPPED scripts/genksyms/keywords.hash.c
  SHIPPED scripts/genksyms/parse.tab.h
  HOSTCC  scripts/genksyms/lex.lex.o
  SHIPPED scripts/genksyms/parse.tab.c
  HOSTCC  scripts/genksyms/parse.tab.o
  HOSTLD  scripts/genksyms/genksyms
  CC  scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/modpost.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/selinux/genheaders/genheaders
  HOSTCC  scripts/selinux/mdp/mdp
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/pnmtologo
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/bin2c
  CC  init/main.o
  CHK include/generated/compile.h
  UPD include/generated/compile.h
  CC  init/version.o
  CC  init/do_mounts.o
  CC  init/do_mounts_rd.o
  CC  init/do_mounts_initrd.o
  CC  init/do_mounts_md.o
  LD  init/mounts.o
  CC  init/initramfs.o
  LD  init/built-in.o
  HOSTCC  usr/gen_init_cpio
  GEN usr/initramfs_data.cpio
  AS  usr/initramfs_data.o
  LD  usr/built-in.o
  CC  arch/powerpc/kernel/cputable.o
  CC  arch/powerpc/kernel/ptrace.o
  CC  arch/powerpc/kernel/syscalls.o
  CC  arch/powerpc/kernel/irq.o
  CC  arch/powerpc/kernel/align.o
  CC  arch/powerpc/kernel/signal_32.o
  CC  arch/powerpc/kernel/pmc.o
  CC  arch/powerpc/kernel/vdso.o
  CC  arch/powerpc/kernel/init_task.o
  CC  arch/powerpc/kernel/process.o
  CPP arch/powerpc/kernel/systbl_chk.i
  CALL/usr/src/kernels/linux/arch/powerpc/kernel/systbl_chk.sh
  AS  arch/powerpc/kernel/systbl.o
  CC  arch/powerpc/kernel/idle.o
  CC  arch/powerpc/kernel/signal.o
  CC  arch/powerpc/kernel/sysfs.o
  CC  arch/powerpc/kernel/cacheinfo.o
  CC  arch/powerpc/kernel/time.o
  CC  arch/powerpc/kernel/prom.o
  CC  arch/powerpc/kernel/traps.o
  CC  arch/powerpc/kernel/setup-common.o
  CC  arch/powerpc/kernel/udbg.o
  AS  arch/powerpc/kernel/misc.o
  CC  arch/powerpc/kernel/io.o
  CC  arch/powerpc/kernel/dma.o
  AS  arch/powerpc/kernel/misc_64.o
  LDS arch/powerpc/kernel/vdso32/vdso32.lds
  VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o
  VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o
  VDSO32A arch/powerpc/kernel/vdso32/datapage.o
  VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o
  VDSO32A arch/powerpc/kernel/vdso32/note.o
  VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg
  OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so
  AS  arch/powerpc/kernel/vdso32/vdso32_wrapper.o
  LD  arch/powerpc/kernel/vdso32/built-in.o
  LDS arch/powerpc/kernel/vdso64/vdso64.lds
  VDSO64A arch/powerpc/kernel/vdso64/sigtramp.o
  VDSO64A arch/powerpc/kernel/vdso64/gettimeofday.o
  VDSO64A arch/powerpc/kernel/vdso64/datapage.o
  VDSO64A arch/powerpc/kernel/vdso64/cacheflush.o
  VDSO64A arch/powerpc/kernel/vdso64/note.o
  VDSO64L arch/powerpc/kernel/vdso64/vdso64.so.dbg
  OBJCOPY arch/powerpc/kernel/vdso64/vdso64.so
  AS  arch/powerpc/kernel/vdso64/vdso64_wrapper.o
  LD  arch/powerpc/kernel/vdso64/built-in.o
  CC  arch/powerpc/kernel/setup_64.o
  CC  arch/powerpc/kernel/sys_ppc32.o
  CC  arch/powerpc/kernel/signal_64.o
  CC  arch/powerpc/kernel/ptrace32.o
  CC  arch/powerpc/kernel/paca.o
  CC  arch/powerpc/kernel/nvram_64.o
  CC  arch/powerpc/kernel/firmware.o
  CC  

Re: 3.4-rc3 compile failed on IBM Power6

2012-04-24 Thread Nishanth Aravamudan
Hi Ryan,

Thanks for the report!

On 25.04.2012 [08:22:19 +0800], Ryan Wang wrote:
 # gcc --version
 gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
 Copyright (C) 2010 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 platform: pSeries
 model: IBM,9117-MMA
 machine: CHRP IBM,9117-MMA

snip

   CC  arch/powerpc/platforms/pseries/iommu.o
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
 ?query_ddw?:
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: error:
 implicit declaration of function ?pci_dev_to_eeh_dev?
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: warning:
 assignment makes pointer from integer without a cast
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:824: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:825: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:826: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:827: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
 ?create_ddw?:
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:852: warning:
 assignment makes pointer from integer without a cast
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:853: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:854: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:855: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:856: error:
 dereferencing pointer to incomplete type
 make[3]: *** [arch/powerpc/platforms/pseries/iommu.o] Error 1
 make[2]: *** [arch/powerpc/platforms/pseries] Error 2
 make[1]: *** [arch/powerpc/platforms] Error 2
 make: *** [sub-make] Error 2

Do you have CONFIG_EEH set in your .config? I'm guessing not, and that
causes pci.h to not define pci_dev_to_eeh_dev().

Gavin, I think this is broken by your
39baadbf36cee3ede5fdb8a34006d9109e5e2570. Probably need a wrapper for
pci_dev_to_eeh_dev() when !CONFIG_EEH?

Actually, looking at it more, eeh_dev, which is protected by CONFIG_EEH
in arch/powerpc/include/asm/eeh.h won't be defined in such situations
and is the type of the return from pci_dev_to_eeh_dev(). So that's going
to be broken completely if !CONFIG_EEH as above.

So maybe the callers should be EEH-unaware (as they were before) and the
callee becomes of the EEH variety (at compile-time) if CONFIG_EEH is
set?

Thanks,
Nish

-- 
Nishanth Aravamudan n...@us.ibm.com
IBM Linux Technology Center

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


[PATCH] drivers/ps3: Fix checkpatch warnings in ps3av.c

2012-04-24 Thread Geoff Levand

From: Valentin Ilie valentin.i...@gmail.com

Signed-off-by: Valentin Ilie valentin.i...@gmail.com
Cc: Geert Uytterhoeven ge...@linux-m68k.org
Signed-off-by: Geoff Levand ge...@infradead.org
---

Hi Geert,

Here's what I queued for v3.5, let me know if you have any concerns.

-Geoff

 drivers/ps3/ps3av.c |   24 +---
 1 file changed, 9 insertions(+), 15 deletions(-)

diff --git a/drivers/ps3/ps3av.c b/drivers/ps3/ps3av.c
index a409fa0..93d0a8b 100644
--- a/drivers/ps3/ps3av.c
+++ b/drivers/ps3/ps3av.c
@@ -338,7 +338,7 @@ int ps3av_do_pkt(u32 cid, u16 send_len, size_t usr_buf_size,
mutex_unlock(ps3av-mutex);
return 0;
 
-  err:
+err:
mutex_unlock(ps3av-mutex);
printk(KERN_ERR %s: failed cid:%x res:%d\n, __func__, cid, res);
return res;
@@ -477,7 +477,6 @@ int ps3av_set_audio_mode(u32 ch, u32 fs, u32 word_bits, u32 
format, u32 source)
 
return 0;
 }
-
 EXPORT_SYMBOL_GPL(ps3av_set_audio_mode);
 
 static int ps3av_set_videomode(void)
@@ -501,7 +500,7 @@ static void ps3av_set_videomode_packet(u32 id)
 
video_mode = video_mode_table[id  PS3AV_MODE_MASK];
 
-   avb_param.num_of_video_pkt = PS3AV_AVB_NUM_VIDEO;   /* num of head 
*/
+   avb_param.num_of_video_pkt = PS3AV_AVB_NUM_VIDEO; /* num of head */
avb_param.num_of_audio_pkt = 0;
avb_param.num_of_av_video_pkt = ps3av-av_hw_conf.num_of_hdmi +
ps3av-av_hw_conf.num_of_avmulti;
@@ -521,7 +520,7 @@ static void ps3av_set_videomode_packet(u32 id)
 #ifndef PS3AV_HDMI_YUV
if (ps3av-av_port[i] == PS3AV_CMD_AVPORT_HDMI_0 ||
ps3av-av_port[i] == PS3AV_CMD_AVPORT_HDMI_1)
-   av_video_cs = RGB8; /* use RGB for HDMI */
+   av_video_cs = RGB8; /* use RGB for HDMI */
 #endif
len += ps3av_cmd_set_av_video_cs(avb_param.buf[len],
 ps3av-av_port[i],
@@ -590,8 +589,8 @@ static void ps3avd(struct work_struct *work)
 #define SHIFT_VESA 8
 
 static const struct {
-   unsigned mask : 19;
-   unsigned id :  4;
+   unsigned mask:19;
+   unsigned id:4;
 } ps3av_preferred_modes[] = {
{ PS3AV_RESBIT_WUXGA   SHIFT_VESA, PS3AV_MODE_WUXGA   },
{ PS3AV_RESBIT_1920x1080P  SHIFT_60,   PS3AV_MODE_1080P60 },
@@ -667,7 +666,8 @@ static enum ps3av_mode_num ps3av_hdmi_get_id(struct 
ps3av_info_monitor *info)
return id;
 }
 
-static void ps3av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info 
*monitor_info)
+static void ps3av_monitor_info_dump(
+   const struct ps3av_pkt_av_get_monitor_info *monitor_info)
 {
const struct ps3av_info_monitor *info = monitor_info-info;
const struct ps3av_info_audio *audio = info-audio;
@@ -717,8 +717,8 @@ static void ps3av_monitor_info_dump(const struct 
ps3av_pkt_av_get_monitor_info *
 
/* audio block */
for (i = 0; i  info-num_of_audio_block; i++) {
-   pr_debug(audio[%d] type: %02x max_ch: %02x fs: %02x sbit: 
-%02x\n,
+   pr_debug(
+   audio[%d] type: %02x max_ch: %02x fs: %02x sbit: 
%02x\n,
 i, audio-type, audio-max_num_of_ch, audio-fs,
 audio-sbit);
audio++;
@@ -870,21 +870,18 @@ int ps3av_set_video_mode(int id)
 
return 0;
 }
-
 EXPORT_SYMBOL_GPL(ps3av_set_video_mode);
 
 int ps3av_get_auto_mode(void)
 {
return ps3av_auto_videomode(ps3av-av_hw_conf);
 }
-
 EXPORT_SYMBOL_GPL(ps3av_get_auto_mode);
 
 int ps3av_get_mode(void)
 {
return ps3av ? ps3av-ps3av_mode : 0;
 }
-
 EXPORT_SYMBOL_GPL(ps3av_get_mode);
 
 /* get resolution by video_mode */
@@ -902,7 +899,6 @@ int ps3av_video_mode2res(u32 id, u32 *xres, u32 *yres)
*yres = video_mode_table[id].y;
return 0;
 }
-
 EXPORT_SYMBOL_GPL(ps3av_video_mode2res);
 
 /* mute */
@@ -911,7 +907,6 @@ int ps3av_video_mute(int mute)
return ps3av_set_av_video_mute(mute ? PS3AV_CMD_MUTE_ON
: PS3AV_CMD_MUTE_OFF);
 }
-
 EXPORT_SYMBOL_GPL(ps3av_video_mute);
 
 /* mute analog output only */
@@ -935,7 +930,6 @@ int ps3av_audio_mute(int mute)
return ps3av_set_audio_mute(mute ? PS3AV_CMD_MUTE_ON
 : PS3AV_CMD_MUTE_OFF);
 }
-
 EXPORT_SYMBOL_GPL(ps3av_audio_mute);
 
 static int __devinit ps3av_probe(struct ps3_system_bus_device *dev)
-- 
1.7.9.5



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


Re: 3.4-rc3 compile failed on IBM Power6

2012-04-24 Thread Gavin Shan
Hi Nish,

 # gcc --version
 gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
 Copyright (C) 2010 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 platform: pSeries
 model: IBM,9117-MMA
 machine: CHRP IBM,9117-MMA

snip

   CC  arch/powerpc/platforms/pseries/iommu.o
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
 ?query_ddw?:
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: error:
 implicit declaration of function ?pci_dev_to_eeh_dev?
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: warning:
 assignment makes pointer from integer without a cast
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:824: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:825: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:826: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:827: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
 ?create_ddw?:
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:852: warning:
 assignment makes pointer from integer without a cast
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:853: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:854: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:855: error:
 dereferencing pointer to incomplete type
 /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:856: error:
 dereferencing pointer to incomplete type
 make[3]: *** [arch/powerpc/platforms/pseries/iommu.o] Error 1
 make[2]: *** [arch/powerpc/platforms/pseries] Error 2
 make[1]: *** [arch/powerpc/platforms] Error 2
 make: *** [sub-make] Error 2

Do you have CONFIG_EEH set in your .config? I'm guessing not, and that
causes pci.h to not define pci_dev_to_eeh_dev().

Gavin, I think this is broken by your
39baadbf36cee3ede5fdb8a34006d9109e5e2570. Probably need a wrapper for
pci_dev_to_eeh_dev() when !CONFIG_EEH?

Actually, looking at it more, eeh_dev, which is protected by CONFIG_EEH
in arch/powerpc/include/asm/eeh.h won't be defined in such situations
and is the type of the return from pci_dev_to_eeh_dev(). So that's going
to be broken completely if !CONFIG_EEH as above.


I think it's because iommu.c depends on CONFIG_EEH heavily anyway with
or without the fix 39baadbf36cee3ede5fdb8a34006d9109e5e2570. That means
without CONFIG_EEH, iommu.c won't work properly even it can be compiled
successfully :-)

The story behind is that the PCI device is expected to be PE sensitive.
While setting up its DMA (through IOMMU), the number of the PE to which
the PCI device belongs to is passed to the related RTAS call. So the
PE number of the PCI device is expected if possible. As I knew, the PE
number of the PCI device is -ONLY- figured out by EEH.
 
So maybe the callers should be EEH-unaware (as they were before) and the
callee becomes of the EEH variety (at compile-time) if CONFIG_EEH is
set?


In order to make iommu.c irrelative to CONFIG_EEH, we might figure out
the PE number of the PCI device during PCI probe time. Here're some
rough thoughts about the rework.

- Introduce additional field int pe_num to struct dev_archdata.
  That would be traced like: (struct pci_dev)-(struct device dev)
  -(struct dev_archdata archdata).
- During the PCI probe time (maybe pci_fixup_early), we can figure
  out the PE number.

Then we can retrieve the PE number of PCI device from int pe_num and needn't
care CONFIG_EEH has been turned on or off. I'm not sure Ben has any comments
on the idea? 

Thanks,
Gavin
 

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


Re: Regression in 32-bit ppc kernel

2012-04-24 Thread Larry Finger

On 04/24/2012 06:53 PM, Benjamin Herrenschmidt wrote:

On Tue, 2012-04-24 at 17:58 -0500, Larry Finger wrote:

Hi,

Somewhere between v3.2 and v3.3, the kernel in my Powerbook G4 started issuing
the following traceback on bootup:


Does it continue working afterward or not at all ?

Are you using the old IDE driver or the newer libata based pata_macio ?


Yes, it finishes the boot, and appears to work correctly. If a device is 
missing, I do not know what it is.


I think I am using the old IDE driver.

Larry


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


Re: 3.4-rc3 compile failed on IBM Power6

2012-04-24 Thread Benjamin Herrenschmidt
On Wed, 2012-04-25 at 09:50 +0800, Gavin Shan wrote:
 In order to make iommu.c irrelative to CONFIG_EEH, we might figure out
 the PE number of the PCI device during PCI probe time. Here're some
 rough thoughts about the rework.
 
 - Introduce additional field int pe_num to struct dev_archdata.
   That would be traced like: (struct pci_dev)-(struct device dev)
   -(struct dev_archdata archdata).
 - During the PCI probe time (maybe pci_fixup_early), we can figure
   out the PE number.
 
 Then we can retrieve the PE number of PCI device from int pe_num and needn't
 care CONFIG_EEH has been turned on or off. I'm not sure Ben has any comments
 on the idea? 

Just select EEH from pseries Kconfig, no point in keeping that a user visible 
option.

Cheers,
Ben.


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


Re: Regression in 32-bit ppc kernel

2012-04-24 Thread Benjamin Herrenschmidt
On Tue, 2012-04-24 at 21:37 -0500, Larry Finger wrote:
  Somewhere between v3.2 and v3.3, the kernel in my Powerbook G4
 started issuing
  the following traceback on bootup:
 
  Does it continue working afterward or not at all ?
 
  Are you using the old IDE driver or the newer libata based
 pata_macio ?
 
 Yes, it finishes the boot, and appears to work correctly. If a device
 is 
 missing, I do not know what it is.
 
 I think I am using the old IDE driver.
 
Interesting. Does it make a difference if you switch to pata_macio ?

Cheers,
Ben.


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


[PATCH] ppc/pseries: rivet CONFIG_EEH for pSeries platform

2012-04-24 Thread Gavin Shan
Recently, Ryan Wang tried to compile PPC pSeries platform without
CONFIG_EEH and eventually run into errors. Nishanth Aravamudan
helped to narrow down the root cause. Actually, the pSeries platform
depends on CONFIG_EEH heavily and that won't work properly without
EEH support.

According to Ben's suggestion, the patch make CONFIG_EEH invisible
and keep it as always selected on pSeries platform.

Signed-off-by: Gavin Shan sha...@linux.vnet.ibm.com
---
 arch/powerpc/platforms/pseries/Kconfig |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/Kconfig 
b/arch/powerpc/platforms/pseries/Kconfig
index aadbe4f..178a5f3 100644
--- a/arch/powerpc/platforms/pseries/Kconfig
+++ b/arch/powerpc/platforms/pseries/Kconfig
@@ -30,9 +30,9 @@ config PPC_SPLPAR
  two or more partitions.
 
 config EEH
-   bool PCI Extended Error Handling (EEH) if EXPERT
+   bool
depends on PPC_PSERIES  PCI
-   default y if !EXPERT
+   default y
 
 config PSERIES_MSI
bool
-- 
1.7.5.4

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


Re: [PATCH][2/3][RFC] TDM Framework

2012-04-24 Thread Benjamin Herrenschmidt
On Sat, 2012-03-10 at 18:27 +0530, Poonam Aggrwal wrote:
 From: Sandeep Singh sand...@freescale.com
 
 TDM Framework is an attempt to provide a platform independent layer which
 can offer a standard interface  for TDM access to different client modules.
 Beneath, the framework layer can house different types of TDM drivers to 
 handle
 various TDM devices, the hardware intricacies of the devices being completely
 taken care by TDM drivers.

Neither the changeset comment, the code, not the Documentation file
(which are non-existent, at least in this patch, though mentioned),
define what TDM actually is :-)

Cheers,
Ben.


 This framework layer will allow any type of TDM device to hook with it.
 For example Freescale controller as on MPC8315, UCC based TDM controller, or 
 any other controller.
 
 The main functions of this Framework are:
 - provides interface to TDM clients to access TDM functionalities.
 - provides standard interface for TDM drivers to hook with the framework. 
 - handles various data handling stuff and buffer management.
 
 In future this Framework will be extended to provide Interface for Line 
 control
 devices also. For example SLIC, E1/T1 Framers etc.
 
 Limitations/Future Work
 ---
 1. Presently the framework supports only Single Port channelised mode.
 2. Also the configurability options are limited which will be extended later 
 on.
 3. Only kernel mode TDM clients are supported currently. Support for User mode
 clients will be added later. 
 
 Signed-off-by: Sandeep Singh sand...@freescale.com
 Signed-off-by: Poonam Aggrwal poonam.aggr...@freescale.com
 ---
  A couple of todos' are left in the patch, we are working on it and will be
 addressed in the updated patch set.
  drivers/Kconfig |1 +
  drivers/Makefile|1 +
  drivers/tdm/Kconfig |   25 +
  drivers/tdm/tdm-core.c  | 1146 
 +++
  include/linux/mod_devicetable.h |   11 +
  include/linux/tdm.h |  347 
  6 files changed, 1531 insertions(+), 0 deletions(-)
  create mode 100644 drivers/tdm/Kconfig
  create mode 100644 drivers/tdm/tdm-core.c
  create mode 100644 include/linux/tdm.h
 
 diff --git a/drivers/Kconfig b/drivers/Kconfig
 index ad6c1eb..25f7f5b 100644
 --- a/drivers/Kconfig
 +++ b/drivers/Kconfig
 @@ -130,4 +130,5 @@ source drivers/virt/Kconfig
  
  source drivers/net/dpa/NetCommSw/Kconfig
  
 +source drivers/tdm/Kconfig
  endmenu
 diff --git a/drivers/Makefile b/drivers/Makefile
 index cd546eb..362b5ed 100644
 --- a/drivers/Makefile
 +++ b/drivers/Makefile
 @@ -102,6 +102,7 @@ obj-$(CONFIG_INFINIBAND)  += infiniband/
  obj-$(CONFIG_SGI_SN) += sn/
  obj-y+= firmware/
  obj-$(CONFIG_CRYPTO) += crypto/
 +obj-$(CONFIG_TDM)+= tdm/
  obj-$(CONFIG_SUPERH) += sh/
  obj-$(CONFIG_ARCH_SHMOBILE)  += sh/
  ifndef CONFIG_ARCH_USES_GETTIMEOFFSET
 diff --git a/drivers/tdm/Kconfig b/drivers/tdm/Kconfig
 new file mode 100644
 index 000..8db2b05
 --- /dev/null
 +++ b/drivers/tdm/Kconfig
 @@ -0,0 +1,25 @@
 +#
 +# TDM subsystem configuration
 +#
 +
 +menuconfig TDM
 + tristate TDM support
 + ---help---
 +   More information is contained in the directory 
 file:Documentation/tdm/,
 +   especially in the file called summary there.
 +   If you want TDM support, you should say Y here and also to the
 +   specific driver for your bus adapter(s) below.
 +
 +   This TDM support can also be built as a module.  If so, the module
 +   will be called tdm-core.
 +
 +if TDM
 +
 +config TDM_DEBUG_CORE
 + bool TDM Core debugging messages
 + help
 +   Say Y here if you want the TDM core to produce a bunch of debug
 +   messages to the system log.  Select this if you are having a
 +   problem with TDM support and want to see more of what is going on.
 +
 +endif # TDM
 diff --git a/drivers/tdm/tdm-core.c b/drivers/tdm/tdm-core.c
 new file mode 100644
 index 000..cdda260
 --- /dev/null
 +++ b/drivers/tdm/tdm-core.c
 @@ -0,0 +1,1146 @@
 +/* driver/tdm/tdm-core.c
 + *
 + * Copyright (C) 2012 Freescale Semiconductor, Inc, All rights reserved.
 + *
 + * TDM core is the interface between TDM clients and TDM devices.
 + * It is also intended to serve as an interface for line controld
 + * devices later on.
 + *
 + * Author:Hemant Agrawal hem...@freescale.com
 + *   Rajesh Gumasta rajesh.guma...@freescale.com
 + *
 + * Modified by Sandeep Kr Singh sand...@freescale.com
 + *   Poonam Aggarwal poonam.aggar...@freescale.com
 + * 1. Added framework based initialization of device.
 + * 2. All the init/run time configuration is now done by framework.
 + * 3. Added channel level operations.
 + *
 + * This program is free software; you can redistribute  it and/or modify it
 + * under  the terms of  the GNU General  Public License as published by the
 + * Free Software Foundation;  either version 2 

Re: 3.4-rc3 compile failed on IBM Power6

2012-04-24 Thread Gavin Shan
 In order to make iommu.c irrelative to CONFIG_EEH, we might figure out
 the PE number of the PCI device during PCI probe time. Here're some
 rough thoughts about the rework.
 
 - Introduce additional field int pe_num to struct dev_archdata.
   That would be traced like: (struct pci_dev)-(struct device dev)
   -(struct dev_archdata archdata).
 - During the PCI probe time (maybe pci_fixup_early), we can figure
   out the PE number.
 
 Then we can retrieve the PE number of PCI device from int pe_num and 
 needn't
 care CONFIG_EEH has been turned on or off. I'm not sure Ben has any comments
 on the idea? 

Just select EEH from pseries Kconfig, no point in keeping that a user visible 
option.


Thanks for the suggestion, Ben :-)

I've sent one trivial patch against it.

Cheers,
Ben.



Thanks,
Gavin

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