diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-21 21:55:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-21 21:55:10 -0400 |
commit | 5375871d432ae9fc581014ac117b96aaee3cd0c7 (patch) | |
tree | be98e8255b0f927fb920fb532a598b93fa140dbe /arch/powerpc/platforms/powermac | |
parent | b57cb7231b2ce52d3dda14a7b417ae125fb2eb97 (diff) | |
parent | dfbc2d75c1bd47c3186fa91f1655ea2f3825b0ec (diff) |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
Pull powerpc merge from Benjamin Herrenschmidt:
"Here's the powerpc batch for this merge window. It is going to be a
bit more nasty than usual as in touching things outside of
arch/powerpc mostly due to the big iSeriesectomy :-) We finally got
rid of the bugger (legacy iSeries support) which was a PITA to
maintain and that nobody really used anymore.
Here are some of the highlights:
- Legacy iSeries is gone. Thanks Stephen ! There's still some bits
and pieces remaining if you do a grep -ir series arch/powerpc but
they are harmless and will be removed in the next few weeks
hopefully.
- The 'fadump' functionality (Firmware Assisted Dump) replaces the
previous (equivalent) "pHyp assisted dump"... it's a rewrite of a
mechanism to get the hypervisor to do crash dumps on pSeries, the
new implementation hopefully being much more reliable. Thanks
Mahesh Salgaonkar.
- The "EEH" code (pSeries PCI error handling & recovery) got a big
spring cleaning, motivated by the need to be able to implement a
new backend for it on top of some new different type of firwmare.
The work isn't complete yet, but a good chunk of the cleanups is
there. Note that this adds a field to struct device_node which is
not very nice and which Grant objects to. I will have a patch soon
that moves that to a powerpc private data structure (hopefully
before rc1) and we'll improve things further later on (hopefully
getting rid of the need for that pointer completely). Thanks Gavin
Shan.
- I dug into our exception & interrupt handling code to improve the
way we do lazy interrupt handling (and make it work properly with
"edge" triggered interrupt sources), and while at it found & fixed
a wagon of issues in those areas, including adding support for page
fault retry & fatal signals on page faults.
- Your usual random batch of small fixes & updates, including a bunch
of new embedded boards, both Freescale and APM based ones, etc..."
I fixed up some conflicts with the generalized irq-domain changes from
Grant Likely, hopefully correctly.
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (141 commits)
powerpc/ps3: Do not adjust the wrapper load address
powerpc: Remove the rest of the legacy iSeries include files
powerpc: Remove the remaining CONFIG_PPC_ISERIES pieces
init: Remove CONFIG_PPC_ISERIES
powerpc: Remove FW_FEATURE ISERIES from arch code
tty/hvc_vio: FW_FEATURE_ISERIES is no longer selectable
powerpc/spufs: Fix double unlocks
powerpc/5200: convert mpc5200 to use of_platform_populate()
powerpc/mpc5200: add options to mpc5200_defconfig
powerpc/mpc52xx: add a4m072 board support
powerpc/mpc5200: update mpc5200_defconfig to fit for charon board
Documentation/powerpc/mpc52xx.txt: Checkpatch cleanup
powerpc/44x: Add additional device support for APM821xx SoC and Bluestone board
powerpc/44x: Add support PCI-E for APM821xx SoC and Bluestone board
MAINTAINERS: Update PowerPC 4xx tree
powerpc/44x: The bug fixed support for APM821xx SoC and Bluestone board
powerpc: document the FSL MPIC message register binding
powerpc: add support for MPIC message register API
powerpc/fsl: Added aliased MSIIR register address to MSI node in dts
powerpc/85xx: mpc8548cds - add 36-bit dts
...
Diffstat (limited to 'arch/powerpc/platforms/powermac')
-rw-r--r-- | arch/powerpc/platforms/powermac/nvram.c | 42 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/pic.c | 1 |
2 files changed, 19 insertions, 24 deletions
diff --git a/arch/powerpc/platforms/powermac/nvram.c b/arch/powerpc/platforms/powermac/nvram.c index 54d227127c9f..da18b26dcc6f 100644 --- a/arch/powerpc/platforms/powermac/nvram.c +++ b/arch/powerpc/platforms/powermac/nvram.c | |||
@@ -279,7 +279,7 @@ static u32 core99_check(u8* datas) | |||
279 | 279 | ||
280 | static int sm_erase_bank(int bank) | 280 | static int sm_erase_bank(int bank) |
281 | { | 281 | { |
282 | int stat, i; | 282 | int stat; |
283 | unsigned long timeout; | 283 | unsigned long timeout; |
284 | 284 | ||
285 | u8 __iomem *base = (u8 __iomem *)nvram_data + core99_bank*NVRAM_SIZE; | 285 | u8 __iomem *base = (u8 __iomem *)nvram_data + core99_bank*NVRAM_SIZE; |
@@ -301,11 +301,10 @@ static int sm_erase_bank(int bank) | |||
301 | out_8(base, SM_FLASH_CMD_CLEAR_STATUS); | 301 | out_8(base, SM_FLASH_CMD_CLEAR_STATUS); |
302 | out_8(base, SM_FLASH_CMD_RESET); | 302 | out_8(base, SM_FLASH_CMD_RESET); |
303 | 303 | ||
304 | for (i=0; i<NVRAM_SIZE; i++) | 304 | if (memchr_inv(base, 0xff, NVRAM_SIZE)) { |
305 | if (base[i] != 0xff) { | 305 | printk(KERN_ERR "nvram: Sharp/Micron flash erase failed !\n"); |
306 | printk(KERN_ERR "nvram: Sharp/Micron flash erase failed !\n"); | 306 | return -ENXIO; |
307 | return -ENXIO; | 307 | } |
308 | } | ||
309 | return 0; | 308 | return 0; |
310 | } | 309 | } |
311 | 310 | ||
@@ -336,17 +335,16 @@ static int sm_write_bank(int bank, u8* datas) | |||
336 | } | 335 | } |
337 | out_8(base, SM_FLASH_CMD_CLEAR_STATUS); | 336 | out_8(base, SM_FLASH_CMD_CLEAR_STATUS); |
338 | out_8(base, SM_FLASH_CMD_RESET); | 337 | out_8(base, SM_FLASH_CMD_RESET); |
339 | for (i=0; i<NVRAM_SIZE; i++) | 338 | if (memcmp(base, datas, NVRAM_SIZE)) { |
340 | if (base[i] != datas[i]) { | 339 | printk(KERN_ERR "nvram: Sharp/Micron flash write failed !\n"); |
341 | printk(KERN_ERR "nvram: Sharp/Micron flash write failed !\n"); | 340 | return -ENXIO; |
342 | return -ENXIO; | 341 | } |
343 | } | ||
344 | return 0; | 342 | return 0; |
345 | } | 343 | } |
346 | 344 | ||
347 | static int amd_erase_bank(int bank) | 345 | static int amd_erase_bank(int bank) |
348 | { | 346 | { |
349 | int i, stat = 0; | 347 | int stat = 0; |
350 | unsigned long timeout; | 348 | unsigned long timeout; |
351 | 349 | ||
352 | u8 __iomem *base = (u8 __iomem *)nvram_data + core99_bank*NVRAM_SIZE; | 350 | u8 __iomem *base = (u8 __iomem *)nvram_data + core99_bank*NVRAM_SIZE; |
@@ -382,12 +380,11 @@ static int amd_erase_bank(int bank) | |||
382 | /* Reset */ | 380 | /* Reset */ |
383 | out_8(base, 0xf0); | 381 | out_8(base, 0xf0); |
384 | udelay(1); | 382 | udelay(1); |
385 | 383 | ||
386 | for (i=0; i<NVRAM_SIZE; i++) | 384 | if (memchr_inv(base, 0xff, NVRAM_SIZE)) { |
387 | if (base[i] != 0xff) { | 385 | printk(KERN_ERR "nvram: AMD flash erase failed !\n"); |
388 | printk(KERN_ERR "nvram: AMD flash erase failed !\n"); | 386 | return -ENXIO; |
389 | return -ENXIO; | 387 | } |
390 | } | ||
391 | return 0; | 388 | return 0; |
392 | } | 389 | } |
393 | 390 | ||
@@ -429,11 +426,10 @@ static int amd_write_bank(int bank, u8* datas) | |||
429 | out_8(base, 0xf0); | 426 | out_8(base, 0xf0); |
430 | udelay(1); | 427 | udelay(1); |
431 | 428 | ||
432 | for (i=0; i<NVRAM_SIZE; i++) | 429 | if (memcmp(base, datas, NVRAM_SIZE)) { |
433 | if (base[i] != datas[i]) { | 430 | printk(KERN_ERR "nvram: AMD flash write failed !\n"); |
434 | printk(KERN_ERR "nvram: AMD flash write failed !\n"); | 431 | return -ENXIO; |
435 | return -ENXIO; | 432 | } |
436 | } | ||
437 | return 0; | 433 | return 0; |
438 | } | 434 | } |
439 | 435 | ||
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 92afc382a49e..66ad93de1d55 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c | |||
@@ -457,7 +457,6 @@ static struct mpic * __init pmac_setup_one_mpic(struct device_node *np, | |||
457 | 457 | ||
458 | pmac_call_feature(PMAC_FTR_ENABLE_MPIC, np, 0, 0); | 458 | pmac_call_feature(PMAC_FTR_ENABLE_MPIC, np, 0, 0); |
459 | 459 | ||
460 | flags |= MPIC_WANTS_RESET; | ||
461 | if (of_get_property(np, "big-endian", NULL)) | 460 | if (of_get_property(np, "big-endian", NULL)) |
462 | flags |= MPIC_BIG_ENDIAN; | 461 | flags |= MPIC_BIG_ENDIAN; |
463 | 462 | ||