LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: Next July 29 : Hugetlb test failure (OOPS free_hugepte_range)
From: Sachin Sant @ 2009-07-30 12:25 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: Stephen Rothwell, linux-next, linuxppc-dev
In-Reply-To: <4A706504.6040704@in.ibm.com>

Sachin Sant wrote:
> 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.
Hi Ben,

Reverting the above patch helped. The tests ran fine against the
patched kernel. But ofcourse that's not the solution :-)

Here is some data from xmon that might help find the reason for
the failure. This is with today's next.

: ------------[ cut here ]------------
cpu 0x0: Vector: 700 (Program Check) at [c000000038923560]
    pc: c0000000000486d4: .free_hugepte_range+0x68/0xa0
    lr: c000000000048954: .hugetlb_free_pgd_range+0x248/0x38c
    sp: c0000000389237e0
   msr: 8000000000029032
  current = 0xc00000003b1d7780
  paca    = 0xc000000001002400
    pid   = 2839, comm = readback
kernel BUG at /home/linux-2.6.31-rc4/arch/powerpc/include/asm/pgalloc.h:36!
enter ? for help
[c000000038923880] c000000000048954 .hugetlb_free_pgd_range+0x248/0x38c
[c000000038923970] c000000000165a48 .free_pgtables+0xa0/0x154
[c000000038923a30] c000000000167f78 .exit_mmap+0x13c/0x1cc
[c000000038923ae0] c0000000000997ec .mmput+0x68/0x14c
[c000000038923b70] c00000000009f1d4 .exit_mm+0x190/0x1b8
[c000000038923c20] c0000000000a16e8 .do_exit+0x214/0x784
[c000000038923d00] c0000000000a1d1c .do_group_exit+0xc4/0xf8
[c000000038923da0] c0000000000a1d7c .SyS_exit_group+0x2c/0x48
[c000000038923e30] c0000000000085b4 syscall_exit+0x0/0x40
--- Exception: c01 (System Call) at 000000000fe15038
SP (ffb8e030) is in userspace
0:mon> e
cpu 0x0: Vector: 700 (Program Check) at [c000000038923560]
    pc: c0000000000486d4: .free_hugepte_range+0x68/0xa0
    lr: c000000000048954: .hugetlb_free_pgd_range+0x248/0x38c
    sp: c0000000389237e0
   msr: 8000000000029032
  current = 0xc00000003b1d7780
  paca    = 0xc000000001002400
    pid   = 2839, comm = readback
kernel BUG at /home/linux-2.6.31-rc4/arch/powerpc/include/asm/pgalloc.h:36!
0:mon> r
R00 = 0000000000000001   R16 = 0000000000000000
R01 = c0000000389237e0   R17 = 0000000000000001
R02 = c000000000f165a8   R18 = 000000003fffffff
R03 = c0000000014504d0   R19 = 0000000000000000
R04 = c000000039390001   R20 = 0000000000000000
R05 = 0000000000000007   R21 = 0000010000000000
R06 = 0000000000000000   R22 = 0000000040000000
R07 = 0000000040000000   R23 = c0000000014504d0
R08 = c00000003d708188   R24 = 000000003fffffff
R09 = c00000003eb40000   R25 = 0000000000000007
R10 = c00000003d708188   R26 = c00000003ebd41b8
R11 = 0000000000000018   R27 = c0000000014504d0
R12 = 0000000040000448   R28 = c00000003eb40018
R13 = c000000001002400   R29 = 0000000000000008
R14 = 00000000ffffffff   R30 = 0000000040000000
R15 = 00000000ffffffff   R31 = c0000000389237e0
pc  = c0000000000486d4 .free_hugepte_range+0x68/0xa0
lr  = c000000000048954 .hugetlb_free_pgd_range+0x248/0x38c
msr = 8000000000029032   cr  = 20042444
ctr = 800000000000b6f4   xer = 0000000000000001   trap =  700
0:mon> 

Line 36 of arch/powerpc/include/asm/pgalloc.h corresponds to

BUG_ON(cachenum > PGF_CACHENUM_MASK);

May be something to do with number of elements in huge_pgtable_cache_name ??

Thanks
-Sachin

-- 

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

^ permalink raw reply

* [git pull] Please pull powerpc.git merge branch
From: Benjamin Herrenschmidt @ 2009-07-30 11:13 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linuxppc-dev list, Andrew Morton, Linux Kernel list

Hi Linus !

Here's a bunch of defconfig updates for freescale embedded platforms
along with a handful of fixes for those from Kumar, and one important
one liner fix for a thinko/typo by myself in the embedded CPU context
management code on SMP.

The following changes since commit 658874f05d040ca96eb5ba9b1c30ce0ff287d762:
  Linus Torvalds (1):
        Merge branch 'i2c-fixes-rc4' of git://aeryn.fluff.org.uk/bjdooks/linux

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git merge

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

 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(-)

^ permalink raw reply

* [PATCH v2] powerpc/86xx: Update GE Fanuc sbc310 DTS
From: Martyn Welch @ 2009-07-30  8:13 UTC (permalink / raw)
  To: galak; +Cc: linuxppc-dev

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.welch@gefanuc.com>
---

v2: Fixed run on message.

Kumar: I think the problem may be that this patch depends on a previous patch:

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

Martyn

 arch/powerpc/boot/dts/gef_sbc310.dts |   29 +++++++++++++----------------
 1 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/arch/powerpc/boot/dts/gef_sbc310.dts b/arch/powerpc/boot/dts/gef_sbc310.dts
index 7810ea9..2107d3c 100644
--- a/arch/powerpc/boot/dts/gef_sbc310.dts
+++ b/arch/powerpc/boot/dts/gef_sbc310.dts
@@ -83,34 +83,34 @@
 
 		/* flash@0,0 is a mirror of part of the memory in flash@1,0
 		flash@0,0 {
-			compatible = "cfi-flash";
-			reg = <0 0 0x01000000>;
+			compatible = "gef,sbc310-firmware-mirror", "cfi-flash";
+			reg = <0x0 0x0 0x01000000>;
 			bank-width = <2>;
 			device-width = <2>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			partition@0 {
 				label = "firmware";
-				reg = <0x00000000 0x01000000>;
+				reg = <0x0 0x01000000>;
 				read-only;
 			};
 		};
 		*/
 
 		flash@1,0 {
-			compatible = "cfi-flash";
-			reg = <1 0 0x8000000>;
+			compatible = "gef,sbc310-paged-flash", "cfi-flash";
+			reg = <0x1 0x0 0x8000000>;
 			bank-width = <2>;
 			device-width = <2>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			partition@0 {
 				label = "user";
-				reg = <0x00000000 0x07800000>;
+				reg = <0x0 0x7800000>;
 			};
 			partition@7800000 {
 				label = "firmware";
-				reg = <0x07800000 0x00800000>;
+				reg = <0x7800000 0x800000>;
 				read-only;
 			};
 		};
@@ -121,18 +121,16 @@
 		};
 
 		wdt@4,2000 {
-			#interrupt-cells = <2>;
-			device_type = "watchdog";
-			compatible = "gef,fpga-wdt";
+			compatible = "gef,sbc310-fpga-wdt", "gef,fpga-wdt-1.00",
+				"gef,fpga-wdt";
 			reg = <0x4 0x2000 0x8>;
 			interrupts = <0x1a 0x4>;
 			interrupt-parent = <&gef_pic>;
 		};
 /*
 		wdt@4,2010 {
-			#interrupt-cells = <2>;
-			device_type = "watchdog";
-			compatible = "gef,fpga-wdt";
+			compatible = "gef,sbc310-fpga-wdt", "gef,fpga-wdt-1.00",
+				"gef,fpga-wdt";
 			reg = <0x4 0x2010 0x8>;
 			interrupts = <0x1b 0x4>;
 			interrupt-parent = <&gef_pic>;
@@ -141,7 +139,7 @@
 		gef_pic: pic@4,4000 {
 			#interrupt-cells = <1>;
 			interrupt-controller;
-			compatible = "gef,fpga-pic";
+			compatible = "gef,sbc310-fpga-pic", "gef,fpga-pic";
 			reg = <0x4 0x4000 0x20>;
 			interrupts = <0x8
 				      0x9>;
@@ -161,7 +159,7 @@
 		#size-cells = <1>;
 		#interrupt-cells = <2>;
 		device_type = "soc";
-		compatible = "simple-bus";
+		compatible = "fsl,mpc8641-soc", "simple-bus";
 		ranges = <0x0 0xfef00000 0x00100000>;
 		bus-frequency = <33333333>;
 
@@ -412,5 +410,4 @@
 				  0x0 0x00400000>;
 		};
 	};
-
 };

^ permalink raw reply related

* Re: 82xx, mgcoge: updates for 2.6.32
From: Heiko Schocher @ 2009-07-30  5:31 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <820BFB98-F940-4B5C-8D4A-9C069B3DC199@kernel.crashing.org>

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 <hs@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

^ permalink raw reply

* Re: 82xx, mgcoge: updates for 2.6.32
From: Heiko Schocher @ 2009-07-30  5:29 UTC (permalink / raw)
  To: david; +Cc: linuxppc-dev
In-Reply-To: <20090729103203.GA6369@yookeroo.seuss>

Hello David,

David Gibson wrote:
> On Wed, Jul 29, 2009 at 10:32:30AM +0200, Heiko Schocher wrote:
> 
> [snip]
>> +			mdio@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-phy@0 {
>> +					reg = <0x0>;
>> +					device_type = "ethernet-phy";
> 
> And this one, too.

Done.

>> +				};
>> +
>> +				phy1: ethernet-phy@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

^ permalink raw reply

* fsldma patches?
From: Kumar Gala @ 2009-07-30  4:40 UTC (permalink / raw)
  To: Dan Williams; +Cc: Linuxppc-dev Development, Ira W. Snyder

Dan,

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

- k

^ permalink raw reply

* Please pull from 'merge' branch for 2.6.31
From: Kumar Gala @ 2009-07-30  4:38 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

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

^ permalink raw reply

* Re: [PATCH] powerpc/86xx: Update GE Fanuc sbc310 DTS
From: Kumar Gala @ 2009-07-30  4:33 UTC (permalink / raw)
  To: Martyn Welch; +Cc: linuxppc-dev
In-Reply-To: <20090702141825.22330.83064.stgit@ES-J7S4D2J.amer.consind.ge.com>


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.welch@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

^ permalink raw reply

* Re: [PATCH] powerpc/86xx: Update GE Fanuc sbc310 default configuration
From: Kumar Gala @ 2009-07-30  4:32 UTC (permalink / raw)
  To: Martyn Welch; +Cc: linuxppc-dev
In-Reply-To: <20090702141844.22370.87052.stgit@ES-J7S4D2J.amer.consind.ge.com>


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.welch@gefanuc.com>
> ---
>
> arch/powerpc/configs/86xx/gef_sbc310_defconfig |  213 +++++++++++++++ 
> ++-------
> 1 files changed, 154 insertions(+), 59 deletions(-)


applied to merge

- k

^ permalink raw reply

* Re: [PATCH] powerpc/86xx: Update defconfig for GE Fanuc's PPC9A
From: Kumar Gala @ 2009-07-30  4:32 UTC (permalink / raw)
  To: Martyn Welch; +Cc: linuxppc-dev
In-Reply-To: <20090702141835.22350.25503.stgit@ES-J7S4D2J.amer.consind.ge.com>


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.welch@gefanuc.com>
> ---
>
> arch/powerpc/configs/86xx/gef_ppc9a_defconfig |  518 ++++++++ 
> +----------------
> 1 files changed, 196 insertions(+), 322 deletions(-)

applied to merge

- k

^ permalink raw reply

* Re: [RFC/PATCH] powerpc: Don't use alloc_bootmem in cpm_uart_cpm2.c
From: Kumar Gala @ 2009-07-30  4:22 UTC (permalink / raw)
  To: Mark Ware; +Cc: Linuxppc-dev Development
In-Reply-To: <4A645A27.7040002@elphinstone.net>


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 <mware@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

^ permalink raw reply

* Re: [PATCH] powerpc/83xx: Fix PCI IO base address on MPC837xE-RDB boards
From: Kumar Gala @ 2009-07-30  4:18 UTC (permalink / raw)
  To: Anton Vorontsov; +Cc: linuxppc-dev
In-Reply-To: <20090720213643.GA4209@oksana.dev.rtsoft.ru>


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

> U-Boot maps PCI IO at 0xe0300000, while current dts files specify
> 0xe2000000. 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 [00000900] 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 <avorontsov@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

^ permalink raw reply

* Re: [PATCH] powerpc/85xx: Don't scan for TBI PHY addresses on MPC8569E-MDS boards
From: Kumar Gala @ 2009-07-30  4:16 UTC (permalink / raw)
  To: Anton Vorontsov; +Cc: linuxppc-dev
In-Reply-To: <20090701173925.GA22134@oksana.dev.rtsoft.ru>


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 0x0000ffff values
> (0xffffffff 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 <avorontsov@ru.mvista.com>
> ---
> arch/powerpc/boot/dts/mpc8569mds.dts |    4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)

applied to merge

- k

^ permalink raw reply

* Re: [PATCH] powerpc/85xx: Fix ethernet link detection on MPC8569E-MDS boards
From: Kumar Gala @ 2009-07-30  4:14 UTC (permalink / raw)
  To: Anton Vorontsov; +Cc: linuxppc-dev
In-Reply-To: <20090624163028.GA18825@oksana.dev.rtsoft.ru>


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 <avorontsov@ru.mvista.com>
> ---
> arch/powerpc/platforms/85xx/mpc85xx_mds.c |   13 +++++++++++++
> 1 files changed, 13 insertions(+), 0 deletions(-)

applied to merge

- k

^ permalink raw reply

* [PATCH] powerpc/mm: Fix SMP issue with MMU context handling code
From: Kumar Gala @ 2009-07-30  4:13 UTC (permalink / raw)
  To: linuxppc-dev

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 <galak@kernel.crashing.org>
Acked-by: Benjamin Herrenschmidt <benh@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

^ permalink raw reply related

* Re: [PATCH 1/7] spi: Add support for device table matching
From: Anton Vorontsov @ 2009-07-30  2:12 UTC (permalink / raw)
  To: Ben Dooks
  Cc: David Brownell, linux-kernel, lm-sensors, linuxppc-dev, linux-mtd,
	Jean Delvare, Andrew Morton, David Woodhouse
In-Reply-To: <20090729224050.GA17902@oksana.dev.rtsoft.ru>

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: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2

^ permalink raw reply

* Re: BUG in dma-mapping.h:218 // MESH SCSI driver not working
From: Benjamin Herrenschmidt @ 2009-07-30  0:52 UTC (permalink / raw)
  To: Stef Simoens; +Cc: linuxppc-dev
In-Reply-To: <4A70DE54.5090406@scarlet.be>

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.

^ permalink raw reply

* Re: BUG in dma-mapping.h:218 // MESH SCSI driver not working
From: Stef Simoens @ 2009-07-29 23:42 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev
In-Reply-To: <1248910358.1509.27.camel@pasglop>

[-- Attachment #1: Type: text/plain, Size: 869 bytes --]

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


[-- Attachment #2: Type: text/html, Size: 1422 bytes --]

^ permalink raw reply

* Re: BUG in dma-mapping.h:218 // MESH SCSI driver not working
From: Benjamin Herrenschmidt @ 2009-07-29 23:32 UTC (permalink / raw)
  To: Stef Simoens; +Cc: linuxppc-dev
In-Reply-To: <4A70937B.7040201@scarlet.be>

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.

^ permalink raw reply

* Re: [PATCH 1/7] spi: Add support for device table matching
From: Anton Vorontsov @ 2009-07-29 22:40 UTC (permalink / raw)
  To: Ben Dooks
  Cc: David Brownell, linux-kernel, lm-sensors, linuxppc-dev, linux-mtd,
	Jean Delvare, Andrew Morton, David Woodhouse
In-Reply-To: <20090729223223.GA15280@oksana.dev.rtsoft.ru>

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: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2

^ permalink raw reply

* Re: [PATCH 1/7] spi: Add support for device table matching
From: Anton Vorontsov @ 2009-07-29 22:32 UTC (permalink / raw)
  To: Ben Dooks
  Cc: David Brownell, linux-kernel, lm-sensors, linuxppc-dev, linux-mtd,
	Jean Delvare, Andrew Morton, David Woodhouse
In-Reply-To: <20090729214446.GB1728@fluff.org.uk>

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: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2

^ permalink raw reply

* Re: [PATCH 1/7] spi: Add support for device table matching
From: Ben Dooks @ 2009-07-29 21:44 UTC (permalink / raw)
  To: Anton Vorontsov
  Cc: David Brownell, linux-kernel, lm-sensors, linuxppc-dev, linux-mtd,
	Jean Delvare, Andrew Morton, David Woodhouse
In-Reply-To: <20090729170457.GA4803@oksana.dev.rtsoft.ru>

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 <avorontsov@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;
> -	char			modalias[32];
> +	char			modalias[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 *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 too
>  	 */
> -	char		modalias[32];
> +	char		modalias[SPI_NAME_SIZE];
>  	const void	*platform_data;
>  	void		*controller_data;
>  	int		irq;
> diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
> index 40e0045..9d446e3 100644
> --- a/scripts/mod/file2alias.c
> +++ b/scripts/mod/file2alias.c
> @@ -657,6 +657,15 @@ static int do_i2c_entry(const char *filename, struct i2c_device_id *id,
>  	return 1;
>  }
>  
> +/* Looks like: S */
> +static int do_spi_entry(const char *filename, struct spi_device_id *id,
> +			char *alias)
> +{
> +	sprintf(alias, "%s", id->name);
> +
> +	return 1;
> +}
> +
>  static const struct dmifield {
>  	const char *prefix;
>  	int field;
> @@ -853,6 +862,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
>  		do_table(symval, sym->st_size,
>  			 sizeof(struct i2c_device_id), "i2c",
>  			 do_i2c_entry, mod);
> +	else if (sym_is(symname, "__mod_spi_device_table"))
> +		do_table(symval, sym->st_size,
> +			 sizeof(struct spi_device_id), "spi",
> +			 do_spi_entry, mod);
>  	else if (sym_is(symname, "__mod_dmi_device_table"))
>  		do_table(symval, sym->st_size,
>  			 sizeof(struct dmi_system_id), "dmi",
> -- 
> 1.6.3.3
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
Ben (ben@fluff.org, http://www.fluff.org/)

  'a smiley only costs 4 bytes'

^ permalink raw reply

* Re: [PATCH][sata_fsl] Defer non-ncq commands when ncq commands active
From: Robert Hancock @ 2009-07-29 19:48 UTC (permalink / raw)
  To: ashish kalra; +Cc: linux-ide, linuxppc-dev
In-Reply-To: <Pine.WNT.4.64.0907292129310.4440@B00888-02.fsl.freescale.net>

On 07/29/2009 10:03 AM, ashish kalra wrote:
> From: Ashish Kalra <Ashish.Kalra@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.Kalra@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.

^ permalink raw reply

* Re: BUG in dma-mapping.h:218 // MESH SCSI driver not working
From: Stef Simoens @ 2009-07-29 18:22 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev
In-Reply-To: <1248425553.25467.20.camel@pasglop>

[-- Attachment #1: Type: text/plain, Size: 650 bytes --]

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



[-- Attachment #2: Type: text/html, Size: 1112 bytes --]

^ permalink raw reply

* [PATCH 7/7] hwmon: lm70: Convert to device table matching
From: Anton Vorontsov @ 2009-07-29 17:05 UTC (permalink / raw)
  To: Andrew Morton
  Cc: David Brownell, linux-kernel, lm-sensors, linuxppc-dev, linux-mtd,
	Jean Delvare, David Woodhouse
In-Reply-To: <20090729170345.GA26787@oksana.dev.rtsoft.ru>

This patch makes the code a little bit nicer, and shorter.

Signed-off-by: Anton Vorontsov <avorontsov@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

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox