Re: TQM5200 + SM501 FB

2009-12-06 Thread Rolf Offermanns
Am 04.12.2009 um 23:04 schrieb Wolfgang Denk:

 Please find attached below a patch which fixes some issues (but we
 don't consider it clean enough for inclusion into mainline yet), and a
 known to be working config file. [Kudos to Anatolij for providing
 this.]
 

Thanks Wolfgang, I will try it on monday. What needs to be done to get this 
into mainline?

Modify the sm501 stuff for fdt and extend the tqm5200.dts file with the sm501 
resources?

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


Re: TQM5200 + SM501 FB

2009-12-06 Thread Wolfgang Denk
Dear Rolf Offermanns,

In message f5b2e7ae-a0c5-4d9b-af8f-3158b94d6...@sysgo.com you wrote:
 
 Thanks Wolfgang, I will try it on monday. What needs to be done to get
 this into mainline?
 
 Modify the sm501 stuff for fdt and extend the tqm5200.dts file with the
 sm501 resources?

Right, especially the OF bindings in the SM501 driver and the device
tree entries are still missing.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
He'd been wrong, there _was_ a light at the end of the tunnel, and it
was a flamethrower. - Terry Pratchett, _Mort_
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[RFC] doc/powerpc: try to explain why the interrupt numbers are off by 16

2009-12-06 Thread Sebastian Andrzej Siewior
Signed-off-by: Sebastian Andrzej Siewior sebast...@breakpoint.cc
---
 Documentation/powerpc/dts-bindings/fsl/mpic.txt |   42 +++
 1 files changed, 42 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/powerpc/dts-bindings/fsl/mpic.txt

diff --git a/Documentation/powerpc/dts-bindings/fsl/mpic.txt 
b/Documentation/powerpc/dts-bindings/fsl/mpic.txt
new file mode 100644
index 000..71e39cf
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/mpic.txt
@@ -0,0 +1,42 @@
+* OpenPIC and its interrupt numbers on Freescale's e500/e600 cores
+
+The OpenPIC specification does not specify which interrupt source has to
+become which interrupt number. This is up to the software implementation
+of the interrupt controller. The only requirement is that every
+interrupt source has to have an unique interrupt number / vector number.
+To accomplish this the current implementation assigns the number zero to
+the first source, the number one to the second source and so on until
+all interrupt sources have their unique number.
+Usually the assigned vector number equals the interrupt number mentioned
+in the documentation for a given core / CPU. This is however not true
+for the e500 cores (MPC85XX CPUs) where the documentation distinguishes
+between internal and external interrupt sources and starts counting at
+zero for both of them.
+
+So what to write for external interrupt source X or internal interrupt
+source Y into the device tree? Here is an example:
+
+The memory map for the interrupt controller in the MPC8544[0] shows,
+that the first interrupt source starts at 0x5_ (PIC Register Address
+Map-Interrupt Source Configuration Registers). This source becomes the
+number zero therefore:
+ External interrupt 0 = interrupt number 0
+ External interrupt 1 = interrupt number 1
+ External interrupt 2 = interrupt number 2
+ ...
+Every interrupt number allocates 0x20 bytes register space. So to get
+its number it is sufficient to shift the lower 16bits to right by five.
+So for the external interrupt 10 we have:
+  0x0140  5 = 10
+
+After the external sources, the internal sources follow. The in core I2C
+controller on the MPC8544 for instance has the internal source number
+27. Oo obtain its interrupt number we take the lower 16bits of its memory
+address (0x5_0560) and shift it right:
+ 0x0560  5 = 43
+
+Therefore the I2C device node for the MPC8544 CPU has to have the
+interrupt number 43 specified in the device tree.
+
+[0] MPC8544E PowerQUICCTM III, Integrated Host Processor Family Reference 
Manual
+MPC8544ERM Rev. 1 10/2007
-- 
1.6.5.3

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


[PATCH 1/2] agp/uninorth: Also handle user memory types in u3_remove_memory().

2009-12-06 Thread Michel Dänzer
From: Michel Dänzer daen...@vmware.com

Also short-circuit empty updates.

Signed-off-by: Michel Dänzer daen...@vmware.com
---
 drivers/char/agp/uninorth-agp.c |   29 ++---
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index 703959e..4e05021 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -151,9 +151,6 @@ static int uninorth_insert_memory(struct agp_memory *mem, 
off_t pg_start,
void *temp;
int mask_type;
 
-   temp = agp_bridge-current_size;
-   num_entries = A_SIZE_32(temp)-num_entries;
-
if (type != mem-type)
return -EINVAL;
 
@@ -163,6 +160,12 @@ static int uninorth_insert_memory(struct agp_memory *mem, 
off_t pg_start,
return -EINVAL;
}
 
+   if (mem-page_count == 0)
+   return 0;
+
+   temp = agp_bridge-current_size;
+   num_entries = A_SIZE_32(temp)-num_entries;
+
if ((pg_start + mem-page_count)  num_entries)
return -EINVAL;
 
@@ -194,9 +197,6 @@ static int u3_insert_memory(struct agp_memory *mem, off_t 
pg_start, int type)
u32 *gp;
int mask_type;
 
-   temp = agp_bridge-current_size;
-   num_entries = A_SIZE_32(temp)-num_entries;
-
if (type != mem-type)
return -EINVAL;
 
@@ -206,6 +206,12 @@ static int u3_insert_memory(struct agp_memory *mem, off_t 
pg_start, int type)
return -EINVAL;
}
 
+   if (mem-page_count == 0)
+   return 0;
+
+   temp = agp_bridge-current_size;
+   num_entries = A_SIZE_32(temp)-num_entries;
+
if ((pg_start + mem-page_count)  num_entries)
return -EINVAL;
 
@@ -234,10 +240,19 @@ int u3_remove_memory(struct agp_memory *mem, off_t 
pg_start, int type)
 {
size_t i;
u32 *gp;
+   int mask_type;
+
+   if (type != mem-type)
+   return -EINVAL;
 
-   if (type != 0 || mem-type != 0)
+   mask_type = agp_bridge-driver-agp_type_to_mask_type(agp_bridge, type);
+   if (mask_type != 0) {
/* We know nothing of memory types */
return -EINVAL;
+   }
+
+   if (mem-page_count == 0)
+   return 0;
 
gp = (u32 *) agp_bridge-gatt_table[pg_start];
for (i = 0; i  mem-page_count; ++i)
-- 
1.6.5.3

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

[PATCH 2/2] agp/uninorth: Unify U3 and pre-U3 insert_memory and remove_memory hooks.

2009-12-06 Thread Michel Dänzer
From: Michel Dänzer daen...@vmware.com

Signed-off-by: Michel Dänzer daen...@vmware.com
---
 drivers/char/agp/uninorth-agp.c |   64 +++
 1 files changed, 11 insertions(+), 53 deletions(-)

diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index 4e05021..d89da4a 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -144,53 +144,7 @@ static int uninorth_configure(void)
return 0;
 }
 
-static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start,
-   int type)
-{
-   int i, j, num_entries;
-   void *temp;
-   int mask_type;
-
-   if (type != mem-type)
-   return -EINVAL;
-
-   mask_type = agp_bridge-driver-agp_type_to_mask_type(agp_bridge, type);
-   if (mask_type != 0) {
-   /* We know nothing of memory types */
-   return -EINVAL;
-   }
-
-   if (mem-page_count == 0)
-   return 0;
-
-   temp = agp_bridge-current_size;
-   num_entries = A_SIZE_32(temp)-num_entries;
-
-   if ((pg_start + mem-page_count)  num_entries)
-   return -EINVAL;
-
-   j = pg_start;
-
-   while (j  (pg_start + mem-page_count)) {
-   if (agp_bridge-gatt_table[j])
-   return -EBUSY;
-   j++;
-   }
-
-   for (i = 0, j = pg_start; i  mem-page_count; i++, j++) {
-   agp_bridge-gatt_table[j] =
-   cpu_to_le32((page_to_phys(mem-pages[i])  
0xF000UL) | 0x1UL);
-   flush_dcache_range((unsigned 
long)__va(page_to_phys(mem-pages[i])),
-  (unsigned 
long)__va(page_to_phys(mem-pages[i]))+0x1000);
-   }
-   (void)in_le32((volatile u32*)agp_bridge-gatt_table[pg_start]);
-   mb();
-
-   uninorth_tlbflush(mem);
-   return 0;
-}
-
-static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
+static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start, int 
type)
 {
int i, num_entries;
void *temp;
@@ -219,14 +173,18 @@ static int u3_insert_memory(struct agp_memory *mem, off_t 
pg_start, int type)
for (i = 0; i  mem-page_count; ++i) {
if (gp[i]) {
dev_info(agp_bridge-dev-dev,
-u3_insert_memory: entry 0x%x occupied (%x)\n,
+uninorth_insert_memory: entry 0x%x occupied 
(%x)\n,
 i, gp[i]);
return -EBUSY;
}
}
 
for (i = 0; i  mem-page_count; i++) {
-   gp[i] = (page_to_phys(mem-pages[i])  PAGE_SHIFT) | 
0x8000UL;
+   if (is_u3)
+   gp[i] = (page_to_phys(mem-pages[i])  PAGE_SHIFT) | 
0x8000UL;
+   else
+   gp[i] = cpu_to_le32((page_to_phys(mem-pages[i])  
0xF000UL) |
+   0x1UL);
flush_dcache_range((unsigned 
long)__va(page_to_phys(mem-pages[i])),
   (unsigned 
long)__va(page_to_phys(mem-pages[i]))+0x1000);
}
@@ -236,7 +194,7 @@ static int u3_insert_memory(struct agp_memory *mem, off_t 
pg_start, int type)
return 0;
 }
 
-int u3_remove_memory(struct agp_memory *mem, off_t pg_start, int type)
+int uninorth_remove_memory(struct agp_memory *mem, off_t pg_start, int type)
 {
size_t i;
u32 *gp;
@@ -551,7 +509,7 @@ const struct agp_bridge_driver uninorth_agp_driver = {
.create_gatt_table  = uninorth_create_gatt_table,
.free_gatt_table= uninorth_free_gatt_table,
.insert_memory  = uninorth_insert_memory,
-   .remove_memory  = agp_generic_remove_memory,
+   .remove_memory  = uninorth_remove_memory,
.alloc_by_type  = agp_generic_alloc_by_type,
.free_by_type   = agp_generic_free_by_type,
.agp_alloc_page = agp_generic_alloc_page,
@@ -577,8 +535,8 @@ const struct agp_bridge_driver u3_agp_driver = {
.agp_enable = uninorth_agp_enable,
.create_gatt_table  = uninorth_create_gatt_table,
.free_gatt_table= uninorth_free_gatt_table,
-   .insert_memory  = u3_insert_memory,
-   .remove_memory  = u3_remove_memory,
+   .insert_memory  = uninorth_insert_memory,
+   .remove_memory  = uninorth_remove_memory,
.alloc_by_type  = agp_generic_alloc_by_type,
.free_by_type   = agp_generic_free_by_type,
.agp_alloc_page = agp_generic_alloc_page,
-- 
1.6.5.3

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

MACE DMA problem on Powermac 7300

2009-12-06 Thread Risto Suominen
Hi, everybody,

I post this in hope that somebody could shed some light on how should
the DMA work in conjunction with the MACE ethernet controller. I find
difficult to understand why it does not work in my case:

What happens? First two bytes of a received frame are not what they
should be in more than 50% of frames. This can be avoided by receiving
the frame on a word boundary, but with the usual skb_reserve(..., 2)
(to make the IP header land on word boundary), it won't work.

So, I can make the driver work by receiving at 0 offset, and then
moving the data 2 bytes up, before handing it over to upper layers.

This used to work with a 2.4.27 kernel, obviously the Grand Central
DBDMA controller can receive on non-word boundaries. Now I have
2.6.15.7.

Any ideas, what could cause this kind of behaviour (and regression)?

Best regards,
Risto Suominen
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: using different format for hugetlbfs

2009-12-06 Thread Benjamin Herrenschmidt

 
 Even than, does that preclude the format I suggested?  I'm assuming  
 that pgd_t/pud_t/pmd_t are always a double word so the low order 4- 
 bits should be 0 (on 64-bit), so using the lsb as the flag between  
 hugetlb and normal pointer should still work.

Might do, depends if David has enough bits ...  David ?

Cheers,
Ben.


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


Re: ZILOG serial port broken in 2.6.32

2009-12-06 Thread Benjamin Herrenschmidt
On Sun, 2009-12-06 at 01:01 -0600, Rob Landley wrote:
 Trying again with a few likely-looking cc's from the MAINTAINERS file:
 
 Summary: 
 
 The PMACZILOG serial driver last worked in 2.6.28.  It was broken by commit 
 f751928e0ddf54ea4fe5546f35e99efc5b5d9938 by Alan Cox making bits of the tty 
 layer dynamically allocated.  The PMACZILOG driver wasn't properly converted, 
 it works with interrupts disabled (for boot messages), but as soon as 
 interrupts are enabled (PID 1 spawns) the next write to the serial console 
 panics the kernel.

Ah looks like I missed that... I'll dig. Thanks for the report.

Cheers,
Ben.


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


[PATCH 1/4] powerpc: Reduce 64bit vmlinux by making acenic and cramfs modules

2009-12-06 Thread Anton Blanchard

Machines with acenic adapters are rare these days, so we may as well make it
a module. Cramfs is also very rarely used so we can make it a module.

Together this saves 143kB on a 64bit compile:

   textdata bss dec hex filename
8247176 1729404 1221988 11198568 aae068 vmlinux~
8134997 1727588 1188836 11051421 a8a19d vmlinux

Signed-off-by: Anton Blanchard an...@samba.org
---

Index: linux.trees.git/arch/powerpc/configs/g5_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/g5_defconfig  2009-11-25 
12:47:15.0 +1100
+++ linux.trees.git/arch/powerpc/configs/g5_defconfig   2009-11-25 
12:47:41.0 +1100
@@ -757,7 +757,7 @@ CONFIG_SUNGEM=y
 # CONFIG_B44 is not set
 # CONFIG_ATL2 is not set
 CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=y
+CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
 # CONFIG_DL2K is not set
 CONFIG_E1000=y
Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig   2009-11-25 
12:47:15.0 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig2009-11-25 
12:47:41.0 +1100
@@ -980,7 +980,7 @@ CONFIG_E100=y
 # CONFIG_SC92031 is not set
 # CONFIG_ATL2 is not set
 CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=y
+CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
 # CONFIG_DL2K is not set
 CONFIG_E1000=y
@@ -1863,7 +1863,7 @@ CONFIG_HFSPLUS_FS=m
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
-CONFIG_CRAMFS=y
+CONFIG_CRAMFS=m
 # CONFIG_VXFS_FS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_OMFS_FS is not set
Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig 2009-11-25 
12:47:15.0 +1100
+++ linux.trees.git/arch/powerpc/configs/pseries_defconfig  2009-11-25 
12:47:41.0 +1100
@@ -796,7 +796,7 @@ CONFIG_E100=y
 # CONFIG_NET_POCKET is not set
 # CONFIG_ATL2 is not set
 CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=y
+CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
 # CONFIG_DL2K is not set
 CONFIG_E1000=y
@@ -1494,7 +1494,7 @@ CONFIG_CONFIGFS_FS=m
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
-CONFIG_CRAMFS=y
+CONFIG_CRAMFS=m
 # CONFIG_VXFS_FS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_OMFS_FS is not set
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH 3/4] powerpc: Reduce differences between pseries and ppc64 defconfigs

2009-12-06 Thread Anton Blanchard

The pseries and ppc64 defconfigs have drifted apart over the years. Reduce
some of the differences while still keeping the idea that the ppc64 defconfig
is cross platform but enables fewer features than pseries, eg:

- NR_CPUS is lower
- No NUMA support

Also enable a number of common adapters as modules.

Signed-off-by: Anton Blanchard an...@samba.org
---

Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig   2009-11-26 
12:38:30.0 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig2009-11-26 
15:33:30.0 +1100
@@ -137,8 +137,9 @@ CONFIG_TRACEPOINTS=y
 CONFIG_MARKERS=y
 CONFIG_OPROFILE=y
 CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
+CONFIG_KPROBES=y
 CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_KRETPROBES=y
 CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
@@ -191,6 +192,7 @@ CONFIG_SCANLOG=m
 CONFIG_LPARCFG=y
 CONFIG_PPC_SMLPAR=y
 CONFIG_CMM=y
+CONFIG_DTL=y
 CONFIG_PPC_ISERIES=y
 
 #
@@ -358,7 +360,7 @@ CONFIG_ARCH_MEMORY_PROBE=y
 CONFIG_PPC_HAS_HASH_64K=y
 # CONFIG_PPC_64K_PAGES is not set
 CONFIG_FORCE_MAX_ZONEORDER=13
-# CONFIG_SCHED_SMT is not set
+CONFIG_SCHED_SMT=y
 CONFIG_PROC_DEVICETREE=y
 # CONFIG_CMDLINE_BOOL is not set
 CONFIG_EXTRA_TARGETS=
@@ -790,12 +792,12 @@ CONFIG_SCSI_IPR=y
 CONFIG_SCSI_IPR_TRACE=y
 CONFIG_SCSI_IPR_DUMP=y
 # CONFIG_SCSI_QLOGIC_1280 is not set
-# CONFIG_SCSI_QLA_FC is not set
+CONFIG_SCSI_QLA_FC=m
 # CONFIG_SCSI_QLA_ISCSI is not set
 CONFIG_SCSI_LPFC=m
 # CONFIG_SCSI_DC395x is not set
 # CONFIG_SCSI_DC390T is not set
-CONFIG_SCSI_DEBUG=m
+# CONFIG_SCSI_DEBUG is not set
 # CONFIG_SCSI_SRP is not set
 # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
 # CONFIG_SCSI_DH is not set
@@ -867,9 +869,8 @@ CONFIG_MD_AUTODETECT=y
 CONFIG_MD_LINEAR=y
 CONFIG_MD_RAID0=y
 CONFIG_MD_RAID1=y
-CONFIG_MD_RAID10=y
-CONFIG_MD_RAID456=y
-CONFIG_MD_RAID5_RESHAPE=y
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
 CONFIG_MD_MULTIPATH=m
 CONFIG_MD_FAULTY=m
 CONFIG_BLK_DEV_DM=y
@@ -984,7 +985,7 @@ CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
 # CONFIG_DL2K is not set
 CONFIG_E1000=y
-# CONFIG_E1000E is not set
+CONFIG_E1000E=m
 # CONFIG_IP1000 is not set
 # CONFIG_IGB is not set
 # CONFIG_NS83820 is not set
@@ -1006,19 +1007,19 @@ CONFIG_GELIC_WIRELESS=y
 # CONFIG_ATL1E is not set
 # CONFIG_JME is not set
 CONFIG_NETDEV_1=y
-# CONFIG_CHELSIO_T1 is not set
-# CONFIG_CHELSIO_T3 is not set
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T3=m
 CONFIG_EHEA=m
 # CONFIG_ENIC is not set
-# CONFIG_IXGBE is not set
+CONFIG_IXGBE=m
 CONFIG_IXGB=m
-# CONFIG_S2IO is not set
-# CONFIG_MYRI10GE is not set
-# CONFIG_NETXEN_NIC is not set
+CONFIG_S2IO=m
+CONFIG_MYRI10GE=m
+CONFIG_NETXEN_NIC=m
 # CONFIG_NIU is not set
 CONFIG_PASEMI_MAC=y
-# CONFIG_MLX4_EN is not set
-# CONFIG_MLX4_CORE is not set
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
 # CONFIG_TEHUTI is not set
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
@@ -1169,7 +1170,7 @@ CONFIG_SERIAL_TXX9=y
 CONFIG_HAS_TXX9_SERIAL=y
 CONFIG_SERIAL_TXX9_NR_UARTS=6
 CONFIG_SERIAL_TXX9_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
+CONFIG_SERIAL_JSM=m
 # CONFIG_SERIAL_OF_PLATFORM is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
@@ -1586,7 +1587,7 @@ CONFIG_USB_DEVICEFS=y
 CONFIG_USB_DEVICE_CLASS=y
 # CONFIG_USB_DYNAMIC_MINORS is not set
 # CONFIG_USB_OTG is not set
-# CONFIG_USB_MON is not set
+CONFIG_USB_MON=m
 # CONFIG_USB_WUSB is not set
 # CONFIG_USB_WUSB_CBAF is not set
 
@@ -1686,21 +1687,22 @@ CONFIG_USB_APPLEDISPLAY=m
 # CONFIG_NEW_LEDS is not set
 # CONFIG_ACCESSIBILITY is not set
 CONFIG_INFINIBAND=m
-# CONFIG_INFINIBAND_USER_MAD is not set
-# CONFIG_INFINIBAND_USER_ACCESS is not set
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MEM=y
 CONFIG_INFINIBAND_ADDR_TRANS=y
 CONFIG_INFINIBAND_MTHCA=m
 CONFIG_INFINIBAND_MTHCA_DEBUG=y
-# CONFIG_INFINIBAND_IPATH is not set
+CONFIG_INFINIBAND_IPATH=m
 CONFIG_INFINIBAND_EHCA=m
 # CONFIG_INFINIBAND_AMSO1100 is not set
-# CONFIG_MLX4_INFINIBAND is not set
+CONFIG_MLX4_INFINIBAND=m
 # CONFIG_INFINIBAND_NES is not set
 CONFIG_INFINIBAND_IPOIB=m
-# CONFIG_INFINIBAND_IPOIB_CM is not set
+CONFIG_INFINIBAND_IPOIB_CM=y
 CONFIG_INFINIBAND_IPOIB_DEBUG=y
 # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
-# CONFIG_INFINIBAND_SRP is not set
+CONFIG_INFINIBAND_SRP=m
 CONFIG_INFINIBAND_ISER=m
 CONFIG_EDAC=y
 
@@ -1798,7 +1800,7 @@ CONFIG_REISERFS_FS=y
 CONFIG_REISERFS_FS_XATTR=y
 CONFIG_REISERFS_FS_POSIX_ACL=y
 CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=y
+CONFIG_JFS_FS=m
 CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
@@ -1811,14 +1813,22 @@ CONFIG_XFS_POSIX_ACL=y
 # CONFIG_XFS_RT is not set
 # CONFIG_XFS_DEBUG is not set
 # CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_DEBUG_MASKLOG=y

[PATCH 2/4] powerpc: Disable token ring in powerpc defconfigs

2009-12-06 Thread Anton Blanchard

Token what? Lets save some space in our powerpc kernels and remove token
ring support.

Signed-off-by: Anton Blanchard an...@samba.org
---

Index: linux.trees.git/arch/powerpc/configs/g5_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/g5_defconfig  2009-11-26 
12:35:15.0 +1100
+++ linux.trees.git/arch/powerpc/configs/g5_defconfig   2009-11-26 
12:35:59.0 +1100
@@ -794,8 +794,8 @@ CONFIG_NETDEV_1=y
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 
Index: linux.trees.git/arch/powerpc/configs/iseries_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/iseries_defconfig 2009-11-26 
12:35:15.0 +1100
+++ linux.trees.git/arch/powerpc/configs/iseries_defconfig  2009-11-26 
12:35:55.0 +1100
@@ -714,8 +714,8 @@ CONFIG_NETDEV_1=y
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 
Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig   2009-11-26 
12:35:15.0 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig2009-11-26 
12:35:51.0 +1100
@@ -1023,8 +1023,8 @@ CONFIG_PASEMI_MAC=y
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 
Index: linux.trees.git/arch/powerpc/configs/ppc64e_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/ppc64e_defconfig  2009-11-26 
12:35:15.0 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64e_defconfig   2009-11-26 
12:35:41.0 +1100
@@ -1008,8 +1008,8 @@ CONFIG_IXGB=m
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
 # CONFIG_BE2NET is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 CONFIG_WLAN=y
Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig 2009-11-26 
12:35:15.0 +1100
+++ linux.trees.git/arch/powerpc/configs/pseries_defconfig  2009-11-26 
12:36:04.0 +1100
@@ -834,8 +834,8 @@ CONFIG_S2IO=m
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH 4/4] powerpc: Set HZ=100 on pseries and ppc64 defconfigs

2009-12-06 Thread Anton Blanchard

Now we have high res timers there is less of a reason for a high HZ value.
Furthermore I think there a few reasons we should reduce HZ to 100:

- Timer interrupt overhead. While this overhead is small, there are
  applications that are very sensitive to jitter (eg some HPC apps).

- Issues with the timer wheel code. When coming out of NO_HZ idle we work our
  way through the timer code one tick at a time.  If we have been idle a long
  time, this adds up - I sometimes see milliseconds of time spent in that
  loop.

  Long term we should fix the timer wheel algorithm, but for now if we reduce
  HZ then we reduce the amount of work the timer code has to do when coming
  out of idle.

Signed-off-by: Anton Blanchard an...@samba.org
---

Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig   2009-11-27 
11:58:09.0 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig2009-11-27 
11:58:43.0 +1100
@@ -306,11 +306,11 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
 # CONFIG_HZ_300 is not set
 # CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
+CONFIG_HZ=100
 CONFIG_SCHED_HRTICK=y
 CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig
===
--- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig 2009-11-27 
11:58:11.0 +1100
+++ linux.trees.git/arch/powerpc/configs/pseries_defconfig  2009-11-27 
11:58:31.0 +1100
@@ -231,11 +231,11 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
 # CONFIG_HZ_300 is not set
 # CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
+CONFIG_HZ=100
 CONFIG_SCHED_HRTICK=y
 CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH] offb: add support for framebuffer handoff to offb.

2009-12-06 Thread Dave Airlie
From: Dave Airlie airl...@ppcg5.localdomain

This allows offb to be used for initial framebuffer,
and a kms driver to take over later in the boot sequence.

Signed-off-by: Dave Airlie airl...@redhat.com
---
 drivers/video/offb.c |   15 ++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/drivers/video/offb.c b/drivers/video/offb.c
index 4d8c54c..b043ac8 100644
--- a/drivers/video/offb.c
+++ b/drivers/video/offb.c
@@ -282,8 +282,17 @@ static int offb_set_par(struct fb_info *info)
return 0;
 }
 
+static void offb_destroy(struct fb_info *info)
+{
+   if (info-screen_base)
+   iounmap(info-screen_base);
+   release_mem_region(info-aperture_base, info-aperture_size);
+   framebuffer_release(info);
+}
+
 static struct fb_ops offb_ops = {
.owner  = THIS_MODULE,
+   .fb_destroy = offb_destroy,
.fb_setcolreg   = offb_setcolreg,
.fb_set_par = offb_set_par,
.fb_blank   = offb_blank,
@@ -482,10 +491,14 @@ static void __init offb_init_fb(const char *name, const 
char *full_name,
var-sync = 0;
var-vmode = FB_VMODE_NONINTERLACED;
 
+   /* set offb aperture size for generic probing */
+   info-aperture_base = address;
+   info-aperture_size = fix-smem_len;
+
info-fbops = offb_ops;
info-screen_base = ioremap(address, fix-smem_len);
info-pseudo_palette = (void *) (info + 1);
-   info-flags = FBINFO_DEFAULT | foreign_endian;
+   info-flags = FBINFO_DEFAULT | FBINFO_MISC_FIRMWARE | foreign_endian;
 
fb_alloc_cmap(info-cmap, 256, 0);
 
-- 
1.6.5.rc2

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


dts file for MPC8343EA

2009-12-06 Thread ajijuni
Hi 

We have an MPC8343EA based custom board. 

I am not able to get Linux up and running in this. No serial output to debug 
further. 
 U-boot shows correct 'bdinfo'  'clocks' output. 
inux hangs at machine_probe.

I doubt the DTS file in Linux. anyone has DTS file for MPC8343?? 

u-boot version - 1.3.2
linux-2.6.27
The board base files are drived from MPC8349Imtx-GP since we have the reference 
board in which we tested the linux image.

My current DTS file 
/dts-v1/; 

/ { 
model = MPC8343; 
compatible = MPC8349EMDS, MPC834xMDS, MPC83xxMDS; 
linux,phandle = 0x100; 
#size-cells = 0x1; 
#address-cells = 0x1; 

aliases { 
ethernet0 = enet0; 
ethernet1 = enet1; 
serial0 = serial0; 
serial1 = serial1; 
pci0 = pci0; 
pci1 = pci1; 
}; 
 cpus { 
linux,phandle = 0x200; 
#cpus = 0x1; 
#address-cells = 1; 
#size-cells = 0; 

 PowerPC,834...@0 { 
device_type = cpu; 
reg = 0x0; 
d-cache-line-size = 20; 
i-cache-line-size = 20; 
d-cache-size = 8000; 
i-cache-size = 8000; 
timebase-frequency = 0;   // from bootloader 
bus-frequency = 0;// from bootloader 
clock-frequency = 0;  // from bootloader 
32-bit; 
}; 
}; 


memory { 
device_type = memory; 
reg = 0x 0x1000;  // 256MB at 0 
}; 

b...@e240 { 
device_type = board-control; 
reg = 0xe240 0x8000; 
}; 
soc8...@e000 { 
bus-frequency = 0x1; 
reg = 0xe000 0x200; 
ranges = 0x0 0xe000 0x10; 
device_type = soc; 
#interrupt-cells = 0x2; 
#size-cells = 0x1; 
#address-cells = 0x1; 

w...@200 { 
device_type = watchdog; 
compatible = mpc83xx_wdt; 
reg = 0x200 0x100; 
}; 

i...@3000 { 
#address-cells = 1; 
#size-cells = 0; 
cell-index = 0; 
compatible = fsl-i2c; 
reg = 0x3000 0x100; 
interrupts = 14 0x8; 
interrupt-parent = ipic; 
dfsrr; 

r...@68 { 
compatible = dallas,ds1374; 
reg = 0x68; 
}; 
}; 

i...@3100 { 
#address-cells = 1; 
#size-cells = 0; 
cell-index = 1; 
compatible = fsl-i2c; 
reg = 0x3100 0x100; 
interrupts = 15 0x8; 
interrupt-parent = ipic; 
dfsrr; 
}; 

s...@7000 { 
cell-index = 0; 
compatible = fsl,spi; 
reg = 0x7000 0x1000; 
interrupts = 16 0x8; 
interrupt-parent = ipic; 
mode = cpu; 
}; 

d...@82a8 { 
#address-cells = 1; 
#size-cells = 1; 
compatible = fsl,mpc8349-dma, fsl,elo-dma; 
reg = 0x82a8 4; 
ranges = 0 0x8100 0x1a8; 
interrupt-parent = ipic; 
interrupts = 71 8; 
cell-index = 0; 
dma-chan...@0 { 
compatible = fsl,mpc8349-dma-channel, 
fsl,elo-dma-channel; 
reg = 0 0x80; 
interrupt-parent = ipic; 
interrupts = 71 8; 
}; 
dma-chan...@80 { 
compatible = fsl,mpc8349-dma-channel, 
fsl,elo-dma-channel; 
reg = 0x80 0x80; 
interrupt-parent = ipic; 
interrupts = 71 8; 
}; 
dma-chan...@100 { 
compatible = fsl,mpc8349-dma-channel, 
fsl,elo-dma-channel; 
reg = 0x100 0x80; 
interrupt-parent = ipic; 
interrupts = 71 8;