[PATCH] gianfar: fix coalescing setup in ethtool support

2009-07-29 Thread Li Yang
From: Jiajun Wu b06...@freescale.com

Parameter order for using mk_ic_value(count, time) was reversed,
the patch fixes this.

Signed-off-by: Jiajun Wu b06...@freescale.com
Signed-off-by: Li Yang le...@freescale.com
---
 drivers/net/gianfar_ethtool.c |   10 --
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/net/gianfar_ethtool.c b/drivers/net/gianfar_ethtool.c
index 2a7edfa..3109f4b 100644
--- a/drivers/net/gianfar_ethtool.c
+++ b/drivers/net/gianfar_ethtool.c
@@ -373,9 +373,8 @@ static int gfar_scoalesce(struct net_device *dev, struct 
ethtool_coalesce *cvals
return -EINVAL;
}
 
-   priv-rxic = mk_ic_value(
-   gfar_usecs2ticks(priv, cvals-rx_coalesce_usecs),
-   cvals-rx_max_coalesced_frames);
+   priv-rxic = mk_ic_value(cvals-rx_max_coalesced_frames,
+   gfar_usecs2ticks(priv, cvals-rx_coalesce_usecs));
 
/* Set up tx coalescing */
if ((cvals-tx_coalesce_usecs == 0) ||
@@ -397,9 +396,8 @@ static int gfar_scoalesce(struct net_device *dev, struct 
ethtool_coalesce *cvals
return -EINVAL;
}
 
-   priv-txic = mk_ic_value(
-   gfar_usecs2ticks(priv, cvals-tx_coalesce_usecs),
-   cvals-tx_max_coalesced_frames);
+   priv-txic = mk_ic_value(cvals-tx_max_coalesced_frames,
+   gfar_usecs2ticks(priv, cvals-tx_coalesce_usecs));
 
gfar_write(priv-regs-rxic, 0);
if (priv-rxcoalescing)
-- 
1.5.6.3

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


82xx, mgcoge: updates for 2.6.32

2009-07-29 Thread Heiko Schocher
- add I2C support
- add FCC1 and FCC2 support
- fix bogus gpio numbering in plattformcode

Signed-off-by: Heiko Schocher h...@denx.de
---
- based on git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git
  next branch
- checked with checkpatch.pl:
$ ./scripts/checkpatch.pl 0001-82xx-mgcoge-updates-for-2.6.32.patch
total: 0 errors, 0 warnings, 531 lines checked

0001-82xx-mgcoge-updates-for-2.6.32.patch has no obvious style problems and is 
ready for submission.
$

BTW: Who is PPC82XX Maintainer? I couldn;t find such an entry
 in the MAINTAINERS file ...

 arch/powerpc/boot/dts/mgcoge.dts  |   56 ++
 arch/powerpc/configs/mgcoge_defconfig |  178 +---
 arch/powerpc/platforms/82xx/mgcoge.c  |   69 +++--
 3 files changed, 255 insertions(+), 48 deletions(-)

diff --git a/arch/powerpc/boot/dts/mgcoge.dts b/arch/powerpc/boot/dts/mgcoge.dts
index 633255a..a2efc36 100644
--- a/arch/powerpc/boot/dts/mgcoge.dts
+++ b/arch/powerpc/boot/dts/mgcoge.dts
@@ -162,6 +162,62 @@
fixed-link = 0 0 10 0 0;
};

+   i...@11860 {
+   compatible = fsl,mpc8272-i2c,
+fsl,cpm2-i2c;
+   reg = 0x11860 0x20 0x8afc 0x2;
+   interrupts = 1 8;
+   interrupt-parent = PIC;
+   fsl,cpm-command = 0x2960;
+   #address-cells = 1;
+   #size-cells = 0;
+   };
+
+   m...@10d40 {
+   device_type = mdio;
+   compatible = fsl,cpm2-mdio-bitbang;
+   reg = 0x10d00 0x14;
+   #address-cells = 1;
+   #size-cells = 0;
+   fsl,mdio-pin = 12;
+   fsl,mdc-pin = 13;
+
+   phy0: ethernet-...@0 {
+   reg = 0x0;
+   device_type = ethernet-phy;
+   };
+
+   phy1: ethernet-...@1 {
+   reg = 0x1;
+   device_type = ethernet-phy;
+   };
+   };
+
+   /* FCC1 management to switch */
+   ether...@11300 {
+   device_type = network;
+   compatible = fsl,cpm2-fcc-enet;
+   reg = 0x11300 0x20 0x8400 0x100 0x11390 0x1;
+   local-mac-address = [ 00 01 02 03 04 07 ];
+   interrupts = 32 8;
+   interrupt-parent = PIC;
+   phy-handle = phy0;
+   linux,network-index = 1;
+   fsl,cpm-command = 0x12000300;
+   };
+
+   /* FCC2 to redundant core unit over backplane */
+   ether...@11320 {
+   device_type = network;
+   compatible = fsl,cpm2-fcc-enet;
+   reg = 0x11320 0x20 0x8500 0x100 0x113b0 0x1;
+   local-mac-address = [ 00 01 02 03 04 08 ];
+   interrupts = 33 8;
+   interrupt-parent = PIC;
+   phy-handle = phy1;
+   linux,network-index = 2;
+   fsl,cpm-command = 0x16200300;
+   };
};

PIC: interrupt-control...@10c00 {
diff --git a/arch/powerpc/configs/mgcoge_defconfig 
b/arch/powerpc/configs/mgcoge_defconfig
index 31e1df6..a6fe6b0 100644
--- a/arch/powerpc/configs/mgcoge_defconfig
+++ b/arch/powerpc/configs/mgcoge_defconfig
@@ -1,25 +1,27 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.30-rc3
-# Wed May 13 17:21:55 2009
+# Linux kernel version: 2.6.31-rc4
+# Wed Jul 29 08:57:10 2009
 #
 # CONFIG_PPC64 is not set

 #
 # Processor support
 #
-CONFIG_6xx=y
+CONFIG_PPC_BOOK3S_32=y
 # CONFIG_PPC_85xx is not set
 # CONFIG_PPC_8xx is not set
 # CONFIG_40x is not set
 # CONFIG_44x is not set
 # CONFIG_E200 is not set
 CONFIG_PPC_BOOK3S=y
+CONFIG_6xx=y
 CONFIG_PPC_FPU=y
 # CONFIG_ALTIVEC is not set
 CONFIG_PPC_STD_MMU=y
 CONFIG_PPC_STD_MMU_32=y
 # CONFIG_PPC_MM_SLICES is not set
+CONFIG_PPC_HAVE_PMU_SUPPORT=y
 # CONFIG_SMP is not set
 CONFIG_PPC32=y
 CONFIG_WORD_SIZE=32
@@ -30,15 +32,16 @@ CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_TIME_VSYSCALL=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y

Re: 82xx, mgcoge: updates for 2.6.32

2009-07-29 Thread David Gibson
On Wed, Jul 29, 2009 at 10:32:30AM +0200, Heiko Schocher wrote:

[snip]
 + m...@10d40 {
 + device_type = mdio;

Drop this device_type.

 + compatible = fsl,cpm2-mdio-bitbang;
 + reg = 0x10d00 0x14;
 + #address-cells = 1;
 + #size-cells = 0;
 + fsl,mdio-pin = 12;
 + fsl,mdc-pin = 13;
 +
 + phy0: ethernet-...@0 {
 + reg = 0x0;
 + device_type = ethernet-phy;

And this one, too.

 + };
 +
 + phy1: ethernet-...@1 {
 + reg = 0x1;
 + device_type = ethernet-phy;
 + };
 + };

-- 
David Gibson| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: 82xx, mgcoge: updates for 2.6.32

2009-07-29 Thread Kumar Gala


On Jul 29, 2009, at 3:32 AM, Heiko Schocher wrote:


- add I2C support
- add FCC1 and FCC2 support
- fix bogus gpio numbering in plattformcode

Signed-off-by: Heiko Schocher h...@denx.de
---
- based on git://git.kernel.org/pub/scm/linux/kernel/git/benh/ 
powerpc.git

 next branch
- checked with checkpatch.pl:
$ ./scripts/checkpatch.pl 0001-82xx-mgcoge-updates-for-2.6.32.patch
total: 0 errors, 0 warnings, 531 lines checked

0001-82xx-mgcoge-updates-for-2.6.32.patch has no obvious style  
problems and is ready for submission.

$

BTW: Who is PPC82XX Maintainer? I couldn;t find such an entry
in the MAINTAINERS file ...


its me.


arch/powerpc/boot/dts/mgcoge.dts  |   56 ++
arch/powerpc/configs/mgcoge_defconfig |  178  
+---


Can we hold off or pull the defconfig update into a separate patch.  I  
normally update defconfigs in a late -rc series and that will probably  
generate merge conflicts.




arch/powerpc/platforms/82xx/mgcoge.c  |   69 +++--
3 files changed, 255 insertions(+), 48 deletions(-)


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


Next July 29 : Hugetlb test failure (OOPS free_hugepte_range)

2009-07-29 Thread Sachin Sant

While executing hugetlb tests against today's Next tree on
a Power 6 box came across following OOPS.

[ cut here ]
Oops: Exception in kernel mode, sig: 5 [#1]
SMP NR_CPUS=1024 NUMA pSeries
Modules linked in: ipv6 fuse loop dm_mod ehea sg sd_mod crc_t10dif ibmvscsic 
scsi_transport_srp scsi_tgt scsi_mod
NIP: c003e794 LR: c003e9ec CTR: bba4
REGS: c0006a72b5d0 TRAP: 0700   Not tainted  
(2.6.31-rc4-autotest-next-20090729-5-ppc64)
MSR: 80029032 EE,ME,CE,IR,DR  CR: 2204  XER: 0001
TASK = c00069c00180[1115] 'readback' THREAD: c0006a728000 CPU: 2
GPR00: 0001 c0006a72b850 c0a93190 c0006f6f04d0
GPR04: c0006b810001 0008  0400
GPR08: c0006ece0ca8 c0006a137ff8 c0006ece0ca8 0018
GPR12: 42000448 c0b72800  
GPR16: 477555d0  0001 03ff
GPR20: 0400  0100 0400
GPR24: c0006f6f04d0 03ff 0007 c0006cdc28d0
GPR28: 0400 03fff000 c0006a137ff8 0400
NIP [c003e794] .free_hugepte_range+0x44/0x68
LR [c003e9ec] .hugetlb_free_pgd_range+0x234/0x374
Call Trace:
[c0006a72b850] [175c08000393] 0x175c08000393 (unreliable)
[c0006a72b8c0] [c003e9ec] .hugetlb_free_pgd_range+0x234/0x374
[c0006a72b9b0] [c013742c] .free_pgtables+0x90/0x140
[c0006a72ba60] [c01393c4] .exit_mmap+0x12c/0x1b8
[c0006a72bb10] [c008d460] .mmput+0x54/0x14c
[c0006a72bba0] [c0092428] .exit_mm+0x17c/0x1a0
[c0006a72bc50] [c009481c] .do_exit+0x204/0x774
[c0006a72bd30] [c0094e40] .do_group_exit+0xb4/0xe8
[c0006a72bdc0] [c0094e88] .SyS_exit_group+0x14/0x28
[c0006a72be30] [c00085b4] syscall_exit+0x0/0x40
Instruction dump:
6881 780007e0 0b00 38a50001 3800 7ca507b4 f809 3801
2f850007 9003000c 7c101026 5400f7fe 0b00 78840724 7ca42378 4bff8ed5

next-20090728 worked fine. Last commit that changed
arch/powerpc/mm/hugetlbpage.c was cb7f3f2d92d1b26c13e30e639b6ee4a78e9a3afa

powerpc: Add memory management headers for new 64-bit BookE

I will try reverting that commit and check if that helps.

Thanks
-Sachin


--

-
Sachin Sant
IBM Linux Technology Center
India Systems and Technology Labs
Bangalore, India
-

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


[PATCH 1/7] spi: Add support for device table matching

2009-07-29 Thread Anton Vorontsov
With this patch spi drivers can use standard spi_driver.id_table and
MODULE_DEVICE_TABLE() mechanisms to bind against the devices. Just
like we do with I2C drivers.

This is useful when a single driver supports several variants of
devices but it is not possible to detect them in run-time (like
non-JEDEC chips probing in drivers/mtd/devices/m25p80.c), and
when platform_data usage is overkill.

This patch also makes life a lot easier on OpenFirmware platforms,
since with OF we extensively use proper device IDs in modaliases.

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
 drivers/spi/spi.c   |   26 +-
 include/linux/mod_devicetable.h |   13 +
 include/linux/spi/spi.h |   10 --
 scripts/mod/file2alias.c|   13 +
 4 files changed, 59 insertions(+), 3 deletions(-)

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 70845cc..1431bf2 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -59,9 +59,24 @@ static struct device_attribute spi_dev_attrs[] = {
  * and the sysfs version makes coldplug work too.
  */
 
+static const struct spi_device_id *spi_match_id(const struct spi_device_id *id,
+   const struct spi_device *sdev)
+{
+   while (id-name[0]) {
+   if (!strcmp(sdev-modalias, id-name))
+   return id;
+   id++;
+   }
+   return NULL;
+}
+
 static int spi_match_device(struct device *dev, struct device_driver *drv)
 {
const struct spi_device *spi = to_spi_device(dev);
+   const struct spi_driver *sdrv = to_spi_driver(drv);
+
+   if (sdrv-id_table)
+   return !!spi_match_id(sdrv-id_table, spi);
 
return strcmp(spi-modalias, drv-name) == 0;
 }
@@ -121,6 +136,13 @@ struct bus_type spi_bus_type = {
 };
 EXPORT_SYMBOL_GPL(spi_bus_type);
 
+static int spi_drv_probe_id(struct device *dev)
+{
+   const struct spi_driver *sdrv = to_spi_driver(dev-driver);
+   struct spi_device   *sdev = to_spi_device(dev);
+
+   return sdrv-probe_id(sdev, spi_match_id(sdrv-id_table, sdev));
+}
 
 static int spi_drv_probe(struct device *dev)
 {
@@ -151,7 +173,9 @@ static void spi_drv_shutdown(struct device *dev)
 int spi_register_driver(struct spi_driver *sdrv)
 {
sdrv-driver.bus = spi_bus_type;
-   if (sdrv-probe)
+   if (sdrv-probe_id)
+   sdrv-driver.probe = spi_drv_probe_id;
+   else if (sdrv-probe)
sdrv-driver.probe = spi_drv_probe;
if (sdrv-remove)
sdrv-driver.remove = spi_drv_remove;
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 1bf5900..9660dca 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -399,6 +399,19 @@ struct i2c_device_id {
__attribute__((aligned(sizeof(kernel_ulong_t;
 };
 
+/* spi */
+
+#define SPI_NAME_SIZE  20
+
+struct spi_device_id {
+   char name[SPI_NAME_SIZE];
+#ifdef __KERNEL__
+   void *data;
+#else
+   kernel_ulong_t data;
+#endif
+};
+
 /* dmi */
 enum dmi_field {
DMI_NONE,
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
index c47c4b4..c8d92a1 100644
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -20,6 +20,7 @@
 #define __LINUX_SPI_H
 
 #include linux/device.h
+#include linux/mod_devicetable.h
 
 /*
  * INTERFACES between SPI master-side drivers and SPI infrastructure.
@@ -86,7 +87,7 @@ struct spi_device {
int irq;
void*controller_state;
void*controller_data;
-   charmodalias[32];
+   charmodalias[SPI_NAME_SIZE];
 
/*
 * likely need more hooks for more protocol options affecting how
@@ -145,6 +146,8 @@ struct spi_message;
 
 /**
  * struct spi_driver - Host side protocol driver
+ * @id_table: List of SPI devices supported by this driver
+ * @probe_id: Binds this driver to the spi device via id_table matching.
  * @probe: Binds this driver to the spi device.  Drivers can verify
  * that the device is actually present, and may need to configure
  * characteristics (such as bits_per_word) which weren't needed for
@@ -170,6 +173,9 @@ struct spi_message;
  * MMC, RTC, filesystem character device nodes, and hardware monitoring.
  */
 struct spi_driver {
+   const struct spi_device_id *id_table;
+   int (*probe_id)(struct spi_device *spi,
+   const struct spi_device_id *id);
int (*probe)(struct spi_device *spi);
int (*remove)(struct spi_device *spi);
void(*shutdown)(struct spi_device *spi);
@@ -732,7 +738,7 @@ struct spi_board_info {
 * controller_data goes to spi_device.controller_data,
 * irq is copied 

[PATCH 2/7] mtd: m25p80: Convert to device table matching

2009-07-29 Thread Anton Vorontsov
This patch converts the m25p80 driver so that now it uses .id_table
for device matching, making it properly detect devices on OpenFirmware
platforms (prior to this patch the driver misdetected non-JEDEC chips,
seeing all chips as m25p80).

Also, now jedec_probe() only does jedec probing, nothing else. If it
is not able to detect a chip, NULL is returned and the driver fall
backs to the information specified by the platform (platform_data, or
exact ID).

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
 drivers/mtd/devices/m25p80.c |  152 +++---
 1 files changed, 84 insertions(+), 68 deletions(-)

diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 10ed195..7c3efff 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -21,6 +21,7 @@
 #include linux/interrupt.h
 #include linux/mutex.h
 #include linux/math64.h
+#include linux/mod_devicetable.h
 
 #include linux/mtd/mtd.h
 #include linux/mtd/partitions.h
@@ -462,8 +463,6 @@ static int m25p80_write(struct mtd_info *mtd, loff_t to, 
size_t len,
  */
 
 struct flash_info {
-   char*name;
-
/* JEDEC id zero means no ID (most older chips); otherwise it has
 * a high byte of zero plus three data bytes: the manufacturer id,
 * then a two byte device id.
@@ -481,74 +480,83 @@ struct flash_info {
 #defineSECT_4K 0x01/* OPCODE_BE_4K works uniformly 
*/
 };
 
+#define INFO(_jedec_id, _ext_id, _sector_size, _n_sectors, _flags) \
+   ((struct flash_info) { \
+   .jedec_id = (_jedec_id),\
+   .ext_id = (_ext_id),\
+   .sector_size = (_sector_size),  \
+   .n_sectors = (_n_sectors),  \
+   .flags = (_flags),  \
+   })
 
 /* NOTE: double check command sets and memory organization when you add
  * more flash chips.  This current list focusses on newer chips, which
  * have been converging on command sets which including JEDEC ID.
  */
-static struct flash_info __devinitdata m25p_data [] = {
-
+static const struct spi_device_id m25p_ids[] = {
/* Atmel -- some are (confusingly) marketed as DataFlash */
-   { at25fs010,  0x1f6601, 0, 32 * 1024, 4, SECT_4K, },
-   { at25fs040,  0x1f6604, 0, 64 * 1024, 8, SECT_4K, },
+   { at25fs010,  INFO(0x1f6601, 0, 32 * 1024, 4, SECT_4K) },
+   { at25fs040,  INFO(0x1f6604, 0, 64 * 1024, 8, SECT_4K) },
 
-   { at25df041a, 0x1f4401, 0, 64 * 1024, 8, SECT_4K, },
-   { at25df641,  0x1f4800, 0, 64 * 1024, 128, SECT_4K, },
+   { at25df041a, INFO(0x1f4401, 0, 64 * 1024, 8, SECT_4K) },
+   { at25df641,  INFO(0x1f4800, 0, 64 * 1024, 128, SECT_4K) },
 
-   { at26f004,   0x1f0400, 0, 64 * 1024, 8, SECT_4K, },
-   { at26df081a, 0x1f4501, 0, 64 * 1024, 16, SECT_4K, },
-   { at26df161a, 0x1f4601, 0, 64 * 1024, 32, SECT_4K, },
-   { at26df321,  0x1f4701, 0, 64 * 1024, 64, SECT_4K, },
+   { at26f004,   INFO(0x1f0400, 0, 64 * 1024, 8, SECT_4K) },
+   { at26df081a, INFO(0x1f4501, 0, 64 * 1024, 16, SECT_4K) },
+   { at26df161a, INFO(0x1f4601, 0, 64 * 1024, 32, SECT_4K) },
+   { at26df321,  INFO(0x1f4701, 0, 64 * 1024, 64, SECT_4K) },
 
/* Macronix */
-   { mx25l12805d, 0xc22018, 0, 64 * 1024, 256, },
+   { mx25l12805d, INFO(0xc22018, 0, 64 * 1024, 256, 0) },
 
/* Spansion -- single (large) sector size only, at least
 * for the chips listed here (without boot sectors).
 */
-   { s25sl004a, 0x010212, 0, 64 * 1024, 8, },
-   { s25sl008a, 0x010213, 0, 64 * 1024, 16, },
-   { s25sl016a, 0x010214, 0, 64 * 1024, 32, },
-   { s25sl032a, 0x010215, 0, 64 * 1024, 64, },
-   { s25sl064a, 0x010216, 0, 64 * 1024, 128, },
-{ s25sl12800, 0x012018, 0x0300, 256 * 1024, 64, },
-   { s25sl12801, 0x012018, 0x0301, 64 * 1024, 256, },
+   { s25sl004a,  INFO(0x010212, 0, 64 * 1024, 8, 0) },
+   { s25sl008a,  INFO(0x010213, 0, 64 * 1024, 16, 0) },
+   { s25sl016a,  INFO(0x010214, 0, 64 * 1024, 32, 0) },
+   { s25sl032a,  INFO(0x010215, 0, 64 * 1024, 64, 0) },
+   { s25sl064a,  INFO(0x010216, 0, 64 * 1024, 128, 0) },
+   { s25sl12800, INFO(0x012018, 0x0300, 256 * 1024, 64, 0) },
+   { s25sl12801, INFO(0x012018, 0x0301, 64 * 1024, 256, 0) },
 
/* SST -- large erase sizes are overlays, sectors are 4K */
-   { sst25vf040b, 0xbf258d, 0, 64 * 1024, 8, SECT_4K, },
-   { sst25vf080b, 0xbf258e, 0, 64 * 1024, 16, SECT_4K, },
-   { sst25vf016b, 0xbf2541, 0, 64 * 1024, 32, SECT_4K, },
-   { sst25vf032b, 0xbf254a, 0, 64 * 1024, 64, SECT_4K, },
+   { sst25vf040b, INFO(0xbf258d, 0, 64 * 1024, 8, SECT_4K) },
+   { sst25vf080b, INFO(0xbf258e, 0, 64 * 1024, 16, SECT_4K) },
+   

[PATCH 3/7] of: Remove stm,m25p40 alias

2009-07-29 Thread Anton Vorontsov
The alias isn't needed any longer since the m25p80 driver converted
to the module device table matching.

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
 drivers/of/base.c |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 69f85c0..ddf224d 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -447,7 +447,6 @@ struct of_modalias_table {
 static struct of_modalias_table of_modalias_table[] = {
{ fsl,mcu-mpc8349emitx, mcu-mpc8349emitx },
{ mmc-spi-slot, mmc_spi },
-   { stm,m25p40, m25p80 },
 };
 
 /**
-- 
1.6.3.3

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


[PATCH] powerpc/44x: Add NAND support to Canyonlands dts

2009-07-29 Thread Stefan Roese
Also some whitespace cleanup in the USB device nodes.

Signed-off-by: Stefan Roese s...@denx.de
---
 arch/powerpc/boot/dts/canyonlands.dts |   49 -
 1 files changed, 36 insertions(+), 13 deletions(-)

diff --git a/arch/powerpc/boot/dts/canyonlands.dts 
b/arch/powerpc/boot/dts/canyonlands.dts
index 5fd1ad0..c920170 100644
--- a/arch/powerpc/boot/dts/canyonlands.dts
+++ b/arch/powerpc/boot/dts/canyonlands.dts
@@ -1,7 +1,7 @@
 /*
  * Device Tree Source for AMCC Canyonlands (460EX)
  *
- * Copyright 2008 DENX Software Engineering, Stefan Roese s...@denx.de
+ * Copyright 2008-2009 DENX Software Engineering, Stefan Roese s...@denx.de
  *
  * This file is licensed under the terms of the GNU General Public
  * License version 2.  This program is licensed as is without
@@ -149,19 +149,19 @@
/*RXDE*/  0x5 0x4;
};
 
-USB0: e...@bffd0400 {
-compatible = ibm,usb-ehci-460ex, usb-ehci;
-interrupt-parent = UIC2;
-interrupts = 0x1d 4;
-reg = 4 0xbffd0400 0x90 4 0xbffd0490 0x70;
-};
+   USB0: e...@bffd0400 {
+   compatible = ibm,usb-ehci-460ex, usb-ehci;
+   interrupt-parent = UIC2;
+   interrupts = 0x1d 4;
+   reg = 4 0xbffd0400 0x90 4 0xbffd0490 0x70;
+   };
 
-USB1: u...@bffd {
-compatible = ohci-le;
-reg = 4 0xbffd 0x60;
-interrupt-parent = UIC2;
-interrupts = 0x1e 4;
-};
+   USB1: u...@bffd {
+   compatible = ohci-le;
+   reg = 4 0xbffd 0x60;
+   interrupt-parent = UIC2;
+   interrupts = 0x1e 4;
+   };
 
POB0: opb {
compatible = ibm,opb-460ex, ibm,opb;
@@ -215,6 +215,29 @@
reg = 0x03fa 0x0006;
};
};
+
+   n...@3,0 {
+   compatible = ibm,ndfc;
+   reg = 0x0003 0x 
0x2000;
+   ccr = 0x1000;
+   bank-settings = 0x8000;
+   #address-cells = 1;
+   #size-cells = 1;
+
+   nand {
+   #address-cells = 1;
+   #size-cells = 1;
+
+   partit...@0 {
+   label = u-boot;
+   reg = 0x 
0x0010;
+   };
+   partit...@10 {
+   label = user;
+   reg = 0x 
0x03f0;
+   };
+   };
+   };
};
 
UART0: ser...@ef600300 {
-- 
1.6.3.4

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


[PATCH 4/7] spi: Prefix modalias with spi:

2009-07-29 Thread Anton Vorontsov
This makes it consistent with other buses (platform, i2c, vio, ...).
I'm not sure why we use the prefixes, but there must be a reason.

This was easy enough to do it, and I did it.

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
 drivers/gpio/max7301.c |1 +
 drivers/gpio/mcp23s08.c|1 +
 drivers/hwmon/adcxx.c  |8 
 drivers/hwmon/lis3lv02d_spi.c  |2 +-
 drivers/hwmon/lm70.c   |2 ++
 drivers/hwmon/max.c|1 +
 drivers/input/touchscreen/ad7877.c |1 +
 drivers/input/touchscreen/ad7879.c |1 +
 drivers/input/touchscreen/ads7846.c|1 +
 drivers/leds/leds-dac124s085.c |1 +
 drivers/mfd/ezx-pcap.c |1 +
 drivers/misc/eeprom/at25.c |2 +-
 drivers/mmc/host/mmc_spi.c |1 +
 drivers/mtd/devices/mtd_dataflash.c|1 +
 drivers/net/enc28j60.c |1 +
 drivers/net/ks8851.c   |1 +
 drivers/net/wireless/libertas/if_spi.c |1 +
 drivers/net/wireless/p54/p54spi.c  |1 +
 drivers/net/wireless/wl12xx/main.c |1 +
 drivers/rtc/rtc-ds1305.c   |1 +
 drivers/rtc/rtc-ds1390.c   |1 +
 drivers/rtc/rtc-ds3234.c   |1 +
 drivers/rtc/rtc-m41t94.c   |1 +
 drivers/rtc/rtc-max6902.c  |1 +
 drivers/rtc/rtc-r9701.c|1 +
 drivers/rtc/rtc-rs5c348.c  |1 +
 drivers/serial/max3100.c   |1 +
 drivers/spi/spi.c  |3 ++-
 drivers/spi/spidev.c   |1 +
 drivers/spi/tle62x0.c  |1 +
 drivers/staging/stlc45xx/stlc45xx.c|1 +
 drivers/video/backlight/corgi_lcd.c|1 +
 drivers/video/backlight/ltv350qv.c |1 +
 drivers/video/backlight/tdo24m.c   |1 +
 drivers/video/backlight/tosa_lcd.c |2 +-
 drivers/video/backlight/vgg2432a4.c|3 +--
 include/linux/mod_devicetable.h|1 +
 scripts/mod/file2alias.c   |4 ++--
 38 files changed, 44 insertions(+), 12 deletions(-)

diff --git a/drivers/gpio/max7301.c b/drivers/gpio/max7301.c
index 7b82eaa..480956f 100644
--- a/drivers/gpio/max7301.c
+++ b/drivers/gpio/max7301.c
@@ -339,3 +339,4 @@ module_exit(max7301_exit);
 MODULE_AUTHOR(Juergen Beisert);
 MODULE_LICENSE(GPL v2);
 MODULE_DESCRIPTION(MAX7301 SPI based GPIO-Expander);
+MODULE_ALIAS(spi: DRIVER_NAME);
diff --git a/drivers/gpio/mcp23s08.c b/drivers/gpio/mcp23s08.c
index f6fae0e..c6c7aa1 100644
--- a/drivers/gpio/mcp23s08.c
+++ b/drivers/gpio/mcp23s08.c
@@ -433,3 +433,4 @@ static void __exit mcp23s08_exit(void)
 module_exit(mcp23s08_exit);
 
 MODULE_LICENSE(GPL);
+MODULE_ALIAS(spi:mcp23s08);
diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
index 242294d..7a89fba 100644
--- a/drivers/hwmon/adcxx.c
+++ b/drivers/hwmon/adcxx.c
@@ -323,7 +323,7 @@ MODULE_AUTHOR(Marc Pignat);
 MODULE_DESCRIPTION(National Semiconductor adcxx8sxxx Linux driver);
 MODULE_LICENSE(GPL);
 
-MODULE_ALIAS(adcxx1s);
-MODULE_ALIAS(adcxx2s);
-MODULE_ALIAS(adcxx4s);
-MODULE_ALIAS(adcxx8s);
+MODULE_ALIAS(spi:adcxx1s);
+MODULE_ALIAS(spi:adcxx2s);
+MODULE_ALIAS(spi:adcxx4s);
+MODULE_ALIAS(spi:adcxx8s);
diff --git a/drivers/hwmon/lis3lv02d_spi.c b/drivers/hwmon/lis3lv02d_spi.c
index 3827ff0..b7aed07 100644
--- a/drivers/hwmon/lis3lv02d_spi.c
+++ b/drivers/hwmon/lis3lv02d_spi.c
@@ -112,4 +112,4 @@ module_exit(lis302dl_exit);
 MODULE_AUTHOR(Daniel Mack dan...@caiaq.de);
 MODULE_DESCRIPTION(lis3lv02d SPI glue layer);
 MODULE_LICENSE(GPL);
-
+MODULE_ALIAS(spi: DRV_NAME);
diff --git a/drivers/hwmon/lm70.c b/drivers/hwmon/lm70.c
index ae6204f..d55cc7c 100644
--- a/drivers/hwmon/lm70.c
+++ b/drivers/hwmon/lm70.c
@@ -244,3 +244,5 @@ module_exit(cleanup_lm70);
 MODULE_AUTHOR(Kaiwan N Billimoria);
 MODULE_DESCRIPTION(NS LM70 / TI TMP121/TMP123 Linux driver);
 MODULE_LICENSE(GPL);
+MODULE_ALIAS(spi:tmp121);
+MODULE_ALIAS(spi:lm70);
diff --git a/drivers/hwmon/max.c b/drivers/hwmon/max.c
index bfaa665..9ac4972 100644
--- a/drivers/hwmon/max.c
+++ b/drivers/hwmon/max.c
@@ -242,3 +242,4 @@ module_exit(max_exit);
 MODULE_AUTHOR(Eric Miao eric.m...@marvell.com);
 MODULE_DESCRIPTION(MAX ADC Driver);
 MODULE_LICENSE(GPL);
+MODULE_ALIAS(spi:max);
diff --git a/drivers/input/touchscreen/ad7877.c 
b/drivers/input/touchscreen/ad7877.c
index ecaeb7e..eb83939 100644
--- a/drivers/input/touchscreen/ad7877.c
+++ b/drivers/input/touchscreen/ad7877.c
@@ -842,3 +842,4 @@ module_exit(ad7877_exit);
 MODULE_AUTHOR(Michael Hennerich henner...@blackfin.uclinux.org);
 MODULE_DESCRIPTION(AD7877 touchscreen Driver);
 MODULE_LICENSE(GPL);
+MODULE_ALIAS(spi:ad7877);
diff --git a/drivers/input/touchscreen/ad7879.c 
b/drivers/input/touchscreen/ad7879.c
index 5d8a703..19b4db7 100644
--- a/drivers/input/touchscreen/ad7879.c
+++ b/drivers/input/touchscreen/ad7879.c
@@ -779,3 +779,4 

[PATCH 5/7] spi: Merge probe and probe_id callbacks

2009-07-29 Thread Anton Vorontsov
The probe_id callback was introduced for the transition period
as a new-style probe hook. This patch makes probe() look exactly
as probe_id(), converts drivers and removes probe_id().

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
 drivers/gpio/max7301.c |3 ++-
 drivers/gpio/mcp23s08.c|3 ++-
 drivers/hwmon/adcxx.c  |   12 
 drivers/hwmon/lis3lv02d_spi.c  |3 ++-
 drivers/hwmon/lm70.c   |6 --
 drivers/hwmon/max.c|3 ++-
 drivers/input/touchscreen/ad7877.c |3 ++-
 drivers/input/touchscreen/ad7879.c |3 ++-
 drivers/input/touchscreen/ads7846.c|3 ++-
 drivers/leds/leds-dac124s085.c |3 ++-
 drivers/mfd/ezx-pcap.c |3 ++-
 drivers/misc/eeprom/at25.c |2 +-
 drivers/mmc/host/mmc_spi.c |3 ++-
 drivers/mtd/devices/m25p80.c   |2 +-
 drivers/mtd/devices/mtd_dataflash.c|3 ++-
 drivers/net/enc28j60.c |3 ++-
 drivers/net/ks8851.c   |3 ++-
 drivers/net/wireless/libertas/if_spi.c |3 ++-
 drivers/net/wireless/p54/p54spi.c  |3 ++-
 drivers/net/wireless/wl12xx/main.c |3 ++-
 drivers/rtc/rtc-ds1305.c   |3 ++-
 drivers/rtc/rtc-ds1390.c   |3 ++-
 drivers/rtc/rtc-ds3234.c   |3 ++-
 drivers/rtc/rtc-m41t94.c   |3 ++-
 drivers/rtc/rtc-max6902.c  |3 ++-
 drivers/rtc/rtc-r9701.c|3 ++-
 drivers/rtc/rtc-rs5c348.c  |3 ++-
 drivers/serial/max3100.c   |3 ++-
 drivers/spi/spi.c  |   15 +++
 drivers/spi/spidev.c   |2 +-
 drivers/spi/tle62x0.c  |3 ++-
 drivers/staging/stlc45xx/stlc45xx.c|3 ++-
 drivers/video/backlight/corgi_lcd.c|3 ++-
 drivers/video/backlight/ltv350qv.c |3 ++-
 drivers/video/backlight/tdo24m.c   |3 ++-
 drivers/video/backlight/tosa_lcd.c |3 ++-
 drivers/video/backlight/vgg2432a4.c|3 ++-
 include/linux/spi/spi.h|6 ++
 38 files changed, 82 insertions(+), 56 deletions(-)

diff --git a/drivers/gpio/max7301.c b/drivers/gpio/max7301.c
index 480956f..c92cff6 100644
--- a/drivers/gpio/max7301.c
+++ b/drivers/gpio/max7301.c
@@ -210,7 +210,8 @@ static void max7301_set(struct gpio_chip *chip, unsigned 
offset, int value)
mutex_unlock(ts-lock);
 }
 
-static int __devinit max7301_probe(struct spi_device *spi)
+static int __devinit max7301_probe(struct spi_device *spi,
+  const struct spi_device_id *id)
 {
struct max7301 *ts;
struct max7301_platform_data *pdata;
diff --git a/drivers/gpio/mcp23s08.c b/drivers/gpio/mcp23s08.c
index c6c7aa1..2a99eea 100644
--- a/drivers/gpio/mcp23s08.c
+++ b/drivers/gpio/mcp23s08.c
@@ -300,7 +300,8 @@ fail:
return status;
 }
 
-static int mcp23s08_probe(struct spi_device *spi)
+static int mcp23s08_probe(struct spi_device *spi,
+ const struct spi_device_id *id)
 {
struct mcp23s08_platform_data   *pdata;
unsignedaddr;
diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
index 7a89fba..b01c0d5 100644
--- a/drivers/hwmon/adcxx.c
+++ b/drivers/hwmon/adcxx.c
@@ -204,22 +204,26 @@ out_err:
return status;
 }
 
-static int __devinit adcxx1s_probe(struct spi_device *spi)
+static int __devinit adcxx1s_probe(struct spi_device *spi,
+  const struct spi_device_id *id)
 {
return adcxx_probe(spi, 1);
 }
 
-static int __devinit adcxx2s_probe(struct spi_device *spi)
+static int __devinit adcxx2s_probe(struct spi_device *spi,
+  const struct spi_device_id *id)
 {
return adcxx_probe(spi, 2);
 }
 
-static int __devinit adcxx4s_probe(struct spi_device *spi)
+static int __devinit adcxx4s_probe(struct spi_device *spi,
+  const struct spi_device_id *id)
 {
return adcxx_probe(spi, 4);
 }
 
-static int __devinit adcxx8s_probe(struct spi_device *spi)
+static int __devinit adcxx8s_probe(struct spi_device *spi,
+  const struct spi_device_id *id)
 {
return adcxx_probe(spi, 8);
 }
diff --git a/drivers/hwmon/lis3lv02d_spi.c b/drivers/hwmon/lis3lv02d_spi.c
index b7aed07..478b1d4 100644
--- a/drivers/hwmon/lis3lv02d_spi.c
+++ b/drivers/hwmon/lis3lv02d_spi.c
@@ -56,7 +56,8 @@ static int lis3_spi_init(struct lis3lv02d *lis3)
 
 static struct axis_conversion lis3lv02d_axis_normal = { 1, 2, 3 };
 
-static int __devinit lis302dl_spi_probe(struct spi_device *spi)
+static int __devinit lis302dl_spi_probe(struct spi_device *spi,
+   const struct spi_device_id *id)
 {
int ret;
 
diff --git a/drivers/hwmon/lm70.c b/drivers/hwmon/lm70.c
index 

[PATCH 6/7] hwmon: adxx: Convert to device table matching

2009-07-29 Thread Anton Vorontsov
This patch makes the code a little bit nicer, and shorter.

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
 drivers/hwmon/adcxx.c |  106 -
 1 files changed, 17 insertions(+), 89 deletions(-)

diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
index b01c0d5..6b3b057 100644
--- a/drivers/hwmon/adcxx.c
+++ b/drivers/hwmon/adcxx.c
@@ -43,6 +43,7 @@
 #include linux/hwmon.h
 #include linux/hwmon-sysfs.h
 #include linux/mutex.h
+#include linux/mod_devicetable.h
 #include linux/spi/spi.h
 
 #define DRVNAMEadcxx
@@ -157,8 +158,10 @@ static struct sensor_device_attribute ad_input[] = {
 
 /*--*/
 
-static int __devinit adcxx_probe(struct spi_device *spi, int channels)
+static int __devinit adcxx_probe(struct spi_device *spi,
+const struct spi_device_id *id)
 {
+   int channels = (int)id-data;
struct adcxx *adc;
int status;
int i;
@@ -204,30 +207,6 @@ out_err:
return status;
 }
 
-static int __devinit adcxx1s_probe(struct spi_device *spi,
-  const struct spi_device_id *id)
-{
-   return adcxx_probe(spi, 1);
-}
-
-static int __devinit adcxx2s_probe(struct spi_device *spi,
-  const struct spi_device_id *id)
-{
-   return adcxx_probe(spi, 2);
-}
-
-static int __devinit adcxx4s_probe(struct spi_device *spi,
-  const struct spi_device_id *id)
-{
-   return adcxx_probe(spi, 4);
-}
-
-static int __devinit adcxx8s_probe(struct spi_device *spi,
-  const struct spi_device_id *id)
-{
-   return adcxx_probe(spi, 8);
-}
-
 static int __devexit adcxx_remove(struct spi_device *spi)
 {
struct adcxx *adc = dev_get_drvdata(spi-dev);
@@ -245,79 +224,33 @@ static int __devexit adcxx_remove(struct spi_device *spi)
return 0;
 }
 
-static struct spi_driver adcxx1s_driver = {
-   .driver = {
-   .name   = adcxx1s,
-   .owner  = THIS_MODULE,
-   },
-   .probe  = adcxx1s_probe,
-   .remove = __devexit_p(adcxx_remove),
+static const struct spi_device_id adcxx_ids[] = {
+   { adcxx1s, (void *)1 },
+   { adcxx2s, (void *)2 },
+   { adcxx4s, (void *)4 },
+   { adcxx8s, (void *)8 },
+   { },
 };
+MODULE_DEVICE_TABLE(spi, adcxx_ids);
 
-static struct spi_driver adcxx2s_driver = {
+static struct spi_driver adcxx_driver = {
.driver = {
-   .name   = adcxx2s,
+   .name   = adcxx,
.owner  = THIS_MODULE,
},
-   .probe  = adcxx2s_probe,
-   .remove = __devexit_p(adcxx_remove),
-};
-
-static struct spi_driver adcxx4s_driver = {
-   .driver = {
-   .name   = adcxx4s,
-   .owner  = THIS_MODULE,
-   },
-   .probe  = adcxx4s_probe,
-   .remove = __devexit_p(adcxx_remove),
-};
-
-static struct spi_driver adcxx8s_driver = {
-   .driver = {
-   .name   = adcxx8s,
-   .owner  = THIS_MODULE,
-   },
-   .probe  = adcxx8s_probe,
+   .id_table = adcxx_ids,
+   .probe  = adcxx_probe,
.remove = __devexit_p(adcxx_remove),
 };
 
 static int __init init_adcxx(void)
 {
-   int status;
-   status = spi_register_driver(adcxx1s_driver);
-   if (status)
-   goto reg_1_failed;
-
-   status = spi_register_driver(adcxx2s_driver);
-   if (status)
-   goto reg_2_failed;
-
-   status = spi_register_driver(adcxx4s_driver);
-   if (status)
-   goto reg_4_failed;
-
-   status = spi_register_driver(adcxx8s_driver);
-   if (status)
-   goto reg_8_failed;
-
-   return status;
-
-reg_8_failed:
-   spi_unregister_driver(adcxx4s_driver);
-reg_4_failed:
-   spi_unregister_driver(adcxx2s_driver);
-reg_2_failed:
-   spi_unregister_driver(adcxx1s_driver);
-reg_1_failed:
-   return status;
+   return spi_register_driver(adcxx_driver);
 }
 
 static void __exit exit_adcxx(void)
 {
-   spi_unregister_driver(adcxx1s_driver);
-   spi_unregister_driver(adcxx2s_driver);
-   spi_unregister_driver(adcxx4s_driver);
-   spi_unregister_driver(adcxx8s_driver);
+   spi_unregister_driver(adcxx_driver);
 }
 
 module_init(init_adcxx);
@@ -326,8 +259,3 @@ module_exit(exit_adcxx);
 MODULE_AUTHOR(Marc Pignat);
 MODULE_DESCRIPTION(National Semiconductor adcxx8sxxx Linux driver);
 MODULE_LICENSE(GPL);
-
-MODULE_ALIAS(spi:adcxx1s);
-MODULE_ALIAS(spi:adcxx2s);
-MODULE_ALIAS(spi:adcxx4s);
-MODULE_ALIAS(spi:adcxx8s);
-- 
1.6.3.3

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


[PATCH] powerpc/44x: Update Canyonlands defconfig to support NOR, NAND and RTC

2009-07-29 Thread Stefan Roese
This patch adds support for the following devices to the Canyonlands
defconfig file:
- NOR FLASH
- PPC4xx NAND controller (NDFC)
- I2C RTC (M41T80)

Signed-off-by: Stefan Roese s...@denx.de
---
 arch/powerpc/configs/44x/canyonlands_defconfig |  350 
 1 files changed, 297 insertions(+), 53 deletions(-)

diff --git a/arch/powerpc/configs/44x/canyonlands_defconfig 
b/arch/powerpc/configs/44x/canyonlands_defconfig
index 5e85412..b312b16 100644
--- a/arch/powerpc/configs/44x/canyonlands_defconfig
+++ b/arch/powerpc/configs/44x/canyonlands_defconfig
@@ -1,14 +1,14 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.29-rc3
-# Mon Feb  2 13:13:04 2009
+# Linux kernel version: 2.6.31-rc4
+# Wed Jul 29 17:27:20 2009
 #
 # CONFIG_PPC64 is not set
 
 #
 # Processor support
 #
-# CONFIG_6xx is not set
+# CONFIG_PPC_BOOK3S_32 is not set
 # CONFIG_PPC_85xx is not set
 # CONFIG_PPC_8xx is not set
 # CONFIG_40x is not set
@@ -31,15 +31,16 @@ CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_TIME_VSYSCALL=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
 # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
 CONFIG_IRQ_PER_CPU=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 CONFIG_ARCH_HAS_ILOG2_U32=y
 CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
 CONFIG_GENERIC_FIND_NEXT_BIT=y
 # CONFIG_ARCH_NO_VIRT_TO_BUS is not set
 CONFIG_PPC=y
@@ -53,11 +54,14 @@ CONFIG_PPC_UDBG_16550=y
 # CONFIG_GENERIC_TBSYNC is not set
 CONFIG_AUDIT_ARCH=y
 CONFIG_GENERIC_BUG=y
+CONFIG_DTC=y
 # CONFIG_DEFAULT_UIMAGE is not set
 CONFIG_PPC_DCR_NATIVE=y
 # CONFIG_PPC_DCR_MMIO is not set
 CONFIG_PPC_DCR=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
+CONFIG_CONSTRUCTORS=y
 
 #
 # General setup
@@ -71,6 +75,7 @@ CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
 CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 # CONFIG_TASKSTATS is not set
 # CONFIG_AUDIT is not set
@@ -93,8 +98,12 @@ CONFIG_SYSFS_DEPRECATED_V2=y
 # CONFIG_NAMESPACES is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
 CONFIG_EMBEDDED=y
 CONFIG_SYSCTL_SYSCALL=y
 CONFIG_KALLSYMS=y
@@ -104,23 +113,30 @@ CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
-CONFIG_COMPAT_BRK=y
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
-CONFIG_ANON_INODES=y
 CONFIG_EPOLL=y
 CONFIG_SIGNALFD=y
 CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+CONFIG_HAVE_PERF_COUNTERS=y
+
+#
+# Performance Counters
+#
+# CONFIG_PERF_COUNTERS is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_COMPAT_BRK=y
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
 # CONFIG_SLOB is not set
 # CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
 CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -128,6 +144,12 @@ CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_SLOW_WORK is not set
 # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
@@ -139,8 +161,7 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODVERSIONS is not set
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 CONFIG_BLOCK=y
-CONFIG_LBD=y
-# CONFIG_BLK_DEV_IO_TRACE is not set
+CONFIG_LBDAF=y
 # CONFIG_BLK_DEV_BSG is not set
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
@@ -176,6 +197,7 @@ CONFIG_PPC4xx_PCI_EXPRESS=y
 # CONFIG_ARCHES is not set
 CONFIG_CANYONLANDS=y
 # CONFIG_GLACIER is not set
+# CONFIG_REDWOOD is not set
 # CONFIG_YOSEMITE is not set
 # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set
 CONFIG_PPC44x_SIMPLE=y
@@ -218,6 +240,7 @@ CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_MATH_EMULATION is not set
 # CONFIG_IOMMU_HELPER is not set
+# CONFIG_SWIOTLB is not set
 CONFIG_PPC_NEED_DMA_SYNC_OPS=y
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 CONFIG_ARCH_HAS_WALK_MEMORY=y
@@ -237,10 +260,14 @@ CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_UNEVICTABLE_LRU=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_STDBINUTILS=y
 CONFIG_PPC_4K_PAGES=y
 # CONFIG_PPC_16K_PAGES is not set
 # CONFIG_PPC_64K_PAGES is not set
+# CONFIG_PPC_256K_PAGES is not set
 CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_PROC_DEVICETREE=y
 CONFIG_CMDLINE_BOOL=y
@@ -265,6 +292,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
 # CONFIG_PCI_LEGACY is not set
 # CONFIG_PCI_DEBUG is not set
 # CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
 # 

[PATCH 7/7] hwmon: lm70: Convert to device table matching

2009-07-29 Thread Anton Vorontsov
This patch makes the code a little bit nicer, and shorter.

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
 drivers/hwmon/lm70.c |   58 +
 1 files changed, 20 insertions(+), 38 deletions(-)

diff --git a/drivers/hwmon/lm70.c b/drivers/hwmon/lm70.c
index 3953c22..b4be110 100644
--- a/drivers/hwmon/lm70.c
+++ b/drivers/hwmon/lm70.c
@@ -32,6 +32,7 @@
 #include linux/sysfs.h
 #include linux/hwmon.h
 #include linux/mutex.h
+#include linux/mod_devicetable.h
 #include linux/spi/spi.h
 
 
@@ -130,11 +131,21 @@ static DEVICE_ATTR(name, S_IRUGO, lm70_show_name, NULL);
 
 /*--*/
 
-static int __devinit common_probe(struct spi_device *spi, int chip)
+static int __devinit lm70_probe(struct spi_device *spi,
+   const struct spi_device_id *id)
 {
+   int chip = (int)id-data;
struct lm70 *p_lm70;
int status;
 
+   /* signaling is SPI_MODE_0 for both LM70 and TMP121 */
+   if (spi-mode  (SPI_CPOL | SPI_CPHA))
+   return -EINVAL;
+
+   /* 3-wire link (shared SI/SO) for LM70 */
+   if (chip == LM70_CHIP_LM70  !(spi-mode  SPI_3WIRE))
+   return -EINVAL;
+
/* NOTE:  we assume 8-bit words, and convert to 16 bits manually */
 
p_lm70 = kzalloc(sizeof *p_lm70, GFP_KERNEL);
@@ -170,26 +181,6 @@ out_dev_reg_failed:
return status;
 }
 
-static int __devinit lm70_probe(struct spi_device *spi,
-   const struct spi_device_id *id)
-{
-   /* signaling is SPI_MODE_0 on a 3-wire link (shared SI/SO) */
-   if ((spi-mode  (SPI_CPOL | SPI_CPHA)) || !(spi-mode  SPI_3WIRE))
-   return -EINVAL;
-
-   return common_probe(spi, LM70_CHIP_LM70);
-}
-
-static int __devinit tmp121_probe(struct spi_device *spi,
- const struct spi_device_id *id)
-{
-   /* signaling is SPI_MODE_0 with only MISO connected */
-   if (spi-mode  (SPI_CPOL | SPI_CPHA))
-   return -EINVAL;
-
-   return common_probe(spi, LM70_CHIP_TMP121);
-}
-
 static int __devexit lm70_remove(struct spi_device *spi)
 {
struct lm70 *p_lm70 = dev_get_drvdata(spi-dev);
@@ -203,41 +194,32 @@ static int __devexit lm70_remove(struct spi_device *spi)
return 0;
 }
 
-static struct spi_driver tmp121_driver = {
-   .driver = {
-   .name   = tmp121,
-   .owner  = THIS_MODULE,
-   },
-   .probe  = tmp121_probe,
-   .remove = __devexit_p(lm70_remove),
+
+static const struct spi_device_id lm70_ids[] = {
+   { lm70,   (void *)LM70_CHIP_LM70 },
+   { tmp121, (void *)LM70_CHIP_TMP121 },
+   { },
 };
+MODULE_DEVICE_TABLE(spi, lm70_ids);
 
 static struct spi_driver lm70_driver = {
.driver = {
.name   = lm70,
.owner  = THIS_MODULE,
},
+   .id_table = lm70_ids,
.probe  = lm70_probe,
.remove = __devexit_p(lm70_remove),
 };
 
 static int __init init_lm70(void)
 {
-   int ret = spi_register_driver(lm70_driver);
-   if (ret)
-   return ret;
-
-   ret = spi_register_driver(tmp121_driver);
-   if (ret)
-   spi_unregister_driver(lm70_driver);
-
-   return ret;
+   return spi_register_driver(lm70_driver);
 }
 
 static void __exit cleanup_lm70(void)
 {
spi_unregister_driver(lm70_driver);
-   spi_unregister_driver(tmp121_driver);
 }
 
 module_init(init_lm70);
-- 
1.6.3.3
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: BUG in dma-mapping.h:218 // MESH SCSI driver not working

2009-07-29 Thread Stef Simoens

Hello,

Benjamin Herrenschmidt schreef:

On Fri, 2009-07-24 at 00:18 +0200, Stef Simoens wrote:
  

I tried the latest 2.6.31-rc3-git3 (without any other patch).
However, I have the same behaviour as the patched 2.6.30 (so: no BUG, 
but the mesh_abort messages).


Would it be possible for you to roughly find out at what kernel version
it stopped working ? (Some kernels may need my patch to avoid crashing)
  

2.6.29 works OK
2.6.30-rc1 doesn't work (BUG...)
2.6.30-rc1 with your patch ... seems to hang when it should be mounting 
the root directory.


Is it worthwhile doing a git bisect?

--
Kind regards,

Stef Simoens


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

Re: [PATCH][sata_fsl] Defer non-ncq commands when ncq commands active

2009-07-29 Thread Robert Hancock

On 07/29/2009 10:03 AM, ashish kalra wrote:

From: Ashish Kalra ashish.ka...@freescale.com
Date: Wed, 29 Jul 2009 21:15:49 +0530

Fix for non-ncq  ncq commands causing timeouts when both are issued
simultaneously to the same device.

Signed-off-by: Ashish Kalra ashish.ka...@freescale.com
---
drivers/ata/sata_fsl.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index 5a88b44..a33f130 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -1262,6 +1262,7 @@ static struct scsi_host_template sata_fsl_sht = {
static struct ata_port_operations sata_fsl_ops = {
.inherits = sata_pmp_port_ops,

+ .qc_defer = ata_std_qc_defer;
.qc_prep = sata_fsl_qc_prep,
.qc_issue = sata_fsl_qc_issue,
.qc_fill_rtf = sata_fsl_qc_fill_rtf,


This doesn't look like it should change anything. sata_fsl_ops inherits 
from sata_pmp_port_ops, which inherits from sata_port_ops, which already 
sets qc_defer to ata_std_qc_defer.

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


Re: [PATCH 1/7] spi: Add support for device table matching

2009-07-29 Thread Ben Dooks
On Wed, Jul 29, 2009 at 09:04:57PM +0400, Anton Vorontsov wrote:
 With this patch spi drivers can use standard spi_driver.id_table and
 MODULE_DEVICE_TABLE() mechanisms to bind against the devices. Just
 like we do with I2C drivers.
 
 This is useful when a single driver supports several variants of
 devices but it is not possible to detect them in run-time (like
 non-JEDEC chips probing in drivers/mtd/devices/m25p80.c), and
 when platform_data usage is overkill.
 
 This patch also makes life a lot easier on OpenFirmware platforms,
 since with OF we extensively use proper device IDs in modaliases.
 
 Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
 ---
  drivers/spi/spi.c   |   26 +-
  include/linux/mod_devicetable.h |   13 +
  include/linux/spi/spi.h |   10 --
  scripts/mod/file2alias.c|   13 +
  4 files changed, 59 insertions(+), 3 deletions(-)
 
 diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
 index 70845cc..1431bf2 100644
 --- a/drivers/spi/spi.c
 +++ b/drivers/spi/spi.c
 @@ -59,9 +59,24 @@ static struct device_attribute spi_dev_attrs[] = {
   * and the sysfs version makes coldplug work too.
   */
  
 +static const struct spi_device_id *spi_match_id(const struct spi_device_id 
 *id,
 + const struct spi_device *sdev)
 +{
 + while (id-name[0]) {
 + if (!strcmp(sdev-modalias, id-name))
 + return id;
 + id++;
 + }
 + return NULL;
 +}
 +
  static int spi_match_device(struct device *dev, struct device_driver *drv)
  {
   const struct spi_device *spi = to_spi_device(dev);
 + const struct spi_driver *sdrv = to_spi_driver(drv);
 +
 + if (sdrv-id_table)
 + return !!spi_match_id(sdrv-id_table, spi);
  
   return strcmp(spi-modalias, drv-name) == 0;
  }
 @@ -121,6 +136,13 @@ struct bus_type spi_bus_type = {
  };
  EXPORT_SYMBOL_GPL(spi_bus_type);
  
 +static int spi_drv_probe_id(struct device *dev)
 +{
 + const struct spi_driver *sdrv = to_spi_driver(dev-driver);
 + struct spi_device   *sdev = to_spi_device(dev);
 +
 + return sdrv-probe_id(sdev, spi_match_id(sdrv-id_table, sdev));
 +}
  
  static int spi_drv_probe(struct device *dev)
  {
 @@ -151,7 +173,9 @@ static void spi_drv_shutdown(struct device *dev)
  int spi_register_driver(struct spi_driver *sdrv)
  {
   sdrv-driver.bus = spi_bus_type;
 - if (sdrv-probe)
 + if (sdrv-probe_id)
 + sdrv-driver.probe = spi_drv_probe_id;
 + else if (sdrv-probe)
   sdrv-driver.probe = spi_drv_probe;
   if (sdrv-remove)
   sdrv-driver.remove = spi_drv_remove;
 diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
 index 1bf5900..9660dca 100644
 --- a/include/linux/mod_devicetable.h
 +++ b/include/linux/mod_devicetable.h
 @@ -399,6 +399,19 @@ struct i2c_device_id {
   __attribute__((aligned(sizeof(kernel_ulong_t;
  };
  
 +/* spi */
 +
 +#define SPI_NAME_SIZE20
 +
 +struct spi_device_id {
 + char name[SPI_NAME_SIZE];
 +#ifdef __KERNEL__
 + void *data;
 +#else
 + kernel_ulong_t data;
 +#endif
 +};
 +
  /* dmi */
  enum dmi_field {
   DMI_NONE,
 diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
 index c47c4b4..c8d92a1 100644
 --- a/include/linux/spi/spi.h
 +++ b/include/linux/spi/spi.h
 @@ -20,6 +20,7 @@
  #define __LINUX_SPI_H
  
  #include linux/device.h
 +#include linux/mod_devicetable.h
  
  /*
   * INTERFACES between SPI master-side drivers and SPI infrastructure.
 @@ -86,7 +87,7 @@ struct spi_device {
   int irq;
   void*controller_state;
   void*controller_data;
 - charmodalias[32];
 + charmodalias[SPI_NAME_SIZE];
  
   /*
* likely need more hooks for more protocol options affecting how
 @@ -145,6 +146,8 @@ struct spi_message;
  
  /**
   * struct spi_driver - Host side protocol driver
 + * @id_table: List of SPI devices supported by this driver
 + * @probe_id: Binds this driver to the spi device via id_table matching.
   * @probe: Binds this driver to the spi device.  Drivers can verify
   *   that the device is actually present, and may need to configure
   *   characteristics (such as bits_per_word) which weren't needed for
 @@ -170,6 +173,9 @@ struct spi_message;
   * MMC, RTC, filesystem character device nodes, and hardware monitoring.
   */
  struct spi_driver {
 + const struct spi_device_id *id_table;
 + int (*probe_id)(struct spi_device *spi,
 + const struct spi_device_id *id);

how about leaving it at just probe and have either a call or a field
in the device that you can look at to see if this was a new style of
call?

   int (*probe)(struct spi_device 

Re: [PATCH 1/7] spi: Add support for device table matching

2009-07-29 Thread Anton Vorontsov
On Wed, Jul 29, 2009 at 10:44:46PM +0100, Ben Dooks wrote:
[...]
  +   const struct spi_device_id *id_table;
  +   int (*probe_id)(struct spi_device *spi,
  +   const struct spi_device_id *id);
 
 how about leaving it at just probe and have either a call or a field
 in the device that you can look at to see if this was a new style of
 call?

There are no technical difficulties with that, but it would be
inconsitent wrt other device table-aware buses (i2c, pci, of).

Note that I'm getting rid of probe_id function in patch 5/7, as a
cleanup step. I want to keep new features and api cleanups
separate. That way it's easier to review the changes.

Thanks!

-- 
Anton Vorontsov
email: cbouatmai...@gmail.com
irc://irc.freenode.net/bd2
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/7] spi: Add support for device table matching

2009-07-29 Thread Anton Vorontsov
On Thu, Jul 30, 2009 at 02:32:23AM +0400, Anton Vorontsov wrote:
 On Wed, Jul 29, 2009 at 10:44:46PM +0100, Ben Dooks wrote:
 [...]
   + const struct spi_device_id *id_table;
   + int (*probe_id)(struct spi_device *spi,
   + const struct spi_device_id *id);
  
  how about leaving it at just probe and have either a call or a field
  in the device that you can look at to see if this was a new style of
  call?
 
 There are no technical difficulties with that, but it would be
 inconsitent wrt other device table-aware buses (i2c, pci, of).

Btw, I guess there are few reasons why other buses pass id via
probe() call:

- You'll have to store the id in device struct forever, while
  in most cases you only need it during probe(), then you don't
  need it at all;

- If you don't store id in the device struct, you'll have
  to look up the device table twice (at first during bus-match(),
  and second time in drivers' probe() hook, i.e.
  probe(struct bus_dev *dev) {
id = bus_get_devid(dev); /* here */
  }

-- 
Anton Vorontsov
email: cbouatmai...@gmail.com
irc://irc.freenode.net/bd2
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: BUG in dma-mapping.h:218 // MESH SCSI driver not working

2009-07-29 Thread Benjamin Herrenschmidt
On Wed, 2009-07-29 at 20:22 +0200, Stef Simoens wrote:
 2.6.29 works OK
 2.6.30-rc1 doesn't work (BUG...)
 2.6.30-rc1 with your patch ... seems to hang when it should be
 mounting the root directory.
 
 Is it worthwhile doing a git bisect?

It probably is, since it should work with my patch, so something else
changed, maybe in the SCSI stack.

One thing I know is that the MESH HW has issues that make it very
sensitive to alignment DMA buffers, it's possible that the SCSI stack no
longer aligns some stuff ?

Cheers,
Ben.


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


Re: BUG in dma-mapping.h:218 // MESH SCSI driver not working

2009-07-29 Thread Stef Simoens

Benjamin Herrenschmidt schreef:

On Wed, 2009-07-29 at 20:22 +0200, Stef Simoens wrote:
  

2.6.29 works OK
2.6.30-rc1 doesn't work (BUG...)
2.6.30-rc1 with your patch ... seems to hang when it should be
mounting the root directory.

Is it worthwhile doing a git bisect?



It probably is, since it should work with my patch, so something else
changed, maybe in the SCSI stack.
  

What would be the best approach?
- if the kernel boots, it's obviously 'good'
- but what if the kernel hits the 'BUG', should I apply your patch then? 
If it doesn't work with your patch, would it be 'bad' then?

One thing I know is that the MESH HW has issues that make it very
sensitive to alignment DMA buffers, it's possible that the SCSI stack no
longer aligns some stuff ?
  

Hmm, great... how can I verify this?

--
Regards,
Stef Simoens

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

Re: BUG in dma-mapping.h:218 // MESH SCSI driver not working

2009-07-29 Thread Benjamin Herrenschmidt
On Thu, 2009-07-30 at 01:42 +0200, Stef Simoens wrote:
 What would be the best approach?
 - if the kernel boots, it's obviously 'good'
 - but what if the kernel hits the 'BUG', should I apply your patch
 then? If it doesn't work with your patch, would it be 'bad' then? 

Yes.

  One thing I know is that the MESH HW has issues that make it very
  sensitive to alignment DMA buffers, it's possible that the SCSI stack no
  longer aligns some stuff ?

 Hmm, great... how can I verify this? 

I will once we get a closer idea of where the bug started to happen.

Thanks !

Cheers,
Ben.


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


Re: [PATCH 1/7] spi: Add support for device table matching

2009-07-29 Thread Anton Vorontsov
On Thu, Jul 30, 2009 at 02:40:50AM +0400, Anton Vorontsov wrote:
[...]
 - If you don't store id in the device struct, you'll have
   to look up the device table twice (at first during bus-match(),
   and second time in drivers' probe() hook, i.e.
   probe(struct bus_dev *dev) {
   id = bus_get_devid(dev); /* here */
   }

Hm... actually, we're doing this anyway, but in spi core.

So, doing something like spi_get_device_id() might be a good
idea.

Thanks,

-- 
Anton Vorontsov
email: cbouatmai...@gmail.com
irc://irc.freenode.net/bd2
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH] powerpc/mm: Fix SMP issue with MMU context handling code

2009-07-29 Thread Kumar Gala
In switch_mmu_context() if we call steal_context_smp() to get a context
to use we shouldn't fall through and than call steal_context_up().  Doing
so can be problematic in that the 'mm' that steal_context_up() ends up
using will not get marked dirty in the stale_map[] for other CPUs that
might have used that mm.  Thus we could end up with stale TLB entries in
the other CPUs that can cause all kinda of havoc.

Signed-off-by: Kumar Gala ga...@kernel.crashing.org
Acked-by: Benjamin Herrenschmidt b...@kernel.crashing.org
---
 arch/powerpc/mm/mmu_context_nohash.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/mm/mmu_context_nohash.c 
b/arch/powerpc/mm/mmu_context_nohash.c
index 92a1971..b1a727d 100644
--- a/arch/powerpc/mm/mmu_context_nohash.c
+++ b/arch/powerpc/mm/mmu_context_nohash.c
@@ -217,6 +217,7 @@ void switch_mmu_context(struct mm_struct *prev, struct 
mm_struct *next)
id = steal_context_smp(id);
if (id == MMU_NO_CONTEXT)
goto again;
+   goto stolen;
}
 #endif /* CONFIG_SMP */
id = steal_context_up(id);
-- 
1.6.0.6

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


Re: [PATCH] powerpc/85xx: Fix ethernet link detection on MPC8569E-MDS boards

2009-07-29 Thread Kumar Gala


On Jun 24, 2009, at 11:30 AM, Anton Vorontsov wrote:


Linux isn't able to detect link changes on ethernet ports that were
used by U-Boot. This is because U-Boot wrongly clears interrupt
polarity bit (INTPOL, 0x400) in the extended status register (EXT_SR,
0x1b) of Marvell PHYs.

There is no easy way for PHY drivers to know IRQ line polarity (we
could extract it from the device tree and pass it to phydevs, but
that'll be quite a lot of work), so for now just reset the PHYs to
their default states.

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
arch/powerpc/platforms/85xx/mpc85xx_mds.c |   13 +
1 files changed, 13 insertions(+), 0 deletions(-)


applied to merge

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


Re: [PATCH] powerpc/85xx: Don't scan for TBI PHY addresses on MPC8569E-MDS boards

2009-07-29 Thread Kumar Gala


On Jul 1, 2009, at 12:39 PM, Anton Vorontsov wrote:


Sometimes (e.g. when there are no UEMs attached to a board)
fsl_pq_mdio_find_free() fails to find a spare address for a TBI PHY,
this is because get_phy_id() returns bogus 0x values
(0x is expected), and therefore mdio bus probing fails with
the following message:

 fsl-pq_mdio: probe of e0082120.mdio failed with error -16

And obviously ethernet doesn't work after this.

This patch solves the problem by adding tbi-phy node into mdio node,
so that we won't scan for spare addresses, we'll just use a fixed one.

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
arch/powerpc/boot/dts/mpc8569mds.dts |4 
1 files changed, 4 insertions(+), 0 deletions(-)


applied to merge

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


Re: [PATCH] powerpc/83xx: Fix PCI IO base address on MPC837xE-RDB boards

2009-07-29 Thread Kumar Gala


On Jul 20, 2009, at 4:36 PM, Anton Vorontsov wrote:


U-Boot maps PCI IO at 0xe030, while current dts files specify
0xe200. This leads to the following oops with  
CONFIG_8139TOO_PIO=y.


8139too Fast Ethernet driver 0.9.28
Machine check in kernel mode.
Caused by (from SRR1=41000): Transfer error ack signal
Oops: Machine check, sig: 7 [#1]
MPC837x RDB
[...]
NIP [0900] 0x900
LR [c0439df8] rtl8139_init_board+0x238/0x524
Call Trace:
[cf831d90] [c0439dcc] rtl8139_init_board+0x20c/0x524 (unreliable)
[cf831de0] [c043a15c] rtl8139_init_one+0x78/0x65c
[cf831e40] [c0235250] pci_call_probe+0x20/0x30
[...]

This patch fixes the issue by specifying the correct PCI IO base
address.

Signed-off-by: Anton Vorontsov avoront...@ru.mvista.com
---
arch/powerpc/boot/dts/mpc8377_rdb.dts |2 +-
arch/powerpc/boot/dts/mpc8378_rdb.dts |2 +-
arch/powerpc/boot/dts/mpc8379_rdb.dts |2 +-
3 files changed, 3 insertions(+), 3 deletions(-)


applied to merge

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


Re: [RFC/PATCH] powerpc: Don't use alloc_bootmem in cpm_uart_cpm2.c

2009-07-29 Thread Kumar Gala


On Jul 20, 2009, at 6:51 AM, Mark Ware wrote:


This is another alloc_bootmem() - kzalloc() change, this time to
fix the non-fatal badness caused when booting with a cpm2_uart  
console.


Signed-Off-By: Mark Ware mw...@elphinstone.net

---
drivers/serial/cpm_uart/cpm_uart_cpm2.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)


applied to merge (had to fix up patch by hand).

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


Re: [PATCH] powerpc/86xx: Update defconfig for GE Fanuc's PPC9A

2009-07-29 Thread Kumar Gala


On Jul 2, 2009, at 9:18 AM, Martyn Welch wrote:


General update of defconfig including the following notable changes:
- Enable GPIO access via sysfs on GE Fanuc's PPC9A.
- Enable Highmem support.
- Support for PCMCIA based daughter card.

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

arch/powerpc/configs/86xx/gef_ppc9a_defconfig |  518  
+

1 files changed, 196 insertions(+), 322 deletions(-)


applied to merge

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


Re: [PATCH] powerpc/86xx: Update GE Fanuc sbc310 default configuration

2009-07-29 Thread Kumar Gala


On Jul 2, 2009, at 9:18 AM, Martyn Welch wrote:


General update of defconfig including the following notable changes:
- Enable Highmem support.
- Support for PCMCIA based daughter card.

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

arch/powerpc/configs/86xx/gef_sbc310_defconfig |  213 +++ 
++---

1 files changed, 154 insertions(+), 59 deletions(-)



applied to merge

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


Re: [PATCH] powerpc/86xx: Update GE Fanuc sbc310 DTS

2009-07-29 Thread Kumar Gala


On Jul 2, 2009, at 9:18 AM, Martyn Welch wrote:

Update GE Fanuc DTS to match the alterations suggested during the  
merge of the ppc9a DTS in commit  
740d36ae6344f38c4da64c2ede765d7d2dd1f132


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

arch/powerpc/boot/dts/gef_sbc310.dts |   29  
+

1 files changed, 13 insertions(+), 16 deletions(-)


tried to apply this but wasn't able to.. please repost and will defer  
for .32 at this point (and fix the commit message since its a run on,  
guessing that might be related to why I couldn't apply it).


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


Please pull from 'merge' branch for 2.6.31

2009-07-29 Thread Kumar Gala
Please pull from 'merge' branch of

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

This is pretty much some bug fixes and defconfig updates.

- k

to receive the following updates:

 arch/powerpc/boot/dts/mpc8377_rdb.dts |2
 arch/powerpc/boot/dts/mpc8378_rdb.dts |2
 arch/powerpc/boot/dts/mpc8379_rdb.dts |2
 arch/powerpc/boot/dts/mpc8569mds.dts  |4
 arch/powerpc/configs/83xx/asp8347_defconfig   |  106 ++--
 arch/powerpc/configs/83xx/kmeter1_defconfig   |  176 ---
 arch/powerpc/configs/83xx/mpc8313_rdb_defconfig   |  168 +--
 arch/powerpc/configs/83xx/mpc8315_rdb_defconfig   |  168 +--
 arch/powerpc/configs/83xx/mpc832x_mds_defconfig   |  111 ++--
 arch/powerpc/configs/83xx/mpc832x_rdb_defconfig   |  120 ++---
 arch/powerpc/configs/83xx/mpc834x_itx_defconfig   |  114 ++--
 arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig |  114 ++--
 arch/powerpc/configs/83xx/mpc834x_mds_defconfig   |  104 ++--
 arch/powerpc/configs/83xx/mpc836x_mds_defconfig   |  111 ++--
 arch/powerpc/configs/83xx/mpc836x_rdk_defconfig   |  104 ++--
 arch/powerpc/configs/83xx/mpc837x_mds_defconfig   |  110 ++--
 arch/powerpc/configs/83xx/mpc837x_rdb_defconfig   |  162 --
 arch/powerpc/configs/83xx/sbc834x_defconfig   |  103 ++--
 arch/powerpc/configs/85xx/ksi8560_defconfig   |   93 ++-
 arch/powerpc/configs/85xx/mpc8540_ads_defconfig   |   91 ++-
 arch/powerpc/configs/85xx/mpc8560_ads_defconfig   |   99 ++--
 arch/powerpc/configs/85xx/mpc85xx_cds_defconfig   |   99 ++--
 arch/powerpc/configs/85xx/sbc8548_defconfig   |   96 ++--
 arch/powerpc/configs/85xx/sbc8560_defconfig   |   91 ++-
 arch/powerpc/configs/85xx/socrates_defconfig  |  165 --
 arch/powerpc/configs/85xx/stx_gp3_defconfig   |  119 +++--
 arch/powerpc/configs/85xx/tqm8540_defconfig   |  100 ++--
 arch/powerpc/configs/85xx/tqm8541_defconfig   |  101 ++--
 arch/powerpc/configs/85xx/tqm8548_defconfig   |  100 ++--
 arch/powerpc/configs/85xx/tqm8555_defconfig   |  101 ++--
 arch/powerpc/configs/85xx/tqm8560_defconfig   |  101 ++--
 arch/powerpc/configs/85xx/xes_mpc85xx_defconfig   |  118 ++--
 arch/powerpc/configs/86xx/gef_ppc9a_defconfig |  521 --
 arch/powerpc/configs/86xx/gef_sbc310_defconfig|  216 ++---
 arch/powerpc/configs/86xx/gef_sbc610_defconfig|  130 +++--
 arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig  |  118 +++-
 arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig  |  186 +++
 arch/powerpc/configs/86xx/sbc8641d_defconfig  |  112 +++-
 arch/powerpc/configs/adder875_defconfig   |   97 ++--
 arch/powerpc/configs/c2k_defconfig|  121 +++--
 arch/powerpc/configs/ep8248e_defconfig|   97 ++--
 arch/powerpc/configs/ep88xc_defconfig |   91 ++-
 arch/powerpc/configs/linkstation_defconfig|  116 +++-
 arch/powerpc/configs/mgcoge_defconfig |   97 ++--
 arch/powerpc/configs/mgsuvd_defconfig |   89 ++-
 arch/powerpc/configs/mpc7448_hpc2_defconfig   |  103 ++--
 arch/powerpc/configs/mpc8272_ads_defconfig|  104 ++--
 arch/powerpc/configs/mpc83xx_defconfig|  162 --
 arch/powerpc/configs/mpc85xx_defconfig|  193 +++-
 arch/powerpc/configs/mpc85xx_smp_defconfig|  193 +++-
 arch/powerpc/configs/mpc866_ads_defconfig |   92 ++-
 arch/powerpc/configs/mpc86xx_defconfig|  186 +++
 arch/powerpc/configs/mpc885_ads_defconfig |   91 ++-
 arch/powerpc/configs/pq2fads_defconfig|  110 ++--
 arch/powerpc/configs/prpmc2800_defconfig  |  158 --
 arch/powerpc/configs/storcenter_defconfig |  108 ++--
 arch/powerpc/mm/mmu_context_nohash.c  |1
 arch/powerpc/platforms/85xx/mpc85xx_mds.c |   13
 drivers/serial/cpm_uart/cpm_uart_cpm2.c   |2
 59 files changed, 4007 insertions(+), 2755 deletions(-)

Anton Vorontsov (3):
  powerpc/85xx: Fix ethernet link detection on MPC8569E-MDS boards
  powerpc/85xx: Don't scan for TBI PHY addresses on MPC8569E-MDS boards
  powerpc/83xx: Fix PCI IO base address on MPC837xE-RDB boards

Kumar Gala (2):
  powerpc/mm: Fix SMP issue with MMU context handling code
  powerpc: Update defconfigs for embedded 6xx/7xxx, 8xx, 8{3,5,6}xxx

Mark Ware (1):
  cpm_uart: Don't use alloc_bootmem in cpm_uart_cpm2.c

Martyn Welch (2):
  powerpc/86xx: Update defconfig for GE Fanuc's PPC9A
  powerpc/86xx: Update GE Fanuc sbc310 default configuration

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


fsldma patches?

2009-07-29 Thread Kumar Gala

Dan,

What happened with the set of patches that Ira posted for fsldma?

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


Re: 82xx, mgcoge: updates for 2.6.32

2009-07-29 Thread Heiko Schocher
Hello David,

David Gibson wrote:
 On Wed, Jul 29, 2009 at 10:32:30AM +0200, Heiko Schocher wrote:
 
 [snip]
 +m...@10d40 {
 +device_type = mdio;
 
 Drop this device_type.

Done.

 +compatible = fsl,cpm2-mdio-bitbang;
 +reg = 0x10d00 0x14;
 +#address-cells = 1;
 +#size-cells = 0;
 +fsl,mdio-pin = 12;
 +fsl,mdc-pin = 13;
 +
 +phy0: ethernet-...@0 {
 +reg = 0x0;
 +device_type = ethernet-phy;
 
 And this one, too.

Done.

 +};
 +
 +phy1: ethernet-...@1 {
 +reg = 0x1;
 +device_type = ethernet-phy;
 +};
 +};
 

I collect more comments, then the patch follows.
Thanks
bye
Heiko
-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: 82xx, mgcoge: updates for 2.6.32

2009-07-29 Thread Heiko Schocher
Hello Kumar,

Kumar Gala wrote:
 
 On Jul 29, 2009, at 3:32 AM, Heiko Schocher wrote:
 
 - add I2C support
 - add FCC1 and FCC2 support
 - fix bogus gpio numbering in plattformcode

 Signed-off-by: Heiko Schocher h...@denx.de
 ---
 - based on git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git
  next branch
 - checked with checkpatch.pl:
 $ ./scripts/checkpatch.pl 0001-82xx-mgcoge-updates-for-2.6.32.patch
 total: 0 errors, 0 warnings, 531 lines checked

 0001-82xx-mgcoge-updates-for-2.6.32.patch has no obvious style
 problems and is ready for submission.
 $

 BTW: Who is PPC82XX Maintainer? I couldn;t find such an entry
 in the MAINTAINERS file ...
 
 its me.

Ah, thought it, but I wasn;t sure ... Hmm, maybe you can update
the MAINTAINERS entry?

 arch/powerpc/boot/dts/mgcoge.dts  |   56 ++
 arch/powerpc/configs/mgcoge_defconfig |  178
 +---
 
 Can we hold off or pull the defconfig update into a separate patch.  I
 normally update defconfigs in a late -rc series and that will probably
 generate merge conflicts.

I make a seperate patch for the defconfig.

Thanks. I wait for more comments, before I post the next version
of this patch.
bye
Heiko
-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev