diff options
| author | Ingo Molnar <mingo@elte.hu> | 2010-09-15 04:27:31 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2010-09-15 04:27:31 -0400 |
| commit | 3aabae7d9dfaed60effe93662f02c19bafc18537 (patch) | |
| tree | af94cdd69add07601d9f3f5988dfc1dc255e3886 /arch | |
| parent | 79e406d7b00ab2b261ae32a59f266fd3b7af6f29 (diff) | |
| parent | 57c072c7113f54f9512624d6c665db6184448782 (diff) | |
Merge branch 'tip/perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core
Diffstat (limited to 'arch')
120 files changed, 869 insertions, 962 deletions
diff --git a/arch/alpha/include/asm/cache.h b/arch/alpha/include/asm/cache.h index f199e69a5d0b..ad368a93a46a 100644 --- a/arch/alpha/include/asm/cache.h +++ b/arch/alpha/include/asm/cache.h | |||
| @@ -17,7 +17,6 @@ | |||
| 17 | # define L1_CACHE_SHIFT 5 | 17 | # define L1_CACHE_SHIFT 5 |
| 18 | #endif | 18 | #endif |
| 19 | 19 | ||
| 20 | #define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1)) | ||
| 21 | #define SMP_CACHE_BYTES L1_CACHE_BYTES | 20 | #define SMP_CACHE_BYTES L1_CACHE_BYTES |
| 22 | 21 | ||
| 23 | #endif | 22 | #endif |
diff --git a/arch/alpha/kernel/err_marvel.c b/arch/alpha/kernel/err_marvel.c index 52a79dfc13c6..5c905aaaeccd 100644 --- a/arch/alpha/kernel/err_marvel.c +++ b/arch/alpha/kernel/err_marvel.c | |||
| @@ -109,7 +109,7 @@ marvel_print_err_cyc(u64 err_cyc) | |||
| 109 | #define IO7__ERR_CYC__CYCLE__M (0x7) | 109 | #define IO7__ERR_CYC__CYCLE__M (0x7) |
| 110 | 110 | ||
| 111 | printk("%s Packet In Error: %s\n" | 111 | printk("%s Packet In Error: %s\n" |
| 112 | "%s Error in %s, cycle %ld%s%s\n", | 112 | "%s Error in %s, cycle %lld%s%s\n", |
| 113 | err_print_prefix, | 113 | err_print_prefix, |
| 114 | packet_desc[EXTRACT(err_cyc, IO7__ERR_CYC__PACKET)], | 114 | packet_desc[EXTRACT(err_cyc, IO7__ERR_CYC__PACKET)], |
| 115 | err_print_prefix, | 115 | err_print_prefix, |
| @@ -313,7 +313,7 @@ marvel_print_po7_ugbge_sym(u64 ugbge_sym) | |||
| 313 | } | 313 | } |
| 314 | 314 | ||
| 315 | printk("%s Up Hose Garbage Symptom:\n" | 315 | printk("%s Up Hose Garbage Symptom:\n" |
| 316 | "%s Source Port: %ld - Dest PID: %ld - OpCode: %s\n", | 316 | "%s Source Port: %lld - Dest PID: %lld - OpCode: %s\n", |
| 317 | err_print_prefix, | 317 | err_print_prefix, |
| 318 | err_print_prefix, | 318 | err_print_prefix, |
| 319 | EXTRACT(ugbge_sym, IO7__PO7_UGBGE_SYM__UPH_SRC_PORT), | 319 | EXTRACT(ugbge_sym, IO7__PO7_UGBGE_SYM__UPH_SRC_PORT), |
| @@ -552,7 +552,7 @@ marvel_print_pox_spl_cmplt(u64 spl_cmplt) | |||
| 552 | #define IO7__POX_SPLCMPLT__REM_BYTE_COUNT__M (0xfff) | 552 | #define IO7__POX_SPLCMPLT__REM_BYTE_COUNT__M (0xfff) |
| 553 | 553 | ||
| 554 | printk("%s Split Completion Error:\n" | 554 | printk("%s Split Completion Error:\n" |
| 555 | "%s Source (Bus:Dev:Func): %ld:%ld:%ld\n", | 555 | "%s Source (Bus:Dev:Func): %lld:%lld:%lld\n", |
| 556 | err_print_prefix, | 556 | err_print_prefix, |
| 557 | err_print_prefix, | 557 | err_print_prefix, |
| 558 | EXTRACT(spl_cmplt, IO7__POX_SPLCMPLT__SOURCE_BUS), | 558 | EXTRACT(spl_cmplt, IO7__POX_SPLCMPLT__SOURCE_BUS), |
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index fb58150a7e8f..5d1e6d6ce684 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c | |||
| @@ -252,7 +252,7 @@ SYSCALL_DEFINE3(osf_statfs, const char __user *, pathname, | |||
| 252 | 252 | ||
| 253 | retval = user_path(pathname, &path); | 253 | retval = user_path(pathname, &path); |
| 254 | if (!retval) { | 254 | if (!retval) { |
| 255 | retval = do_osf_statfs(&path buffer, bufsiz); | 255 | retval = do_osf_statfs(&path, buffer, bufsiz); |
| 256 | path_put(&path); | 256 | path_put(&path); |
| 257 | } | 257 | } |
| 258 | return retval; | 258 | return retval; |
diff --git a/arch/alpha/kernel/perf_event.c b/arch/alpha/kernel/perf_event.c index 9bb8c024080c..a25fe9eb4739 100644 --- a/arch/alpha/kernel/perf_event.c +++ b/arch/alpha/kernel/perf_event.c | |||
| @@ -241,20 +241,20 @@ static inline unsigned long alpha_read_pmc(int idx) | |||
| 241 | static int alpha_perf_event_set_period(struct perf_event *event, | 241 | static int alpha_perf_event_set_period(struct perf_event *event, |
| 242 | struct hw_perf_event *hwc, int idx) | 242 | struct hw_perf_event *hwc, int idx) |
| 243 | { | 243 | { |
| 244 | long left = atomic64_read(&hwc->period_left); | 244 | long left = local64_read(&hwc->period_left); |
| 245 | long period = hwc->sample_period; | 245 | long period = hwc->sample_period; |
| 246 | int ret = 0; | 246 | int ret = 0; |
| 247 | 247 | ||
| 248 | if (unlikely(left <= -period)) { | 248 | if (unlikely(left <= -period)) { |
| 249 | left = period; | 249 | left = period; |
| 250 | atomic64_set(&hwc->period_left, left); | 250 | local64_set(&hwc->period_left, left); |
| 251 | hwc->last_period = period; | 251 | hwc->last_period = period; |
| 252 | ret = 1; | 252 | ret = 1; |
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | if (unlikely(left <= 0)) { | 255 | if (unlikely(left <= 0)) { |
| 256 | left += period; | 256 | left += period; |
| 257 | atomic64_set(&hwc->period_left, left); | 257 | local64_set(&hwc->period_left, left); |
| 258 | hwc->last_period = period; | 258 | hwc->last_period = period; |
| 259 | ret = 1; | 259 | ret = 1; |
| 260 | } | 260 | } |
| @@ -269,7 +269,7 @@ static int alpha_perf_event_set_period(struct perf_event *event, | |||
| 269 | if (left > (long)alpha_pmu->pmc_max_period[idx]) | 269 | if (left > (long)alpha_pmu->pmc_max_period[idx]) |
| 270 | left = alpha_pmu->pmc_max_period[idx]; | 270 | left = alpha_pmu->pmc_max_period[idx]; |
| 271 | 271 | ||
| 272 | atomic64_set(&hwc->prev_count, (unsigned long)(-left)); | 272 | local64_set(&hwc->prev_count, (unsigned long)(-left)); |
| 273 | 273 | ||
| 274 | alpha_write_pmc(idx, (unsigned long)(-left)); | 274 | alpha_write_pmc(idx, (unsigned long)(-left)); |
| 275 | 275 | ||
| @@ -300,10 +300,10 @@ static unsigned long alpha_perf_event_update(struct perf_event *event, | |||
| 300 | long delta; | 300 | long delta; |
| 301 | 301 | ||
| 302 | again: | 302 | again: |
| 303 | prev_raw_count = atomic64_read(&hwc->prev_count); | 303 | prev_raw_count = local64_read(&hwc->prev_count); |
| 304 | new_raw_count = alpha_read_pmc(idx); | 304 | new_raw_count = alpha_read_pmc(idx); |
| 305 | 305 | ||
| 306 | if (atomic64_cmpxchg(&hwc->prev_count, prev_raw_count, | 306 | if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, |
| 307 | new_raw_count) != prev_raw_count) | 307 | new_raw_count) != prev_raw_count) |
| 308 | goto again; | 308 | goto again; |
| 309 | 309 | ||
| @@ -316,8 +316,8 @@ again: | |||
| 316 | delta += alpha_pmu->pmc_max_period[idx] + 1; | 316 | delta += alpha_pmu->pmc_max_period[idx] + 1; |
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | atomic64_add(delta, &event->count); | 319 | local64_add(delta, &event->count); |
| 320 | atomic64_sub(delta, &hwc->period_left); | 320 | local64_sub(delta, &hwc->period_left); |
| 321 | 321 | ||
| 322 | return new_raw_count; | 322 | return new_raw_count; |
| 323 | } | 323 | } |
| @@ -670,7 +670,7 @@ static int __hw_perf_event_init(struct perf_event *event) | |||
| 670 | if (!hwc->sample_period) { | 670 | if (!hwc->sample_period) { |
| 671 | hwc->sample_period = alpha_pmu->pmc_max_period[0]; | 671 | hwc->sample_period = alpha_pmu->pmc_max_period[0]; |
| 672 | hwc->last_period = hwc->sample_period; | 672 | hwc->last_period = hwc->sample_period; |
| 673 | atomic64_set(&hwc->period_left, hwc->sample_period); | 673 | local64_set(&hwc->period_left, hwc->sample_period); |
| 674 | } | 674 | } |
| 675 | 675 | ||
| 676 | return 0; | 676 | return 0; |
diff --git a/arch/alpha/kernel/proto.h b/arch/alpha/kernel/proto.h index 3d2627ec9860..d3e52d3fd592 100644 --- a/arch/alpha/kernel/proto.h +++ b/arch/alpha/kernel/proto.h | |||
| @@ -156,9 +156,6 @@ extern void SMC669_Init(int); | |||
| 156 | /* es1888.c */ | 156 | /* es1888.c */ |
| 157 | extern void es1888_init(void); | 157 | extern void es1888_init(void); |
| 158 | 158 | ||
| 159 | /* ns87312.c */ | ||
| 160 | extern void ns87312_enable_ide(long ide_base); | ||
| 161 | |||
| 162 | /* ../lib/fpreg.c */ | 159 | /* ../lib/fpreg.c */ |
| 163 | extern void alpha_write_fp_reg (unsigned long reg, unsigned long val); | 160 | extern void alpha_write_fp_reg (unsigned long reg, unsigned long val); |
| 164 | extern unsigned long alpha_read_fp_reg (unsigned long reg); | 161 | extern unsigned long alpha_read_fp_reg (unsigned long reg); |
diff --git a/arch/alpha/kernel/sys_cabriolet.c b/arch/alpha/kernel/sys_cabriolet.c index affd0f3f25df..14c8898d19ec 100644 --- a/arch/alpha/kernel/sys_cabriolet.c +++ b/arch/alpha/kernel/sys_cabriolet.c | |||
| @@ -33,7 +33,7 @@ | |||
| 33 | #include "irq_impl.h" | 33 | #include "irq_impl.h" |
| 34 | #include "pci_impl.h" | 34 | #include "pci_impl.h" |
| 35 | #include "machvec_impl.h" | 35 | #include "machvec_impl.h" |
| 36 | 36 | #include "pc873xx.h" | |
| 37 | 37 | ||
| 38 | /* Note mask bit is true for DISABLED irqs. */ | 38 | /* Note mask bit is true for DISABLED irqs. */ |
| 39 | static unsigned long cached_irq_mask = ~0UL; | 39 | static unsigned long cached_irq_mask = ~0UL; |
| @@ -236,17 +236,30 @@ cabriolet_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | |||
| 236 | } | 236 | } |
| 237 | 237 | ||
| 238 | static inline void __init | 238 | static inline void __init |
| 239 | cabriolet_enable_ide(void) | ||
| 240 | { | ||
| 241 | if (pc873xx_probe() == -1) { | ||
| 242 | printk(KERN_ERR "Probing for PC873xx Super IO chip failed.\n"); | ||
| 243 | } else { | ||
| 244 | printk(KERN_INFO "Found %s Super IO chip at 0x%x\n", | ||
| 245 | pc873xx_get_model(), pc873xx_get_base()); | ||
| 246 | |||
| 247 | pc873xx_enable_ide(); | ||
| 248 | } | ||
| 249 | } | ||
| 250 | |||
| 251 | static inline void __init | ||
| 239 | cabriolet_init_pci(void) | 252 | cabriolet_init_pci(void) |
| 240 | { | 253 | { |
| 241 | common_init_pci(); | 254 | common_init_pci(); |
| 242 | ns87312_enable_ide(0x398); | 255 | cabriolet_enable_ide(); |
| 243 | } | 256 | } |
| 244 | 257 | ||
| 245 | static inline void __init | 258 | static inline void __init |
| 246 | cia_cab_init_pci(void) | 259 | cia_cab_init_pci(void) |
| 247 | { | 260 | { |
| 248 | cia_init_pci(); | 261 | cia_init_pci(); |
| 249 | ns87312_enable_ide(0x398); | 262 | cabriolet_enable_ide(); |
| 250 | } | 263 | } |
| 251 | 264 | ||
| 252 | /* | 265 | /* |
diff --git a/arch/alpha/kernel/sys_takara.c b/arch/alpha/kernel/sys_takara.c index 230464885b5c..4da596b6adbb 100644 --- a/arch/alpha/kernel/sys_takara.c +++ b/arch/alpha/kernel/sys_takara.c | |||
| @@ -29,7 +29,7 @@ | |||
| 29 | #include "irq_impl.h" | 29 | #include "irq_impl.h" |
| 30 | #include "pci_impl.h" | 30 | #include "pci_impl.h" |
| 31 | #include "machvec_impl.h" | 31 | #include "machvec_impl.h" |
| 32 | 32 | #include "pc873xx.h" | |
| 33 | 33 | ||
| 34 | /* Note mask bit is true for DISABLED irqs. */ | 34 | /* Note mask bit is true for DISABLED irqs. */ |
| 35 | static unsigned long cached_irq_mask[2] = { -1, -1 }; | 35 | static unsigned long cached_irq_mask[2] = { -1, -1 }; |
| @@ -264,7 +264,14 @@ takara_init_pci(void) | |||
| 264 | alpha_mv.pci_map_irq = takara_map_irq_srm; | 264 | alpha_mv.pci_map_irq = takara_map_irq_srm; |
| 265 | 265 | ||
| 266 | cia_init_pci(); | 266 | cia_init_pci(); |
| 267 | ns87312_enable_ide(0x26e); | 267 | |
| 268 | if (pc873xx_probe() == -1) { | ||
| 269 | printk(KERN_ERR "Probing for PC873xx Super IO chip failed.\n"); | ||
| 270 | } else { | ||
| 271 | printk(KERN_INFO "Found %s Super IO chip at 0x%x\n", | ||
| 272 | pc873xx_get_model(), pc873xx_get_base()); | ||
| 273 | pc873xx_enable_ide(); | ||
| 274 | } | ||
| 268 | } | 275 | } |
| 269 | 276 | ||
| 270 | 277 | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 92951103255a..553b7cf17bfb 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -1576,95 +1576,6 @@ config AUTO_ZRELADDR | |||
| 1576 | 0xf8000000. This assumes the zImage being placed in the first 128MB | 1576 | 0xf8000000. This assumes the zImage being placed in the first 128MB |
| 1577 | from start of memory. | 1577 | from start of memory. |
| 1578 | 1578 | ||
| 1579 | config ZRELADDR | ||
| 1580 | hex "Physical address of the decompressed kernel image" | ||
| 1581 | depends on !AUTO_ZRELADDR | ||
| 1582 | default 0x00008000 if ARCH_BCMRING ||\ | ||
| 1583 | ARCH_CNS3XXX ||\ | ||
| 1584 | ARCH_DOVE ||\ | ||
| 1585 | ARCH_EBSA110 ||\ | ||
| 1586 | ARCH_FOOTBRIDGE ||\ | ||
| 1587 | ARCH_INTEGRATOR ||\ | ||
| 1588 | ARCH_IOP13XX ||\ | ||
| 1589 | ARCH_IOP33X ||\ | ||
| 1590 | ARCH_IXP2000 ||\ | ||
| 1591 | ARCH_IXP23XX ||\ | ||
| 1592 | ARCH_IXP4XX ||\ | ||
| 1593 | ARCH_KIRKWOOD ||\ | ||
| 1594 | ARCH_KS8695 ||\ | ||
| 1595 | ARCH_LOKI ||\ | ||
| 1596 | ARCH_MMP ||\ | ||
| 1597 | ARCH_MV78XX0 ||\ | ||
| 1598 | ARCH_NOMADIK ||\ | ||
| 1599 | ARCH_NUC93X ||\ | ||
| 1600 | ARCH_NS9XXX ||\ | ||
| 1601 | ARCH_ORION5X ||\ | ||
| 1602 | ARCH_SPEAR3XX ||\ | ||
| 1603 | ARCH_SPEAR6XX ||\ | ||
| 1604 | ARCH_U8500 ||\ | ||
| 1605 | ARCH_VERSATILE ||\ | ||
| 1606 | ARCH_W90X900 | ||
| 1607 | default 0x08008000 if ARCH_MX1 ||\ | ||
| 1608 | ARCH_SHARK | ||
| 1609 | default 0x10008000 if ARCH_MSM ||\ | ||
| 1610 | ARCH_OMAP1 ||\ | ||
| 1611 | ARCH_RPC | ||
| 1612 | default 0x20008000 if ARCH_S5P6440 ||\ | ||
| 1613 | ARCH_S5P6442 ||\ | ||
| 1614 | ARCH_S5PC100 ||\ | ||
| 1615 | ARCH_S5PV210 | ||
| 1616 | default 0x30008000 if ARCH_S3C2410 ||\ | ||
| 1617 | ARCH_S3C2400 ||\ | ||
| 1618 | ARCH_S3C2412 ||\ | ||
| 1619 | ARCH_S3C2416 ||\ | ||
| 1620 | ARCH_S3C2440 ||\ | ||
| 1621 | ARCH_S3C2443 | ||
| 1622 | default 0x40008000 if ARCH_STMP378X ||\ | ||
| 1623 | ARCH_STMP37XX ||\ | ||
| 1624 | ARCH_SH7372 ||\ | ||
| 1625 | ARCH_SH7377 | ||
| 1626 | default 0x50008000 if ARCH_S3C64XX ||\ | ||
| 1627 | ARCH_SH7367 | ||
| 1628 | default 0x60008000 if ARCH_VEXPRESS | ||
| 1629 | default 0x80008000 if ARCH_MX25 ||\ | ||
| 1630 | ARCH_MX3 ||\ | ||
| 1631 | ARCH_NETX ||\ | ||
| 1632 | ARCH_OMAP2PLUS ||\ | ||
| 1633 | ARCH_PNX4008 | ||
| 1634 | default 0x90008000 if ARCH_MX5 ||\ | ||
| 1635 | ARCH_MX91231 | ||
| 1636 | default 0xa0008000 if ARCH_IOP32X ||\ | ||
| 1637 | ARCH_PXA ||\ | ||
| 1638 | MACH_MX27 | ||
| 1639 | default 0xc0008000 if ARCH_LH7A40X ||\ | ||
| 1640 | MACH_MX21 | ||
| 1641 | default 0xf0008000 if ARCH_AAEC2000 ||\ | ||
| 1642 | ARCH_L7200 | ||
| 1643 | default 0xc0028000 if ARCH_CLPS711X | ||
| 1644 | default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45) | ||
| 1645 | default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45) | ||
| 1646 | default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX | ||
| 1647 | default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX | ||
| 1648 | default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET | ||
| 1649 | default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET | ||
| 1650 | default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET | ||
| 1651 | default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET | ||
| 1652 | default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET | ||
| 1653 | default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP | ||
| 1654 | default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP | ||
| 1655 | default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET | ||
| 1656 | default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET | ||
| 1657 | default 0xc0208000 if ARCH_SA1100 && SA1111 | ||
| 1658 | default 0xc0008000 if ARCH_SA1100 && !SA1111 | ||
| 1659 | default 0x30108000 if ARCH_S3C2410 && PM_H1940 | ||
| 1660 | default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM | ||
| 1661 | default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM | ||
| 1662 | help | ||
| 1663 | ZRELADDR is the physical address where the decompressed kernel | ||
| 1664 | image will be placed. ZRELADDR has to be specified when the | ||
| 1665 | assumption of AUTO_ZRELADDR is not valid, or when ZBOOT_ROM is | ||
| 1666 | selected. | ||
| 1667 | |||
| 1668 | endmenu | 1579 | endmenu |
| 1669 | 1580 | ||
| 1670 | menu "CPU Power Management" | 1581 | menu "CPU Power Management" |
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile index f705213caa88..4a590f4113e2 100644 --- a/arch/arm/boot/Makefile +++ b/arch/arm/boot/Makefile | |||
| @@ -14,16 +14,18 @@ | |||
| 14 | MKIMAGE := $(srctree)/scripts/mkuboot.sh | 14 | MKIMAGE := $(srctree)/scripts/mkuboot.sh |
| 15 | 15 | ||
| 16 | ifneq ($(MACHINE),) | 16 | ifneq ($(MACHINE),) |
| 17 | -include $(srctree)/$(MACHINE)/Makefile.boot | 17 | include $(srctree)/$(MACHINE)/Makefile.boot |
| 18 | endif | 18 | endif |
| 19 | 19 | ||
| 20 | # Note: the following conditions must always be true: | 20 | # Note: the following conditions must always be true: |
| 21 | # ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET) | ||
| 21 | # PARAMS_PHYS must be within 4MB of ZRELADDR | 22 | # PARAMS_PHYS must be within 4MB of ZRELADDR |
| 22 | # INITRD_PHYS must be in RAM | 23 | # INITRD_PHYS must be in RAM |
| 24 | ZRELADDR := $(zreladdr-y) | ||
| 23 | PARAMS_PHYS := $(params_phys-y) | 25 | PARAMS_PHYS := $(params_phys-y) |
| 24 | INITRD_PHYS := $(initrd_phys-y) | 26 | INITRD_PHYS := $(initrd_phys-y) |
| 25 | 27 | ||
| 26 | export INITRD_PHYS PARAMS_PHYS | 28 | export ZRELADDR INITRD_PHYS PARAMS_PHYS |
| 27 | 29 | ||
| 28 | targets := Image zImage xipImage bootpImage uImage | 30 | targets := Image zImage xipImage bootpImage uImage |
| 29 | 31 | ||
| @@ -65,7 +67,7 @@ quiet_cmd_uimage = UIMAGE $@ | |||
| 65 | ifeq ($(CONFIG_ZBOOT_ROM),y) | 67 | ifeq ($(CONFIG_ZBOOT_ROM),y) |
| 66 | $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) | 68 | $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) |
| 67 | else | 69 | else |
| 68 | $(obj)/uImage: LOADADDR=$(CONFIG_ZRELADDR) | 70 | $(obj)/uImage: LOADADDR=$(ZRELADDR) |
| 69 | endif | 71 | endif |
| 70 | 72 | ||
| 71 | ifeq ($(CONFIG_THUMB2_KERNEL),y) | 73 | ifeq ($(CONFIG_THUMB2_KERNEL),y) |
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 68775e33476c..b23f6bc46cfa 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile | |||
| @@ -79,6 +79,10 @@ endif | |||
| 79 | EXTRA_CFLAGS := -fpic -fno-builtin | 79 | EXTRA_CFLAGS := -fpic -fno-builtin |
| 80 | EXTRA_AFLAGS := -Wa,-march=all | 80 | EXTRA_AFLAGS := -Wa,-march=all |
| 81 | 81 | ||
| 82 | # Supply ZRELADDR to the decompressor via a linker symbol. | ||
| 83 | ifneq ($(CONFIG_AUTO_ZRELADDR),y) | ||
| 84 | LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR) | ||
| 85 | endif | ||
| 82 | ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) | 86 | ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) |
| 83 | LDFLAGS_vmlinux += --be8 | 87 | LDFLAGS_vmlinux += --be8 |
| 84 | endif | 88 | endif |
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 6af9907c3b5c..6825c34646d4 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
| @@ -177,7 +177,7 @@ not_angel: | |||
| 177 | and r4, pc, #0xf8000000 | 177 | and r4, pc, #0xf8000000 |
| 178 | add r4, r4, #TEXT_OFFSET | 178 | add r4, r4, #TEXT_OFFSET |
| 179 | #else | 179 | #else |
| 180 | ldr r4, =CONFIG_ZRELADDR | 180 | ldr r4, =zreladdr |
| 181 | #endif | 181 | #endif |
| 182 | subs r0, r0, r1 @ calculate the delta offset | 182 | subs r0, r0, r1 @ calculate the delta offset |
| 183 | 183 | ||
diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c index 6c0913562455..7974baacafce 100644 --- a/arch/arm/common/it8152.c +++ b/arch/arm/common/it8152.c | |||
| @@ -263,6 +263,14 @@ static int it8152_pci_platform_notify_remove(struct device *dev) | |||
| 263 | return 0; | 263 | return 0; |
| 264 | } | 264 | } |
| 265 | 265 | ||
| 266 | int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size) | ||
| 267 | { | ||
| 268 | dev_dbg(dev, "%s: dma_addr %08x, size %08x\n", | ||
| 269 | __func__, dma_addr, size); | ||
| 270 | return (dev->bus == &pci_bus_type) && | ||
| 271 | ((dma_addr + size - PHYS_OFFSET) >= SZ_64M); | ||
| 272 | } | ||
| 273 | |||
| 266 | int __init it8152_pci_setup(int nr, struct pci_sys_data *sys) | 274 | int __init it8152_pci_setup(int nr, struct pci_sys_data *sys) |
| 267 | { | 275 | { |
| 268 | it8152_io.start = IT8152_IO_BASE + 0x12000; | 276 | it8152_io.start = IT8152_IO_BASE + 0x12000; |
diff --git a/arch/arm/configs/omap_4430sdp_defconfig b/arch/arm/configs/omap_4430sdp_defconfig index 63e0c2d50f32..14c1e18c648f 100644 --- a/arch/arm/configs/omap_4430sdp_defconfig +++ b/arch/arm/configs/omap_4430sdp_defconfig | |||
| @@ -13,6 +13,9 @@ CONFIG_MODULE_SRCVERSION_ALL=y | |||
| 13 | # CONFIG_BLK_DEV_BSG is not set | 13 | # CONFIG_BLK_DEV_BSG is not set |
| 14 | CONFIG_ARCH_OMAP=y | 14 | CONFIG_ARCH_OMAP=y |
| 15 | CONFIG_ARCH_OMAP4=y | 15 | CONFIG_ARCH_OMAP4=y |
| 16 | # CONFIG_ARCH_OMAP2PLUS_TYPICAL is not set | ||
| 17 | # CONFIG_ARCH_OMAP2 is not set | ||
| 18 | # CONFIG_ARCH_OMAP3 is not set | ||
| 16 | # CONFIG_OMAP_MUX is not set | 19 | # CONFIG_OMAP_MUX is not set |
| 17 | CONFIG_OMAP_32K_TIMER=y | 20 | CONFIG_OMAP_32K_TIMER=y |
| 18 | CONFIG_OMAP_DM_TIMER=y | 21 | CONFIG_OMAP_DM_TIMER=y |
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h index c226fe10553e..c568da7dcae4 100644 --- a/arch/arm/include/asm/dma-mapping.h +++ b/arch/arm/include/asm/dma-mapping.h | |||
| @@ -288,15 +288,7 @@ extern void dmabounce_unregister_dev(struct device *); | |||
| 288 | * DMA access and 1 if the buffer needs to be bounced. | 288 | * DMA access and 1 if the buffer needs to be bounced. |
| 289 | * | 289 | * |
| 290 | */ | 290 | */ |
| 291 | #ifdef CONFIG_SA1111 | ||
| 292 | extern int dma_needs_bounce(struct device*, dma_addr_t, size_t); | 291 | extern int dma_needs_bounce(struct device*, dma_addr_t, size_t); |
| 293 | #else | ||
| 294 | static inline int dma_needs_bounce(struct device *dev, dma_addr_t addr, | ||
| 295 | size_t size) | ||
| 296 | { | ||
| 297 | return 0; | ||
| 298 | } | ||
| 299 | #endif | ||
| 300 | 292 | ||
| 301 | /* | 293 | /* |
| 302 | * The DMA API, implemented by dmabounce.c. See below for descriptions. | 294 | * The DMA API, implemented by dmabounce.c. See below for descriptions. |
diff --git a/arch/arm/include/asm/perf_event.h b/arch/arm/include/asm/perf_event.h index 48837e6d8887..b5799a3b7117 100644 --- a/arch/arm/include/asm/perf_event.h +++ b/arch/arm/include/asm/perf_event.h | |||
| @@ -17,7 +17,7 @@ | |||
| 17 | * counter interrupts are regular interrupts and not an NMI. This | 17 | * counter interrupts are regular interrupts and not an NMI. This |
| 18 | * means that when we receive the interrupt we can call | 18 | * means that when we receive the interrupt we can call |
| 19 | * perf_event_do_pending() that handles all of the work with | 19 | * perf_event_do_pending() that handles all of the work with |
| 20 | * interrupts enabled. | 20 | * interrupts disabled. |
| 21 | */ | 21 | */ |
| 22 | static inline void | 22 | static inline void |
| 23 | set_perf_event_pending(void) | 23 | set_perf_event_pending(void) |
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h index d02cfb683487..c891eb76c0e3 100644 --- a/arch/arm/include/asm/unistd.h +++ b/arch/arm/include/asm/unistd.h | |||
| @@ -393,6 +393,9 @@ | |||
| 393 | #define __NR_perf_event_open (__NR_SYSCALL_BASE+364) | 393 | #define __NR_perf_event_open (__NR_SYSCALL_BASE+364) |
| 394 | #define __NR_recvmmsg (__NR_SYSCALL_BASE+365) | 394 | #define __NR_recvmmsg (__NR_SYSCALL_BASE+365) |
| 395 | #define __NR_accept4 (__NR_SYSCALL_BASE+366) | 395 | #define __NR_accept4 (__NR_SYSCALL_BASE+366) |
| 396 | #define __NR_fanotify_init (__NR_SYSCALL_BASE+367) | ||
| 397 | #define __NR_fanotify_mark (__NR_SYSCALL_BASE+368) | ||
| 398 | #define __NR_prlimit64 (__NR_SYSCALL_BASE+369) | ||
| 396 | 399 | ||
| 397 | /* | 400 | /* |
| 398 | * The following SWIs are ARM private. | 401 | * The following SWIs are ARM private. |
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S index afeb71fa72cb..5c26eccef998 100644 --- a/arch/arm/kernel/calls.S +++ b/arch/arm/kernel/calls.S | |||
| @@ -376,6 +376,9 @@ | |||
| 376 | CALL(sys_perf_event_open) | 376 | CALL(sys_perf_event_open) |
| 377 | /* 365 */ CALL(sys_recvmmsg) | 377 | /* 365 */ CALL(sys_recvmmsg) |
| 378 | CALL(sys_accept4) | 378 | CALL(sys_accept4) |
| 379 | CALL(sys_fanotify_init) | ||
| 380 | CALL(sys_fanotify_mark) | ||
| 381 | CALL(sys_prlimit64) | ||
| 379 | #ifndef syscalls_counted | 382 | #ifndef syscalls_counted |
| 380 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls | 383 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls |
| 381 | #define syscalls_counted | 384 | #define syscalls_counted |
diff --git a/arch/arm/kernel/etm.c b/arch/arm/kernel/etm.c index 56418f98cd01..33c7077174db 100644 --- a/arch/arm/kernel/etm.c +++ b/arch/arm/kernel/etm.c | |||
| @@ -230,7 +230,7 @@ static void etm_dump(void) | |||
| 230 | etb_lock(t); | 230 | etb_lock(t); |
| 231 | } | 231 | } |
| 232 | 232 | ||
| 233 | static void sysrq_etm_dump(int key, struct tty_struct *tty) | 233 | static void sysrq_etm_dump(int key) |
| 234 | { | 234 | { |
| 235 | dev_dbg(tracer.dev, "Dumping ETB buffer\n"); | 235 | dev_dbg(tracer.dev, "Dumping ETB buffer\n"); |
| 236 | etm_dump(); | 236 | etm_dump(); |
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index 45d6a35217c1..ad19c276b10f 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c | |||
| @@ -342,8 +342,8 @@ validate_event(struct cpu_hw_events *cpuc, | |||
| 342 | { | 342 | { |
| 343 | struct hw_perf_event fake_event = event->hw; | 343 | struct hw_perf_event fake_event = event->hw; |
| 344 | 344 | ||
| 345 | if (event->pmu && event->pmu != &pmu) | 345 | if (event->pmu != &pmu || event->state <= PERF_EVENT_STATE_OFF) |
| 346 | return 0; | 346 | return 1; |
| 347 | 347 | ||
| 348 | return armpmu->get_event_idx(cpuc, &fake_event) >= 0; | 348 | return armpmu->get_event_idx(cpuc, &fake_event) >= 0; |
| 349 | } | 349 | } |
| @@ -1082,8 +1082,8 @@ armv6pmu_handle_irq(int irq_num, | |||
| 1082 | /* | 1082 | /* |
| 1083 | * Handle the pending perf events. | 1083 | * Handle the pending perf events. |
| 1084 | * | 1084 | * |
| 1085 | * Note: this call *must* be run with interrupts enabled. For | 1085 | * Note: this call *must* be run with interrupts disabled. For |
| 1086 | * platforms that can have the PMU interrupts raised as a PMI, this | 1086 | * platforms that can have the PMU interrupts raised as an NMI, this |
| 1087 | * will not work. | 1087 | * will not work. |
| 1088 | */ | 1088 | */ |
| 1089 | perf_event_do_pending(); | 1089 | perf_event_do_pending(); |
| @@ -2058,8 +2058,8 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | |||
| 2058 | /* | 2058 | /* |
| 2059 | * Handle the pending perf events. | 2059 | * Handle the pending perf events. |
| 2060 | * | 2060 | * |
| 2061 | * Note: this call *must* be run with interrupts enabled. For | 2061 | * Note: this call *must* be run with interrupts disabled. For |
| 2062 | * platforms that can have the PMU interrupts raised as a PMI, this | 2062 | * platforms that can have the PMU interrupts raised as an NMI, this |
| 2063 | * will not work. | 2063 | * will not work. |
| 2064 | */ | 2064 | */ |
| 2065 | perf_event_do_pending(); | 2065 | perf_event_do_pending(); |
diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c index 753c0d31a3d3..c67b47f1c0fd 100644 --- a/arch/arm/mach-at91/at91sam9g45.c +++ b/arch/arm/mach-at91/at91sam9g45.c | |||
| @@ -121,8 +121,8 @@ static struct clk ssc1_clk = { | |||
| 121 | .pmc_mask = 1 << AT91SAM9G45_ID_SSC1, | 121 | .pmc_mask = 1 << AT91SAM9G45_ID_SSC1, |
| 122 | .type = CLK_TYPE_PERIPHERAL, | 122 | .type = CLK_TYPE_PERIPHERAL, |
| 123 | }; | 123 | }; |
| 124 | static struct clk tcb_clk = { | 124 | static struct clk tcb0_clk = { |
| 125 | .name = "tcb_clk", | 125 | .name = "tcb0_clk", |
| 126 | .pmc_mask = 1 << AT91SAM9G45_ID_TCB, | 126 | .pmc_mask = 1 << AT91SAM9G45_ID_TCB, |
| 127 | .type = CLK_TYPE_PERIPHERAL, | 127 | .type = CLK_TYPE_PERIPHERAL, |
| 128 | }; | 128 | }; |
| @@ -192,6 +192,14 @@ static struct clk ohci_clk = { | |||
| 192 | .parent = &uhphs_clk, | 192 | .parent = &uhphs_clk, |
| 193 | }; | 193 | }; |
| 194 | 194 | ||
| 195 | /* One additional fake clock for second TC block */ | ||
| 196 | static struct clk tcb1_clk = { | ||
| 197 | .name = "tcb1_clk", | ||
| 198 | .pmc_mask = 0, | ||
| 199 | .type = CLK_TYPE_PERIPHERAL, | ||
| 200 | .parent = &tcb0_clk, | ||
| 201 | }; | ||
| 202 | |||
| 195 | static struct clk *periph_clocks[] __initdata = { | 203 | static struct clk *periph_clocks[] __initdata = { |
| 196 | &pioA_clk, | 204 | &pioA_clk, |
| 197 | &pioB_clk, | 205 | &pioB_clk, |
| @@ -208,7 +216,7 @@ static struct clk *periph_clocks[] __initdata = { | |||
| 208 | &spi1_clk, | 216 | &spi1_clk, |
| 209 | &ssc0_clk, | 217 | &ssc0_clk, |
| 210 | &ssc1_clk, | 218 | &ssc1_clk, |
| 211 | &tcb_clk, | 219 | &tcb0_clk, |
| 212 | &pwm_clk, | 220 | &pwm_clk, |
| 213 | &tsc_clk, | 221 | &tsc_clk, |
| 214 | &dma_clk, | 222 | &dma_clk, |
| @@ -221,6 +229,7 @@ static struct clk *periph_clocks[] __initdata = { | |||
| 221 | &mmc1_clk, | 229 | &mmc1_clk, |
| 222 | // irq0 | 230 | // irq0 |
| 223 | &ohci_clk, | 231 | &ohci_clk, |
| 232 | &tcb1_clk, | ||
| 224 | }; | 233 | }; |
| 225 | 234 | ||
| 226 | /* | 235 | /* |
diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c index 809114d5a5a6..5e71ccd5e7d3 100644 --- a/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/arch/arm/mach-at91/at91sam9g45_devices.c | |||
| @@ -46,7 +46,7 @@ static struct resource hdmac_resources[] = { | |||
| 46 | .end = AT91_BASE_SYS + AT91_DMA + SZ_512 - 1, | 46 | .end = AT91_BASE_SYS + AT91_DMA + SZ_512 - 1, |
| 47 | .flags = IORESOURCE_MEM, | 47 | .flags = IORESOURCE_MEM, |
| 48 | }, | 48 | }, |
| 49 | [2] = { | 49 | [1] = { |
| 50 | .start = AT91SAM9G45_ID_DMA, | 50 | .start = AT91SAM9G45_ID_DMA, |
| 51 | .end = AT91SAM9G45_ID_DMA, | 51 | .end = AT91SAM9G45_ID_DMA, |
| 52 | .flags = IORESOURCE_IRQ, | 52 | .flags = IORESOURCE_IRQ, |
| @@ -835,9 +835,9 @@ static struct platform_device at91sam9g45_tcb1_device = { | |||
| 835 | static void __init at91_add_device_tc(void) | 835 | static void __init at91_add_device_tc(void) |
| 836 | { | 836 | { |
| 837 | /* this chip has one clock and irq for all six TC channels */ | 837 | /* this chip has one clock and irq for all six TC channels */ |
| 838 | at91_clock_associate("tcb_clk", &at91sam9g45_tcb0_device.dev, "t0_clk"); | 838 | at91_clock_associate("tcb0_clk", &at91sam9g45_tcb0_device.dev, "t0_clk"); |
| 839 | platform_device_register(&at91sam9g45_tcb0_device); | 839 | platform_device_register(&at91sam9g45_tcb0_device); |
| 840 | at91_clock_associate("tcb_clk", &at91sam9g45_tcb1_device.dev, "t0_clk"); | 840 | at91_clock_associate("tcb1_clk", &at91sam9g45_tcb1_device.dev, "t0_clk"); |
| 841 | platform_device_register(&at91sam9g45_tcb1_device); | 841 | platform_device_register(&at91sam9g45_tcb1_device); |
| 842 | } | 842 | } |
| 843 | #else | 843 | #else |
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c index c4c8865d52d7..65eb0943194f 100644 --- a/arch/arm/mach-at91/board-sam9261ek.c +++ b/arch/arm/mach-at91/board-sam9261ek.c | |||
| @@ -93,11 +93,12 @@ static struct resource dm9000_resource[] = { | |||
| 93 | .start = AT91_PIN_PC11, | 93 | .start = AT91_PIN_PC11, |
| 94 | .end = AT91_PIN_PC11, | 94 | .end = AT91_PIN_PC11, |
| 95 | .flags = IORESOURCE_IRQ | 95 | .flags = IORESOURCE_IRQ |
| 96 | | IORESOURCE_IRQ_LOWEDGE | IORESOURCE_IRQ_HIGHEDGE, | ||
| 96 | } | 97 | } |
| 97 | }; | 98 | }; |
| 98 | 99 | ||
| 99 | static struct dm9000_plat_data dm9000_platdata = { | 100 | static struct dm9000_plat_data dm9000_platdata = { |
| 100 | .flags = DM9000_PLATF_16BITONLY, | 101 | .flags = DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM, |
| 101 | }; | 102 | }; |
| 102 | 103 | ||
| 103 | static struct platform_device dm9000_device = { | 104 | static struct platform_device dm9000_device = { |
| @@ -168,17 +169,6 @@ static struct at91_udc_data __initdata ek_udc_data = { | |||
| 168 | 169 | ||
| 169 | 170 | ||
| 170 | /* | 171 | /* |
| 171 | * MCI (SD/MMC) | ||
| 172 | */ | ||
| 173 | static struct at91_mmc_data __initdata ek_mmc_data = { | ||
| 174 | .wire4 = 1, | ||
| 175 | // .det_pin = ... not connected | ||
| 176 | // .wp_pin = ... not connected | ||
| 177 | // .vcc_pin = ... not connected | ||
| 178 | }; | ||
| 179 | |||
| 180 | |||
| 181 | /* | ||
| 182 | * NAND flash | 172 | * NAND flash |
| 183 | */ | 173 | */ |
| 184 | static struct mtd_partition __initdata ek_nand_partition[] = { | 174 | static struct mtd_partition __initdata ek_nand_partition[] = { |
| @@ -246,6 +236,10 @@ static void __init ek_add_device_nand(void) | |||
| 246 | at91_add_device_nand(&ek_nand_data); | 236 | at91_add_device_nand(&ek_nand_data); |
| 247 | } | 237 | } |
| 248 | 238 | ||
| 239 | /* | ||
| 240 | * SPI related devices | ||
| 241 | */ | ||
| 242 | #if defined(CONFIG_SPI_ATMEL) || defined(CONFIG_SPI_ATMEL_MODULE) | ||
| 249 | 243 | ||
| 250 | /* | 244 | /* |
| 251 | * ADS7846 Touchscreen | 245 | * ADS7846 Touchscreen |
| @@ -356,6 +350,19 @@ static struct spi_board_info ek_spi_devices[] = { | |||
| 356 | #endif | 350 | #endif |
| 357 | }; | 351 | }; |
| 358 | 352 | ||
| 353 | #else /* CONFIG_SPI_ATMEL_* */ | ||
| 354 | /* spi0 and mmc/sd share the same PIO pins: cannot be used at the same time */ | ||
| 355 | |||
| 356 | /* | ||
| 357 | * MCI (SD/MMC) | ||
| 358 | * det_pin, wp_pin and vcc_pin are not connected | ||
| 359 | */ | ||
| 360 | static struct at91_mmc_data __initdata ek_mmc_data = { | ||
| 361 | .wire4 = 1, | ||
| 362 | }; | ||
| 363 | |||
| 364 | #endif /* CONFIG_SPI_ATMEL_* */ | ||
| 365 | |||
| 359 | 366 | ||
| 360 | /* | 367 | /* |
| 361 | * LCD Controller | 368 | * LCD Controller |
diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c index 7f7da439341f..7525cee3983f 100644 --- a/arch/arm/mach-at91/clock.c +++ b/arch/arm/mach-at91/clock.c | |||
| @@ -501,7 +501,8 @@ postcore_initcall(at91_clk_debugfs_init); | |||
| 501 | int __init clk_register(struct clk *clk) | 501 | int __init clk_register(struct clk *clk) |
| 502 | { | 502 | { |
| 503 | if (clk_is_peripheral(clk)) { | 503 | if (clk_is_peripheral(clk)) { |
| 504 | clk->parent = &mck; | 504 | if (!clk->parent) |
| 505 | clk->parent = &mck; | ||
| 505 | clk->mode = pmc_periph_mode; | 506 | clk->mode = pmc_periph_mode; |
| 506 | list_add_tail(&clk->node, &clocks); | 507 | list_add_tail(&clk->node, &clocks); |
| 507 | } | 508 | } |
diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c index 8bf3cec98cfa..4566bd1c8660 100644 --- a/arch/arm/mach-ep93xx/clock.c +++ b/arch/arm/mach-ep93xx/clock.c | |||
| @@ -560,4 +560,4 @@ static int __init ep93xx_clock_init(void) | |||
| 560 | clkdev_add_table(clocks, ARRAY_SIZE(clocks)); | 560 | clkdev_add_table(clocks, ARRAY_SIZE(clocks)); |
| 561 | return 0; | 561 | return 0; |
| 562 | } | 562 | } |
| 563 | arch_initcall(ep93xx_clock_init); | 563 | postcore_initcall(ep93xx_clock_init); |
diff --git a/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c index 91931dcb0689..4aaadc753d3e 100644 --- a/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c +++ b/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c | |||
| @@ -215,7 +215,7 @@ struct imx_ssi_platform_data eukrea_mbimxsd_ssi_pdata = { | |||
| 215 | * Add platform devices present on this baseboard and init | 215 | * Add platform devices present on this baseboard and init |
| 216 | * them from CPU side as far as required to use them later on | 216 | * them from CPU side as far as required to use them later on |
| 217 | */ | 217 | */ |
| 218 | void __init eukrea_mbimxsd_baseboard_init(void) | 218 | void __init eukrea_mbimxsd25_baseboard_init(void) |
| 219 | { | 219 | { |
| 220 | if (mxc_iomux_v3_setup_multiple_pads(eukrea_mbimxsd_pads, | 220 | if (mxc_iomux_v3_setup_multiple_pads(eukrea_mbimxsd_pads, |
| 221 | ARRAY_SIZE(eukrea_mbimxsd_pads))) | 221 | ARRAY_SIZE(eukrea_mbimxsd_pads))) |
diff --git a/arch/arm/mach-mx25/mach-cpuimx25.c b/arch/arm/mach-mx25/mach-cpuimx25.c index a5f0174290b4..e064bb3d6919 100644 --- a/arch/arm/mach-mx25/mach-cpuimx25.c +++ b/arch/arm/mach-mx25/mach-cpuimx25.c | |||
| @@ -147,8 +147,8 @@ static void __init eukrea_cpuimx25_init(void) | |||
| 147 | if (!otg_mode_host) | 147 | if (!otg_mode_host) |
| 148 | mxc_register_device(&otg_udc_device, &otg_device_pdata); | 148 | mxc_register_device(&otg_udc_device, &otg_device_pdata); |
| 149 | 149 | ||
| 150 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD_BASEBOARD | 150 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD25_BASEBOARD |
| 151 | eukrea_mbimxsd_baseboard_init(); | 151 | eukrea_mbimxsd25_baseboard_init(); |
| 152 | #endif | 152 | #endif |
| 153 | } | 153 | } |
| 154 | 154 | ||
diff --git a/arch/arm/mach-mx3/clock-imx35.c b/arch/arm/mach-mx3/clock-imx35.c index d3af0fdf8475..7a62e744a8b0 100644 --- a/arch/arm/mach-mx3/clock-imx35.c +++ b/arch/arm/mach-mx3/clock-imx35.c | |||
| @@ -155,7 +155,7 @@ static unsigned long get_rate_arm(void) | |||
| 155 | 155 | ||
| 156 | aad = &clk_consumer[(pdr0 >> 16) & 0xf]; | 156 | aad = &clk_consumer[(pdr0 >> 16) & 0xf]; |
| 157 | if (aad->sel) | 157 | if (aad->sel) |
| 158 | fref = fref * 2 / 3; | 158 | fref = fref * 3 / 4; |
| 159 | 159 | ||
| 160 | return fref / aad->arm; | 160 | return fref / aad->arm; |
| 161 | } | 161 | } |
| @@ -164,7 +164,7 @@ static unsigned long get_rate_ahb(struct clk *clk) | |||
| 164 | { | 164 | { |
| 165 | unsigned long pdr0 = __raw_readl(CCM_BASE + CCM_PDR0); | 165 | unsigned long pdr0 = __raw_readl(CCM_BASE + CCM_PDR0); |
| 166 | struct arm_ahb_div *aad; | 166 | struct arm_ahb_div *aad; |
| 167 | unsigned long fref = get_rate_mpll(); | 167 | unsigned long fref = get_rate_arm(); |
| 168 | 168 | ||
| 169 | aad = &clk_consumer[(pdr0 >> 16) & 0xf]; | 169 | aad = &clk_consumer[(pdr0 >> 16) & 0xf]; |
| 170 | 170 | ||
| @@ -176,16 +176,11 @@ static unsigned long get_rate_ipg(struct clk *clk) | |||
| 176 | return get_rate_ahb(NULL) >> 1; | 176 | return get_rate_ahb(NULL) >> 1; |
| 177 | } | 177 | } |
| 178 | 178 | ||
| 179 | static unsigned long get_3_3_div(unsigned long in) | ||
| 180 | { | ||
| 181 | return (((in >> 3) & 0x7) + 1) * ((in & 0x7) + 1); | ||
| 182 | } | ||
| 183 | |||
| 184 | static unsigned long get_rate_uart(struct clk *clk) | 179 | static unsigned long get_rate_uart(struct clk *clk) |
| 185 | { | 180 | { |
| 186 | unsigned long pdr3 = __raw_readl(CCM_BASE + CCM_PDR3); | 181 | unsigned long pdr3 = __raw_readl(CCM_BASE + CCM_PDR3); |
| 187 | unsigned long pdr4 = __raw_readl(CCM_BASE + CCM_PDR4); | 182 | unsigned long pdr4 = __raw_readl(CCM_BASE + CCM_PDR4); |
| 188 | unsigned long div = get_3_3_div(pdr4 >> 10); | 183 | unsigned long div = ((pdr4 >> 10) & 0x3f) + 1; |
| 189 | 184 | ||
| 190 | if (pdr3 & (1 << 14)) | 185 | if (pdr3 & (1 << 14)) |
| 191 | return get_rate_arm() / div; | 186 | return get_rate_arm() / div; |
| @@ -216,7 +211,7 @@ static unsigned long get_rate_sdhc(struct clk *clk) | |||
| 216 | break; | 211 | break; |
| 217 | } | 212 | } |
| 218 | 213 | ||
| 219 | return rate / get_3_3_div(div); | 214 | return rate / (div + 1); |
| 220 | } | 215 | } |
| 221 | 216 | ||
| 222 | static unsigned long get_rate_mshc(struct clk *clk) | 217 | static unsigned long get_rate_mshc(struct clk *clk) |
| @@ -270,7 +265,7 @@ static unsigned long get_rate_csi(struct clk *clk) | |||
| 270 | else | 265 | else |
| 271 | rate = get_rate_ppll(); | 266 | rate = get_rate_ppll(); |
| 272 | 267 | ||
| 273 | return rate / get_3_3_div((pdr2 >> 16) & 0x3f); | 268 | return rate / (((pdr2 >> 16) & 0x3f) + 1); |
| 274 | } | 269 | } |
| 275 | 270 | ||
| 276 | static unsigned long get_rate_otg(struct clk *clk) | 271 | static unsigned long get_rate_otg(struct clk *clk) |
| @@ -283,25 +278,51 @@ static unsigned long get_rate_otg(struct clk *clk) | |||
| 283 | else | 278 | else |
| 284 | rate = get_rate_ppll(); | 279 | rate = get_rate_ppll(); |
| 285 | 280 | ||
| 286 | return rate / get_3_3_div((pdr4 >> 22) & 0x3f); | 281 | return rate / (((pdr4 >> 22) & 0x3f) + 1); |
| 287 | } | 282 | } |
| 288 | 283 | ||
| 289 | static unsigned long get_rate_ipg_per(struct clk *clk) | 284 | static unsigned long get_rate_ipg_per(struct clk *clk) |
| 290 | { | 285 | { |
| 291 | unsigned long pdr0 = __raw_readl(CCM_BASE + CCM_PDR0); | 286 | unsigned long pdr0 = __raw_readl(CCM_BASE + CCM_PDR0); |
| 292 | unsigned long pdr4 = __raw_readl(CCM_BASE + CCM_PDR4); | 287 | unsigned long pdr4 = __raw_readl(CCM_BASE + CCM_PDR4); |
| 293 | unsigned long div1, div2; | 288 | unsigned long div; |
| 294 | 289 | ||
| 295 | if (pdr0 & (1 << 26)) { | 290 | if (pdr0 & (1 << 26)) { |
| 296 | div1 = (pdr4 >> 19) & 0x7; | 291 | div = (pdr4 >> 16) & 0x3f; |
| 297 | div2 = (pdr4 >> 16) & 0x7; | 292 | return get_rate_arm() / (div + 1); |
| 298 | return get_rate_arm() / ((div1 + 1) * (div2 + 1)); | ||
| 299 | } else { | 293 | } else { |
| 300 | div1 = (pdr0 >> 12) & 0x7; | 294 | div = (pdr0 >> 12) & 0x7; |
| 301 | return get_rate_ahb(NULL) / div1; | 295 | return get_rate_ahb(NULL) / (div + 1); |
| 302 | } | 296 | } |
| 303 | } | 297 | } |
| 304 | 298 | ||
| 299 | static unsigned long get_rate_hsp(struct clk *clk) | ||
| 300 | { | ||
| 301 | unsigned long hsp_podf = (__raw_readl(CCM_BASE + CCM_PDR0) >> 20) & 0x03; | ||
| 302 | unsigned long fref = get_rate_mpll(); | ||
| 303 | |||
| 304 | if (fref > 400 * 1000 * 1000) { | ||
| 305 | switch (hsp_podf) { | ||
| 306 | case 0: | ||
| 307 | return fref >> 2; | ||
| 308 | case 1: | ||
| 309 | return fref >> 3; | ||
| 310 | case 2: | ||
| 311 | return fref / 3; | ||
| 312 | } | ||
| 313 | } else { | ||
| 314 | switch (hsp_podf) { | ||
| 315 | case 0: | ||
| 316 | case 2: | ||
| 317 | return fref / 3; | ||
| 318 | case 1: | ||
| 319 | return fref / 6; | ||
| 320 | } | ||
| 321 | } | ||
| 322 | |||
| 323 | return 0; | ||
| 324 | } | ||
| 325 | |||
| 305 | static int clk_cgr_enable(struct clk *clk) | 326 | static int clk_cgr_enable(struct clk *clk) |
| 306 | { | 327 | { |
| 307 | u32 reg; | 328 | u32 reg; |
| @@ -359,7 +380,7 @@ DEFINE_CLOCK(i2c1_clk, 0, CCM_CGR1, 10, get_rate_ipg_per, NULL); | |||
| 359 | DEFINE_CLOCK(i2c2_clk, 1, CCM_CGR1, 12, get_rate_ipg_per, NULL); | 380 | DEFINE_CLOCK(i2c2_clk, 1, CCM_CGR1, 12, get_rate_ipg_per, NULL); |
| 360 | DEFINE_CLOCK(i2c3_clk, 2, CCM_CGR1, 14, get_rate_ipg_per, NULL); | 381 | DEFINE_CLOCK(i2c3_clk, 2, CCM_CGR1, 14, get_rate_ipg_per, NULL); |
| 361 | DEFINE_CLOCK(iomuxc_clk, 0, CCM_CGR1, 16, NULL, NULL); | 382 | DEFINE_CLOCK(iomuxc_clk, 0, CCM_CGR1, 16, NULL, NULL); |
| 362 | DEFINE_CLOCK(ipu_clk, 0, CCM_CGR1, 18, get_rate_ahb, NULL); | 383 | DEFINE_CLOCK(ipu_clk, 0, CCM_CGR1, 18, get_rate_hsp, NULL); |
| 363 | DEFINE_CLOCK(kpp_clk, 0, CCM_CGR1, 20, get_rate_ipg, NULL); | 384 | DEFINE_CLOCK(kpp_clk, 0, CCM_CGR1, 20, get_rate_ipg, NULL); |
| 364 | DEFINE_CLOCK(mlb_clk, 0, CCM_CGR1, 22, get_rate_ahb, NULL); | 385 | DEFINE_CLOCK(mlb_clk, 0, CCM_CGR1, 22, get_rate_ahb, NULL); |
| 365 | DEFINE_CLOCK(mshc_clk, 0, CCM_CGR1, 24, get_rate_mshc, NULL); | 386 | DEFINE_CLOCK(mshc_clk, 0, CCM_CGR1, 24, get_rate_mshc, NULL); |
| @@ -485,10 +506,10 @@ static struct clk_lookup lookups[] = { | |||
| 485 | 506 | ||
| 486 | int __init mx35_clocks_init() | 507 | int __init mx35_clocks_init() |
| 487 | { | 508 | { |
| 488 | unsigned int ll = 0; | 509 | unsigned int cgr2 = 3 << 26, cgr3 = 0; |
| 489 | 510 | ||
| 490 | #if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_ICEDCC) | 511 | #if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_ICEDCC) |
| 491 | ll = (3 << 16); | 512 | cgr2 |= 3 << 16; |
| 492 | #endif | 513 | #endif |
| 493 | 514 | ||
| 494 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); | 515 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); |
| @@ -499,8 +520,20 @@ int __init mx35_clocks_init() | |||
| 499 | __raw_writel((3 << 18), CCM_BASE + CCM_CGR0); | 520 | __raw_writel((3 << 18), CCM_BASE + CCM_CGR0); |
| 500 | __raw_writel((3 << 2) | (3 << 4) | (3 << 6) | (3 << 8) | (3 << 16), | 521 | __raw_writel((3 << 2) | (3 << 4) | (3 << 6) | (3 << 8) | (3 << 16), |
| 501 | CCM_BASE + CCM_CGR1); | 522 | CCM_BASE + CCM_CGR1); |
| 502 | __raw_writel((3 << 26) | ll, CCM_BASE + CCM_CGR2); | 523 | |
| 503 | __raw_writel(0, CCM_BASE + CCM_CGR3); | 524 | /* |
| 525 | * Check if we came up in internal boot mode. If yes, we need some | ||
| 526 | * extra clocks turned on, otherwise the MX35 boot ROM code will | ||
| 527 | * hang after a watchdog reset. | ||
| 528 | */ | ||
| 529 | if (!(__raw_readl(CCM_BASE + CCM_RCSR) & (3 << 10))) { | ||
| 530 | /* Additionally turn on UART1, SCC, and IIM clocks */ | ||
| 531 | cgr2 |= 3 << 16 | 3 << 4; | ||
| 532 | cgr3 |= 3 << 2; | ||
| 533 | } | ||
| 534 | |||
| 535 | __raw_writel(cgr2, CCM_BASE + CCM_CGR2); | ||
| 536 | __raw_writel(cgr3, CCM_BASE + CCM_CGR3); | ||
| 504 | 537 | ||
| 505 | mxc_timer_init(&gpt_clk, | 538 | mxc_timer_init(&gpt_clk, |
| 506 | MX35_IO_ADDRESS(MX35_GPT1_BASE_ADDR), MX35_INT_GPT); | 539 | MX35_IO_ADDRESS(MX35_GPT1_BASE_ADDR), MX35_INT_GPT); |
diff --git a/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c index 1dc5004df866..f8f15e3ac7a0 100644 --- a/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c +++ b/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c | |||
| @@ -216,7 +216,7 @@ struct imx_ssi_platform_data eukrea_mbimxsd_ssi_pdata = { | |||
| 216 | * Add platform devices present on this baseboard and init | 216 | * Add platform devices present on this baseboard and init |
| 217 | * them from CPU side as far as required to use them later on | 217 | * them from CPU side as far as required to use them later on |
| 218 | */ | 218 | */ |
| 219 | void __init eukrea_mbimxsd_baseboard_init(void) | 219 | void __init eukrea_mbimxsd35_baseboard_init(void) |
| 220 | { | 220 | { |
| 221 | if (mxc_iomux_v3_setup_multiple_pads(eukrea_mbimxsd_pads, | 221 | if (mxc_iomux_v3_setup_multiple_pads(eukrea_mbimxsd_pads, |
| 222 | ARRAY_SIZE(eukrea_mbimxsd_pads))) | 222 | ARRAY_SIZE(eukrea_mbimxsd_pads))) |
diff --git a/arch/arm/mach-mx3/mach-cpuimx35.c b/arch/arm/mach-mx3/mach-cpuimx35.c index 9770a6a973be..2a4f8b781ba4 100644 --- a/arch/arm/mach-mx3/mach-cpuimx35.c +++ b/arch/arm/mach-mx3/mach-cpuimx35.c | |||
| @@ -201,8 +201,8 @@ static void __init mxc_board_init(void) | |||
| 201 | if (!otg_mode_host) | 201 | if (!otg_mode_host) |
| 202 | mxc_register_device(&mxc_otg_udc_device, &otg_device_pdata); | 202 | mxc_register_device(&mxc_otg_udc_device, &otg_device_pdata); |
| 203 | 203 | ||
| 204 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD_BASEBOARD | 204 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD35_BASEBOARD |
| 205 | eukrea_mbimxsd_baseboard_init(); | 205 | eukrea_mbimxsd35_baseboard_init(); |
| 206 | #endif | 206 | #endif |
| 207 | } | 207 | } |
| 208 | 208 | ||
diff --git a/arch/arm/mach-mx5/clock-mx51.c b/arch/arm/mach-mx5/clock-mx51.c index 6af69def357f..57c10a9926cc 100644 --- a/arch/arm/mach-mx5/clock-mx51.c +++ b/arch/arm/mach-mx5/clock-mx51.c | |||
| @@ -56,7 +56,7 @@ static void _clk_ccgr_disable(struct clk *clk) | |||
| 56 | { | 56 | { |
| 57 | u32 reg; | 57 | u32 reg; |
| 58 | reg = __raw_readl(clk->enable_reg); | 58 | reg = __raw_readl(clk->enable_reg); |
| 59 | reg &= ~(MXC_CCM_CCGRx_MOD_OFF << clk->enable_shift); | 59 | reg &= ~(MXC_CCM_CCGRx_CG_MASK << clk->enable_shift); |
| 60 | __raw_writel(reg, clk->enable_reg); | 60 | __raw_writel(reg, clk->enable_reg); |
| 61 | 61 | ||
| 62 | } | 62 | } |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 63b2d8859c3c..88d3a1e920f5 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
| @@ -25,6 +25,7 @@ obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o | |||
| 25 | obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o | 25 | obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o |
| 26 | obj-$(CONFIG_ARCH_OMAP4) += omap44xx-smc.o omap4-common.o | 26 | obj-$(CONFIG_ARCH_OMAP4) += omap44xx-smc.o omap4-common.o |
| 27 | 27 | ||
| 28 | AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a | ||
| 28 | AFLAGS_omap44xx-smc.o :=-Wa,-march=armv7-a | 29 | AFLAGS_omap44xx-smc.o :=-Wa,-march=armv7-a |
| 29 | 30 | ||
| 30 | # Functions loaded to SRAM | 31 | # Functions loaded to SRAM |
diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-omap2/clock3xxx_data.c index 138646deac89..dfdce2d82779 100644 --- a/arch/arm/mach-omap2/clock3xxx_data.c +++ b/arch/arm/mach-omap2/clock3xxx_data.c | |||
| @@ -3417,7 +3417,13 @@ int __init omap3xxx_clk_init(void) | |||
| 3417 | struct omap_clk *c; | 3417 | struct omap_clk *c; |
| 3418 | u32 cpu_clkflg = CK_3XXX; | 3418 | u32 cpu_clkflg = CK_3XXX; |
| 3419 | 3419 | ||
| 3420 | if (cpu_is_omap34xx()) { | 3420 | if (cpu_is_omap3517()) { |
| 3421 | cpu_mask = RATE_IN_3XXX | RATE_IN_3430ES2PLUS; | ||
| 3422 | cpu_clkflg |= CK_3517; | ||
| 3423 | } else if (cpu_is_omap3505()) { | ||
| 3424 | cpu_mask = RATE_IN_3XXX | RATE_IN_3430ES2PLUS; | ||
| 3425 | cpu_clkflg |= CK_3505; | ||
| 3426 | } else if (cpu_is_omap34xx()) { | ||
| 3421 | cpu_mask = RATE_IN_3XXX; | 3427 | cpu_mask = RATE_IN_3XXX; |
| 3422 | cpu_clkflg |= CK_343X; | 3428 | cpu_clkflg |= CK_343X; |
| 3423 | 3429 | ||
| @@ -3432,12 +3438,6 @@ int __init omap3xxx_clk_init(void) | |||
| 3432 | cpu_mask |= RATE_IN_3430ES2PLUS; | 3438 | cpu_mask |= RATE_IN_3430ES2PLUS; |
| 3433 | cpu_clkflg |= CK_3430ES2; | 3439 | cpu_clkflg |= CK_3430ES2; |
| 3434 | } | 3440 | } |
| 3435 | } else if (cpu_is_omap3517()) { | ||
| 3436 | cpu_mask = RATE_IN_3XXX | RATE_IN_3430ES2PLUS; | ||
| 3437 | cpu_clkflg |= CK_3517; | ||
| 3438 | } else if (cpu_is_omap3505()) { | ||
| 3439 | cpu_mask = RATE_IN_3XXX | RATE_IN_3430ES2PLUS; | ||
| 3440 | cpu_clkflg |= CK_3505; | ||
| 3441 | } | 3441 | } |
| 3442 | 3442 | ||
| 3443 | if (omap3_has_192mhz_clk()) | 3443 | if (omap3_has_192mhz_clk()) |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index e8256a2ed8e7..9a879f959509 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
| @@ -284,8 +284,8 @@ static void __init omap3_check_revision(void) | |||
| 284 | default: | 284 | default: |
| 285 | omap_revision = OMAP3630_REV_ES1_2; | 285 | omap_revision = OMAP3630_REV_ES1_2; |
| 286 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; | 286 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; |
| 287 | break; | ||
| 288 | } | 287 | } |
| 288 | break; | ||
| 289 | default: | 289 | default: |
| 290 | /* Unknown default to latest silicon rev as default*/ | 290 | /* Unknown default to latest silicon rev as default*/ |
| 291 | omap_revision = OMAP3630_REV_ES1_2; | 291 | omap_revision = OMAP3630_REV_ES1_2; |
diff --git a/arch/arm/mach-omap2/include/mach/entry-macro.S b/arch/arm/mach-omap2/include/mach/entry-macro.S index 50fd74916643..06e64e1fc28a 100644 --- a/arch/arm/mach-omap2/include/mach/entry-macro.S +++ b/arch/arm/mach-omap2/include/mach/entry-macro.S | |||
| @@ -177,7 +177,10 @@ omap_irq_base: .word 0 | |||
| 177 | cmpne \irqnr, \tmp | 177 | cmpne \irqnr, \tmp |
| 178 | cmpcs \irqnr, \irqnr | 178 | cmpcs \irqnr, \irqnr |
| 179 | .endm | 179 | .endm |
| 180 | #endif | ||
| 181 | #endif /* MULTI_OMAP2 */ | ||
| 180 | 182 | ||
| 183 | #ifdef CONFIG_SMP | ||
| 181 | /* We assume that irqstat (the raw value of the IRQ acknowledge | 184 | /* We assume that irqstat (the raw value of the IRQ acknowledge |
| 182 | * register) is preserved from the macro above. | 185 | * register) is preserved from the macro above. |
| 183 | * If there is an IPI, we immediately signal end of interrupt | 186 | * If there is an IPI, we immediately signal end of interrupt |
| @@ -205,8 +208,7 @@ omap_irq_base: .word 0 | |||
| 205 | streq \irqstat, [\base, #GIC_CPU_EOI] | 208 | streq \irqstat, [\base, #GIC_CPU_EOI] |
| 206 | cmp \tmp, #0 | 209 | cmp \tmp, #0 |
| 207 | .endm | 210 | .endm |
| 208 | #endif | 211 | #endif /* CONFIG_SMP */ |
| 209 | #endif /* MULTI_OMAP2 */ | ||
| 210 | 212 | ||
| 211 | .macro irq_prio_table | 213 | .macro irq_prio_table |
| 212 | .endm | 214 | .endm |
diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c index af3c20c8d3f9..9e9f70e18e3c 100644 --- a/arch/arm/mach-omap2/omap-smp.c +++ b/arch/arm/mach-omap2/omap-smp.c | |||
| @@ -102,8 +102,7 @@ static void __init wakeup_secondary(void) | |||
| 102 | * Send a 'sev' to wake the secondary core from WFE. | 102 | * Send a 'sev' to wake the secondary core from WFE. |
| 103 | * Drain the outstanding writes to memory | 103 | * Drain the outstanding writes to memory |
| 104 | */ | 104 | */ |
| 105 | dsb(); | 105 | dsb_sev(); |
| 106 | set_event(); | ||
| 107 | mb(); | 106 | mb(); |
| 108 | } | 107 | } |
| 109 | 108 | ||
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index fb4994ad622e..7b03426c72a3 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
| @@ -480,7 +480,9 @@ void omap_sram_idle(void) | |||
| 480 | } | 480 | } |
| 481 | 481 | ||
| 482 | /* Disable IO-PAD and IO-CHAIN wakeup */ | 482 | /* Disable IO-PAD and IO-CHAIN wakeup */ |
| 483 | if (omap3_has_io_wakeup() && core_next_state < PWRDM_POWER_ON) { | 483 | if (omap3_has_io_wakeup() && |
| 484 | (per_next_state < PWRDM_POWER_ON || | ||
| 485 | core_next_state < PWRDM_POWER_ON)) { | ||
| 484 | prm_clear_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN); | 486 | prm_clear_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN); |
| 485 | omap3_disable_io_chain(); | 487 | omap3_disable_io_chain(); |
| 486 | } | 488 | } |
diff --git a/arch/arm/mach-pxa/cpufreq-pxa2xx.c b/arch/arm/mach-pxa/cpufreq-pxa2xx.c index 268a9bc6be8a..50d5939a78f1 100644 --- a/arch/arm/mach-pxa/cpufreq-pxa2xx.c +++ b/arch/arm/mach-pxa/cpufreq-pxa2xx.c | |||
| @@ -398,7 +398,7 @@ static int pxa_set_target(struct cpufreq_policy *policy, | |||
| 398 | return 0; | 398 | return 0; |
| 399 | } | 399 | } |
| 400 | 400 | ||
| 401 | static __init int pxa_cpufreq_init(struct cpufreq_policy *policy) | 401 | static int pxa_cpufreq_init(struct cpufreq_policy *policy) |
| 402 | { | 402 | { |
| 403 | int i; | 403 | int i; |
| 404 | unsigned int freq; | 404 | unsigned int freq; |
diff --git a/arch/arm/mach-pxa/cpufreq-pxa3xx.c b/arch/arm/mach-pxa/cpufreq-pxa3xx.c index 27fa329d9a8b..0a0d0fe99220 100644 --- a/arch/arm/mach-pxa/cpufreq-pxa3xx.c +++ b/arch/arm/mach-pxa/cpufreq-pxa3xx.c | |||
| @@ -204,7 +204,7 @@ static int pxa3xx_cpufreq_set(struct cpufreq_policy *policy, | |||
| 204 | return 0; | 204 | return 0; |
| 205 | } | 205 | } |
| 206 | 206 | ||
| 207 | static __init int pxa3xx_cpufreq_init(struct cpufreq_policy *policy) | 207 | static int pxa3xx_cpufreq_init(struct cpufreq_policy *policy) |
| 208 | { | 208 | { |
| 209 | int ret = -EINVAL; | 209 | int ret = -EINVAL; |
| 210 | 210 | ||
diff --git a/arch/arm/mach-pxa/include/mach/mfp-pxa300.h b/arch/arm/mach-pxa/include/mach/mfp-pxa300.h index 7139e0dc26d1..4e1287070d21 100644 --- a/arch/arm/mach-pxa/include/mach/mfp-pxa300.h +++ b/arch/arm/mach-pxa/include/mach/mfp-pxa300.h | |||
| @@ -71,10 +71,10 @@ | |||
| 71 | #define GPIO46_CI_DD_7 MFP_CFG_DRV(GPIO46, AF0, DS04X) | 71 | #define GPIO46_CI_DD_7 MFP_CFG_DRV(GPIO46, AF0, DS04X) |
| 72 | #define GPIO47_CI_DD_8 MFP_CFG_DRV(GPIO47, AF1, DS04X) | 72 | #define GPIO47_CI_DD_8 MFP_CFG_DRV(GPIO47, AF1, DS04X) |
| 73 | #define GPIO48_CI_DD_9 MFP_CFG_DRV(GPIO48, AF1, DS04X) | 73 | #define GPIO48_CI_DD_9 MFP_CFG_DRV(GPIO48, AF1, DS04X) |
| 74 | #define GPIO52_CI_HSYNC MFP_CFG_DRV(GPIO52, AF0, DS04X) | ||
| 75 | #define GPIO51_CI_VSYNC MFP_CFG_DRV(GPIO51, AF0, DS04X) | ||
| 76 | #define GPIO49_CI_MCLK MFP_CFG_DRV(GPIO49, AF0, DS04X) | 74 | #define GPIO49_CI_MCLK MFP_CFG_DRV(GPIO49, AF0, DS04X) |
| 77 | #define GPIO50_CI_PCLK MFP_CFG_DRV(GPIO50, AF0, DS04X) | 75 | #define GPIO50_CI_PCLK MFP_CFG_DRV(GPIO50, AF0, DS04X) |
| 76 | #define GPIO51_CI_HSYNC MFP_CFG_DRV(GPIO51, AF0, DS04X) | ||
| 77 | #define GPIO52_CI_VSYNC MFP_CFG_DRV(GPIO52, AF0, DS04X) | ||
| 78 | 78 | ||
| 79 | /* KEYPAD */ | 79 | /* KEYPAD */ |
| 80 | #define GPIO3_KP_DKIN_6 MFP_CFG_LPM(GPIO3, AF2, FLOAT) | 80 | #define GPIO3_KP_DKIN_6 MFP_CFG_LPM(GPIO3, AF2, FLOAT) |
diff --git a/arch/arm/mach-s3c2410/include/mach/vmalloc.h b/arch/arm/mach-s3c2410/include/mach/vmalloc.h index 315b0078a34d..54297eb0bf5e 100644 --- a/arch/arm/mach-s3c2410/include/mach/vmalloc.h +++ b/arch/arm/mach-s3c2410/include/mach/vmalloc.h | |||
| @@ -15,6 +15,6 @@ | |||
| 15 | #ifndef __ASM_ARCH_VMALLOC_H | 15 | #ifndef __ASM_ARCH_VMALLOC_H |
| 16 | #define __ASM_ARCH_VMALLOC_H | 16 | #define __ASM_ARCH_VMALLOC_H |
| 17 | 17 | ||
| 18 | #define VMALLOC_END (0xE0000000) | 18 | #define VMALLOC_END 0xE0000000UL |
| 19 | 19 | ||
| 20 | #endif /* __ASM_ARCH_VMALLOC_H */ | 20 | #endif /* __ASM_ARCH_VMALLOC_H */ |
diff --git a/arch/arm/mach-s3c64xx/include/mach/vmalloc.h b/arch/arm/mach-s3c64xx/include/mach/vmalloc.h index 7411ef3711a6..bc0e91389864 100644 --- a/arch/arm/mach-s3c64xx/include/mach/vmalloc.h +++ b/arch/arm/mach-s3c64xx/include/mach/vmalloc.h | |||
| @@ -15,6 +15,6 @@ | |||
| 15 | #ifndef __ASM_ARCH_VMALLOC_H | 15 | #ifndef __ASM_ARCH_VMALLOC_H |
| 16 | #define __ASM_ARCH_VMALLOC_H | 16 | #define __ASM_ARCH_VMALLOC_H |
| 17 | 17 | ||
| 18 | #define VMALLOC_END (0xE0000000) | 18 | #define VMALLOC_END 0xE0000000UL |
| 19 | 19 | ||
| 20 | #endif /* __ASM_ARCH_VMALLOC_H */ | 20 | #endif /* __ASM_ARCH_VMALLOC_H */ |
diff --git a/arch/arm/mach-s5p6440/include/mach/vmalloc.h b/arch/arm/mach-s5p6440/include/mach/vmalloc.h index 16df257b1dce..e3f0eebf5205 100644 --- a/arch/arm/mach-s5p6440/include/mach/vmalloc.h +++ b/arch/arm/mach-s5p6440/include/mach/vmalloc.h | |||
| @@ -12,6 +12,6 @@ | |||
| 12 | #ifndef __ASM_ARCH_VMALLOC_H | 12 | #ifndef __ASM_ARCH_VMALLOC_H |
| 13 | #define __ASM_ARCH_VMALLOC_H | 13 | #define __ASM_ARCH_VMALLOC_H |
| 14 | 14 | ||
| 15 | #define VMALLOC_END (0xE0000000) | 15 | #define VMALLOC_END 0xE0000000UL |
| 16 | 16 | ||
| 17 | #endif /* __ASM_ARCH_VMALLOC_H */ | 17 | #endif /* __ASM_ARCH_VMALLOC_H */ |
diff --git a/arch/arm/mach-s5p6442/include/mach/vmalloc.h b/arch/arm/mach-s5p6442/include/mach/vmalloc.h index be3333688c20..f5c83f02c18e 100644 --- a/arch/arm/mach-s5p6442/include/mach/vmalloc.h +++ b/arch/arm/mach-s5p6442/include/mach/vmalloc.h | |||
| @@ -12,6 +12,6 @@ | |||
| 12 | #ifndef __ASM_ARCH_VMALLOC_H | 12 | #ifndef __ASM_ARCH_VMALLOC_H |
| 13 | #define __ASM_ARCH_VMALLOC_H | 13 | #define __ASM_ARCH_VMALLOC_H |
| 14 | 14 | ||
| 15 | #define VMALLOC_END (0xE0000000) | 15 | #define VMALLOC_END 0xE0000000UL |
| 16 | 16 | ||
| 17 | #endif /* __ASM_ARCH_VMALLOC_H */ | 17 | #endif /* __ASM_ARCH_VMALLOC_H */ |
diff --git a/arch/arm/mach-s5pv210/include/mach/vmalloc.h b/arch/arm/mach-s5pv210/include/mach/vmalloc.h index 58f515e0747e..df9a28808323 100644 --- a/arch/arm/mach-s5pv210/include/mach/vmalloc.h +++ b/arch/arm/mach-s5pv210/include/mach/vmalloc.h | |||
| @@ -17,6 +17,6 @@ | |||
| 17 | #ifndef __ASM_ARCH_VMALLOC_H | 17 | #ifndef __ASM_ARCH_VMALLOC_H |
| 18 | #define __ASM_ARCH_VMALLOC_H __FILE__ | 18 | #define __ASM_ARCH_VMALLOC_H __FILE__ |
| 19 | 19 | ||
| 20 | #define VMALLOC_END (0xE0000000) | 20 | #define VMALLOC_END (0xE0000000UL) |
| 21 | 21 | ||
| 22 | #endif /* __ASM_ARCH_VMALLOC_H */ | 22 | #endif /* __ASM_ARCH_VMALLOC_H */ |
diff --git a/arch/arm/mach-s5pv310/clock.c b/arch/arm/mach-s5pv310/clock.c index 77f2b4d85e6b..26a0f03df8ea 100644 --- a/arch/arm/mach-s5pv310/clock.c +++ b/arch/arm/mach-s5pv310/clock.c | |||
| @@ -30,6 +30,16 @@ static struct clk clk_sclk_hdmi27m = { | |||
| 30 | .rate = 27000000, | 30 | .rate = 27000000, |
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | static int s5pv310_clksrc_mask_peril0_ctrl(struct clk *clk, int enable) | ||
| 34 | { | ||
| 35 | return s5p_gatectrl(S5P_CLKSRC_MASK_PERIL0, clk, enable); | ||
| 36 | } | ||
| 37 | |||
| 38 | static int s5pv310_clk_ip_peril_ctrl(struct clk *clk, int enable) | ||
| 39 | { | ||
| 40 | return s5p_gatectrl(S5P_CLKGATE_IP_PERIL, clk, enable); | ||
| 41 | } | ||
| 42 | |||
| 33 | /* Core list of CMU_CPU side */ | 43 | /* Core list of CMU_CPU side */ |
| 34 | 44 | ||
| 35 | static struct clksrc_clk clk_mout_apll = { | 45 | static struct clksrc_clk clk_mout_apll = { |
| @@ -39,6 +49,14 @@ static struct clksrc_clk clk_mout_apll = { | |||
| 39 | }, | 49 | }, |
| 40 | .sources = &clk_src_apll, | 50 | .sources = &clk_src_apll, |
| 41 | .reg_src = { .reg = S5P_CLKSRC_CPU, .shift = 0, .size = 1 }, | 51 | .reg_src = { .reg = S5P_CLKSRC_CPU, .shift = 0, .size = 1 }, |
| 52 | }; | ||
| 53 | |||
| 54 | static struct clksrc_clk clk_sclk_apll = { | ||
| 55 | .clk = { | ||
| 56 | .name = "sclk_apll", | ||
| 57 | .id = -1, | ||
| 58 | .parent = &clk_mout_apll.clk, | ||
| 59 | }, | ||
| 42 | .reg_div = { .reg = S5P_CLKDIV_CPU, .shift = 24, .size = 3 }, | 60 | .reg_div = { .reg = S5P_CLKDIV_CPU, .shift = 24, .size = 3 }, |
| 43 | }; | 61 | }; |
| 44 | 62 | ||
| @@ -61,7 +79,7 @@ static struct clksrc_clk clk_mout_mpll = { | |||
| 61 | }; | 79 | }; |
| 62 | 80 | ||
| 63 | static struct clk *clkset_moutcore_list[] = { | 81 | static struct clk *clkset_moutcore_list[] = { |
| 64 | [0] = &clk_mout_apll.clk, | 82 | [0] = &clk_sclk_apll.clk, |
| 65 | [1] = &clk_mout_mpll.clk, | 83 | [1] = &clk_mout_mpll.clk, |
| 66 | }; | 84 | }; |
| 67 | 85 | ||
| @@ -154,7 +172,7 @@ static struct clksrc_clk clk_pclk_dbg = { | |||
| 154 | 172 | ||
| 155 | static struct clk *clkset_corebus_list[] = { | 173 | static struct clk *clkset_corebus_list[] = { |
| 156 | [0] = &clk_mout_mpll.clk, | 174 | [0] = &clk_mout_mpll.clk, |
| 157 | [1] = &clk_mout_apll.clk, | 175 | [1] = &clk_sclk_apll.clk, |
| 158 | }; | 176 | }; |
| 159 | 177 | ||
| 160 | static struct clksrc_sources clkset_mout_corebus = { | 178 | static struct clksrc_sources clkset_mout_corebus = { |
| @@ -220,7 +238,7 @@ static struct clksrc_clk clk_pclk_acp = { | |||
| 220 | 238 | ||
| 221 | static struct clk *clkset_aclk_top_list[] = { | 239 | static struct clk *clkset_aclk_top_list[] = { |
| 222 | [0] = &clk_mout_mpll.clk, | 240 | [0] = &clk_mout_mpll.clk, |
| 223 | [1] = &clk_mout_apll.clk, | 241 | [1] = &clk_sclk_apll.clk, |
| 224 | }; | 242 | }; |
| 225 | 243 | ||
| 226 | static struct clksrc_sources clkset_aclk_200 = { | 244 | static struct clksrc_sources clkset_aclk_200 = { |
| @@ -321,11 +339,6 @@ static struct clksrc_clk clk_sclk_vpll = { | |||
| 321 | .reg_src = { .reg = S5P_CLKSRC_TOP0, .shift = 8, .size = 1 }, | 339 | .reg_src = { .reg = S5P_CLKSRC_TOP0, .shift = 8, .size = 1 }, |
| 322 | }; | 340 | }; |
| 323 | 341 | ||
| 324 | static int s5pv310_clk_ip_peril_ctrl(struct clk *clk, int enable) | ||
| 325 | { | ||
| 326 | return s5p_gatectrl(S5P_CLKGATE_IP_PERIL, clk, enable); | ||
| 327 | } | ||
| 328 | |||
| 329 | static struct clk init_clocks_disable[] = { | 342 | static struct clk init_clocks_disable[] = { |
| 330 | { | 343 | { |
| 331 | .name = "timers", | 344 | .name = "timers", |
| @@ -337,7 +350,37 @@ static struct clk init_clocks_disable[] = { | |||
| 337 | }; | 350 | }; |
| 338 | 351 | ||
| 339 | static struct clk init_clocks[] = { | 352 | static struct clk init_clocks[] = { |
| 340 | /* Nothing here yet */ | 353 | { |
| 354 | .name = "uart", | ||
| 355 | .id = 0, | ||
| 356 | .enable = s5pv310_clk_ip_peril_ctrl, | ||
| 357 | .ctrlbit = (1 << 0), | ||
| 358 | }, { | ||
| 359 | .name = "uart", | ||
| 360 | .id = 1, | ||
| 361 | .enable = s5pv310_clk_ip_peril_ctrl, | ||
| 362 | .ctrlbit = (1 << 1), | ||
| 363 | }, { | ||
| 364 | .name = "uart", | ||
| 365 | .id = 2, | ||
| 366 | .enable = s5pv310_clk_ip_peril_ctrl, | ||
| 367 | .ctrlbit = (1 << 2), | ||
| 368 | }, { | ||
| 369 | .name = "uart", | ||
| 370 | .id = 3, | ||
| 371 | .enable = s5pv310_clk_ip_peril_ctrl, | ||
| 372 | .ctrlbit = (1 << 3), | ||
| 373 | }, { | ||
| 374 | .name = "uart", | ||
| 375 | .id = 4, | ||
| 376 | .enable = s5pv310_clk_ip_peril_ctrl, | ||
| 377 | .ctrlbit = (1 << 4), | ||
| 378 | }, { | ||
| 379 | .name = "uart", | ||
| 380 | .id = 5, | ||
| 381 | .enable = s5pv310_clk_ip_peril_ctrl, | ||
| 382 | .ctrlbit = (1 << 5), | ||
| 383 | } | ||
| 341 | }; | 384 | }; |
| 342 | 385 | ||
| 343 | static struct clk *clkset_group_list[] = { | 386 | static struct clk *clkset_group_list[] = { |
| @@ -359,8 +402,8 @@ static struct clksrc_clk clksrcs[] = { | |||
| 359 | .clk = { | 402 | .clk = { |
| 360 | .name = "uclk1", | 403 | .name = "uclk1", |
| 361 | .id = 0, | 404 | .id = 0, |
| 405 | .enable = s5pv310_clksrc_mask_peril0_ctrl, | ||
| 362 | .ctrlbit = (1 << 0), | 406 | .ctrlbit = (1 << 0), |
| 363 | .enable = s5pv310_clk_ip_peril_ctrl, | ||
| 364 | }, | 407 | }, |
| 365 | .sources = &clkset_group, | 408 | .sources = &clkset_group, |
| 366 | .reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 0, .size = 4 }, | 409 | .reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 0, .size = 4 }, |
| @@ -369,8 +412,8 @@ static struct clksrc_clk clksrcs[] = { | |||
| 369 | .clk = { | 412 | .clk = { |
| 370 | .name = "uclk1", | 413 | .name = "uclk1", |
| 371 | .id = 1, | 414 | .id = 1, |
| 372 | .enable = s5pv310_clk_ip_peril_ctrl, | 415 | .enable = s5pv310_clksrc_mask_peril0_ctrl, |
| 373 | .ctrlbit = (1 << 1), | 416 | .ctrlbit = (1 << 4), |
| 374 | }, | 417 | }, |
| 375 | .sources = &clkset_group, | 418 | .sources = &clkset_group, |
| 376 | .reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 4, .size = 4 }, | 419 | .reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 4, .size = 4 }, |
| @@ -379,8 +422,8 @@ static struct clksrc_clk clksrcs[] = { | |||
| 379 | .clk = { | 422 | .clk = { |
| 380 | .name = "uclk1", | 423 | .name = "uclk1", |
| 381 | .id = 2, | 424 | .id = 2, |
| 382 | .enable = s5pv310_clk_ip_peril_ctrl, | 425 | .enable = s5pv310_clksrc_mask_peril0_ctrl, |
| 383 | .ctrlbit = (1 << 2), | 426 | .ctrlbit = (1 << 8), |
| 384 | }, | 427 | }, |
| 385 | .sources = &clkset_group, | 428 | .sources = &clkset_group, |
| 386 | .reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 8, .size = 4 }, | 429 | .reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 8, .size = 4 }, |
| @@ -389,8 +432,8 @@ static struct clksrc_clk clksrcs[] = { | |||
| 389 | .clk = { | 432 | .clk = { |
| 390 | .name = "uclk1", | 433 | .name = "uclk1", |
| 391 | .id = 3, | 434 | .id = 3, |
| 392 | .enable = s5pv310_clk_ip_peril_ctrl, | 435 | .enable = s5pv310_clksrc_mask_peril0_ctrl, |
| 393 | .ctrlbit = (1 << 3), | 436 | .ctrlbit = (1 << 12), |
| 394 | }, | 437 | }, |
| 395 | .sources = &clkset_group, | 438 | .sources = &clkset_group, |
| 396 | .reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 12, .size = 4 }, | 439 | .reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 12, .size = 4 }, |
| @@ -399,7 +442,7 @@ static struct clksrc_clk clksrcs[] = { | |||
| 399 | .clk = { | 442 | .clk = { |
| 400 | .name = "sclk_pwm", | 443 | .name = "sclk_pwm", |
| 401 | .id = -1, | 444 | .id = -1, |
| 402 | .enable = s5pv310_clk_ip_peril_ctrl, | 445 | .enable = s5pv310_clksrc_mask_peril0_ctrl, |
| 403 | .ctrlbit = (1 << 24), | 446 | .ctrlbit = (1 << 24), |
| 404 | }, | 447 | }, |
| 405 | .sources = &clkset_group, | 448 | .sources = &clkset_group, |
| @@ -411,6 +454,7 @@ static struct clksrc_clk clksrcs[] = { | |||
| 411 | /* Clock initialization code */ | 454 | /* Clock initialization code */ |
| 412 | static struct clksrc_clk *sysclks[] = { | 455 | static struct clksrc_clk *sysclks[] = { |
| 413 | &clk_mout_apll, | 456 | &clk_mout_apll, |
| 457 | &clk_sclk_apll, | ||
| 414 | &clk_mout_epll, | 458 | &clk_mout_epll, |
| 415 | &clk_mout_mpll, | 459 | &clk_mout_mpll, |
| 416 | &clk_moutcore, | 460 | &clk_moutcore, |
| @@ -470,11 +514,11 @@ void __init_or_cpufreq s5pv310_setup_clocks(void) | |||
| 470 | apll = s5p_get_pll45xx(xtal, __raw_readl(S5P_APLL_CON0), pll_4508); | 514 | apll = s5p_get_pll45xx(xtal, __raw_readl(S5P_APLL_CON0), pll_4508); |
| 471 | mpll = s5p_get_pll45xx(xtal, __raw_readl(S5P_MPLL_CON0), pll_4508); | 515 | mpll = s5p_get_pll45xx(xtal, __raw_readl(S5P_MPLL_CON0), pll_4508); |
| 472 | epll = s5p_get_pll46xx(xtal, __raw_readl(S5P_EPLL_CON0), | 516 | epll = s5p_get_pll46xx(xtal, __raw_readl(S5P_EPLL_CON0), |
| 473 | __raw_readl(S5P_EPLL_CON1), pll_4500); | 517 | __raw_readl(S5P_EPLL_CON1), pll_4600); |
| 474 | 518 | ||
| 475 | vpllsrc = clk_get_rate(&clk_vpllsrc.clk); | 519 | vpllsrc = clk_get_rate(&clk_vpllsrc.clk); |
| 476 | vpll = s5p_get_pll46xx(vpllsrc, __raw_readl(S5P_VPLL_CON0), | 520 | vpll = s5p_get_pll46xx(vpllsrc, __raw_readl(S5P_VPLL_CON0), |
| 477 | __raw_readl(S5P_VPLL_CON1), pll_4502); | 521 | __raw_readl(S5P_VPLL_CON1), pll_4650); |
| 478 | 522 | ||
| 479 | clk_fout_apll.rate = apll; | 523 | clk_fout_apll.rate = apll; |
| 480 | clk_fout_mpll.rate = mpll; | 524 | clk_fout_mpll.rate = mpll; |
diff --git a/arch/arm/mach-s5pv310/cpu.c b/arch/arm/mach-s5pv310/cpu.c index 196c9f12ed85..e5b261a99ab2 100644 --- a/arch/arm/mach-s5pv310/cpu.c +++ b/arch/arm/mach-s5pv310/cpu.c | |||
| @@ -45,6 +45,16 @@ static struct map_desc s5pv310_iodesc[] __initdata = { | |||
| 45 | .pfn = __phys_to_pfn(S5PV310_PA_L2CC), | 45 | .pfn = __phys_to_pfn(S5PV310_PA_L2CC), |
| 46 | .length = SZ_4K, | 46 | .length = SZ_4K, |
| 47 | .type = MT_DEVICE, | 47 | .type = MT_DEVICE, |
| 48 | }, { | ||
| 49 | .virtual = (unsigned long)S5P_VA_SYSRAM, | ||
| 50 | .pfn = __phys_to_pfn(S5PV310_PA_SYSRAM), | ||
| 51 | .length = SZ_4K, | ||
| 52 | .type = MT_DEVICE, | ||
| 53 | }, { | ||
| 54 | .virtual = (unsigned long)S5P_VA_CMU, | ||
| 55 | .pfn = __phys_to_pfn(S5PV310_PA_CMU), | ||
| 56 | .length = SZ_128K, | ||
| 57 | .type = MT_DEVICE, | ||
| 48 | }, | 58 | }, |
| 49 | }; | 59 | }; |
| 50 | 60 | ||
diff --git a/arch/arm/mach-s5pv310/include/mach/irqs.h b/arch/arm/mach-s5pv310/include/mach/irqs.h index 56885ca3773c..4cdedda6e652 100644 --- a/arch/arm/mach-s5pv310/include/mach/irqs.h +++ b/arch/arm/mach-s5pv310/include/mach/irqs.h | |||
| @@ -15,12 +15,14 @@ | |||
| 15 | 15 | ||
| 16 | #include <plat/irqs.h> | 16 | #include <plat/irqs.h> |
| 17 | 17 | ||
| 18 | /* Private Peripheral Interrupt */ | 18 | /* PPI: Private Peripheral Interrupt */ |
| 19 | |||
| 19 | #define IRQ_PPI(x) S5P_IRQ(x+16) | 20 | #define IRQ_PPI(x) S5P_IRQ(x+16) |
| 20 | 21 | ||
| 21 | #define IRQ_LOCALTIMER IRQ_PPI(13) | 22 | #define IRQ_LOCALTIMER IRQ_PPI(13) |
| 22 | 23 | ||
| 23 | /* Shared Peripheral Interrupt */ | 24 | /* SPI: Shared Peripheral Interrupt */ |
| 25 | |||
| 24 | #define IRQ_SPI(x) S5P_IRQ(x+32) | 26 | #define IRQ_SPI(x) S5P_IRQ(x+32) |
| 25 | 27 | ||
| 26 | #define IRQ_EINT0 IRQ_SPI(40) | 28 | #define IRQ_EINT0 IRQ_SPI(40) |
| @@ -36,7 +38,7 @@ | |||
| 36 | #define IRQ_PCIE IRQ_SPI(50) | 38 | #define IRQ_PCIE IRQ_SPI(50) |
| 37 | #define IRQ_SYSTEM_TIMER IRQ_SPI(51) | 39 | #define IRQ_SYSTEM_TIMER IRQ_SPI(51) |
| 38 | #define IRQ_MFC IRQ_SPI(52) | 40 | #define IRQ_MFC IRQ_SPI(52) |
| 39 | #define IRQ_WTD IRQ_SPI(53) | 41 | #define IRQ_WDT IRQ_SPI(53) |
| 40 | #define IRQ_AUDIO_SS IRQ_SPI(54) | 42 | #define IRQ_AUDIO_SS IRQ_SPI(54) |
| 41 | #define IRQ_AC97 IRQ_SPI(55) | 43 | #define IRQ_AC97 IRQ_SPI(55) |
| 42 | #define IRQ_SPDIF IRQ_SPI(56) | 44 | #define IRQ_SPDIF IRQ_SPI(56) |
| @@ -67,8 +69,9 @@ | |||
| 67 | #define IRQ_IIC COMBINER_IRQ(27, 0) | 69 | #define IRQ_IIC COMBINER_IRQ(27, 0) |
| 68 | 70 | ||
| 69 | /* Set the default NR_IRQS */ | 71 | /* Set the default NR_IRQS */ |
| 72 | |||
| 70 | #define NR_IRQS COMBINER_IRQ(MAX_COMBINER_NR, 0) | 73 | #define NR_IRQS COMBINER_IRQ(MAX_COMBINER_NR, 0) |
| 71 | 74 | ||
| 72 | #define MAX_COMBINER_NR 39 | 75 | #define MAX_COMBINER_NR 39 |
| 73 | 76 | ||
| 74 | #endif /* ASM_ARCH_IRQS_H */ | 77 | #endif /* __ASM_ARCH_IRQS_H */ |
diff --git a/arch/arm/mach-s5pv310/include/mach/map.h b/arch/arm/mach-s5pv310/include/mach/map.h index 87697c9fca5b..213e1101a3b3 100644 --- a/arch/arm/mach-s5pv310/include/mach/map.h +++ b/arch/arm/mach-s5pv310/include/mach/map.h | |||
| @@ -23,12 +23,16 @@ | |||
| 23 | 23 | ||
| 24 | #include <plat/map-s5p.h> | 24 | #include <plat/map-s5p.h> |
| 25 | 25 | ||
| 26 | #define S5PV310_PA_SYSRAM (0x02025000) | ||
| 27 | |||
| 26 | #define S5PV310_PA_CHIPID (0x10000000) | 28 | #define S5PV310_PA_CHIPID (0x10000000) |
| 27 | #define S5P_PA_CHIPID S5PV310_PA_CHIPID | 29 | #define S5P_PA_CHIPID S5PV310_PA_CHIPID |
| 28 | 30 | ||
| 29 | #define S5PV310_PA_SYSCON (0x10020000) | 31 | #define S5PV310_PA_SYSCON (0x10020000) |
| 30 | #define S5P_PA_SYSCON S5PV310_PA_SYSCON | 32 | #define S5P_PA_SYSCON S5PV310_PA_SYSCON |
| 31 | 33 | ||
| 34 | #define S5PV310_PA_CMU (0x10030000) | ||
| 35 | |||
| 32 | #define S5PV310_PA_WATCHDOG (0x10060000) | 36 | #define S5PV310_PA_WATCHDOG (0x10060000) |
| 33 | 37 | ||
| 34 | #define S5PV310_PA_COMBINER (0x10448000) | 38 | #define S5PV310_PA_COMBINER (0x10448000) |
| @@ -39,8 +43,12 @@ | |||
| 39 | #define S5PV310_PA_GIC_DIST (0x10501000) | 43 | #define S5PV310_PA_GIC_DIST (0x10501000) |
| 40 | #define S5PV310_PA_L2CC (0x10502000) | 44 | #define S5PV310_PA_L2CC (0x10502000) |
| 41 | 45 | ||
| 42 | #define S5PV310_PA_GPIO (0x11000000) | 46 | #define S5PV310_PA_GPIO1 (0x11400000) |
| 43 | #define S5P_PA_GPIO S5PV310_PA_GPIO | 47 | #define S5PV310_PA_GPIO2 (0x11000000) |
| 48 | #define S5PV310_PA_GPIO3 (0x03860000) | ||
| 49 | #define S5P_PA_GPIO S5PV310_PA_GPIO1 | ||
| 50 | |||
| 51 | #define S5PV310_PA_HSMMC(x) (0x12510000 + ((x) * 0x10000)) | ||
| 44 | 52 | ||
| 45 | #define S5PV310_PA_UART (0x13800000) | 53 | #define S5PV310_PA_UART (0x13800000) |
| 46 | 54 | ||
| @@ -63,6 +71,10 @@ | |||
| 63 | 71 | ||
| 64 | /* compatibiltiy defines. */ | 72 | /* compatibiltiy defines. */ |
| 65 | #define S3C_PA_UART S5PV310_PA_UART | 73 | #define S3C_PA_UART S5PV310_PA_UART |
| 74 | #define S3C_PA_HSMMC0 S5PV310_PA_HSMMC(0) | ||
| 75 | #define S3C_PA_HSMMC1 S5PV310_PA_HSMMC(1) | ||
| 76 | #define S3C_PA_HSMMC2 S5PV310_PA_HSMMC(2) | ||
| 77 | #define S3C_PA_HSMMC3 S5PV310_PA_HSMMC(3) | ||
| 66 | #define S3C_PA_IIC S5PV310_PA_IIC0 | 78 | #define S3C_PA_IIC S5PV310_PA_IIC0 |
| 67 | #define S3C_PA_WDT S5PV310_PA_WATCHDOG | 79 | #define S3C_PA_WDT S5PV310_PA_WATCHDOG |
| 68 | 80 | ||
diff --git a/arch/arm/mach-s5pv310/include/mach/regs-clock.h b/arch/arm/mach-s5pv310/include/mach/regs-clock.h index 59e3a7e94d80..4013553cd9be 100644 --- a/arch/arm/mach-s5pv310/include/mach/regs-clock.h +++ b/arch/arm/mach-s5pv310/include/mach/regs-clock.h | |||
| @@ -15,48 +15,49 @@ | |||
| 15 | 15 | ||
| 16 | #include <mach/map.h> | 16 | #include <mach/map.h> |
| 17 | 17 | ||
| 18 | #define S5P_CLKREG(x) (S3C_VA_SYS + (x)) | 18 | #define S5P_CLKREG(x) (S5P_VA_CMU + (x)) |
| 19 | 19 | ||
| 20 | #define S5P_INFORM0 S5P_CLKREG(0x800) | 20 | #define S5P_INFORM0 S5P_CLKREG(0x800) |
| 21 | 21 | ||
| 22 | #define S5P_EPLL_CON0 S5P_CLKREG(0x1C110) | 22 | #define S5P_EPLL_CON0 S5P_CLKREG(0x0C110) |
| 23 | #define S5P_EPLL_CON1 S5P_CLKREG(0x1C114) | 23 | #define S5P_EPLL_CON1 S5P_CLKREG(0x0C114) |
| 24 | #define S5P_VPLL_CON0 S5P_CLKREG(0x1C120) | 24 | #define S5P_VPLL_CON0 S5P_CLKREG(0x0C120) |
| 25 | #define S5P_VPLL_CON1 S5P_CLKREG(0x1C124) | 25 | #define S5P_VPLL_CON1 S5P_CLKREG(0x0C124) |
| 26 | 26 | ||
| 27 | #define S5P_CLKSRC_TOP0 S5P_CLKREG(0x1C210) | 27 | #define S5P_CLKSRC_TOP0 S5P_CLKREG(0x0C210) |
| 28 | #define S5P_CLKSRC_TOP1 S5P_CLKREG(0x1C214) | 28 | #define S5P_CLKSRC_TOP1 S5P_CLKREG(0x0C214) |
| 29 | 29 | ||
| 30 | #define S5P_CLKSRC_PERIL0 S5P_CLKREG(0x1C250) | 30 | #define S5P_CLKSRC_PERIL0 S5P_CLKREG(0x0C250) |
| 31 | 31 | ||
| 32 | #define S5P_CLKDIV_TOP S5P_CLKREG(0x1C510) | 32 | #define S5P_CLKDIV_TOP S5P_CLKREG(0x0C510) |
| 33 | 33 | ||
| 34 | #define S5P_CLKDIV_PERIL0 S5P_CLKREG(0x1C550) | 34 | #define S5P_CLKDIV_PERIL0 S5P_CLKREG(0x0C550) |
| 35 | #define S5P_CLKDIV_PERIL1 S5P_CLKREG(0x1C554) | 35 | #define S5P_CLKDIV_PERIL1 S5P_CLKREG(0x0C554) |
| 36 | #define S5P_CLKDIV_PERIL2 S5P_CLKREG(0x1C558) | 36 | #define S5P_CLKDIV_PERIL2 S5P_CLKREG(0x0C558) |
| 37 | #define S5P_CLKDIV_PERIL3 S5P_CLKREG(0x1C55C) | 37 | #define S5P_CLKDIV_PERIL3 S5P_CLKREG(0x0C55C) |
| 38 | #define S5P_CLKDIV_PERIL4 S5P_CLKREG(0x1C560) | 38 | #define S5P_CLKDIV_PERIL4 S5P_CLKREG(0x0C560) |
| 39 | #define S5P_CLKDIV_PERIL5 S5P_CLKREG(0x1C564) | 39 | #define S5P_CLKDIV_PERIL5 S5P_CLKREG(0x0C564) |
| 40 | 40 | ||
| 41 | #define S5P_CLKGATE_IP_PERIL S5P_CLKREG(0x1C950) | 41 | #define S5P_CLKSRC_MASK_PERIL0 S5P_CLKREG(0x0C350) |
| 42 | 42 | ||
| 43 | #define S5P_CLKSRC_CORE S5P_CLKREG(0x20200) | 43 | #define S5P_CLKGATE_IP_PERIL S5P_CLKREG(0x0C950) |
| 44 | 44 | ||
| 45 | #define S5P_CLKDIV_CORE0 S5P_CLKREG(0x20500) | 45 | #define S5P_CLKSRC_CORE S5P_CLKREG(0x10200) |
| 46 | #define S5P_CLKDIV_CORE0 S5P_CLKREG(0x10500) | ||
| 46 | 47 | ||
| 47 | #define S5P_APLL_LOCK S5P_CLKREG(0x24000) | 48 | #define S5P_APLL_LOCK S5P_CLKREG(0x14000) |
| 48 | #define S5P_MPLL_LOCK S5P_CLKREG(0x24004) | 49 | #define S5P_MPLL_LOCK S5P_CLKREG(0x14004) |
| 49 | #define S5P_APLL_CON0 S5P_CLKREG(0x24100) | 50 | #define S5P_APLL_CON0 S5P_CLKREG(0x14100) |
| 50 | #define S5P_APLL_CON1 S5P_CLKREG(0x24104) | 51 | #define S5P_APLL_CON1 S5P_CLKREG(0x14104) |
| 51 | #define S5P_MPLL_CON0 S5P_CLKREG(0x24108) | 52 | #define S5P_MPLL_CON0 S5P_CLKREG(0x14108) |
| 52 | #define S5P_MPLL_CON1 S5P_CLKREG(0x2410C) | 53 | #define S5P_MPLL_CON1 S5P_CLKREG(0x1410C) |
| 53 | 54 | ||
| 54 | #define S5P_CLKSRC_CPU S5P_CLKREG(0x24200) | 55 | #define S5P_CLKSRC_CPU S5P_CLKREG(0x14200) |
| 55 | #define S5P_CLKMUX_STATCPU S5P_CLKREG(0x24400) | 56 | #define S5P_CLKMUX_STATCPU S5P_CLKREG(0x14400) |
| 56 | 57 | ||
| 57 | #define S5P_CLKDIV_CPU S5P_CLKREG(0x24500) | 58 | #define S5P_CLKDIV_CPU S5P_CLKREG(0x14500) |
| 58 | #define S5P_CLKDIV_STATCPU S5P_CLKREG(0x24600) | 59 | #define S5P_CLKDIV_STATCPU S5P_CLKREG(0x14600) |
| 59 | 60 | ||
| 60 | #define S5P_CLKGATE_SCLKCPU S5P_CLKREG(0x24800) | 61 | #define S5P_CLKGATE_SCLKCPU S5P_CLKREG(0x14800) |
| 61 | 62 | ||
| 62 | #endif /* __ASM_ARCH_REGS_CLOCK_H */ | 63 | #endif /* __ASM_ARCH_REGS_CLOCK_H */ |
diff --git a/arch/arm/mach-s5pv310/include/mach/vmalloc.h b/arch/arm/mach-s5pv310/include/mach/vmalloc.h index 3f565ebb7daa..256f221edf3a 100644 --- a/arch/arm/mach-s5pv310/include/mach/vmalloc.h +++ b/arch/arm/mach-s5pv310/include/mach/vmalloc.h | |||
| @@ -17,6 +17,6 @@ | |||
| 17 | #ifndef __ASM_ARCH_VMALLOC_H | 17 | #ifndef __ASM_ARCH_VMALLOC_H |
| 18 | #define __ASM_ARCH_VMALLOC_H __FILE__ | 18 | #define __ASM_ARCH_VMALLOC_H __FILE__ |
| 19 | 19 | ||
| 20 | #define VMALLOC_END (0xF0000000) | 20 | #define VMALLOC_END (0xF0000000UL) |
| 21 | 21 | ||
| 22 | #endif /* __ASM_ARCH_VMALLOC_H */ | 22 | #endif /* __ASM_ARCH_VMALLOC_H */ |
diff --git a/arch/arm/mach-s5pv310/platsmp.c b/arch/arm/mach-s5pv310/platsmp.c index fe9469abd006..d357c198edee 100644 --- a/arch/arm/mach-s5pv310/platsmp.c +++ b/arch/arm/mach-s5pv310/platsmp.c | |||
| @@ -187,6 +187,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
| 187 | * until it receives a soft interrupt, and then the | 187 | * until it receives a soft interrupt, and then the |
| 188 | * secondary CPU branches to this address. | 188 | * secondary CPU branches to this address. |
| 189 | */ | 189 | */ |
| 190 | __raw_writel(BSYM(virt_to_phys(s5pv310_secondary_startup)), S5P_INFORM0); | 190 | __raw_writel(BSYM(virt_to_phys(s5pv310_secondary_startup)), S5P_VA_SYSRAM); |
| 191 | } | 191 | } |
| 192 | } | 192 | } |
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index 5e16b4c69222..ae416fe7daf2 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | # Common objects | 5 | # Common objects |
| 6 | obj-y := timer.o console.o clock.o | 6 | obj-y := timer.o console.o clock.o pm_runtime.o |
| 7 | 7 | ||
| 8 | # CPU objects | 8 | # CPU objects |
| 9 | obj-$(CONFIG_ARCH_SH7367) += setup-sh7367.o clock-sh7367.o intc-sh7367.o | 9 | obj-$(CONFIG_ARCH_SH7367) += setup-sh7367.o clock-sh7367.o intc-sh7367.o |
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index 23d472f9525e..95935c83c306 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
| 26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
| 27 | #include <linux/mfd/sh_mobile_sdhi.h> | 27 | #include <linux/mfd/sh_mobile_sdhi.h> |
| 28 | #include <linux/mfd/tmio.h> | ||
| 28 | #include <linux/mmc/host.h> | 29 | #include <linux/mmc/host.h> |
| 29 | #include <linux/mtd/mtd.h> | 30 | #include <linux/mtd/mtd.h> |
| 30 | #include <linux/mtd/partitions.h> | 31 | #include <linux/mtd/partitions.h> |
| @@ -39,6 +40,7 @@ | |||
| 39 | #include <linux/sh_clk.h> | 40 | #include <linux/sh_clk.h> |
| 40 | #include <linux/gpio.h> | 41 | #include <linux/gpio.h> |
| 41 | #include <linux/input.h> | 42 | #include <linux/input.h> |
| 43 | #include <linux/leds.h> | ||
| 42 | #include <linux/input/sh_keysc.h> | 44 | #include <linux/input/sh_keysc.h> |
| 43 | #include <linux/usb/r8a66597.h> | 45 | #include <linux/usb/r8a66597.h> |
| 44 | 46 | ||
| @@ -307,6 +309,7 @@ static struct sh_mobile_sdhi_info sdhi1_info = { | |||
| 307 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, | 309 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, |
| 308 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, | 310 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, |
| 309 | .tmio_ocr_mask = MMC_VDD_165_195, | 311 | .tmio_ocr_mask = MMC_VDD_165_195, |
| 312 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, | ||
| 310 | }; | 313 | }; |
| 311 | 314 | ||
| 312 | static struct resource sdhi1_resources[] = { | 315 | static struct resource sdhi1_resources[] = { |
| @@ -558,7 +561,7 @@ static struct resource fsi_resources[] = { | |||
| 558 | 561 | ||
| 559 | static struct platform_device fsi_device = { | 562 | static struct platform_device fsi_device = { |
| 560 | .name = "sh_fsi2", | 563 | .name = "sh_fsi2", |
| 561 | .id = 0, | 564 | .id = -1, |
| 562 | .num_resources = ARRAY_SIZE(fsi_resources), | 565 | .num_resources = ARRAY_SIZE(fsi_resources), |
| 563 | .resource = fsi_resources, | 566 | .resource = fsi_resources, |
| 564 | .dev = { | 567 | .dev = { |
| @@ -650,7 +653,44 @@ static struct platform_device hdmi_device = { | |||
| 650 | }, | 653 | }, |
| 651 | }; | 654 | }; |
| 652 | 655 | ||
| 656 | static struct gpio_led ap4evb_leds[] = { | ||
| 657 | { | ||
| 658 | .name = "led4", | ||
| 659 | .gpio = GPIO_PORT185, | ||
| 660 | .default_state = LEDS_GPIO_DEFSTATE_ON, | ||
| 661 | }, | ||
| 662 | { | ||
| 663 | .name = "led2", | ||
| 664 | .gpio = GPIO_PORT186, | ||
| 665 | .default_state = LEDS_GPIO_DEFSTATE_ON, | ||
| 666 | }, | ||
| 667 | { | ||
| 668 | .name = "led3", | ||
| 669 | .gpio = GPIO_PORT187, | ||
| 670 | .default_state = LEDS_GPIO_DEFSTATE_ON, | ||
| 671 | }, | ||
| 672 | { | ||
| 673 | .name = "led1", | ||
| 674 | .gpio = GPIO_PORT188, | ||
| 675 | .default_state = LEDS_GPIO_DEFSTATE_ON, | ||
| 676 | } | ||
| 677 | }; | ||
| 678 | |||
| 679 | static struct gpio_led_platform_data ap4evb_leds_pdata = { | ||
| 680 | .num_leds = ARRAY_SIZE(ap4evb_leds), | ||
| 681 | .leds = ap4evb_leds, | ||
| 682 | }; | ||
| 683 | |||
| 684 | static struct platform_device leds_device = { | ||
| 685 | .name = "leds-gpio", | ||
| 686 | .id = 0, | ||
| 687 | .dev = { | ||
| 688 | .platform_data = &ap4evb_leds_pdata, | ||
| 689 | }, | ||
| 690 | }; | ||
| 691 | |||
| 653 | static struct platform_device *ap4evb_devices[] __initdata = { | 692 | static struct platform_device *ap4evb_devices[] __initdata = { |
| 693 | &leds_device, | ||
| 654 | &nor_flash_device, | 694 | &nor_flash_device, |
| 655 | &smc911x_device, | 695 | &smc911x_device, |
| 656 | &sdhi0_device, | 696 | &sdhi0_device, |
| @@ -840,20 +880,6 @@ static void __init ap4evb_init(void) | |||
| 840 | gpio_request(GPIO_FN_CS5A, NULL); | 880 | gpio_request(GPIO_FN_CS5A, NULL); |
| 841 | gpio_request(GPIO_FN_IRQ6_39, NULL); | 881 | gpio_request(GPIO_FN_IRQ6_39, NULL); |
| 842 | 882 | ||
| 843 | /* enable LED 1 - 4 */ | ||
| 844 | gpio_request(GPIO_PORT185, NULL); | ||
| 845 | gpio_request(GPIO_PORT186, NULL); | ||
| 846 | gpio_request(GPIO_PORT187, NULL); | ||
| 847 | gpio_request(GPIO_PORT188, NULL); | ||
| 848 | gpio_direction_output(GPIO_PORT185, 1); | ||
| 849 | gpio_direction_output(GPIO_PORT186, 1); | ||
| 850 | gpio_direction_output(GPIO_PORT187, 1); | ||
| 851 | gpio_direction_output(GPIO_PORT188, 1); | ||
| 852 | gpio_export(GPIO_PORT185, 0); | ||
| 853 | gpio_export(GPIO_PORT186, 0); | ||
| 854 | gpio_export(GPIO_PORT187, 0); | ||
| 855 | gpio_export(GPIO_PORT188, 0); | ||
| 856 | |||
| 857 | /* enable Debug switch (S6) */ | 883 | /* enable Debug switch (S6) */ |
| 858 | gpio_request(GPIO_PORT32, NULL); | 884 | gpio_request(GPIO_PORT32, NULL); |
| 859 | gpio_request(GPIO_PORT33, NULL); | 885 | gpio_request(GPIO_PORT33, NULL); |
diff --git a/arch/arm/mach-shmobile/clock-sh7372.c b/arch/arm/mach-shmobile/clock-sh7372.c index fb4e9b1d788e..759468992ad2 100644 --- a/arch/arm/mach-shmobile/clock-sh7372.c +++ b/arch/arm/mach-shmobile/clock-sh7372.c | |||
| @@ -286,7 +286,6 @@ static struct clk_ops pllc2_clk_ops = { | |||
| 286 | 286 | ||
| 287 | struct clk pllc2_clk = { | 287 | struct clk pllc2_clk = { |
| 288 | .ops = &pllc2_clk_ops, | 288 | .ops = &pllc2_clk_ops, |
| 289 | .flags = CLK_ENABLE_ON_INIT, | ||
| 290 | .parent = &extal1_div2_clk, | 289 | .parent = &extal1_div2_clk, |
| 291 | .freq_table = pllc2_freq_table, | 290 | .freq_table = pllc2_freq_table, |
| 292 | .parent_table = pllc2_parent, | 291 | .parent_table = pllc2_parent, |
| @@ -395,7 +394,7 @@ static struct clk div6_reparent_clks[DIV6_REPARENT_NR] = { | |||
| 395 | 394 | ||
| 396 | enum { MSTP001, | 395 | enum { MSTP001, |
| 397 | MSTP131, MSTP130, | 396 | MSTP131, MSTP130, |
| 398 | MSTP129, MSTP128, | 397 | MSTP129, MSTP128, MSTP127, MSTP126, |
| 399 | MSTP118, MSTP117, MSTP116, | 398 | MSTP118, MSTP117, MSTP116, |
| 400 | MSTP106, MSTP101, MSTP100, | 399 | MSTP106, MSTP101, MSTP100, |
| 401 | MSTP223, | 400 | MSTP223, |
| @@ -413,6 +412,8 @@ static struct clk mstp_clks[MSTP_NR] = { | |||
| 413 | [MSTP130] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 30, 0), /* VEU2 */ | 412 | [MSTP130] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 30, 0), /* VEU2 */ |
| 414 | [MSTP129] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 29, 0), /* VEU1 */ | 413 | [MSTP129] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 29, 0), /* VEU1 */ |
| 415 | [MSTP128] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 28, 0), /* VEU0 */ | 414 | [MSTP128] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 28, 0), /* VEU0 */ |
| 415 | [MSTP127] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 27, 0), /* CEU */ | ||
| 416 | [MSTP126] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 26, 0), /* CSI2 */ | ||
| 416 | [MSTP118] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 18, 0), /* DSITX */ | 417 | [MSTP118] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 18, 0), /* DSITX */ |
| 417 | [MSTP117] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 17, 0), /* LCDC1 */ | 418 | [MSTP117] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 17, 0), /* LCDC1 */ |
| 418 | [MSTP116] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR1, 16, 0), /* IIC0 */ | 419 | [MSTP116] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR1, 16, 0), /* IIC0 */ |
| @@ -428,7 +429,7 @@ static struct clk mstp_clks[MSTP_NR] = { | |||
| 428 | [MSTP201] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 1, 0), /* SCIFA3 */ | 429 | [MSTP201] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 1, 0), /* SCIFA3 */ |
| 429 | [MSTP200] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 0, 0), /* SCIFA4 */ | 430 | [MSTP200] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 0, 0), /* SCIFA4 */ |
| 430 | [MSTP329] = MSTP(&r_clk, SMSTPCR3, 29, 0), /* CMT10 */ | 431 | [MSTP329] = MSTP(&r_clk, SMSTPCR3, 29, 0), /* CMT10 */ |
| 431 | [MSTP328] = MSTP(&div6_clks[DIV6_SPU], SMSTPCR3, 28, CLK_ENABLE_ON_INIT), /* FSIA */ | 432 | [MSTP328] = MSTP(&div6_clks[DIV6_SPU], SMSTPCR3, 28, 0), /* FSIA */ |
| 432 | [MSTP323] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR3, 23, 0), /* IIC1 */ | 433 | [MSTP323] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR3, 23, 0), /* IIC1 */ |
| 433 | [MSTP322] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR3, 22, 0), /* USB0 */ | 434 | [MSTP322] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR3, 22, 0), /* USB0 */ |
| 434 | [MSTP314] = MSTP(&div4_clks[DIV4_HP], SMSTPCR3, 14, 0), /* SDHI0 */ | 435 | [MSTP314] = MSTP(&div4_clks[DIV4_HP], SMSTPCR3, 14, 0), /* SDHI0 */ |
| @@ -498,6 +499,8 @@ static struct clk_lookup lookups[] = { | |||
| 498 | CLKDEV_DEV_ID("uio_pdrv_genirq.3", &mstp_clks[MSTP130]), /* VEU2 */ | 499 | CLKDEV_DEV_ID("uio_pdrv_genirq.3", &mstp_clks[MSTP130]), /* VEU2 */ |
| 499 | CLKDEV_DEV_ID("uio_pdrv_genirq.2", &mstp_clks[MSTP129]), /* VEU1 */ | 500 | CLKDEV_DEV_ID("uio_pdrv_genirq.2", &mstp_clks[MSTP129]), /* VEU1 */ |
| 500 | CLKDEV_DEV_ID("uio_pdrv_genirq.1", &mstp_clks[MSTP128]), /* VEU0 */ | 501 | CLKDEV_DEV_ID("uio_pdrv_genirq.1", &mstp_clks[MSTP128]), /* VEU0 */ |
| 502 | CLKDEV_DEV_ID("sh_mobile_ceu.0", &mstp_clks[MSTP127]), /* CEU */ | ||
| 503 | CLKDEV_DEV_ID("sh-mobile-csi2.0", &mstp_clks[MSTP126]), /* CSI2 */ | ||
| 501 | CLKDEV_DEV_ID("sh-mipi-dsi.0", &mstp_clks[MSTP118]), /* DSITX */ | 504 | CLKDEV_DEV_ID("sh-mipi-dsi.0", &mstp_clks[MSTP118]), /* DSITX */ |
| 502 | CLKDEV_DEV_ID("sh_mobile_lcdc_fb.1", &mstp_clks[MSTP117]), /* LCDC1 */ | 505 | CLKDEV_DEV_ID("sh_mobile_lcdc_fb.1", &mstp_clks[MSTP117]), /* LCDC1 */ |
| 503 | CLKDEV_DEV_ID("i2c-sh_mobile.0", &mstp_clks[MSTP116]), /* IIC0 */ | 506 | CLKDEV_DEV_ID("i2c-sh_mobile.0", &mstp_clks[MSTP116]), /* IIC0 */ |
diff --git a/arch/arm/mach-shmobile/clock.c b/arch/arm/mach-shmobile/clock.c index b7c705a213a2..6b7c7c42bc8f 100644 --- a/arch/arm/mach-shmobile/clock.c +++ b/arch/arm/mach-shmobile/clock.c | |||
| @@ -1,8 +1,10 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * SH-Mobile Timer | 2 | * SH-Mobile Clock Framework |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2010 Magnus Damm | 4 | * Copyright (C) 2010 Magnus Damm |
| 5 | * | 5 | * |
| 6 | * Used together with arch/arm/common/clkdev.c and drivers/sh/clk.c. | ||
| 7 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 7 | * it under the terms of the GNU General Public License as published by | 9 | * it under the terms of the GNU General Public License as published by |
| 8 | * the Free Software Foundation; version 2 of the License. | 10 | * the Free Software Foundation; version 2 of the License. |
diff --git a/arch/arm/mach-shmobile/pm_runtime.c b/arch/arm/mach-shmobile/pm_runtime.c new file mode 100644 index 000000000000..94912d3944d3 --- /dev/null +++ b/arch/arm/mach-shmobile/pm_runtime.c | |||
| @@ -0,0 +1,169 @@ | |||
| 1 | /* | ||
| 2 | * arch/arm/mach-shmobile/pm_runtime.c | ||
| 3 | * | ||
| 4 | * Runtime PM support code for SuperH Mobile ARM | ||
| 5 | * | ||
| 6 | * Copyright (C) 2009-2010 Magnus Damm | ||
| 7 | * | ||
| 8 | * This file is subject to the terms and conditions of the GNU General Public | ||
| 9 | * License. See the file "COPYING" in the main directory of this archive | ||
| 10 | * for more details. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include <linux/init.h> | ||
| 14 | #include <linux/kernel.h> | ||
| 15 | #include <linux/io.h> | ||
| 16 | #include <linux/pm_runtime.h> | ||
| 17 | #include <linux/platform_device.h> | ||
| 18 | #include <linux/clk.h> | ||
| 19 | #include <linux/sh_clk.h> | ||
| 20 | #include <linux/bitmap.h> | ||
| 21 | |||
| 22 | #ifdef CONFIG_PM_RUNTIME | ||
| 23 | #define BIT_ONCE 0 | ||
| 24 | #define BIT_ACTIVE 1 | ||
| 25 | #define BIT_CLK_ENABLED 2 | ||
| 26 | |||
| 27 | struct pm_runtime_data { | ||
| 28 | unsigned long flags; | ||
| 29 | struct clk *clk; | ||
| 30 | }; | ||
| 31 | |||
| 32 | static void __devres_release(struct device *dev, void *res) | ||
| 33 | { | ||
| 34 | struct pm_runtime_data *prd = res; | ||
| 35 | |||
| 36 | dev_dbg(dev, "__devres_release()\n"); | ||
| 37 | |||
| 38 | if (test_bit(BIT_CLK_ENABLED, &prd->flags)) | ||
| 39 | clk_disable(prd->clk); | ||
| 40 | |||
| 41 | if (test_bit(BIT_ACTIVE, &prd->flags)) | ||
| 42 | clk_put(prd->clk); | ||
| 43 | } | ||
| 44 | |||
| 45 | static struct pm_runtime_data *__to_prd(struct device *dev) | ||
| 46 | { | ||
| 47 | return devres_find(dev, __devres_release, NULL, NULL); | ||
| 48 | } | ||
| 49 | |||
| 50 | static void platform_pm_runtime_init(struct device *dev, | ||
| 51 | struct pm_runtime_data *prd) | ||
| 52 | { | ||
| 53 | if (prd && !test_and_set_bit(BIT_ONCE, &prd->flags)) { | ||
| 54 | prd->clk = clk_get(dev, NULL); | ||
| 55 | if (!IS_ERR(prd->clk)) { | ||
| 56 | set_bit(BIT_ACTIVE, &prd->flags); | ||
| 57 | dev_info(dev, "clocks managed by runtime pm\n"); | ||
| 58 | } | ||
| 59 | } | ||
| 60 | } | ||
| 61 | |||
| 62 | static void platform_pm_runtime_bug(struct device *dev, | ||
| 63 | struct pm_runtime_data *prd) | ||
| 64 | { | ||
| 65 | if (prd && !test_and_set_bit(BIT_ONCE, &prd->flags)) | ||
| 66 | dev_err(dev, "runtime pm suspend before resume\n"); | ||
| 67 | } | ||
| 68 | |||
| 69 | int platform_pm_runtime_suspend(struct device *dev) | ||
| 70 | { | ||
| 71 | struct pm_runtime_data *prd = __to_prd(dev); | ||
| 72 | |||
| 73 | dev_dbg(dev, "platform_pm_runtime_suspend()\n"); | ||
| 74 | |||
| 75 | platform_pm_runtime_bug(dev, prd); | ||
| 76 | |||
| 77 | if (prd && test_bit(BIT_ACTIVE, &prd->flags)) { | ||
| 78 | clk_disable(prd->clk); | ||
| 79 | clear_bit(BIT_CLK_ENABLED, &prd->flags); | ||
| 80 | } | ||
| 81 | |||
| 82 | return 0; | ||
| 83 | } | ||
| 84 | |||
| 85 | int platform_pm_runtime_resume(struct device *dev) | ||
| 86 | { | ||
| 87 | struct pm_runtime_data *prd = __to_prd(dev); | ||
| 88 | |||
| 89 | dev_dbg(dev, "platform_pm_runtime_resume()\n"); | ||
| 90 | |||
| 91 | platform_pm_runtime_init(dev, prd); | ||
| 92 | |||
| 93 | if (prd && test_bit(BIT_ACTIVE, &prd->flags)) { | ||
| 94 | clk_enable(prd->clk); | ||
| 95 | set_bit(BIT_CLK_ENABLED, &prd->flags); | ||
| 96 | } | ||
| 97 | |||
| 98 | return 0; | ||
| 99 | } | ||
| 100 | |||
| 101 | int platform_pm_runtime_idle(struct device *dev) | ||
| 102 | { | ||
| 103 | /* suspend synchronously to disable clocks immediately */ | ||
| 104 | return pm_runtime_suspend(dev); | ||
| 105 | } | ||
| 106 | |||
| 107 | static int platform_bus_notify(struct notifier_block *nb, | ||
| 108 | unsigned long action, void *data) | ||
| 109 | { | ||
| 110 | struct device *dev = data; | ||
| 111 | struct pm_runtime_data *prd; | ||
| 112 | |||
| 113 | dev_dbg(dev, "platform_bus_notify() %ld !\n", action); | ||
| 114 | |||
| 115 | if (action == BUS_NOTIFY_BIND_DRIVER) { | ||
| 116 | prd = devres_alloc(__devres_release, sizeof(*prd), GFP_KERNEL); | ||
| 117 | if (prd) | ||
| 118 | devres_add(dev, prd); | ||
| 119 | else | ||
| 120 | dev_err(dev, "unable to alloc memory for runtime pm\n"); | ||
| 121 | } | ||
| 122 | |||
| 123 | return 0; | ||
| 124 | } | ||
| 125 | |||
| 126 | #else /* CONFIG_PM_RUNTIME */ | ||
| 127 | |||
| 128 | static int platform_bus_notify(struct notifier_block *nb, | ||
| 129 | unsigned long action, void *data) | ||
| 130 | { | ||
| 131 | struct device *dev = data; | ||
| 132 | struct clk *clk; | ||
| 133 | |||
| 134 | dev_dbg(dev, "platform_bus_notify() %ld !\n", action); | ||
| 135 | |||
| 136 | switch (action) { | ||
| 137 | case BUS_NOTIFY_BIND_DRIVER: | ||
| 138 | clk = clk_get(dev, NULL); | ||
| 139 | if (!IS_ERR(clk)) { | ||
| 140 | clk_enable(clk); | ||
| 141 | clk_put(clk); | ||
| 142 | dev_info(dev, "runtime pm disabled, clock forced on\n"); | ||
| 143 | } | ||
| 144 | break; | ||
| 145 | case BUS_NOTIFY_UNBOUND_DRIVER: | ||
| 146 | clk = clk_get(dev, NULL); | ||
| 147 | if (!IS_ERR(clk)) { | ||
| 148 | clk_disable(clk); | ||
| 149 | clk_put(clk); | ||
| 150 | dev_info(dev, "runtime pm disabled, clock forced off\n"); | ||
| 151 | } | ||
| 152 | break; | ||
| 153 | } | ||
| 154 | |||
| 155 | return 0; | ||
| 156 | } | ||
| 157 | |||
| 158 | #endif /* CONFIG_PM_RUNTIME */ | ||
| 159 | |||
| 160 | static struct notifier_block platform_bus_notifier = { | ||
| 161 | .notifier_call = platform_bus_notify | ||
| 162 | }; | ||
| 163 | |||
| 164 | static int __init sh_pm_runtime_init(void) | ||
| 165 | { | ||
| 166 | bus_register_notifier(&platform_bus_type, &platform_bus_notifier); | ||
| 167 | return 0; | ||
| 168 | } | ||
| 169 | core_initcall(sh_pm_runtime_init); | ||
diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c index 05e78dd9b50c..9e305de56be9 100644 --- a/arch/arm/mach-tegra/board-harmony.c +++ b/arch/arm/mach-tegra/board-harmony.c | |||
| @@ -91,10 +91,8 @@ static void __init tegra_harmony_fixup(struct machine_desc *desc, | |||
| 91 | { | 91 | { |
| 92 | mi->nr_banks = 2; | 92 | mi->nr_banks = 2; |
| 93 | mi->bank[0].start = PHYS_OFFSET; | 93 | mi->bank[0].start = PHYS_OFFSET; |
| 94 | mi->bank[0].node = PHYS_TO_NID(PHYS_OFFSET); | ||
| 95 | mi->bank[0].size = 448 * SZ_1M; | 94 | mi->bank[0].size = 448 * SZ_1M; |
| 96 | mi->bank[1].start = SZ_512M; | 95 | mi->bank[1].start = SZ_512M; |
| 97 | mi->bank[1].node = PHYS_TO_NID(SZ_512M); | ||
| 98 | mi->bank[1].size = SZ_512M; | 96 | mi->bank[1].size = SZ_512M; |
| 99 | } | 97 | } |
| 100 | 98 | ||
diff --git a/arch/arm/mach-tegra/include/mach/vmalloc.h b/arch/arm/mach-tegra/include/mach/vmalloc.h index 267a141730d9..fd6aa65b2dc6 100644 --- a/arch/arm/mach-tegra/include/mach/vmalloc.h +++ b/arch/arm/mach-tegra/include/mach/vmalloc.h | |||
| @@ -23,6 +23,6 @@ | |||
| 23 | 23 | ||
| 24 | #include <asm/sizes.h> | 24 | #include <asm/sizes.h> |
| 25 | 25 | ||
| 26 | #define VMALLOC_END 0xFE000000 | 26 | #define VMALLOC_END 0xFE000000UL |
| 27 | 27 | ||
| 28 | #endif | 28 | #endif |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 33c3f570aaa0..a0a2928ae4dd 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
| @@ -398,7 +398,7 @@ config CPU_V6 | |||
| 398 | # ARMv6k | 398 | # ARMv6k |
| 399 | config CPU_32v6K | 399 | config CPU_32v6K |
| 400 | bool "Support ARM V6K processor extensions" if !SMP | 400 | bool "Support ARM V6K processor extensions" if !SMP |
| 401 | depends on CPU_V6 | 401 | depends on CPU_V6 || CPU_V7 |
| 402 | default y if SMP && !(ARCH_MX3 || ARCH_OMAP2) | 402 | default y if SMP && !(ARCH_MX3 || ARCH_OMAP2) |
| 403 | help | 403 | help |
| 404 | Say Y here if your ARMv6 processor supports the 'K' extension. | 404 | Say Y here if your ARMv6 processor supports the 'K' extension. |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index c704eed63c5d..4bc43e535d3b 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
| @@ -229,6 +229,8 @@ __dma_alloc_remap(struct page *page, size_t size, gfp_t gfp, pgprot_t prot) | |||
| 229 | } | 229 | } |
| 230 | } while (size -= PAGE_SIZE); | 230 | } while (size -= PAGE_SIZE); |
| 231 | 231 | ||
| 232 | dsb(); | ||
| 233 | |||
| 232 | return (void *)c->vm_start; | 234 | return (void *)c->vm_start; |
| 233 | } | 235 | } |
| 234 | return NULL; | 236 | return NULL; |
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig index 0527e65318f4..6785db4179b8 100644 --- a/arch/arm/plat-mxc/Kconfig +++ b/arch/arm/plat-mxc/Kconfig | |||
| @@ -43,6 +43,7 @@ config ARCH_MXC91231 | |||
| 43 | config ARCH_MX5 | 43 | config ARCH_MX5 |
| 44 | bool "MX5-based" | 44 | bool "MX5-based" |
| 45 | select CPU_V7 | 45 | select CPU_V7 |
| 46 | select ARM_L1_CACHE_SHIFT_6 | ||
| 46 | help | 47 | help |
| 47 | This enables support for systems based on the Freescale i.MX51 family | 48 | This enables support for systems based on the Freescale i.MX51 family |
| 48 | 49 | ||
diff --git a/arch/arm/plat-mxc/include/mach/eukrea-baseboards.h b/arch/arm/plat-mxc/include/mach/eukrea-baseboards.h index 634e3f4c454d..656acb45d434 100644 --- a/arch/arm/plat-mxc/include/mach/eukrea-baseboards.h +++ b/arch/arm/plat-mxc/include/mach/eukrea-baseboards.h | |||
| @@ -37,9 +37,9 @@ | |||
| 37 | * mach-mx5/eukrea_mbimx51-baseboard.c for cpuimx51 | 37 | * mach-mx5/eukrea_mbimx51-baseboard.c for cpuimx51 |
| 38 | */ | 38 | */ |
| 39 | 39 | ||
| 40 | extern void eukrea_mbimx25_baseboard_init(void); | 40 | extern void eukrea_mbimxsd25_baseboard_init(void); |
| 41 | extern void eukrea_mbimx27_baseboard_init(void); | 41 | extern void eukrea_mbimx27_baseboard_init(void); |
| 42 | extern void eukrea_mbimx35_baseboard_init(void); | 42 | extern void eukrea_mbimxsd35_baseboard_init(void); |
| 43 | extern void eukrea_mbimx51_baseboard_init(void); | 43 | extern void eukrea_mbimx51_baseboard_init(void); |
| 44 | 44 | ||
| 45 | #endif | 45 | #endif |
diff --git a/arch/arm/plat-mxc/tzic.c b/arch/arm/plat-mxc/tzic.c index b3da9aad4295..3703ab28257f 100644 --- a/arch/arm/plat-mxc/tzic.c +++ b/arch/arm/plat-mxc/tzic.c | |||
| @@ -164,8 +164,9 @@ int tzic_enable_wake(int is_idle) | |||
| 164 | return -EAGAIN; | 164 | return -EAGAIN; |
| 165 | 165 | ||
| 166 | for (i = 0; i < 4; i++) { | 166 | for (i = 0; i < 4; i++) { |
| 167 | v = is_idle ? __raw_readl(TZIC_ENSET0(i)) : wakeup_intr[i]; | 167 | v = is_idle ? __raw_readl(tzic_base + TZIC_ENSET0(i)) : |
| 168 | __raw_writel(v, TZIC_WAKEUP0(i)); | 168 | wakeup_intr[i]; |
| 169 | __raw_writel(v, tzic_base + TZIC_WAKEUP0(i)); | ||
| 169 | } | 170 | } |
| 170 | 171 | ||
| 171 | return 0; | 172 | return 0; |
diff --git a/arch/arm/plat-omap/include/plat/smp.h b/arch/arm/plat-omap/include/plat/smp.h index 6a3ff65c0303..5177a9c5a25a 100644 --- a/arch/arm/plat-omap/include/plat/smp.h +++ b/arch/arm/plat-omap/include/plat/smp.h | |||
| @@ -19,13 +19,6 @@ | |||
| 19 | 19 | ||
| 20 | #include <asm/hardware/gic.h> | 20 | #include <asm/hardware/gic.h> |
| 21 | 21 | ||
| 22 | /* | ||
| 23 | * set_event() is used to wake up secondary core from wfe using sev. ROM | ||
| 24 | * code puts the second core into wfe(standby). | ||
| 25 | * | ||
| 26 | */ | ||
| 27 | #define set_event() __asm__ __volatile__ ("sev" : : : "memory") | ||
| 28 | |||
| 29 | /* Needed for secondary core boot */ | 22 | /* Needed for secondary core boot */ |
| 30 | extern void omap_secondary_startup(void); | 23 | extern void omap_secondary_startup(void); |
| 31 | extern u32 omap_modify_auxcoreboot0(u32 set_mask, u32 clear_mask); | 24 | extern u32 omap_modify_auxcoreboot0(u32 set_mask, u32 clear_mask); |
diff --git a/arch/arm/plat-pxa/pwm.c b/arch/arm/plat-pxa/pwm.c index 0732c6c8d511..ef32686feef9 100644 --- a/arch/arm/plat-pxa/pwm.c +++ b/arch/arm/plat-pxa/pwm.c | |||
| @@ -176,7 +176,7 @@ static inline void __add_pwm(struct pwm_device *pwm) | |||
| 176 | 176 | ||
| 177 | static int __devinit pwm_probe(struct platform_device *pdev) | 177 | static int __devinit pwm_probe(struct platform_device *pdev) |
| 178 | { | 178 | { |
| 179 | struct platform_device_id *id = platform_get_device_id(pdev); | 179 | const struct platform_device_id *id = platform_get_device_id(pdev); |
| 180 | struct pwm_device *pwm, *secondary = NULL; | 180 | struct pwm_device *pwm, *secondary = NULL; |
| 181 | struct resource *r; | 181 | struct resource *r; |
| 182 | int ret = 0; | 182 | int ret = 0; |
diff --git a/arch/arm/plat-s5p/include/plat/map-s5p.h b/arch/arm/plat-s5p/include/plat/map-s5p.h index 54e9fb9d315e..c4ff88bf6477 100644 --- a/arch/arm/plat-s5p/include/plat/map-s5p.h +++ b/arch/arm/plat-s5p/include/plat/map-s5p.h | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #define S5P_VA_GPIO S3C_ADDR(0x00500000) | 17 | #define S5P_VA_GPIO S3C_ADDR(0x00500000) |
| 18 | #define S5P_VA_SYSTIMER S3C_ADDR(0x01200000) | 18 | #define S5P_VA_SYSTIMER S3C_ADDR(0x01200000) |
| 19 | #define S5P_VA_SROMC S3C_ADDR(0x01100000) | 19 | #define S5P_VA_SROMC S3C_ADDR(0x01100000) |
| 20 | #define S5P_VA_SYSRAM S3C_ADDR(0x01180000) | ||
| 20 | 21 | ||
| 21 | #define S5P_VA_COMBINER_BASE S3C_ADDR(0x00600000) | 22 | #define S5P_VA_COMBINER_BASE S3C_ADDR(0x00600000) |
| 22 | #define S5P_VA_COMBINER(x) (S5P_VA_COMBINER_BASE + ((x) >> 2) * 0x10) | 23 | #define S5P_VA_COMBINER(x) (S5P_VA_COMBINER_BASE + ((x) >> 2) * 0x10) |
| @@ -29,6 +30,7 @@ | |||
| 29 | #define S5P_VA_GIC_DIST S5P_VA_COREPERI(0x1000) | 30 | #define S5P_VA_GIC_DIST S5P_VA_COREPERI(0x1000) |
| 30 | 31 | ||
| 31 | #define S5P_VA_L2CC S3C_ADDR(0x00900000) | 32 | #define S5P_VA_L2CC S3C_ADDR(0x00900000) |
| 33 | #define S5P_VA_CMU S3C_ADDR(0x00920000) | ||
| 32 | 34 | ||
| 33 | #define S5P_VA_UART(x) (S3C_VA_UART + ((x) * S3C_UART_OFFSET)) | 35 | #define S5P_VA_UART(x) (S3C_VA_UART + ((x) * S3C_UART_OFFSET)) |
| 34 | #define S5P_VA_UART0 S5P_VA_UART(0) | 36 | #define S5P_VA_UART0 S5P_VA_UART(0) |
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index 48cbdcb6bbd4..55590a4d87c9 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | # | 12 | # |
| 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new | 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new |
| 14 | # | 14 | # |
| 15 | # Last update: Mon Jul 12 21:10:14 2010 | 15 | # Last update: Thu Sep 9 22:43:01 2010 |
| 16 | # | 16 | # |
| 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
| 18 | # | 18 | # |
| @@ -2622,7 +2622,7 @@ kraken MACH_KRAKEN KRAKEN 2634 | |||
| 2622 | gw2388 MACH_GW2388 GW2388 2635 | 2622 | gw2388 MACH_GW2388 GW2388 2635 |
| 2623 | jadecpu MACH_JADECPU JADECPU 2636 | 2623 | jadecpu MACH_JADECPU JADECPU 2636 |
| 2624 | carlisle MACH_CARLISLE CARLISLE 2637 | 2624 | carlisle MACH_CARLISLE CARLISLE 2637 |
| 2625 | lux_sf9 MACH_LUX_SFT9 LUX_SFT9 2638 | 2625 | lux_sf9 MACH_LUX_SF9 LUX_SF9 2638 |
| 2626 | nemid_tb MACH_NEMID_TB NEMID_TB 2639 | 2626 | nemid_tb MACH_NEMID_TB NEMID_TB 2639 |
| 2627 | terrier MACH_TERRIER TERRIER 2640 | 2627 | terrier MACH_TERRIER TERRIER 2640 |
| 2628 | turbot MACH_TURBOT TURBOT 2641 | 2628 | turbot MACH_TURBOT TURBOT 2641 |
| @@ -2950,3 +2950,97 @@ davinci_dm365_dvr MACH_DAVINCI_DM365_DVR DAVINCI_DM365_DVR 2963 | |||
| 2950 | netviz MACH_NETVIZ NETVIZ 2964 | 2950 | netviz MACH_NETVIZ NETVIZ 2964 |
| 2951 | flexibity MACH_FLEXIBITY FLEXIBITY 2965 | 2951 | flexibity MACH_FLEXIBITY FLEXIBITY 2965 |
| 2952 | wlan_computer MACH_WLAN_COMPUTER WLAN_COMPUTER 2966 | 2952 | wlan_computer MACH_WLAN_COMPUTER WLAN_COMPUTER 2966 |
| 2953 | lpc24xx MACH_LPC24XX LPC24XX 2967 | ||
| 2954 | spica MACH_SPICA SPICA 2968 | ||
| 2955 | gpsdisplay MACH_GPSDISPLAY GPSDISPLAY 2969 | ||
| 2956 | bipnet MACH_BIPNET BIPNET 2970 | ||
| 2957 | overo_ctu_inertial MACH_OVERO_CTU_INERTIAL OVERO_CTU_INERTIAL 2971 | ||
| 2958 | davinci_dm355_mmm MACH_DAVINCI_DM355_MMM DAVINCI_DM355_MMM 2972 | ||
| 2959 | pc9260_v2 MACH_PC9260_V2 PC9260_V2 2973 | ||
| 2960 | ptx7545 MACH_PTX7545 PTX7545 2974 | ||
| 2961 | tm_efdc MACH_TM_EFDC TM_EFDC 2975 | ||
| 2962 | omap3_waldo1 MACH_OMAP3_WALDO1 OMAP3_WALDO1 2977 | ||
| 2963 | flyer MACH_FLYER FLYER 2978 | ||
| 2964 | tornado3240 MACH_TORNADO3240 TORNADO3240 2979 | ||
| 2965 | soli_01 MACH_SOLI_01 SOLI_01 2980 | ||
| 2966 | omapl138_europalc MACH_OMAPL138_EUROPALC OMAPL138_EUROPALC 2981 | ||
| 2967 | helios_v1 MACH_HELIOS_V1 HELIOS_V1 2982 | ||
| 2968 | netspace_lite_v2 MACH_NETSPACE_LITE_V2 NETSPACE_LITE_V2 2983 | ||
| 2969 | ssc MACH_SSC SSC 2984 | ||
| 2970 | premierwave_en MACH_PREMIERWAVE_EN PREMIERWAVE_EN 2985 | ||
| 2971 | wasabi MACH_WASABI WASABI 2986 | ||
| 2972 | vivow MACH_VIVOW VIVOW 2987 | ||
| 2973 | mx50_rdp MACH_MX50_RDP MX50_RDP 2988 | ||
| 2974 | universal MACH_UNIVERSAL UNIVERSAL 2989 | ||
| 2975 | real6410 MACH_REAL6410 REAL6410 2990 | ||
| 2976 | spx_sakura MACH_SPX_SAKURA SPX_SAKURA 2991 | ||
| 2977 | ij3k_2440 MACH_IJ3K_2440 IJ3K_2440 2992 | ||
| 2978 | omap3_bc10 MACH_OMAP3_BC10 OMAP3_BC10 2993 | ||
| 2979 | thebe MACH_THEBE THEBE 2994 | ||
| 2980 | rv082 MACH_RV082 RV082 2995 | ||
| 2981 | armlguest MACH_ARMLGUEST ARMLGUEST 2996 | ||
| 2982 | tjinc1000 MACH_TJINC1000 TJINC1000 2997 | ||
| 2983 | dockstar MACH_DOCKSTAR DOCKSTAR 2998 | ||
| 2984 | ax8008 MACH_AX8008 AX8008 2999 | ||
| 2985 | gnet_sgce MACH_GNET_SGCE GNET_SGCE 3000 | ||
| 2986 | pxwnas_500_1000 MACH_PXWNAS_500_1000 PXWNAS_500_1000 3001 | ||
| 2987 | ea20 MACH_EA20 EA20 3002 | ||
| 2988 | awm2 MACH_AWM2 AWM2 3003 | ||
| 2989 | ti8148evm MACH_TI8148EVM TI8148EVM 3004 | ||
| 2990 | tegra_seaboard MACH_TEGRA_SEABOARD TEGRA_SEABOARD 3005 | ||
| 2991 | linkstation_chlv2 MACH_LINKSTATION_CHLV2 LINKSTATION_CHLV2 3006 | ||
| 2992 | tera_pro2_rack MACH_TERA_PRO2_RACK TERA_PRO2_RACK 3007 | ||
| 2993 | rubys MACH_RUBYS RUBYS 3008 | ||
| 2994 | aquarius MACH_AQUARIUS AQUARIUS 3009 | ||
| 2995 | mx53_ard MACH_MX53_ARD MX53_ARD 3010 | ||
| 2996 | mx53_smd MACH_MX53_SMD MX53_SMD 3011 | ||
| 2997 | lswxl MACH_LSWXL LSWXL 3012 | ||
| 2998 | dove_avng_v3 MACH_DOVE_AVNG_V3 DOVE_AVNG_V3 3013 | ||
| 2999 | sdi_ess_9263 MACH_SDI_ESS_9263 SDI_ESS_9263 3014 | ||
| 3000 | jocpu550 MACH_JOCPU550 JOCPU550 3015 | ||
| 3001 | msm8x60_rumi3 MACH_MSM8X60_RUMI3 MSM8X60_RUMI3 3016 | ||
| 3002 | msm8x60_ffa MACH_MSM8X60_FFA MSM8X60_FFA 3017 | ||
| 3003 | yanomami MACH_YANOMAMI YANOMAMI 3018 | ||
| 3004 | gta04 MACH_GTA04 GTA04 3019 | ||
| 3005 | cm_a510 MACH_CM_A510 CM_A510 3020 | ||
| 3006 | omap3_rfs200 MACH_OMAP3_RFS200 OMAP3_RFS200 3021 | ||
| 3007 | kx33xx MACH_KX33XX KX33XX 3022 | ||
| 3008 | ptx7510 MACH_PTX7510 PTX7510 3023 | ||
| 3009 | top9000 MACH_TOP9000 TOP9000 3024 | ||
| 3010 | teenote MACH_TEENOTE TEENOTE 3025 | ||
| 3011 | ts3 MACH_TS3 TS3 3026 | ||
| 3012 | a0 MACH_A0 A0 3027 | ||
| 3013 | fsm9xxx_surf MACH_FSM9XXX_SURF FSM9XXX_SURF 3028 | ||
| 3014 | fsm9xxx_ffa MACH_FSM9XXX_FFA FSM9XXX_FFA 3029 | ||
| 3015 | frrhwcdma60w MACH_FRRHWCDMA60W FRRHWCDMA60W 3030 | ||
| 3016 | remus MACH_REMUS REMUS 3031 | ||
| 3017 | at91cap7xdk MACH_AT91CAP7XDK AT91CAP7XDK 3032 | ||
| 3018 | at91cap7stk MACH_AT91CAP7STK AT91CAP7STK 3033 | ||
| 3019 | kt_sbc_sam9_1 MACH_KT_SBC_SAM9_1 KT_SBC_SAM9_1 3034 | ||
| 3020 | oratisrouter MACH_ORATISROUTER ORATISROUTER 3035 | ||
| 3021 | armada_xp_db MACH_ARMADA_XP_DB ARMADA_XP_DB 3036 | ||
| 3022 | spdm MACH_SPDM SPDM 3037 | ||
| 3023 | gtib MACH_GTIB GTIB 3038 | ||
| 3024 | dgm3240 MACH_DGM3240 DGM3240 3039 | ||
| 3025 | atlas_i_lpe MACH_ATLAS_I_LPE ATLAS_I_LPE 3040 | ||
| 3026 | htcmega MACH_HTCMEGA HTCMEGA 3041 | ||
| 3027 | tricorder MACH_TRICORDER TRICORDER 3042 | ||
| 3028 | tx28 MACH_TX28 TX28 3043 | ||
| 3029 | bstbrd MACH_BSTBRD BSTBRD 3044 | ||
| 3030 | pwb3090 MACH_PWB3090 PWB3090 3045 | ||
| 3031 | idea6410 MACH_IDEA6410 IDEA6410 3046 | ||
| 3032 | qbc9263 MACH_QBC9263 QBC9263 3047 | ||
| 3033 | borabora MACH_BORABORA BORABORA 3048 | ||
| 3034 | valdez MACH_VALDEZ VALDEZ 3049 | ||
| 3035 | ls9g20 MACH_LS9G20 LS9G20 3050 | ||
| 3036 | mios_v1 MACH_MIOS_V1 MIOS_V1 3051 | ||
| 3037 | s5pc110_crespo MACH_S5PC110_CRESPO S5PC110_CRESPO 3052 | ||
| 3038 | controltek9g20 MACH_CONTROLTEK9G20 CONTROLTEK9G20 3053 | ||
| 3039 | tin307 MACH_TIN307 TIN307 3054 | ||
| 3040 | tin510 MACH_TIN510 TIN510 3055 | ||
| 3041 | bluecheese MACH_BLUECHEESE BLUECHEESE 3057 | ||
| 3042 | tem3x30 MACH_TEM3X30 TEM3X30 3058 | ||
| 3043 | harvest_desoto MACH_HARVEST_DESOTO HARVEST_DESOTO 3059 | ||
| 3044 | msm8x60_qrdc MACH_MSM8X60_QRDC MSM8X60_QRDC 3060 | ||
| 3045 | spear900 MACH_SPEAR900 SPEAR900 3061 | ||
| 3046 | pcontrol_g20 MACH_PCONTROL_G20 PCONTROL_G20 3062 | ||
diff --git a/arch/blackfin/include/asm/bfin_sport.h b/arch/blackfin/include/asm/bfin_sport.h index 9626cf7e4251..d27600c262c2 100644 --- a/arch/blackfin/include/asm/bfin_sport.h +++ b/arch/blackfin/include/asm/bfin_sport.h | |||
| @@ -115,12 +115,6 @@ struct sport_register { | |||
| 115 | 115 | ||
| 116 | #endif | 116 | #endif |
| 117 | 117 | ||
| 118 | /* Workaround defBF*.h SPORT MMRs till they get cleansed */ | ||
| 119 | #undef DTYPE_NORM | ||
| 120 | #undef SLEN | ||
| 121 | #undef SP_WOFF | ||
| 122 | #undef SP_WSIZE | ||
| 123 | |||
| 124 | /* SPORT_TCR1 Masks */ | 118 | /* SPORT_TCR1 Masks */ |
| 125 | #define TSPEN 0x0001 /* TX enable */ | 119 | #define TSPEN 0x0001 /* TX enable */ |
| 126 | #define ITCLK 0x0002 /* Internal TX Clock Select */ | 120 | #define ITCLK 0x0002 /* Internal TX Clock Select */ |
diff --git a/arch/blackfin/mach-bf518/include/mach/defBF51x_base.h b/arch/blackfin/mach-bf518/include/mach/defBF51x_base.h index 2bc8f4f98011..037a51fd8e93 100644 --- a/arch/blackfin/mach-bf518/include/mach/defBF51x_base.h +++ b/arch/blackfin/mach-bf518/include/mach/defBF51x_base.h | |||
| @@ -913,88 +913,6 @@ | |||
| 913 | #define PH6 0x0040 | 913 | #define PH6 0x0040 |
| 914 | #define PH7 0x0080 | 914 | #define PH7 0x0080 |
| 915 | 915 | ||
| 916 | |||
| 917 | /* ******************* SERIAL PORT MASKS **************************************/ | ||
| 918 | /* SPORTx_TCR1 Masks */ | ||
| 919 | #define TSPEN 0x0001 /* Transmit Enable */ | ||
| 920 | #define ITCLK 0x0002 /* Internal Transmit Clock Select */ | ||
| 921 | #define DTYPE_NORM 0x0004 /* Data Format Normal */ | ||
| 922 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 923 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 924 | #define TLSBIT 0x0010 /* Transmit Bit Order */ | ||
| 925 | #define ITFS 0x0200 /* Internal Transmit Frame Sync Select */ | ||
| 926 | #define TFSR 0x0400 /* Transmit Frame Sync Required Select */ | ||
| 927 | #define DITFS 0x0800 /* Data-Independent Transmit Frame Sync Select */ | ||
| 928 | #define LTFS 0x1000 /* Low Transmit Frame Sync Select */ | ||
| 929 | #define LATFS 0x2000 /* Late Transmit Frame Sync Select */ | ||
| 930 | #define TCKFE 0x4000 /* Clock Falling Edge Select */ | ||
| 931 | |||
| 932 | /* SPORTx_TCR2 Masks and Macro */ | ||
| 933 | #define SLEN(x) ((x)&0x1F) /* SPORT TX Word Length (2 - 31) */ | ||
| 934 | #define TXSE 0x0100 /* TX Secondary Enable */ | ||
| 935 | #define TSFSE 0x0200 /* Transmit Stereo Frame Sync Enable */ | ||
| 936 | #define TRFST 0x0400 /* Left/Right Order (1 = Right Channel 1st) */ | ||
| 937 | |||
| 938 | /* SPORTx_RCR1 Masks */ | ||
| 939 | #define RSPEN 0x0001 /* Receive Enable */ | ||
| 940 | #define IRCLK 0x0002 /* Internal Receive Clock Select */ | ||
| 941 | #define DTYPE_NORM 0x0004 /* Data Format Normal */ | ||
| 942 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 943 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 944 | #define RLSBIT 0x0010 /* Receive Bit Order */ | ||
| 945 | #define IRFS 0x0200 /* Internal Receive Frame Sync Select */ | ||
| 946 | #define RFSR 0x0400 /* Receive Frame Sync Required Select */ | ||
| 947 | #define LRFS 0x1000 /* Low Receive Frame Sync Select */ | ||
| 948 | #define LARFS 0x2000 /* Late Receive Frame Sync Select */ | ||
| 949 | #define RCKFE 0x4000 /* Clock Falling Edge Select */ | ||
| 950 | |||
| 951 | /* SPORTx_RCR2 Masks */ | ||
| 952 | #define SLEN(x) ((x)&0x1F) /* SPORT RX Word Length (2 - 31) */ | ||
| 953 | #define RXSE 0x0100 /* RX Secondary Enable */ | ||
| 954 | #define RSFSE 0x0200 /* RX Stereo Frame Sync Enable */ | ||
| 955 | #define RRFST 0x0400 /* Right-First Data Order */ | ||
| 956 | |||
| 957 | /* SPORTx_STAT Masks */ | ||
| 958 | #define RXNE 0x0001 /* Receive FIFO Not Empty Status */ | ||
| 959 | #define RUVF 0x0002 /* Sticky Receive Underflow Status */ | ||
| 960 | #define ROVF 0x0004 /* Sticky Receive Overflow Status */ | ||
| 961 | #define TXF 0x0008 /* Transmit FIFO Full Status */ | ||
| 962 | #define TUVF 0x0010 /* Sticky Transmit Underflow Status */ | ||
| 963 | #define TOVF 0x0020 /* Sticky Transmit Overflow Status */ | ||
| 964 | #define TXHRE 0x0040 /* Transmit Hold Register Empty */ | ||
| 965 | |||
| 966 | /* SPORTx_MCMC1 Macros */ | ||
| 967 | #define SP_WOFF(x) ((x) & 0x3FF) /* Multichannel Window Offset Field */ | ||
| 968 | |||
| 969 | /* Only use WSIZE Macro With Logic OR While Setting Lower Order Bits */ | ||
| 970 | #define SP_WSIZE(x) (((((x)>>0x3)-1)&0xF) << 0xC) /* Multichannel Window Size = (x/8)-1 */ | ||
| 971 | |||
| 972 | /* SPORTx_MCMC2 Masks */ | ||
| 973 | #define REC_BYPASS 0x0000 /* Bypass Mode (No Clock Recovery) */ | ||
| 974 | #define REC_2FROM4 0x0002 /* Recover 2 MHz Clock from 4 MHz Clock */ | ||
| 975 | #define REC_8FROM16 0x0003 /* Recover 8 MHz Clock from 16 MHz Clock */ | ||
| 976 | #define MCDTXPE 0x0004 /* Multichannel DMA Transmit Packing */ | ||
| 977 | #define MCDRXPE 0x0008 /* Multichannel DMA Receive Packing */ | ||
| 978 | #define MCMEN 0x0010 /* Multichannel Frame Mode Enable */ | ||
| 979 | #define FSDR 0x0080 /* Multichannel Frame Sync to Data Relationship */ | ||
| 980 | #define MFD_0 0x0000 /* Multichannel Frame Delay = 0 */ | ||
| 981 | #define MFD_1 0x1000 /* Multichannel Frame Delay = 1 */ | ||
| 982 | #define MFD_2 0x2000 /* Multichannel Frame Delay = 2 */ | ||
| 983 | #define MFD_3 0x3000 /* Multichannel Frame Delay = 3 */ | ||
| 984 | #define MFD_4 0x4000 /* Multichannel Frame Delay = 4 */ | ||
| 985 | #define MFD_5 0x5000 /* Multichannel Frame Delay = 5 */ | ||
| 986 | #define MFD_6 0x6000 /* Multichannel Frame Delay = 6 */ | ||
| 987 | #define MFD_7 0x7000 /* Multichannel Frame Delay = 7 */ | ||
| 988 | #define MFD_8 0x8000 /* Multichannel Frame Delay = 8 */ | ||
| 989 | #define MFD_9 0x9000 /* Multichannel Frame Delay = 9 */ | ||
| 990 | #define MFD_10 0xA000 /* Multichannel Frame Delay = 10 */ | ||
| 991 | #define MFD_11 0xB000 /* Multichannel Frame Delay = 11 */ | ||
| 992 | #define MFD_12 0xC000 /* Multichannel Frame Delay = 12 */ | ||
| 993 | #define MFD_13 0xD000 /* Multichannel Frame Delay = 13 */ | ||
| 994 | #define MFD_14 0xE000 /* Multichannel Frame Delay = 14 */ | ||
| 995 | #define MFD_15 0xF000 /* Multichannel Frame Delay = 15 */ | ||
| 996 | |||
| 997 | |||
| 998 | /* ********************* ASYNCHRONOUS MEMORY CONTROLLER MASKS *************************/ | 916 | /* ********************* ASYNCHRONOUS MEMORY CONTROLLER MASKS *************************/ |
| 999 | /* EBIU_AMGCTL Masks */ | 917 | /* EBIU_AMGCTL Masks */ |
| 1000 | #define AMCKEN 0x0001 /* Enable CLKOUT */ | 918 | #define AMCKEN 0x0001 /* Enable CLKOUT */ |
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c index f392af641657..645ba5c8077b 100644 --- a/arch/blackfin/mach-bf527/boards/cm_bf527.c +++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c | |||
| @@ -145,7 +145,6 @@ static struct mtd_partition partition_info[] = { | |||
| 145 | }; | 145 | }; |
| 146 | 146 | ||
| 147 | static struct bf5xx_nand_platform bf5xx_nand_platform = { | 147 | static struct bf5xx_nand_platform bf5xx_nand_platform = { |
| 148 | .page_size = NFC_PG_SIZE_256, | ||
| 149 | .data_width = NFC_NWIDTH_8, | 148 | .data_width = NFC_NWIDTH_8, |
| 150 | .partitions = partition_info, | 149 | .partitions = partition_info, |
| 151 | .nr_partitions = ARRAY_SIZE(partition_info), | 150 | .nr_partitions = ARRAY_SIZE(partition_info), |
diff --git a/arch/blackfin/mach-bf527/boards/ezbrd.c b/arch/blackfin/mach-bf527/boards/ezbrd.c index 606eb36b9d6e..c975fe88eba3 100644 --- a/arch/blackfin/mach-bf527/boards/ezbrd.c +++ b/arch/blackfin/mach-bf527/boards/ezbrd.c | |||
| @@ -149,7 +149,6 @@ static struct mtd_partition partition_info[] = { | |||
| 149 | }; | 149 | }; |
| 150 | 150 | ||
| 151 | static struct bf5xx_nand_platform bf5xx_nand_platform = { | 151 | static struct bf5xx_nand_platform bf5xx_nand_platform = { |
| 152 | .page_size = NFC_PG_SIZE_256, | ||
| 153 | .data_width = NFC_NWIDTH_8, | 152 | .data_width = NFC_NWIDTH_8, |
| 154 | .partitions = partition_info, | 153 | .partitions = partition_info, |
| 155 | .nr_partitions = ARRAY_SIZE(partition_info), | 154 | .nr_partitions = ARRAY_SIZE(partition_info), |
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c index a05c967a24cf..87b41e994ba3 100644 --- a/arch/blackfin/mach-bf527/boards/ezkit.c +++ b/arch/blackfin/mach-bf527/boards/ezkit.c | |||
| @@ -234,7 +234,6 @@ static struct mtd_partition partition_info[] = { | |||
| 234 | }; | 234 | }; |
| 235 | 235 | ||
| 236 | static struct bf5xx_nand_platform bf5xx_nand_platform = { | 236 | static struct bf5xx_nand_platform bf5xx_nand_platform = { |
| 237 | .page_size = NFC_PG_SIZE_256, | ||
| 238 | .data_width = NFC_NWIDTH_8, | 237 | .data_width = NFC_NWIDTH_8, |
| 239 | .partitions = partition_info, | 238 | .partitions = partition_info, |
| 240 | .nr_partitions = ARRAY_SIZE(partition_info), | 239 | .nr_partitions = ARRAY_SIZE(partition_info), |
diff --git a/arch/blackfin/mach-bf527/include/mach/defBF52x_base.h b/arch/blackfin/mach-bf527/include/mach/defBF52x_base.h index 5f97f01fcda6..3e000756aacd 100644 --- a/arch/blackfin/mach-bf527/include/mach/defBF52x_base.h +++ b/arch/blackfin/mach-bf527/include/mach/defBF52x_base.h | |||
| @@ -922,88 +922,6 @@ | |||
| 922 | #define PH14 0x4000 | 922 | #define PH14 0x4000 |
| 923 | #define PH15 0x8000 | 923 | #define PH15 0x8000 |
| 924 | 924 | ||
| 925 | |||
| 926 | /* ******************* SERIAL PORT MASKS **************************************/ | ||
| 927 | /* SPORTx_TCR1 Masks */ | ||
| 928 | #define TSPEN 0x0001 /* Transmit Enable */ | ||
| 929 | #define ITCLK 0x0002 /* Internal Transmit Clock Select */ | ||
| 930 | #define DTYPE_NORM 0x0004 /* Data Format Normal */ | ||
| 931 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 932 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 933 | #define TLSBIT 0x0010 /* Transmit Bit Order */ | ||
| 934 | #define ITFS 0x0200 /* Internal Transmit Frame Sync Select */ | ||
| 935 | #define TFSR 0x0400 /* Transmit Frame Sync Required Select */ | ||
| 936 | #define DITFS 0x0800 /* Data-Independent Transmit Frame Sync Select */ | ||
| 937 | #define LTFS 0x1000 /* Low Transmit Frame Sync Select */ | ||
| 938 | #define LATFS 0x2000 /* Late Transmit Frame Sync Select */ | ||
| 939 | #define TCKFE 0x4000 /* Clock Falling Edge Select */ | ||
| 940 | |||
| 941 | /* SPORTx_TCR2 Masks and Macro */ | ||
| 942 | #define SLEN(x) ((x)&0x1F) /* SPORT TX Word Length (2 - 31) */ | ||
| 943 | #define TXSE 0x0100 /* TX Secondary Enable */ | ||
| 944 | #define TSFSE 0x0200 /* Transmit Stereo Frame Sync Enable */ | ||
| 945 | #define TRFST 0x0400 /* Left/Right Order (1 = Right Channel 1st) */ | ||
| 946 | |||
| 947 | /* SPORTx_RCR1 Masks */ | ||
| 948 | #define RSPEN 0x0001 /* Receive Enable */ | ||
| 949 | #define IRCLK 0x0002 /* Internal Receive Clock Select */ | ||
| 950 | #define DTYPE_NORM 0x0004 /* Data Format Normal */ | ||
| 951 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 952 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 953 | #define RLSBIT 0x0010 /* Receive Bit Order */ | ||
| 954 | #define IRFS 0x0200 /* Internal Receive Frame Sync Select */ | ||
| 955 | #define RFSR 0x0400 /* Receive Frame Sync Required Select */ | ||
| 956 | #define LRFS 0x1000 /* Low Receive Frame Sync Select */ | ||
| 957 | #define LARFS 0x2000 /* Late Receive Frame Sync Select */ | ||
| 958 | #define RCKFE 0x4000 /* Clock Falling Edge Select */ | ||
| 959 | |||
| 960 | /* SPORTx_RCR2 Masks */ | ||
| 961 | #define SLEN(x) ((x)&0x1F) /* SPORT RX Word Length (2 - 31) */ | ||
| 962 | #define RXSE 0x0100 /* RX Secondary Enable */ | ||
| 963 | #define RSFSE 0x0200 /* RX Stereo Frame Sync Enable */ | ||
| 964 | #define RRFST 0x0400 /* Right-First Data Order */ | ||
| 965 | |||
| 966 | /* SPORTx_STAT Masks */ | ||
| 967 | #define RXNE 0x0001 /* Receive FIFO Not Empty Status */ | ||
| 968 | #define RUVF 0x0002 /* Sticky Receive Underflow Status */ | ||
| 969 | #define ROVF 0x0004 /* Sticky Receive Overflow Status */ | ||
| 970 | #define TXF 0x0008 /* Transmit FIFO Full Status */ | ||
| 971 | #define TUVF 0x0010 /* Sticky Transmit Underflow Status */ | ||
| 972 | #define TOVF 0x0020 /* Sticky Transmit Overflow Status */ | ||
| 973 | #define TXHRE 0x0040 /* Transmit Hold Register Empty */ | ||
| 974 | |||
| 975 | /* SPORTx_MCMC1 Macros */ | ||
| 976 | #define SP_WOFF(x) ((x) & 0x3FF) /* Multichannel Window Offset Field */ | ||
| 977 | |||
| 978 | /* Only use WSIZE Macro With Logic OR While Setting Lower Order Bits */ | ||
| 979 | #define SP_WSIZE(x) (((((x)>>0x3)-1)&0xF) << 0xC) /* Multichannel Window Size = (x/8)-1 */ | ||
| 980 | |||
| 981 | /* SPORTx_MCMC2 Masks */ | ||
| 982 | #define REC_BYPASS 0x0000 /* Bypass Mode (No Clock Recovery) */ | ||
| 983 | #define REC_2FROM4 0x0002 /* Recover 2 MHz Clock from 4 MHz Clock */ | ||
| 984 | #define REC_8FROM16 0x0003 /* Recover 8 MHz Clock from 16 MHz Clock */ | ||
| 985 | #define MCDTXPE 0x0004 /* Multichannel DMA Transmit Packing */ | ||
| 986 | #define MCDRXPE 0x0008 /* Multichannel DMA Receive Packing */ | ||
| 987 | #define MCMEN 0x0010 /* Multichannel Frame Mode Enable */ | ||
| 988 | #define FSDR 0x0080 /* Multichannel Frame Sync to Data Relationship */ | ||
| 989 | #define MFD_0 0x0000 /* Multichannel Frame Delay = 0 */ | ||
| 990 | #define MFD_1 0x1000 /* Multichannel Frame Delay = 1 */ | ||
| 991 | #define MFD_2 0x2000 /* Multichannel Frame Delay = 2 */ | ||
| 992 | #define MFD_3 0x3000 /* Multichannel Frame Delay = 3 */ | ||
| 993 | #define MFD_4 0x4000 /* Multichannel Frame Delay = 4 */ | ||
| 994 | #define MFD_5 0x5000 /* Multichannel Frame Delay = 5 */ | ||
| 995 | #define MFD_6 0x6000 /* Multichannel Frame Delay = 6 */ | ||
| 996 | #define MFD_7 0x7000 /* Multichannel Frame Delay = 7 */ | ||
| 997 | #define MFD_8 0x8000 /* Multichannel Frame Delay = 8 */ | ||
| 998 | #define MFD_9 0x9000 /* Multichannel Frame Delay = 9 */ | ||
| 999 | #define MFD_10 0xA000 /* Multichannel Frame Delay = 10 */ | ||
| 1000 | #define MFD_11 0xB000 /* Multichannel Frame Delay = 11 */ | ||
| 1001 | #define MFD_12 0xC000 /* Multichannel Frame Delay = 12 */ | ||
| 1002 | #define MFD_13 0xD000 /* Multichannel Frame Delay = 13 */ | ||
| 1003 | #define MFD_14 0xE000 /* Multichannel Frame Delay = 14 */ | ||
| 1004 | #define MFD_15 0xF000 /* Multichannel Frame Delay = 15 */ | ||
| 1005 | |||
| 1006 | |||
| 1007 | /* ********************* ASYNCHRONOUS MEMORY CONTROLLER MASKS *************************/ | 925 | /* ********************* ASYNCHRONOUS MEMORY CONTROLLER MASKS *************************/ |
| 1008 | /* EBIU_AMGCTL Masks */ | 926 | /* EBIU_AMGCTL Masks */ |
| 1009 | #define AMCKEN 0x0001 /* Enable CLKOUT */ | 927 | #define AMCKEN 0x0001 /* Enable CLKOUT */ |
diff --git a/arch/blackfin/mach-bf533/include/mach/defBF532.h b/arch/blackfin/mach-bf533/include/mach/defBF532.h index e9ff491c0953..04acf1ed10f9 100644 --- a/arch/blackfin/mach-bf533/include/mach/defBF532.h +++ b/arch/blackfin/mach-bf533/include/mach/defBF532.h | |||
| @@ -509,98 +509,6 @@ | |||
| 509 | #define IREN_P 0x01 | 509 | #define IREN_P 0x01 |
| 510 | #define UCEN_P 0x00 | 510 | #define UCEN_P 0x00 |
| 511 | 511 | ||
| 512 | /* ********** SERIAL PORT MASKS ********************** */ | ||
| 513 | |||
| 514 | /* SPORTx_TCR1 Masks */ | ||
| 515 | #define TSPEN 0x0001 /* TX enable */ | ||
| 516 | #define ITCLK 0x0002 /* Internal TX Clock Select */ | ||
| 517 | #define TDTYPE 0x000C /* TX Data Formatting Select */ | ||
| 518 | #define DTYPE_NORM 0x0000 /* Data Format Normal */ | ||
| 519 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 520 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 521 | #define TLSBIT 0x0010 /* TX Bit Order */ | ||
| 522 | #define ITFS 0x0200 /* Internal TX Frame Sync Select */ | ||
| 523 | #define TFSR 0x0400 /* TX Frame Sync Required Select */ | ||
| 524 | #define DITFS 0x0800 /* Data Independent TX Frame Sync Select */ | ||
| 525 | #define LTFS 0x1000 /* Low TX Frame Sync Select */ | ||
| 526 | #define LATFS 0x2000 /* Late TX Frame Sync Select */ | ||
| 527 | #define TCKFE 0x4000 /* TX Clock Falling Edge Select */ | ||
| 528 | |||
| 529 | /* SPORTx_TCR2 Masks */ | ||
| 530 | #if defined(__ADSPBF531__) || defined(__ADSPBF532__) || \ | ||
| 531 | defined(__ADSPBF533__) | ||
| 532 | # define SLEN 0x001F /*TX Word Length */ | ||
| 533 | #else | ||
| 534 | # define SLEN(x) ((x)&0x1F) /* SPORT TX Word Length (2 - 31) */ | ||
| 535 | #endif | ||
| 536 | #define TXSE 0x0100 /*TX Secondary Enable */ | ||
| 537 | #define TSFSE 0x0200 /*TX Stereo Frame Sync Enable */ | ||
| 538 | #define TRFST 0x0400 /*TX Right-First Data Order */ | ||
| 539 | |||
| 540 | /* SPORTx_RCR1 Masks */ | ||
| 541 | #define RSPEN 0x0001 /* RX enable */ | ||
| 542 | #define IRCLK 0x0002 /* Internal RX Clock Select */ | ||
| 543 | #define RDTYPE 0x000C /* RX Data Formatting Select */ | ||
| 544 | #define DTYPE_NORM 0x0000 /* no companding */ | ||
| 545 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 546 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 547 | #define RLSBIT 0x0010 /* RX Bit Order */ | ||
| 548 | #define IRFS 0x0200 /* Internal RX Frame Sync Select */ | ||
| 549 | #define RFSR 0x0400 /* RX Frame Sync Required Select */ | ||
| 550 | #define LRFS 0x1000 /* Low RX Frame Sync Select */ | ||
| 551 | #define LARFS 0x2000 /* Late RX Frame Sync Select */ | ||
| 552 | #define RCKFE 0x4000 /* RX Clock Falling Edge Select */ | ||
| 553 | |||
| 554 | /* SPORTx_RCR2 Masks */ | ||
| 555 | /* SLEN defined above */ | ||
| 556 | #define RXSE 0x0100 /*RX Secondary Enable */ | ||
| 557 | #define RSFSE 0x0200 /*RX Stereo Frame Sync Enable */ | ||
| 558 | #define RRFST 0x0400 /*Right-First Data Order */ | ||
| 559 | |||
| 560 | /*SPORTx_STAT Masks */ | ||
| 561 | #define RXNE 0x0001 /*RX FIFO Not Empty Status */ | ||
| 562 | #define RUVF 0x0002 /*RX Underflow Status */ | ||
| 563 | #define ROVF 0x0004 /*RX Overflow Status */ | ||
| 564 | #define TXF 0x0008 /*TX FIFO Full Status */ | ||
| 565 | #define TUVF 0x0010 /*TX Underflow Status */ | ||
| 566 | #define TOVF 0x0020 /*TX Overflow Status */ | ||
| 567 | #define TXHRE 0x0040 /*TX Hold Register Empty */ | ||
| 568 | |||
| 569 | /*SPORTx_MCMC1 Masks */ | ||
| 570 | #define SP_WSIZE 0x0000F000 /*Multichannel Window Size Field */ | ||
| 571 | #define SP_WOFF 0x000003FF /*Multichannel Window Offset Field */ | ||
| 572 | /* SPORTx_MCMC1 Macros */ | ||
| 573 | #define SET_SP_WOFF(x) ((x) & 0x3FF) /* Multichannel Window Offset Field */ | ||
| 574 | /* Only use SET_WSIZE Macro With Logic OR While Setting Lower Order Bits */ | ||
| 575 | #define SET_SP_WSIZE(x) (((((x)>>0x3)-1)&0xF) << 0xC) /* Multichannel Window Size = (x/8)-1 */ | ||
| 576 | |||
| 577 | /*SPORTx_MCMC2 Masks */ | ||
| 578 | #define MCCRM 0x00000003 /*Multichannel Clock Recovery Mode */ | ||
| 579 | #define REC_BYPASS 0x0000 /* Bypass Mode (No Clock Recovery) */ | ||
| 580 | #define REC_2FROM4 0x0002 /* Recover 2 MHz Clock from 4 MHz Clock */ | ||
| 581 | #define REC_8FROM16 0x0003 /* Recover 8 MHz Clock from 16 MHz Clock */ | ||
| 582 | #define MCDTXPE 0x00000004 /*Multichannel DMA Transmit Packing */ | ||
| 583 | #define MCDRXPE 0x00000008 /*Multichannel DMA Receive Packing */ | ||
| 584 | #define MCMEN 0x00000010 /*Multichannel Frame Mode Enable */ | ||
| 585 | #define FSDR 0x00000080 /*Multichannel Frame Sync to Data Relationship */ | ||
| 586 | #define MFD 0x0000F000 /*Multichannel Frame Delay */ | ||
| 587 | #define MFD_0 0x0000 /* Multichannel Frame Delay = 0 */ | ||
| 588 | #define MFD_1 0x1000 /* Multichannel Frame Delay = 1 */ | ||
| 589 | #define MFD_2 0x2000 /* Multichannel Frame Delay = 2 */ | ||
| 590 | #define MFD_3 0x3000 /* Multichannel Frame Delay = 3 */ | ||
| 591 | #define MFD_4 0x4000 /* Multichannel Frame Delay = 4 */ | ||
| 592 | #define MFD_5 0x5000 /* Multichannel Frame Delay = 5 */ | ||
| 593 | #define MFD_6 0x6000 /* Multichannel Frame Delay = 6 */ | ||
| 594 | #define MFD_7 0x7000 /* Multichannel Frame Delay = 7 */ | ||
| 595 | #define MFD_8 0x8000 /* Multichannel Frame Delay = 8 */ | ||
| 596 | #define MFD_9 0x9000 /* Multichannel Frame Delay = 9 */ | ||
| 597 | #define MFD_10 0xA000 /* Multichannel Frame Delay = 10 */ | ||
| 598 | #define MFD_11 0xB000 /* Multichannel Frame Delay = 11 */ | ||
| 599 | #define MFD_12 0xC000 /* Multichannel Frame Delay = 12 */ | ||
| 600 | #define MFD_13 0xD000 /* Multichannel Frame Delay = 13 */ | ||
| 601 | #define MFD_14 0xE000 /* Multichannel Frame Delay = 14 */ | ||
| 602 | #define MFD_15 0xF000 /* Multichannel Frame Delay = 15 */ | ||
| 603 | |||
| 604 | /* ********* PARALLEL PERIPHERAL INTERFACE (PPI) MASKS **************** */ | 512 | /* ********* PARALLEL PERIPHERAL INTERFACE (PPI) MASKS **************** */ |
| 605 | 513 | ||
| 606 | /* PPI_CONTROL Masks */ | 514 | /* PPI_CONTROL Masks */ |
diff --git a/arch/blackfin/mach-bf537/include/mach/defBF534.h b/arch/blackfin/mach-bf537/include/mach/defBF534.h index aad61b887373..6f56907a18c0 100644 --- a/arch/blackfin/mach-bf537/include/mach/defBF534.h +++ b/arch/blackfin/mach-bf537/include/mach/defBF534.h | |||
| @@ -1241,86 +1241,6 @@ | |||
| 1241 | #define PH14 0x4000 | 1241 | #define PH14 0x4000 |
| 1242 | #define PH15 0x8000 | 1242 | #define PH15 0x8000 |
| 1243 | 1243 | ||
| 1244 | /* ******************* SERIAL PORT MASKS **************************************/ | ||
| 1245 | /* SPORTx_TCR1 Masks */ | ||
| 1246 | #define TSPEN 0x0001 /* Transmit Enable */ | ||
| 1247 | #define ITCLK 0x0002 /* Internal Transmit Clock Select */ | ||
| 1248 | #define DTYPE_NORM 0x0004 /* Data Format Normal */ | ||
| 1249 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 1250 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 1251 | #define TLSBIT 0x0010 /* Transmit Bit Order */ | ||
| 1252 | #define ITFS 0x0200 /* Internal Transmit Frame Sync Select */ | ||
| 1253 | #define TFSR 0x0400 /* Transmit Frame Sync Required Select */ | ||
| 1254 | #define DITFS 0x0800 /* Data-Independent Transmit Frame Sync Select */ | ||
| 1255 | #define LTFS 0x1000 /* Low Transmit Frame Sync Select */ | ||
| 1256 | #define LATFS 0x2000 /* Late Transmit Frame Sync Select */ | ||
| 1257 | #define TCKFE 0x4000 /* Clock Falling Edge Select */ | ||
| 1258 | |||
| 1259 | /* SPORTx_TCR2 Masks and Macro */ | ||
| 1260 | #define SLEN(x) ((x)&0x1F) /* SPORT TX Word Length (2 - 31) */ | ||
| 1261 | #define TXSE 0x0100 /* TX Secondary Enable */ | ||
| 1262 | #define TSFSE 0x0200 /* Transmit Stereo Frame Sync Enable */ | ||
| 1263 | #define TRFST 0x0400 /* Left/Right Order (1 = Right Channel 1st) */ | ||
| 1264 | |||
| 1265 | /* SPORTx_RCR1 Masks */ | ||
| 1266 | #define RSPEN 0x0001 /* Receive Enable */ | ||
| 1267 | #define IRCLK 0x0002 /* Internal Receive Clock Select */ | ||
| 1268 | #define DTYPE_NORM 0x0004 /* Data Format Normal */ | ||
| 1269 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 1270 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 1271 | #define RLSBIT 0x0010 /* Receive Bit Order */ | ||
| 1272 | #define IRFS 0x0200 /* Internal Receive Frame Sync Select */ | ||
| 1273 | #define RFSR 0x0400 /* Receive Frame Sync Required Select */ | ||
| 1274 | #define LRFS 0x1000 /* Low Receive Frame Sync Select */ | ||
| 1275 | #define LARFS 0x2000 /* Late Receive Frame Sync Select */ | ||
| 1276 | #define RCKFE 0x4000 /* Clock Falling Edge Select */ | ||
| 1277 | |||
| 1278 | /* SPORTx_RCR2 Masks */ | ||
| 1279 | #define SLEN(x) ((x)&0x1F) /* SPORT RX Word Length (2 - 31) */ | ||
| 1280 | #define RXSE 0x0100 /* RX Secondary Enable */ | ||
| 1281 | #define RSFSE 0x0200 /* RX Stereo Frame Sync Enable */ | ||
| 1282 | #define RRFST 0x0400 /* Right-First Data Order */ | ||
| 1283 | |||
| 1284 | /* SPORTx_STAT Masks */ | ||
| 1285 | #define RXNE 0x0001 /* Receive FIFO Not Empty Status */ | ||
| 1286 | #define RUVF 0x0002 /* Sticky Receive Underflow Status */ | ||
| 1287 | #define ROVF 0x0004 /* Sticky Receive Overflow Status */ | ||
| 1288 | #define TXF 0x0008 /* Transmit FIFO Full Status */ | ||
| 1289 | #define TUVF 0x0010 /* Sticky Transmit Underflow Status */ | ||
| 1290 | #define TOVF 0x0020 /* Sticky Transmit Overflow Status */ | ||
| 1291 | #define TXHRE 0x0040 /* Transmit Hold Register Empty */ | ||
| 1292 | |||
| 1293 | /* SPORTx_MCMC1 Macros */ | ||
| 1294 | #define SP_WOFF(x) ((x) & 0x3FF) /* Multichannel Window Offset Field */ | ||
| 1295 | |||
| 1296 | /* Only use WSIZE Macro With Logic OR While Setting Lower Order Bits */ | ||
| 1297 | #define SP_WSIZE(x) (((((x)>>0x3)-1)&0xF) << 0xC) /* Multichannel Window Size = (x/8)-1 */ | ||
| 1298 | |||
| 1299 | /* SPORTx_MCMC2 Masks */ | ||
| 1300 | #define REC_BYPASS 0x0000 /* Bypass Mode (No Clock Recovery) */ | ||
| 1301 | #define REC_2FROM4 0x0002 /* Recover 2 MHz Clock from 4 MHz Clock */ | ||
| 1302 | #define REC_8FROM16 0x0003 /* Recover 8 MHz Clock from 16 MHz Clock */ | ||
| 1303 | #define MCDTXPE 0x0004 /* Multichannel DMA Transmit Packing */ | ||
| 1304 | #define MCDRXPE 0x0008 /* Multichannel DMA Receive Packing */ | ||
| 1305 | #define MCMEN 0x0010 /* Multichannel Frame Mode Enable */ | ||
| 1306 | #define FSDR 0x0080 /* Multichannel Frame Sync to Data Relationship */ | ||
| 1307 | #define MFD_0 0x0000 /* Multichannel Frame Delay = 0 */ | ||
| 1308 | #define MFD_1 0x1000 /* Multichannel Frame Delay = 1 */ | ||
| 1309 | #define MFD_2 0x2000 /* Multichannel Frame Delay = 2 */ | ||
| 1310 | #define MFD_3 0x3000 /* Multichannel Frame Delay = 3 */ | ||
| 1311 | #define MFD_4 0x4000 /* Multichannel Frame Delay = 4 */ | ||
| 1312 | #define MFD_5 0x5000 /* Multichannel Frame Delay = 5 */ | ||
| 1313 | #define MFD_6 0x6000 /* Multichannel Frame Delay = 6 */ | ||
| 1314 | #define MFD_7 0x7000 /* Multichannel Frame Delay = 7 */ | ||
| 1315 | #define MFD_8 0x8000 /* Multichannel Frame Delay = 8 */ | ||
| 1316 | #define MFD_9 0x9000 /* Multichannel Frame Delay = 9 */ | ||
| 1317 | #define MFD_10 0xA000 /* Multichannel Frame Delay = 10 */ | ||
| 1318 | #define MFD_11 0xB000 /* Multichannel Frame Delay = 11 */ | ||
| 1319 | #define MFD_12 0xC000 /* Multichannel Frame Delay = 12 */ | ||
| 1320 | #define MFD_13 0xD000 /* Multichannel Frame Delay = 13 */ | ||
| 1321 | #define MFD_14 0xE000 /* Multichannel Frame Delay = 14 */ | ||
| 1322 | #define MFD_15 0xF000 /* Multichannel Frame Delay = 15 */ | ||
| 1323 | |||
| 1324 | /* ********************* ASYNCHRONOUS MEMORY CONTROLLER MASKS *************************/ | 1244 | /* ********************* ASYNCHRONOUS MEMORY CONTROLLER MASKS *************************/ |
| 1325 | /* EBIU_AMGCTL Masks */ | 1245 | /* EBIU_AMGCTL Masks */ |
| 1326 | #define AMCKEN 0x0001 /* Enable CLKOUT */ | 1246 | #define AMCKEN 0x0001 /* Enable CLKOUT */ |
diff --git a/arch/blackfin/mach-bf538/include/mach/defBF539.h b/arch/blackfin/mach-bf538/include/mach/defBF539.h index b674a1c4aef1..fe43062b4975 100644 --- a/arch/blackfin/mach-bf538/include/mach/defBF539.h +++ b/arch/blackfin/mach-bf538/include/mach/defBF539.h | |||
| @@ -1610,113 +1610,6 @@ | |||
| 1610 | #define UCEN_P 0x00 | 1610 | #define UCEN_P 0x00 |
| 1611 | 1611 | ||
| 1612 | 1612 | ||
| 1613 | /* ********** SERIAL PORT MASKS ********************** */ | ||
| 1614 | /* SPORTx_TCR1 Masks */ | ||
| 1615 | #define TSPEN 0x0001 /* TX enable */ | ||
| 1616 | #define ITCLK 0x0002 /* Internal TX Clock Select */ | ||
| 1617 | #define TDTYPE 0x000C /* TX Data Formatting Select */ | ||
| 1618 | #define DTYPE_NORM 0x0000 /* Data Format Normal */ | ||
| 1619 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 1620 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 1621 | #define TLSBIT 0x0010 /* TX Bit Order */ | ||
| 1622 | #define ITFS 0x0200 /* Internal TX Frame Sync Select */ | ||
| 1623 | #define TFSR 0x0400 /* TX Frame Sync Required Select */ | ||
| 1624 | #define DITFS 0x0800 /* Data Independent TX Frame Sync Select */ | ||
| 1625 | #define LTFS 0x1000 /* Low TX Frame Sync Select */ | ||
| 1626 | #define LATFS 0x2000 /* Late TX Frame Sync Select */ | ||
| 1627 | #define TCKFE 0x4000 /* TX Clock Falling Edge Select */ | ||
| 1628 | /* SPORTx_RCR1 Deprecated Masks */ | ||
| 1629 | #define TULAW DTYPE_ULAW /* Compand Using u-Law */ | ||
| 1630 | #define TALAW DTYPE_ALAW /* Compand Using A-Law */ | ||
| 1631 | |||
| 1632 | /* SPORTx_TCR2 Masks */ | ||
| 1633 | #ifdef _MISRA_RULES | ||
| 1634 | #define SLEN(x) ((x)&0x1Fu) /* SPORT TX Word Length (2 - 31) */ | ||
| 1635 | #else | ||
| 1636 | #define SLEN(x) ((x)&0x1F) /* SPORT TX Word Length (2 - 31) */ | ||
| 1637 | #endif /* _MISRA_RULES */ | ||
| 1638 | #define TXSE 0x0100 /*TX Secondary Enable */ | ||
| 1639 | #define TSFSE 0x0200 /*TX Stereo Frame Sync Enable */ | ||
| 1640 | #define TRFST 0x0400 /*TX Right-First Data Order */ | ||
| 1641 | |||
| 1642 | /* SPORTx_RCR1 Masks */ | ||
| 1643 | #define RSPEN 0x0001 /* RX enable */ | ||
| 1644 | #define IRCLK 0x0002 /* Internal RX Clock Select */ | ||
| 1645 | #define RDTYPE 0x000C /* RX Data Formatting Select */ | ||
| 1646 | #define DTYPE_NORM 0x0000 /* no companding */ | ||
| 1647 | #define DTYPE_ULAW 0x0008 /* Compand Using u-Law */ | ||
| 1648 | #define DTYPE_ALAW 0x000C /* Compand Using A-Law */ | ||
| 1649 | #define RLSBIT 0x0010 /* RX Bit Order */ | ||
| 1650 | #define IRFS 0x0200 /* Internal RX Frame Sync Select */ | ||
| 1651 | #define RFSR 0x0400 /* RX Frame Sync Required Select */ | ||
| 1652 | #define LRFS 0x1000 /* Low RX Frame Sync Select */ | ||
| 1653 | #define LARFS 0x2000 /* Late RX Frame Sync Select */ | ||
| 1654 | #define RCKFE 0x4000 /* RX Clock Falling Edge Select */ | ||
| 1655 | /* SPORTx_RCR1 Deprecated Masks */ | ||
| 1656 | #define RULAW DTYPE_ULAW /* Compand Using u-Law */ | ||
| 1657 | #define RALAW DTYPE_ALAW /* Compand Using A-Law */ | ||
| 1658 | |||
| 1659 | /* SPORTx_RCR2 Masks */ | ||
| 1660 | #ifdef _MISRA_RULES | ||
| 1661 | #define SLEN(x) ((x)&0x1Fu) /* SPORT RX Word Length (2 - 31) */ | ||
| 1662 | #else | ||
| 1663 | #define SLEN(x) ((x)&0x1F) /* SPORT RX Word Length (2 - 31) */ | ||
| 1664 | #endif /* _MISRA_RULES */ | ||
| 1665 | #define RXSE 0x0100 /*RX Secondary Enable */ | ||
| 1666 | #define RSFSE 0x0200 /*RX Stereo Frame Sync Enable */ | ||
| 1667 | #define RRFST 0x0400 /*Right-First Data Order */ | ||
| 1668 | |||
| 1669 | /*SPORTx_STAT Masks */ | ||
| 1670 | #define RXNE 0x0001 /*RX FIFO Not Empty Status */ | ||
| 1671 | #define RUVF 0x0002 /*RX Underflow Status */ | ||
| 1672 | #define ROVF 0x0004 /*RX Overflow Status */ | ||
| 1673 | #define TXF 0x0008 /*TX FIFO Full Status */ | ||
| 1674 | #define TUVF 0x0010 /*TX Underflow Status */ | ||
| 1675 | #define TOVF 0x0020 /*TX Overflow Status */ | ||
| 1676 | #define TXHRE 0x0040 /*TX Hold Register Empty */ | ||
| 1677 | |||
| 1678 | /*SPORTx_MCMC1 Masks */ | ||
| 1679 | #define WOFF 0x000003FF /*Multichannel Window Offset Field */ | ||
| 1680 | /* SPORTx_MCMC1 Macros */ | ||
| 1681 | #ifdef _MISRA_RULES | ||
| 1682 | #define SET_WOFF(x) ((x) & 0x3FFu) /* Multichannel Window Offset Field */ | ||
| 1683 | /* Only use SET_WSIZE Macro With Logic OR While Setting Lower Order Bits */ | ||
| 1684 | #define SET_WSIZE(x) (((((x)>>0x3)-1u)&0xFu) << 0xC) /* Multichannel Window Size = (x/8)-1 */ | ||
| 1685 | #else | ||
| 1686 | #define SET_WOFF(x) ((x) & 0x3FF) /* Multichannel Window Offset Field */ | ||
| 1687 | /* Only use SET_WSIZE Macro With Logic OR While Setting Lower Order Bits */ | ||
| 1688 | #define SET_WSIZE(x) (((((x)>>0x3)-1)&0xF) << 0xC) /* Multichannel Window Size = (x/8)-1 */ | ||
| 1689 | #endif /* _MISRA_RULES */ | ||
| 1690 | |||
| 1691 | |||
| 1692 | /*SPORTx_MCMC2 Masks */ | ||
| 1693 | #define MCCRM 0x0003 /*Multichannel Clock Recovery Mode */ | ||
| 1694 | #define REC_BYPASS 0x0000 /* Bypass Mode (No Clock Recovery) */ | ||
| 1695 | #define REC_2FROM4 0x0002 /* Recover 2 MHz Clock from 4 MHz Clock */ | ||
| 1696 | #define REC_8FROM16 0x0003 /* Recover 8 MHz Clock from 16 MHz Clock */ | ||
| 1697 | #define MCDTXPE 0x0004 /*Multichannel DMA Transmit Packing */ | ||
| 1698 | #define MCDRXPE 0x0008 /*Multichannel DMA Receive Packing */ | ||
| 1699 | #define MCMEN 0x0010 /*Multichannel Frame Mode Enable */ | ||
| 1700 | #define FSDR 0x0080 /*Multichannel Frame Sync to Data Relationship */ | ||
| 1701 | #define MFD 0xF000 /*Multichannel Frame Delay */ | ||
| 1702 | #define MFD_0 0x0000 /* Multichannel Frame Delay = 0 */ | ||
| 1703 | #define MFD_1 0x1000 /* Multichannel Frame Delay = 1 */ | ||
| 1704 | #define MFD_2 0x2000 /* Multichannel Frame Delay = 2 */ | ||
| 1705 | #define MFD_3 0x3000 /* Multichannel Frame Delay = 3 */ | ||
| 1706 | #define MFD_4 0x4000 /* Multichannel Frame Delay = 4 */ | ||
| 1707 | #define MFD_5 0x5000 /* Multichannel Frame Delay = 5 */ | ||
| 1708 | #define MFD_6 0x6000 /* Multichannel Frame Delay = 6 */ | ||
| 1709 | #define MFD_7 0x7000 /* Multichannel Frame Delay = 7 */ | ||
| 1710 | #define MFD_8 0x8000 /* Multichannel Frame Delay = 8 */ | ||
| 1711 | #define MFD_9 0x9000 /* Multichannel Frame Delay = 9 */ | ||
| 1712 | #define MFD_10 0xA000 /* Multichannel Frame Delay = 10 */ | ||
| 1713 | #define MFD_11 0xB000 /* Multichannel Frame Delay = 11 */ | ||
| 1714 | #define MFD_12 0xC000 /* Multichannel Frame Delay = 12 */ | ||
| 1715 | #define MFD_13 0xD000 /* Multichannel Frame Delay = 13 */ | ||
| 1716 | #define MFD_14 0xE000 /* Multichannel Frame Delay = 14 */ | ||
| 1717 | #define MFD_15 0xF000 /* Multichannel Frame Delay = 15 */ | ||
| 1718 | |||
| 1719 | |||
| 1720 | /* ********* PARALLEL PERIPHERAL INTERFACE (PPI) MASKS **************** */ | 1613 | /* ********* PARALLEL PERIPHERAL INTERFACE (PPI) MASKS **************** */ |
| 1721 | /* PPI_CONTROL Masks */ | 1614 | /* PPI_CONTROL Masks */ |
| 1722 | #define PORT_EN 0x0001 /* PPI Port Enable */ | 1615 | #define PORT_EN 0x0001 /* PPI Port Enable */ |
diff --git a/arch/blackfin/mach-bf548/boards/cm_bf548.c b/arch/blackfin/mach-bf548/boards/cm_bf548.c index dbb6b1d83f6d..0c38eec9ade1 100644 --- a/arch/blackfin/mach-bf548/boards/cm_bf548.c +++ b/arch/blackfin/mach-bf548/boards/cm_bf548.c | |||
| @@ -706,7 +706,6 @@ static struct mtd_partition partition_info[] = { | |||
| 706 | }; | 706 | }; |
| 707 | 707 | ||
| 708 | static struct bf5xx_nand_platform bf5xx_nand_platform = { | 708 | static struct bf5xx_nand_platform bf5xx_nand_platform = { |
| 709 | .page_size = NFC_PG_SIZE_256, | ||
| 710 | .data_width = NFC_NWIDTH_8, | 709 | .data_width = NFC_NWIDTH_8, |
| 711 | .partitions = partition_info, | 710 | .partitions = partition_info, |
| 712 | .nr_partitions = ARRAY_SIZE(partition_info), | 711 | .nr_partitions = ARRAY_SIZE(partition_info), |
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index 6fcfb9187c35..56682a36e42d 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c | |||
| @@ -849,7 +849,6 @@ static struct mtd_partition partition_info[] = { | |||
| 849 | }; | 849 | }; |
| 850 | 850 | ||
| 851 | static struct bf5xx_nand_platform bf5xx_nand_platform = { | 851 | static struct bf5xx_nand_platform bf5xx_nand_platform = { |
| 852 | .page_size = NFC_PG_SIZE_256, | ||
| 853 | .data_width = NFC_NWIDTH_8, | 852 | .data_width = NFC_NWIDTH_8, |
| 854 | .partitions = partition_info, | 853 | .partitions = partition_info, |
| 855 | .nr_partitions = ARRAY_SIZE(partition_info), | 854 | .nr_partitions = ARRAY_SIZE(partition_info), |
diff --git a/arch/blackfin/mach-bf548/include/mach/defBF54x_base.h b/arch/blackfin/mach-bf548/include/mach/defBF54x_base.h index 95ff44601fd1..7866197f5485 100644 --- a/arch/blackfin/mach-bf548/include/mach/defBF54x_base.h +++ b/arch/blackfin/mach-bf548/include/mach/defBF54x_base.h | |||
| @@ -2221,73 +2221,6 @@ | |||
| 2221 | 2221 | ||
| 2222 | #define RCVDATA16 0xffff /* Receive FIFO 16-Bit Data */ | 2222 | #define RCVDATA16 0xffff /* Receive FIFO 16-Bit Data */ |
| 2223 | 2223 | ||
| 2224 | /* Bit masks for SPORTx_TCR1 */ | ||
| 2225 | |||
| 2226 | #define TCKFE 0x4000 /* Clock Falling Edge Select */ | ||
| 2227 | #define LATFS 0x2000 /* Late Transmit Frame Sync */ | ||
| 2228 | #define LTFS 0x1000 /* Low Transmit Frame Sync Select */ | ||
| 2229 | #define DITFS 0x800 /* Data-Independent Transmit Frame Sync Select */ | ||
| 2230 | #define TFSR 0x400 /* Transmit Frame Sync Required Select */ | ||
| 2231 | #define ITFS 0x200 /* Internal Transmit Frame Sync Select */ | ||
| 2232 | #define TLSBIT 0x10 /* Transmit Bit Order */ | ||
| 2233 | #define TDTYPE 0xc /* Data Formatting Type Select */ | ||
| 2234 | #define ITCLK 0x2 /* Internal Transmit Clock Select */ | ||
| 2235 | #define TSPEN 0x1 /* Transmit Enable */ | ||
| 2236 | |||
| 2237 | /* Bit masks for SPORTx_TCR2 */ | ||
| 2238 | |||
| 2239 | #define TRFST 0x400 /* Left/Right Order */ | ||
| 2240 | #define TSFSE 0x200 /* Transmit Stereo Frame Sync Enable */ | ||
| 2241 | #define TXSE 0x100 /* TxSEC Enable */ | ||
| 2242 | #define SLEN_T 0x1f /* SPORT Word Length */ | ||
| 2243 | |||
| 2244 | /* Bit masks for SPORTx_RCR1 */ | ||
| 2245 | |||
| 2246 | #define RCKFE 0x4000 /* Clock Falling Edge Select */ | ||
| 2247 | #define LARFS 0x2000 /* Late Receive Frame Sync */ | ||
| 2248 | #define LRFS 0x1000 /* Low Receive Frame Sync Select */ | ||
| 2249 | #define RFSR 0x400 /* Receive Frame Sync Required Select */ | ||
| 2250 | #define IRFS 0x200 /* Internal Receive Frame Sync Select */ | ||
| 2251 | #define RLSBIT 0x10 /* Receive Bit Order */ | ||
| 2252 | #define RDTYPE 0xc /* Data Formatting Type Select */ | ||
| 2253 | #define IRCLK 0x2 /* Internal Receive Clock Select */ | ||
| 2254 | #define RSPEN 0x1 /* Receive Enable */ | ||
| 2255 | |||
| 2256 | /* Bit masks for SPORTx_RCR2 */ | ||
| 2257 | |||
| 2258 | #define RRFST 0x400 /* Left/Right Order */ | ||
| 2259 | #define RSFSE 0x200 /* Receive Stereo Frame Sync Enable */ | ||
| 2260 | #define RXSE 0x100 /* RxSEC Enable */ | ||
| 2261 | #define SLEN_R 0x1f /* SPORT Word Length */ | ||
| 2262 | |||
| 2263 | /* Bit masks for SPORTx_STAT */ | ||
| 2264 | |||
| 2265 | #define TXHRE 0x40 /* Transmit Hold Register Empty */ | ||
| 2266 | #define TOVF 0x20 /* Sticky Transmit Overflow Status */ | ||
| 2267 | #define TUVF 0x10 /* Sticky Transmit Underflow Status */ | ||
| 2268 | #define TXF 0x8 /* Transmit FIFO Full Status */ | ||
| 2269 | #define ROVF 0x4 /* Sticky Receive Overflow Status */ | ||
| 2270 | #define RUVF 0x2 /* Sticky Receive Underflow Status */ | ||
| 2271 | #define RXNE 0x1 /* Receive FIFO Not Empty Status */ | ||
| 2272 | |||
| 2273 | /* Bit masks for SPORTx_MCMC1 */ | ||
| 2274 | |||
| 2275 | #define SP_WSIZE 0xf000 /* Window Size */ | ||
| 2276 | #define SP_WOFF 0x3ff /* Windows Offset */ | ||
| 2277 | |||
| 2278 | /* Bit masks for SPORTx_MCMC2 */ | ||
| 2279 | |||
| 2280 | #define MFD 0xf000 /* Multi channel Frame Delay */ | ||
| 2281 | #define FSDR 0x80 /* Frame Sync to Data Relationship */ | ||
| 2282 | #define MCMEN 0x10 /* Multi channel Frame Mode Enable */ | ||
| 2283 | #define MCDRXPE 0x8 /* Multi channel DMA Receive Packing */ | ||
| 2284 | #define MCDTXPE 0x4 /* Multi channel DMA Transmit Packing */ | ||
| 2285 | #define MCCRM 0x3 /* 2X Clock Recovery Mode */ | ||
| 2286 | |||
| 2287 | /* Bit masks for SPORTx_CHNL */ | ||
| 2288 | |||
| 2289 | #define CUR_CHNL 0x3ff /* Current Channel Indicator */ | ||
| 2290 | |||
| 2291 | /* Bit masks for UARTx_LCR */ | 2224 | /* Bit masks for UARTx_LCR */ |
| 2292 | 2225 | ||
| 2293 | #if 0 | 2226 | #if 0 |
diff --git a/arch/blackfin/mach-bf561/include/mach/defBF561.h b/arch/blackfin/mach-bf561/include/mach/defBF561.h index 4c8e36b7fb33..2674f0097576 100644 --- a/arch/blackfin/mach-bf561/include/mach/defBF561.h +++ b/arch/blackfin/mach-bf561/include/mach/defBF561.h | |||
| @@ -1007,66 +1007,6 @@ | |||
| 1007 | #define IREN_P 0x01 | 1007 | #define IREN_P 0x01 |
| 1008 | #define UCEN_P 0x00 | 1008 | #define UCEN_P 0x00 |
| 1009 | 1009 | ||
| 1010 | /* ********** SERIAL PORT MASKS ********************** */ | ||
| 1011 | |||
| 1012 | /* SPORTx_TCR1 Masks */ | ||
| 1013 | #define TSPEN 0x0001 /* TX enable */ | ||
| 1014 | #define ITCLK 0x0002 /* Internal TX Clock Select */ | ||
| 1015 | #define TDTYPE 0x000C /* TX Data Formatting Select */ | ||
| 1016 | #define TLSBIT 0x0010 /* TX Bit Order */ | ||
| 1017 | #define ITFS 0x0200 /* Internal TX Frame Sync Select */ | ||
| 1018 | #define TFSR 0x0400 /* TX Frame Sync Required Select */ | ||
| 1019 | #define DITFS 0x0800 /* Data Independent TX Frame Sync Select */ | ||
| 1020 | #define LTFS 0x1000 /* Low TX Frame Sync Select */ | ||
| 1021 | #define LATFS 0x2000 /* Late TX Frame Sync Select */ | ||
| 1022 | #define TCKFE 0x4000 /* TX Clock Falling Edge Select */ | ||
| 1023 | |||
| 1024 | /* SPORTx_TCR2 Masks */ | ||
| 1025 | #define SLEN 0x001F /*TX Word Length */ | ||
| 1026 | #define TXSE 0x0100 /*TX Secondary Enable */ | ||
| 1027 | #define TSFSE 0x0200 /*TX Stereo Frame Sync Enable */ | ||
| 1028 | #define TRFST 0x0400 /*TX Right-First Data Order */ | ||
| 1029 | |||
| 1030 | /* SPORTx_RCR1 Masks */ | ||
| 1031 | #define RSPEN 0x0001 /* RX enable */ | ||
| 1032 | #define IRCLK 0x0002 /* Internal RX Clock Select */ | ||
| 1033 | #define RDTYPE 0x000C /* RX Data Formatting Select */ | ||
| 1034 | #define RULAW 0x0008 /* u-Law enable */ | ||
| 1035 | #define RALAW 0x000C /* A-Law enable */ | ||
| 1036 | #define RLSBIT 0x0010 /* RX Bit Order */ | ||
| 1037 | #define IRFS 0x0200 /* Internal RX Frame Sync Select */ | ||
| 1038 | #define RFSR 0x0400 /* RX Frame Sync Required Select */ | ||
| 1039 | #define LRFS 0x1000 /* Low RX Frame Sync Select */ | ||
| 1040 | #define LARFS 0x2000 /* Late RX Frame Sync Select */ | ||
| 1041 | #define RCKFE 0x4000 /* RX Clock Falling Edge Select */ | ||
| 1042 | |||
| 1043 | /* SPORTx_RCR2 Masks */ | ||
| 1044 | #define SLEN 0x001F /*RX Word Length */ | ||
| 1045 | #define RXSE 0x0100 /*RX Secondary Enable */ | ||
| 1046 | #define RSFSE 0x0200 /*RX Stereo Frame Sync Enable */ | ||
| 1047 | #define RRFST 0x0400 /*Right-First Data Order */ | ||
| 1048 | |||
| 1049 | /*SPORTx_STAT Masks */ | ||
| 1050 | #define RXNE 0x0001 /*RX FIFO Not Empty Status */ | ||
| 1051 | #define RUVF 0x0002 /*RX Underflow Status */ | ||
| 1052 | #define ROVF 0x0004 /*RX Overflow Status */ | ||
| 1053 | #define TXF 0x0008 /*TX FIFO Full Status */ | ||
| 1054 | #define TUVF 0x0010 /*TX Underflow Status */ | ||
| 1055 | #define TOVF 0x0020 /*TX Overflow Status */ | ||
| 1056 | #define TXHRE 0x0040 /*TX Hold Register Empty */ | ||
| 1057 | |||
| 1058 | /*SPORTx_MCMC1 Masks */ | ||
| 1059 | #define SP_WSIZE 0x0000F000 /*Multichannel Window Size Field */ | ||
| 1060 | #define SP_WOFF 0x000003FF /*Multichannel Window Offset Field */ | ||
| 1061 | |||
| 1062 | /*SPORTx_MCMC2 Masks */ | ||
| 1063 | #define MCCRM 0x00000003 /*Multichannel Clock Recovery Mode */ | ||
| 1064 | #define MCDTXPE 0x00000004 /*Multichannel DMA Transmit Packing */ | ||
| 1065 | #define MCDRXPE 0x00000008 /*Multichannel DMA Receive Packing */ | ||
| 1066 | #define MCMEN 0x00000010 /*Multichannel Frame Mode Enable */ | ||
| 1067 | #define FSDR 0x00000080 /*Multichannel Frame Sync to Data Relationship */ | ||
| 1068 | #define MFD 0x0000F000 /*Multichannel Frame Delay */ | ||
| 1069 | |||
| 1070 | /* ********* PARALLEL PERIPHERAL INTERFACE (PPI) MASKS **************** */ | 1010 | /* ********* PARALLEL PERIPHERAL INTERFACE (PPI) MASKS **************** */ |
| 1071 | 1011 | ||
| 1072 | /* PPI_CONTROL Masks */ | 1012 | /* PPI_CONTROL Masks */ |
diff --git a/arch/h8300/include/asm/atomic.h b/arch/h8300/include/asm/atomic.h index e936804b7508..984221abb66d 100644 --- a/arch/h8300/include/asm/atomic.h +++ b/arch/h8300/include/asm/atomic.h | |||
| @@ -18,7 +18,8 @@ | |||
| 18 | 18 | ||
| 19 | static __inline__ int atomic_add_return(int i, atomic_t *v) | 19 | static __inline__ int atomic_add_return(int i, atomic_t *v) |
| 20 | { | 20 | { |
| 21 | int ret,flags; | 21 | unsigned long flags; |
| 22 | int ret; | ||
| 22 | local_irq_save(flags); | 23 | local_irq_save(flags); |
| 23 | ret = v->counter += i; | 24 | ret = v->counter += i; |
| 24 | local_irq_restore(flags); | 25 | local_irq_restore(flags); |
| @@ -30,7 +31,8 @@ static __inline__ int atomic_add_return(int i, atomic_t *v) | |||
| 30 | 31 | ||
| 31 | static __inline__ int atomic_sub_return(int i, atomic_t *v) | 32 | static __inline__ int atomic_sub_return(int i, atomic_t *v) |
| 32 | { | 33 | { |
| 33 | int ret,flags; | 34 | unsigned long flags; |
| 35 | int ret; | ||
| 34 | local_irq_save(flags); | 36 | local_irq_save(flags); |
| 35 | ret = v->counter -= i; | 37 | ret = v->counter -= i; |
| 36 | local_irq_restore(flags); | 38 | local_irq_restore(flags); |
| @@ -42,7 +44,8 @@ static __inline__ int atomic_sub_return(int i, atomic_t *v) | |||
| 42 | 44 | ||
| 43 | static __inline__ int atomic_inc_return(atomic_t *v) | 45 | static __inline__ int atomic_inc_return(atomic_t *v) |
| 44 | { | 46 | { |
| 45 | int ret,flags; | 47 | unsigned long flags; |
| 48 | int ret; | ||
| 46 | local_irq_save(flags); | 49 | local_irq_save(flags); |
| 47 | v->counter++; | 50 | v->counter++; |
| 48 | ret = v->counter; | 51 | ret = v->counter; |
| @@ -64,7 +67,8 @@ static __inline__ int atomic_inc_return(atomic_t *v) | |||
| 64 | 67 | ||
| 65 | static __inline__ int atomic_dec_return(atomic_t *v) | 68 | static __inline__ int atomic_dec_return(atomic_t *v) |
| 66 | { | 69 | { |
| 67 | int ret,flags; | 70 | unsigned long flags; |
| 71 | int ret; | ||
| 68 | local_irq_save(flags); | 72 | local_irq_save(flags); |
| 69 | --v->counter; | 73 | --v->counter; |
| 70 | ret = v->counter; | 74 | ret = v->counter; |
| @@ -76,7 +80,8 @@ static __inline__ int atomic_dec_return(atomic_t *v) | |||
| 76 | 80 | ||
| 77 | static __inline__ int atomic_dec_and_test(atomic_t *v) | 81 | static __inline__ int atomic_dec_and_test(atomic_t *v) |
| 78 | { | 82 | { |
| 79 | int ret,flags; | 83 | unsigned long flags; |
| 84 | int ret; | ||
| 80 | local_irq_save(flags); | 85 | local_irq_save(flags); |
| 81 | --v->counter; | 86 | --v->counter; |
| 82 | ret = v->counter; | 87 | ret = v->counter; |
diff --git a/arch/h8300/include/asm/system.h b/arch/h8300/include/asm/system.h index d98d97685f06..16bf1560ff68 100644 --- a/arch/h8300/include/asm/system.h +++ b/arch/h8300/include/asm/system.h | |||
| @@ -3,6 +3,8 @@ | |||
| 3 | 3 | ||
| 4 | #include <linux/linkage.h> | 4 | #include <linux/linkage.h> |
| 5 | 5 | ||
| 6 | struct pt_regs; | ||
| 7 | |||
| 6 | /* | 8 | /* |
| 7 | * switch_to(n) should switch tasks to task ptr, first checking that | 9 | * switch_to(n) should switch tasks to task ptr, first checking that |
| 8 | * ptr isn't the current task, in which case it does nothing. This | 10 | * ptr isn't the current task, in which case it does nothing. This |
| @@ -155,6 +157,6 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz | |||
| 155 | 157 | ||
| 156 | #define arch_align_stack(x) (x) | 158 | #define arch_align_stack(x) (x) |
| 157 | 159 | ||
| 158 | void die(char *str, struct pt_regs *fp, unsigned long err); | 160 | extern void die(const char *str, struct pt_regs *fp, unsigned long err); |
| 159 | 161 | ||
| 160 | #endif /* _H8300_SYSTEM_H */ | 162 | #endif /* _H8300_SYSTEM_H */ |
diff --git a/arch/h8300/kernel/sys_h8300.c b/arch/h8300/kernel/sys_h8300.c index dc1ac0243b78..aaf5e5a48f93 100644 --- a/arch/h8300/kernel/sys_h8300.c +++ b/arch/h8300/kernel/sys_h8300.c | |||
| @@ -56,8 +56,8 @@ int kernel_execve(const char *filename, | |||
| 56 | const char *const envp[]) | 56 | const char *const envp[]) |
| 57 | { | 57 | { |
| 58 | register long res __asm__("er0"); | 58 | register long res __asm__("er0"); |
| 59 | register char *const *_c __asm__("er3") = envp; | 59 | register const char *const *_c __asm__("er3") = envp; |
| 60 | register char *const *_b __asm__("er2") = argv; | 60 | register const char *const *_b __asm__("er2") = argv; |
| 61 | register const char * _a __asm__("er1") = filename; | 61 | register const char * _a __asm__("er1") = filename; |
| 62 | __asm__ __volatile__ ("mov.l %1,er0\n\t" | 62 | __asm__ __volatile__ ("mov.l %1,er0\n\t" |
| 63 | "trapa #0\n\t" | 63 | "trapa #0\n\t" |
diff --git a/arch/h8300/kernel/traps.c b/arch/h8300/kernel/traps.c index 3c0b66bc669e..dfa05bd908b6 100644 --- a/arch/h8300/kernel/traps.c +++ b/arch/h8300/kernel/traps.c | |||
| @@ -96,7 +96,7 @@ static void dump(struct pt_regs *fp) | |||
| 96 | printk("\n\n"); | 96 | printk("\n\n"); |
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | void die(char *str, struct pt_regs *fp, unsigned long err) | 99 | void die(const char *str, struct pt_regs *fp, unsigned long err) |
| 100 | { | 100 | { |
| 101 | static int diecount; | 101 | static int diecount; |
| 102 | 102 | ||
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c index 2bef5261d96d..1e8d71ad93ef 100644 --- a/arch/ia64/hp/sim/simserial.c +++ b/arch/ia64/hp/sim/simserial.c | |||
| @@ -149,7 +149,7 @@ static void receive_chars(struct tty_struct *tty) | |||
| 149 | ch = ia64_ssc(0, 0, 0, 0, | 149 | ch = ia64_ssc(0, 0, 0, 0, |
| 150 | SSC_GETCHAR); | 150 | SSC_GETCHAR); |
| 151 | while (!ch); | 151 | while (!ch); |
| 152 | handle_sysrq(ch, NULL); | 152 | handle_sysrq(ch); |
| 153 | } | 153 | } |
| 154 | #endif | 154 | #endif |
| 155 | seen_esc = 0; | 155 | seen_esc = 0; |
diff --git a/arch/ia64/kernel/fsys.S b/arch/ia64/kernel/fsys.S index 3567d54f8cee..471a1e783aca 100644 --- a/arch/ia64/kernel/fsys.S +++ b/arch/ia64/kernel/fsys.S | |||
| @@ -424,14 +424,26 @@ EX(.fail_efault, ld8 r14=[r33]) // r14 <- *set | |||
| 424 | andcm r14=r14,r17 // filter out SIGKILL & SIGSTOP | 424 | andcm r14=r14,r17 // filter out SIGKILL & SIGSTOP |
| 425 | 425 | ||
| 426 | #ifdef CONFIG_SMP | 426 | #ifdef CONFIG_SMP |
| 427 | mov r17=1 | 427 | // __ticket_spin_trylock(r31) |
| 428 | ;; | 428 | ld4 r17=[r31] |
| 429 | cmpxchg4.acq r18=[r31],r17,ar.ccv // try to acquire the lock | ||
| 430 | mov r8=EINVAL // default to EINVAL | 429 | mov r8=EINVAL // default to EINVAL |
| 431 | ;; | 430 | ;; |
| 431 | extr r9=r17,17,15 | ||
| 432 | ;; | ||
| 433 | xor r18=r17,r9 | ||
| 434 | adds r19=1,r17 | ||
| 435 | ;; | ||
| 436 | extr.u r18=r18,0,15 | ||
| 437 | ;; | ||
| 438 | cmp.eq p0,p7=0,r18 | ||
| 439 | (p7) br.cond.spnt.many .lock_contention | ||
| 440 | mov.m ar.ccv=r17 | ||
| 441 | ;; | ||
| 442 | cmpxchg4.acq r9=[r31],r19,ar.ccv | ||
| 443 | ;; | ||
| 444 | cmp4.eq p0,p7=r9,r17 | ||
| 445 | (p7) br.cond.spnt.many .lock_contention | ||
| 432 | ld8 r3=[r2] // re-read current->blocked now that we hold the lock | 446 | ld8 r3=[r2] // re-read current->blocked now that we hold the lock |
| 433 | cmp4.ne p6,p0=r18,r0 | ||
| 434 | (p6) br.cond.spnt.many .lock_contention | ||
| 435 | ;; | 447 | ;; |
| 436 | #else | 448 | #else |
| 437 | ld8 r3=[r2] // re-read current->blocked now that we hold the lock | 449 | ld8 r3=[r2] // re-read current->blocked now that we hold the lock |
| @@ -490,7 +502,17 @@ EX(.fail_efault, ld8 r14=[r33]) // r14 <- *set | |||
| 490 | (p6) br.cond.spnt.few 1b // yes -> retry | 502 | (p6) br.cond.spnt.few 1b // yes -> retry |
| 491 | 503 | ||
| 492 | #ifdef CONFIG_SMP | 504 | #ifdef CONFIG_SMP |
| 493 | st4.rel [r31]=r0 // release the lock | 505 | // __ticket_spin_unlock(r31) |
| 506 | adds r31=2,r31 | ||
| 507 | ;; | ||
| 508 | ld2.bias r2=[r31] | ||
| 509 | mov r3=65534 | ||
| 510 | ;; | ||
| 511 | adds r2=2,r2 | ||
| 512 | ;; | ||
| 513 | and r3=r3,r2 | ||
| 514 | ;; | ||
| 515 | st2.rel [r31]=r3 | ||
| 494 | #endif | 516 | #endif |
| 495 | SSM_PSR_I(p0, p9, r31) | 517 | SSM_PSR_I(p0, p9, r31) |
| 496 | ;; | 518 | ;; |
| @@ -512,7 +534,17 @@ EX(.fail_efault, (p15) st8 [r34]=r3) | |||
| 512 | 534 | ||
| 513 | .sig_pending: | 535 | .sig_pending: |
| 514 | #ifdef CONFIG_SMP | 536 | #ifdef CONFIG_SMP |
| 515 | st4.rel [r31]=r0 // release the lock | 537 | // __ticket_spin_unlock(r31) |
| 538 | adds r31=2,r31 | ||
| 539 | ;; | ||
| 540 | ld2.bias r2=[r31] | ||
| 541 | mov r3=65534 | ||
| 542 | ;; | ||
| 543 | adds r2=2,r2 | ||
| 544 | ;; | ||
| 545 | and r3=r3,r2 | ||
| 546 | ;; | ||
| 547 | st2.rel [r31]=r3 | ||
| 516 | #endif | 548 | #endif |
| 517 | SSM_PSR_I(p0, p9, r17) | 549 | SSM_PSR_I(p0, p9, r17) |
| 518 | ;; | 550 | ;; |
diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h index 60b15d0aa072..b43b36beafe3 100644 --- a/arch/m68k/include/asm/unistd.h +++ b/arch/m68k/include/asm/unistd.h | |||
| @@ -340,10 +340,13 @@ | |||
| 340 | #define __NR_set_thread_area 334 | 340 | #define __NR_set_thread_area 334 |
| 341 | #define __NR_atomic_cmpxchg_32 335 | 341 | #define __NR_atomic_cmpxchg_32 335 |
| 342 | #define __NR_atomic_barrier 336 | 342 | #define __NR_atomic_barrier 336 |
| 343 | #define __NR_fanotify_init 337 | ||
| 344 | #define __NR_fanotify_mark 338 | ||
| 345 | #define __NR_prlimit64 339 | ||
| 343 | 346 | ||
| 344 | #ifdef __KERNEL__ | 347 | #ifdef __KERNEL__ |
| 345 | 348 | ||
| 346 | #define NR_syscalls 337 | 349 | #define NR_syscalls 340 |
| 347 | 350 | ||
| 348 | #define __ARCH_WANT_IPC_PARSE_VERSION | 351 | #define __ARCH_WANT_IPC_PARSE_VERSION |
| 349 | #define __ARCH_WANT_OLD_READDIR | 352 | #define __ARCH_WANT_OLD_READDIR |
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S index 2391bdff0996..6360c437dcf5 100644 --- a/arch/m68k/kernel/entry.S +++ b/arch/m68k/kernel/entry.S | |||
| @@ -765,4 +765,7 @@ sys_call_table: | |||
| 765 | .long sys_set_thread_area | 765 | .long sys_set_thread_area |
| 766 | .long sys_atomic_cmpxchg_32 /* 335 */ | 766 | .long sys_atomic_cmpxchg_32 /* 335 */ |
| 767 | .long sys_atomic_barrier | 767 | .long sys_atomic_barrier |
| 768 | .long sys_fanotify_init | ||
| 769 | .long sys_fanotify_mark | ||
| 770 | .long sys_prlimit64 | ||
| 768 | 771 | ||
diff --git a/arch/m68knommu/kernel/syscalltable.S b/arch/m68knommu/kernel/syscalltable.S index b30b3eb197a5..79b1ed198c07 100644 --- a/arch/m68knommu/kernel/syscalltable.S +++ b/arch/m68knommu/kernel/syscalltable.S | |||
| @@ -355,6 +355,9 @@ ENTRY(sys_call_table) | |||
| 355 | .long sys_set_thread_area | 355 | .long sys_set_thread_area |
| 356 | .long sys_atomic_cmpxchg_32 /* 335 */ | 356 | .long sys_atomic_cmpxchg_32 /* 335 */ |
| 357 | .long sys_atomic_barrier | 357 | .long sys_atomic_barrier |
| 358 | .long sys_fanotify_init | ||
| 359 | .long sys_fanotify_mark | ||
| 360 | .long sys_prlimit64 | ||
| 358 | 361 | ||
| 359 | .rept NR_syscalls-(.-sys_call_table)/4 | 362 | .rept NR_syscalls-(.-sys_call_table)/4 |
| 360 | .long sys_ni_syscall | 363 | .long sys_ni_syscall |
diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S index a91b2713451d..ef332136f96d 100644 --- a/arch/m68knommu/kernel/vmlinux.lds.S +++ b/arch/m68knommu/kernel/vmlinux.lds.S | |||
| @@ -150,6 +150,8 @@ SECTIONS { | |||
| 150 | _sdata = . ; | 150 | _sdata = . ; |
| 151 | DATA_DATA | 151 | DATA_DATA |
| 152 | CACHELINE_ALIGNED_DATA(32) | 152 | CACHELINE_ALIGNED_DATA(32) |
| 153 | PAGE_ALIGNED_DATA(PAGE_SIZE) | ||
| 154 | *(.data..shared_aligned) | ||
| 153 | INIT_TASK_DATA(THREAD_SIZE) | 155 | INIT_TASK_DATA(THREAD_SIZE) |
| 154 | _edata = . ; | 156 | _edata = . ; |
| 155 | } > DATA | 157 | } > DATA |
diff --git a/arch/powerpc/include/asm/fsldma.h b/arch/powerpc/include/asm/fsldma.h index a67aeed17d40..debc5ed96d6e 100644 --- a/arch/powerpc/include/asm/fsldma.h +++ b/arch/powerpc/include/asm/fsldma.h | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #ifndef __ARCH_POWERPC_ASM_FSLDMA_H__ | 11 | #ifndef __ARCH_POWERPC_ASM_FSLDMA_H__ |
| 12 | #define __ARCH_POWERPC_ASM_FSLDMA_H__ | 12 | #define __ARCH_POWERPC_ASM_FSLDMA_H__ |
| 13 | 13 | ||
| 14 | #include <linux/slab.h> | ||
| 14 | #include <linux/dmaengine.h> | 15 | #include <linux/dmaengine.h> |
| 15 | 16 | ||
| 16 | /* | 17 | /* |
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 4d6681dce816..c571cd3c1453 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
| @@ -575,13 +575,19 @@ __secondary_start: | |||
| 575 | /* Initialize the kernel stack. Just a repeat for iSeries. */ | 575 | /* Initialize the kernel stack. Just a repeat for iSeries. */ |
| 576 | LOAD_REG_ADDR(r3, current_set) | 576 | LOAD_REG_ADDR(r3, current_set) |
| 577 | sldi r28,r24,3 /* get current_set[cpu#] */ | 577 | sldi r28,r24,3 /* get current_set[cpu#] */ |
| 578 | ldx r1,r3,r28 | 578 | ldx r14,r3,r28 |
| 579 | addi r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD | 579 | addi r14,r14,THREAD_SIZE-STACK_FRAME_OVERHEAD |
| 580 | std r1,PACAKSAVE(r13) | 580 | std r14,PACAKSAVE(r13) |
| 581 | 581 | ||
| 582 | /* Do early setup for that CPU (stab, slb, hash table pointer) */ | 582 | /* Do early setup for that CPU (stab, slb, hash table pointer) */ |
| 583 | bl .early_setup_secondary | 583 | bl .early_setup_secondary |
| 584 | 584 | ||
| 585 | /* | ||
| 586 | * setup the new stack pointer, but *don't* use this until | ||
| 587 | * translation is on. | ||
| 588 | */ | ||
| 589 | mr r1, r14 | ||
| 590 | |||
| 585 | /* Clear backchain so we get nice backtraces */ | 591 | /* Clear backchain so we get nice backtraces */ |
| 586 | li r7,0 | 592 | li r7,0 |
| 587 | mtlr r7 | 593 | mtlr r7 |
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index 6bbd7a604d24..a7a570dcdd57 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
| @@ -810,6 +810,9 @@ relocate_new_kernel: | |||
| 810 | isync | 810 | isync |
| 811 | sync | 811 | sync |
| 812 | 812 | ||
| 813 | mfspr r3, SPRN_PIR /* current core we are running on */ | ||
| 814 | mr r4, r5 /* load physical address of chunk called */ | ||
| 815 | |||
| 813 | /* jump to the entry point, usually the setup routine */ | 816 | /* jump to the entry point, usually the setup routine */ |
| 814 | mtlr r5 | 817 | mtlr r5 |
| 815 | blrl | 818 | blrl |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index ce53dfa7130d..8533b3b83f5d 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
| @@ -577,20 +577,11 @@ void timer_interrupt(struct pt_regs * regs) | |||
| 577 | * some CPUs will continuue to take decrementer exceptions */ | 577 | * some CPUs will continuue to take decrementer exceptions */ |
| 578 | set_dec(DECREMENTER_MAX); | 578 | set_dec(DECREMENTER_MAX); |
| 579 | 579 | ||
| 580 | #ifdef CONFIG_PPC32 | 580 | #if defined(CONFIG_PPC32) && defined(CONFIG_PMAC) |
| 581 | if (atomic_read(&ppc_n_lost_interrupts) != 0) | 581 | if (atomic_read(&ppc_n_lost_interrupts) != 0) |
| 582 | do_IRQ(regs); | 582 | do_IRQ(regs); |
| 583 | #endif | 583 | #endif |
| 584 | 584 | ||
| 585 | now = get_tb_or_rtc(); | ||
| 586 | if (now < decrementer->next_tb) { | ||
| 587 | /* not time for this event yet */ | ||
| 588 | now = decrementer->next_tb - now; | ||
| 589 | if (now <= DECREMENTER_MAX) | ||
| 590 | set_dec((int)now); | ||
| 591 | trace_timer_interrupt_exit(regs); | ||
| 592 | return; | ||
| 593 | } | ||
| 594 | old_regs = set_irq_regs(regs); | 585 | old_regs = set_irq_regs(regs); |
| 595 | irq_enter(); | 586 | irq_enter(); |
| 596 | 587 | ||
| @@ -606,8 +597,16 @@ void timer_interrupt(struct pt_regs * regs) | |||
| 606 | get_lppaca()->int_dword.fields.decr_int = 0; | 597 | get_lppaca()->int_dword.fields.decr_int = 0; |
| 607 | #endif | 598 | #endif |
| 608 | 599 | ||
| 609 | if (evt->event_handler) | 600 | now = get_tb_or_rtc(); |
| 610 | evt->event_handler(evt); | 601 | if (now >= decrementer->next_tb) { |
| 602 | decrementer->next_tb = ~(u64)0; | ||
| 603 | if (evt->event_handler) | ||
| 604 | evt->event_handler(evt); | ||
| 605 | } else { | ||
| 606 | now = decrementer->next_tb - now; | ||
| 607 | if (now <= DECREMENTER_MAX) | ||
| 608 | set_dec((int)now); | ||
| 609 | } | ||
| 611 | 610 | ||
| 612 | #ifdef CONFIG_PPC_ISERIES | 611 | #ifdef CONFIG_PPC_ISERIES |
| 613 | if (firmware_has_feature(FW_FEATURE_ISERIES) && hvlpevent_is_pending()) | 612 | if (firmware_has_feature(FW_FEATURE_ISERIES) && hvlpevent_is_pending()) |
diff --git a/arch/powerpc/platforms/83xx/mpc837x_mds.c b/arch/powerpc/platforms/83xx/mpc837x_mds.c index f9751c8905be..83068322abd1 100644 --- a/arch/powerpc/platforms/83xx/mpc837x_mds.c +++ b/arch/powerpc/platforms/83xx/mpc837x_mds.c | |||
| @@ -48,8 +48,10 @@ static int mpc837xmds_usb_cfg(void) | |||
| 48 | return -1; | 48 | return -1; |
| 49 | 49 | ||
| 50 | np = of_find_node_by_name(NULL, "usb"); | 50 | np = of_find_node_by_name(NULL, "usb"); |
| 51 | if (!np) | 51 | if (!np) { |
| 52 | return -ENODEV; | 52 | ret = -ENODEV; |
| 53 | goto out; | ||
| 54 | } | ||
| 53 | phy_type = of_get_property(np, "phy_type", NULL); | 55 | phy_type = of_get_property(np, "phy_type", NULL); |
| 54 | if (phy_type && !strcmp(phy_type, "ulpi")) { | 56 | if (phy_type && !strcmp(phy_type, "ulpi")) { |
| 55 | clrbits8(bcsr_regs + 12, BCSR12_USB_SER_PIN); | 57 | clrbits8(bcsr_regs + 12, BCSR12_USB_SER_PIN); |
| @@ -65,8 +67,9 @@ static int mpc837xmds_usb_cfg(void) | |||
| 65 | } | 67 | } |
| 66 | 68 | ||
| 67 | of_node_put(np); | 69 | of_node_put(np); |
| 70 | out: | ||
| 68 | iounmap(bcsr_regs); | 71 | iounmap(bcsr_regs); |
| 69 | return 0; | 72 | return ret; |
| 70 | } | 73 | } |
| 71 | 74 | ||
| 72 | /* ************************************************************************ | 75 | /* ************************************************************************ |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c index da64be19d099..aa34cac4eb5c 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c | |||
| @@ -357,6 +357,7 @@ static void __init mpc85xx_mds_setup_arch(void) | |||
| 357 | { | 357 | { |
| 358 | #ifdef CONFIG_PCI | 358 | #ifdef CONFIG_PCI |
| 359 | struct pci_controller *hose; | 359 | struct pci_controller *hose; |
| 360 | struct device_node *np; | ||
| 360 | #endif | 361 | #endif |
| 361 | dma_addr_t max = 0xffffffff; | 362 | dma_addr_t max = 0xffffffff; |
| 362 | 363 | ||
diff --git a/arch/powerpc/platforms/85xx/p1022_ds.c b/arch/powerpc/platforms/85xx/p1022_ds.c index e1467c937450..34e00902ce86 100644 --- a/arch/powerpc/platforms/85xx/p1022_ds.c +++ b/arch/powerpc/platforms/85xx/p1022_ds.c | |||
| @@ -19,7 +19,7 @@ | |||
| 19 | 19 | ||
| 20 | #include <linux/pci.h> | 20 | #include <linux/pci.h> |
| 21 | #include <linux/of_platform.h> | 21 | #include <linux/of_platform.h> |
| 22 | #include <linux/lmb.h> | 22 | #include <linux/memblock.h> |
| 23 | 23 | ||
| 24 | #include <asm/mpic.h> | 24 | #include <asm/mpic.h> |
| 25 | #include <asm/swiotlb.h> | 25 | #include <asm/swiotlb.h> |
| @@ -97,7 +97,7 @@ static void __init p1022_ds_setup_arch(void) | |||
| 97 | #endif | 97 | #endif |
| 98 | 98 | ||
| 99 | #ifdef CONFIG_SWIOTLB | 99 | #ifdef CONFIG_SWIOTLB |
| 100 | if (lmb_end_of_DRAM() > max) { | 100 | if (memblock_end_of_DRAM() > max) { |
| 101 | ppc_swiotlb_enable = 1; | 101 | ppc_swiotlb_enable = 1; |
| 102 | set_pci_dma_ops(&swiotlb_dma_ops); | 102 | set_pci_dma_ops(&swiotlb_dma_ops); |
| 103 | ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb; | 103 | ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb; |
diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c index 227c1c3d585e..72d8054fa739 100644 --- a/arch/powerpc/platforms/pseries/dlpar.c +++ b/arch/powerpc/platforms/pseries/dlpar.c | |||
| @@ -129,20 +129,35 @@ struct device_node *dlpar_configure_connector(u32 drc_index) | |||
| 129 | struct property *property; | 129 | struct property *property; |
| 130 | struct property *last_property = NULL; | 130 | struct property *last_property = NULL; |
| 131 | struct cc_workarea *ccwa; | 131 | struct cc_workarea *ccwa; |
| 132 | char *data_buf; | ||
| 132 | int cc_token; | 133 | int cc_token; |
| 133 | int rc; | 134 | int rc = -1; |
| 134 | 135 | ||
| 135 | cc_token = rtas_token("ibm,configure-connector"); | 136 | cc_token = rtas_token("ibm,configure-connector"); |
| 136 | if (cc_token == RTAS_UNKNOWN_SERVICE) | 137 | if (cc_token == RTAS_UNKNOWN_SERVICE) |
| 137 | return NULL; | 138 | return NULL; |
| 138 | 139 | ||
| 139 | spin_lock(&rtas_data_buf_lock); | 140 | data_buf = kzalloc(RTAS_DATA_BUF_SIZE, GFP_KERNEL); |
| 140 | ccwa = (struct cc_workarea *)&rtas_data_buf[0]; | 141 | if (!data_buf) |
| 142 | return NULL; | ||
| 143 | |||
| 144 | ccwa = (struct cc_workarea *)&data_buf[0]; | ||
| 141 | ccwa->drc_index = drc_index; | 145 | ccwa->drc_index = drc_index; |
| 142 | ccwa->zero = 0; | 146 | ccwa->zero = 0; |
| 143 | 147 | ||
| 144 | rc = rtas_call(cc_token, 2, 1, NULL, rtas_data_buf, NULL); | 148 | do { |
| 145 | while (rc) { | 149 | /* Since we release the rtas_data_buf lock between configure |
| 150 | * connector calls we want to re-populate the rtas_data_buffer | ||
| 151 | * with the contents of the previous call. | ||
| 152 | */ | ||
| 153 | spin_lock(&rtas_data_buf_lock); | ||
| 154 | |||
| 155 | memcpy(rtas_data_buf, data_buf, RTAS_DATA_BUF_SIZE); | ||
| 156 | rc = rtas_call(cc_token, 2, 1, NULL, rtas_data_buf, NULL); | ||
| 157 | memcpy(data_buf, rtas_data_buf, RTAS_DATA_BUF_SIZE); | ||
| 158 | |||
| 159 | spin_unlock(&rtas_data_buf_lock); | ||
| 160 | |||
| 146 | switch (rc) { | 161 | switch (rc) { |
| 147 | case NEXT_SIBLING: | 162 | case NEXT_SIBLING: |
| 148 | dn = dlpar_parse_cc_node(ccwa); | 163 | dn = dlpar_parse_cc_node(ccwa); |
| @@ -197,18 +212,19 @@ struct device_node *dlpar_configure_connector(u32 drc_index) | |||
| 197 | "returned from configure-connector\n", rc); | 212 | "returned from configure-connector\n", rc); |
| 198 | goto cc_error; | 213 | goto cc_error; |
| 199 | } | 214 | } |
| 215 | } while (rc); | ||
| 200 | 216 | ||
| 201 | rc = rtas_call(cc_token, 2, 1, NULL, rtas_data_buf, NULL); | 217 | cc_error: |
| 218 | kfree(data_buf); | ||
| 219 | |||
| 220 | if (rc) { | ||
| 221 | if (first_dn) | ||
| 222 | dlpar_free_cc_nodes(first_dn); | ||
| 223 | |||
| 224 | return NULL; | ||
| 202 | } | 225 | } |
| 203 | 226 | ||
| 204 | spin_unlock(&rtas_data_buf_lock); | ||
| 205 | return first_dn; | 227 | return first_dn; |
| 206 | |||
| 207 | cc_error: | ||
| 208 | if (first_dn) | ||
| 209 | dlpar_free_cc_nodes(first_dn); | ||
| 210 | spin_unlock(&rtas_data_buf_lock); | ||
| 211 | return NULL; | ||
| 212 | } | 228 | } |
| 213 | 229 | ||
| 214 | static struct device_node *derive_parent(const char *path) | 230 | static struct device_node *derive_parent(const char *path) |
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 209384b6e039..4ae933225251 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c | |||
| @@ -399,6 +399,8 @@ DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1013E, quirk_fsl_pcie_header); | |||
| 399 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1013, quirk_fsl_pcie_header); | 399 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1013, quirk_fsl_pcie_header); |
| 400 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1020E, quirk_fsl_pcie_header); | 400 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1020E, quirk_fsl_pcie_header); |
| 401 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1020, quirk_fsl_pcie_header); | 401 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1020, quirk_fsl_pcie_header); |
| 402 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1021E, quirk_fsl_pcie_header); | ||
| 403 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1021, quirk_fsl_pcie_header); | ||
| 402 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1022E, quirk_fsl_pcie_header); | 404 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1022E, quirk_fsl_pcie_header); |
| 403 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1022, quirk_fsl_pcie_header); | 405 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P1022, quirk_fsl_pcie_header); |
| 404 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P2010E, quirk_fsl_pcie_header); | 406 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_P2010E, quirk_fsl_pcie_header); |
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c index 6425abe5b7db..3017532319c8 100644 --- a/arch/powerpc/sysdev/fsl_rio.c +++ b/arch/powerpc/sysdev/fsl_rio.c | |||
| @@ -240,12 +240,13 @@ struct rio_priv { | |||
| 240 | 240 | ||
| 241 | static void __iomem *rio_regs_win; | 241 | static void __iomem *rio_regs_win; |
| 242 | 242 | ||
| 243 | #ifdef CONFIG_E500 | ||
| 243 | static int (*saved_mcheck_exception)(struct pt_regs *regs); | 244 | static int (*saved_mcheck_exception)(struct pt_regs *regs); |
| 244 | 245 | ||
| 245 | static int fsl_rio_mcheck_exception(struct pt_regs *regs) | 246 | static int fsl_rio_mcheck_exception(struct pt_regs *regs) |
| 246 | { | 247 | { |
| 247 | const struct exception_table_entry *entry = NULL; | 248 | const struct exception_table_entry *entry = NULL; |
| 248 | unsigned long reason = (mfspr(SPRN_MCSR) & MCSR_MASK); | 249 | unsigned long reason = mfspr(SPRN_MCSR); |
| 249 | 250 | ||
| 250 | if (reason & MCSR_BUS_RBERR) { | 251 | if (reason & MCSR_BUS_RBERR) { |
| 251 | reason = in_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR)); | 252 | reason = in_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR)); |
| @@ -269,6 +270,7 @@ static int fsl_rio_mcheck_exception(struct pt_regs *regs) | |||
| 269 | else | 270 | else |
| 270 | return cur_cpu_spec->machine_check(regs); | 271 | return cur_cpu_spec->machine_check(regs); |
| 271 | } | 272 | } |
| 273 | #endif | ||
| 272 | 274 | ||
| 273 | /** | 275 | /** |
| 274 | * fsl_rio_doorbell_send - Send a MPC85xx doorbell message | 276 | * fsl_rio_doorbell_send - Send a MPC85xx doorbell message |
| @@ -1517,8 +1519,10 @@ int fsl_rio_setup(struct platform_device *dev) | |||
| 1517 | fsl_rio_doorbell_init(port); | 1519 | fsl_rio_doorbell_init(port); |
| 1518 | fsl_rio_port_write_init(port); | 1520 | fsl_rio_port_write_init(port); |
| 1519 | 1521 | ||
| 1522 | #ifdef CONFIG_E500 | ||
| 1520 | saved_mcheck_exception = ppc_md.machine_check_exception; | 1523 | saved_mcheck_exception = ppc_md.machine_check_exception; |
| 1521 | ppc_md.machine_check_exception = fsl_rio_mcheck_exception; | 1524 | ppc_md.machine_check_exception = fsl_rio_mcheck_exception; |
| 1525 | #endif | ||
| 1522 | /* Ensure that RFXE is set */ | 1526 | /* Ensure that RFXE is set */ |
| 1523 | mtspr(SPRN_HID1, (mfspr(SPRN_HID1) | 0x20000)); | 1527 | mtspr(SPRN_HID1, (mfspr(SPRN_HID1) | 0x20000)); |
| 1524 | 1528 | ||
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c index 3da8014931c9..90020de4dcf2 100644 --- a/arch/powerpc/sysdev/qe_lib/qe.c +++ b/arch/powerpc/sysdev/qe_lib/qe.c | |||
| @@ -640,6 +640,7 @@ unsigned int qe_get_num_of_snums(void) | |||
| 640 | if ((num_of_snums < 28) || (num_of_snums > QE_NUM_OF_SNUM)) { | 640 | if ((num_of_snums < 28) || (num_of_snums > QE_NUM_OF_SNUM)) { |
| 641 | /* No QE ever has fewer than 28 SNUMs */ | 641 | /* No QE ever has fewer than 28 SNUMs */ |
| 642 | pr_err("QE: number of snum is invalid\n"); | 642 | pr_err("QE: number of snum is invalid\n"); |
| 643 | of_node_put(qe); | ||
| 643 | return -EINVAL; | 644 | return -EINVAL; |
| 644 | } | 645 | } |
| 645 | } | 646 | } |
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c index 0554445200bf..d17d04cfb2cd 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c | |||
| @@ -2880,15 +2880,14 @@ static void xmon_init(int enable) | |||
| 2880 | } | 2880 | } |
| 2881 | 2881 | ||
| 2882 | #ifdef CONFIG_MAGIC_SYSRQ | 2882 | #ifdef CONFIG_MAGIC_SYSRQ |
| 2883 | static void sysrq_handle_xmon(int key, struct tty_struct *tty) | 2883 | static void sysrq_handle_xmon(int key) |
| 2884 | { | 2884 | { |
| 2885 | /* ensure xmon is enabled */ | 2885 | /* ensure xmon is enabled */ |
| 2886 | xmon_init(1); | 2886 | xmon_init(1); |
| 2887 | debugger(get_irq_regs()); | 2887 | debugger(get_irq_regs()); |
| 2888 | } | 2888 | } |
| 2889 | 2889 | ||
| 2890 | static struct sysrq_key_op sysrq_xmon_op = | 2890 | static struct sysrq_key_op sysrq_xmon_op = { |
| 2891 | { | ||
| 2892 | .handler = sysrq_handle_xmon, | 2891 | .handler = sysrq_handle_xmon, |
| 2893 | .help_msg = "Xmon", | 2892 | .help_msg = "Xmon", |
| 2894 | .action_msg = "Entering xmon", | 2893 | .action_msg = "Entering xmon", |
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index 485f54748384..c158a95ec664 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c | |||
| @@ -303,7 +303,7 @@ void arch_trigger_all_cpu_backtrace(void) | |||
| 303 | 303 | ||
| 304 | #ifdef CONFIG_MAGIC_SYSRQ | 304 | #ifdef CONFIG_MAGIC_SYSRQ |
| 305 | 305 | ||
| 306 | static void sysrq_handle_globreg(int key, struct tty_struct *tty) | 306 | static void sysrq_handle_globreg(int key) |
| 307 | { | 307 | { |
| 308 | arch_trigger_all_cpu_backtrace(); | 308 | arch_trigger_all_cpu_backtrace(); |
| 309 | } | 309 | } |
diff --git a/arch/sparc/kernel/sys_sparc_32.c b/arch/sparc/kernel/sys_sparc_32.c index 50794137d710..675c9e11ada5 100644 --- a/arch/sparc/kernel/sys_sparc_32.c +++ b/arch/sparc/kernel/sys_sparc_32.c | |||
| @@ -166,7 +166,6 @@ sparc_breakpoint (struct pt_regs *regs) | |||
| 166 | { | 166 | { |
| 167 | siginfo_t info; | 167 | siginfo_t info; |
| 168 | 168 | ||
| 169 | lock_kernel(); | ||
| 170 | #ifdef DEBUG_SPARC_BREAKPOINT | 169 | #ifdef DEBUG_SPARC_BREAKPOINT |
| 171 | printk ("TRAP: Entering kernel PC=%x, nPC=%x\n", regs->pc, regs->npc); | 170 | printk ("TRAP: Entering kernel PC=%x, nPC=%x\n", regs->pc, regs->npc); |
| 172 | #endif | 171 | #endif |
| @@ -180,7 +179,6 @@ sparc_breakpoint (struct pt_regs *regs) | |||
| 180 | #ifdef DEBUG_SPARC_BREAKPOINT | 179 | #ifdef DEBUG_SPARC_BREAKPOINT |
| 181 | printk ("TRAP: Returning to space: PC=%x nPC=%x\n", regs->pc, regs->npc); | 180 | printk ("TRAP: Returning to space: PC=%x nPC=%x\n", regs->pc, regs->npc); |
| 182 | #endif | 181 | #endif |
| 183 | unlock_kernel(); | ||
| 184 | } | 182 | } |
| 185 | 183 | ||
| 186 | asmlinkage int | 184 | asmlinkage int |
diff --git a/arch/sparc/kernel/unaligned_32.c b/arch/sparc/kernel/unaligned_32.c index f8514e291e15..12b9f352595f 100644 --- a/arch/sparc/kernel/unaligned_32.c +++ b/arch/sparc/kernel/unaligned_32.c | |||
| @@ -323,7 +323,6 @@ asmlinkage void user_unaligned_trap(struct pt_regs *regs, unsigned int insn) | |||
| 323 | { | 323 | { |
| 324 | enum direction dir; | 324 | enum direction dir; |
| 325 | 325 | ||
| 326 | lock_kernel(); | ||
| 327 | if(!(current->thread.flags & SPARC_FLAG_UNALIGNED) || | 326 | if(!(current->thread.flags & SPARC_FLAG_UNALIGNED) || |
| 328 | (((insn >> 30) & 3) != 3)) | 327 | (((insn >> 30) & 3) != 3)) |
| 329 | goto kill_user; | 328 | goto kill_user; |
| @@ -377,5 +376,5 @@ asmlinkage void user_unaligned_trap(struct pt_regs *regs, unsigned int insn) | |||
| 377 | kill_user: | 376 | kill_user: |
| 378 | user_mna_trap_fault(regs, insn); | 377 | user_mna_trap_fault(regs, insn); |
| 379 | out: | 378 | out: |
| 380 | unlock_kernel(); | 379 | ; |
| 381 | } | 380 | } |
diff --git a/arch/sparc/kernel/windows.c b/arch/sparc/kernel/windows.c index f24d298bda29..b351770cbdd6 100644 --- a/arch/sparc/kernel/windows.c +++ b/arch/sparc/kernel/windows.c | |||
| @@ -112,7 +112,6 @@ void try_to_clear_window_buffer(struct pt_regs *regs, int who) | |||
| 112 | struct thread_info *tp = current_thread_info(); | 112 | struct thread_info *tp = current_thread_info(); |
| 113 | int window; | 113 | int window; |
| 114 | 114 | ||
| 115 | lock_kernel(); | ||
| 116 | flush_user_windows(); | 115 | flush_user_windows(); |
| 117 | for(window = 0; window < tp->w_saved; window++) { | 116 | for(window = 0; window < tp->w_saved; window++) { |
| 118 | unsigned long sp = tp->rwbuf_stkptrs[window]; | 117 | unsigned long sp = tp->rwbuf_stkptrs[window]; |
| @@ -123,5 +122,4 @@ void try_to_clear_window_buffer(struct pt_regs *regs, int who) | |||
| 123 | do_exit(SIGILL); | 122 | do_exit(SIGILL); |
| 124 | } | 123 | } |
| 125 | tp->w_saved = 0; | 124 | tp->w_saved = 0; |
| 126 | unlock_kernel(); | ||
| 127 | } | 125 | } |
diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c index de317d0c3294..ebc680717e59 100644 --- a/arch/um/drivers/mconsole_kern.c +++ b/arch/um/drivers/mconsole_kern.c | |||
| @@ -690,7 +690,7 @@ static void with_console(struct mc_request *req, void (*proc)(void *), | |||
| 690 | static void sysrq_proc(void *arg) | 690 | static void sysrq_proc(void *arg) |
| 691 | { | 691 | { |
| 692 | char *op = arg; | 692 | char *op = arg; |
| 693 | handle_sysrq(*op, NULL); | 693 | handle_sysrq(*op); |
| 694 | } | 694 | } |
| 695 | 695 | ||
| 696 | void mconsole_sysrq(struct mc_request *req) | 696 | void mconsole_sysrq(struct mc_request *req) |
diff --git a/arch/x86/include/asm/iomap.h b/arch/x86/include/asm/iomap.h index f35eb45d6576..c4191b3b7056 100644 --- a/arch/x86/include/asm/iomap.h +++ b/arch/x86/include/asm/iomap.h | |||
| @@ -26,11 +26,11 @@ | |||
| 26 | #include <asm/pgtable.h> | 26 | #include <asm/pgtable.h> |
| 27 | #include <asm/tlbflush.h> | 27 | #include <asm/tlbflush.h> |
| 28 | 28 | ||
| 29 | void * | 29 | void __iomem * |
| 30 | iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot); | 30 | iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot); |
| 31 | 31 | ||
| 32 | void | 32 | void |
| 33 | iounmap_atomic(void *kvaddr, enum km_type type); | 33 | iounmap_atomic(void __iomem *kvaddr, enum km_type type); |
| 34 | 34 | ||
| 35 | int | 35 | int |
| 36 | iomap_create_wc(resource_size_t base, unsigned long size, pgprot_t *prot); | 36 | iomap_create_wc(resource_size_t base, unsigned long size, pgprot_t *prot); |
diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h index 51cfd730ac5d..1f99ecfc48e1 100644 --- a/arch/x86/include/asm/kvm_emulate.h +++ b/arch/x86/include/asm/kvm_emulate.h | |||
| @@ -152,9 +152,14 @@ struct x86_emulate_ops { | |||
| 152 | struct operand { | 152 | struct operand { |
| 153 | enum { OP_REG, OP_MEM, OP_IMM, OP_NONE } type; | 153 | enum { OP_REG, OP_MEM, OP_IMM, OP_NONE } type; |
| 154 | unsigned int bytes; | 154 | unsigned int bytes; |
| 155 | unsigned long orig_val, *ptr; | 155 | union { |
| 156 | unsigned long orig_val; | ||
| 157 | u64 orig_val64; | ||
| 158 | }; | ||
| 159 | unsigned long *ptr; | ||
| 156 | union { | 160 | union { |
| 157 | unsigned long val; | 161 | unsigned long val; |
| 162 | u64 val64; | ||
| 158 | char valptr[sizeof(unsigned long) + 2]; | 163 | char valptr[sizeof(unsigned long) + 2]; |
| 159 | }; | 164 | }; |
| 160 | }; | 165 | }; |
diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index 404a880ea325..d395540ff894 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h | |||
| @@ -27,6 +27,9 @@ extern struct pci_bus *pci_scan_bus_on_node(int busno, struct pci_ops *ops, | |||
| 27 | int node); | 27 | int node); |
| 28 | extern struct pci_bus *pci_scan_bus_with_sysdata(int busno); | 28 | extern struct pci_bus *pci_scan_bus_with_sysdata(int busno); |
| 29 | 29 | ||
| 30 | #ifdef CONFIG_PCI | ||
| 31 | |||
| 32 | #ifdef CONFIG_PCI_DOMAINS | ||
| 30 | static inline int pci_domain_nr(struct pci_bus *bus) | 33 | static inline int pci_domain_nr(struct pci_bus *bus) |
| 31 | { | 34 | { |
| 32 | struct pci_sysdata *sd = bus->sysdata; | 35 | struct pci_sysdata *sd = bus->sysdata; |
| @@ -37,13 +40,12 @@ static inline int pci_proc_domain(struct pci_bus *bus) | |||
| 37 | { | 40 | { |
| 38 | return pci_domain_nr(bus); | 41 | return pci_domain_nr(bus); |
| 39 | } | 42 | } |
| 40 | 43 | #endif | |
| 41 | 44 | ||
| 42 | /* Can be used to override the logic in pci_scan_bus for skipping | 45 | /* Can be used to override the logic in pci_scan_bus for skipping |
| 43 | already-configured bus numbers - to be used for buggy BIOSes | 46 | already-configured bus numbers - to be used for buggy BIOSes |
| 44 | or architectures with incomplete PCI setup by the loader */ | 47 | or architectures with incomplete PCI setup by the loader */ |
| 45 | 48 | ||
| 46 | #ifdef CONFIG_PCI | ||
| 47 | extern unsigned int pcibios_assign_all_busses(void); | 49 | extern unsigned int pcibios_assign_all_busses(void); |
| 48 | extern int pci_legacy_init(void); | 50 | extern int pci_legacy_init(void); |
| 49 | # ifdef CONFIG_ACPI | 51 | # ifdef CONFIG_ACPI |
diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h index c0427295e8f5..1ca132fc0d03 100644 --- a/arch/x86/include/asm/tsc.h +++ b/arch/x86/include/asm/tsc.h | |||
| @@ -59,5 +59,7 @@ extern void check_tsc_sync_source(int cpu); | |||
| 59 | extern void check_tsc_sync_target(void); | 59 | extern void check_tsc_sync_target(void); |
| 60 | 60 | ||
| 61 | extern int notsc_setup(char *); | 61 | extern int notsc_setup(char *); |
| 62 | extern void save_sched_clock_state(void); | ||
| 63 | extern void restore_sched_clock_state(void); | ||
| 62 | 64 | ||
| 63 | #endif /* _ASM_X86_TSC_H */ | 65 | #endif /* _ASM_X86_TSC_H */ |
diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd.c b/arch/x86/kernel/cpu/mcheck/mce_amd.c index 224392d8fe8c..5e975298fa81 100644 --- a/arch/x86/kernel/cpu/mcheck/mce_amd.c +++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c | |||
| @@ -530,7 +530,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank) | |||
| 530 | err = -ENOMEM; | 530 | err = -ENOMEM; |
| 531 | goto out; | 531 | goto out; |
| 532 | } | 532 | } |
| 533 | if (!alloc_cpumask_var(&b->cpus, GFP_KERNEL)) { | 533 | if (!zalloc_cpumask_var(&b->cpus, GFP_KERNEL)) { |
| 534 | kfree(b); | 534 | kfree(b); |
| 535 | err = -ENOMEM; | 535 | err = -ENOMEM; |
| 536 | goto out; | 536 | goto out; |
| @@ -543,7 +543,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank) | |||
| 543 | #ifndef CONFIG_SMP | 543 | #ifndef CONFIG_SMP |
| 544 | cpumask_setall(b->cpus); | 544 | cpumask_setall(b->cpus); |
| 545 | #else | 545 | #else |
| 546 | cpumask_copy(b->cpus, c->llc_shared_map); | 546 | cpumask_set_cpu(cpu, b->cpus); |
| 547 | #endif | 547 | #endif |
| 548 | 548 | ||
| 549 | per_cpu(threshold_banks, cpu)[bank] = b; | 549 | per_cpu(threshold_banks, cpu)[bank] = b; |
diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c index c2a8b26d4fea..d9368eeda309 100644 --- a/arch/x86/kernel/cpu/mcheck/therm_throt.c +++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c | |||
| @@ -202,10 +202,11 @@ static int therm_throt_process(bool new_event, int event, int level) | |||
| 202 | 202 | ||
| 203 | #ifdef CONFIG_SYSFS | 203 | #ifdef CONFIG_SYSFS |
| 204 | /* Add/Remove thermal_throttle interface for CPU device: */ | 204 | /* Add/Remove thermal_throttle interface for CPU device: */ |
| 205 | static __cpuinit int thermal_throttle_add_dev(struct sys_device *sys_dev) | 205 | static __cpuinit int thermal_throttle_add_dev(struct sys_device *sys_dev, |
| 206 | unsigned int cpu) | ||
| 206 | { | 207 | { |
| 207 | int err; | 208 | int err; |
| 208 | struct cpuinfo_x86 *c = &cpu_data(smp_processor_id()); | 209 | struct cpuinfo_x86 *c = &cpu_data(cpu); |
| 209 | 210 | ||
| 210 | err = sysfs_create_group(&sys_dev->kobj, &thermal_attr_group); | 211 | err = sysfs_create_group(&sys_dev->kobj, &thermal_attr_group); |
| 211 | if (err) | 212 | if (err) |
| @@ -251,7 +252,7 @@ thermal_throttle_cpu_callback(struct notifier_block *nfb, | |||
| 251 | case CPU_UP_PREPARE: | 252 | case CPU_UP_PREPARE: |
| 252 | case CPU_UP_PREPARE_FROZEN: | 253 | case CPU_UP_PREPARE_FROZEN: |
| 253 | mutex_lock(&therm_cpu_lock); | 254 | mutex_lock(&therm_cpu_lock); |
| 254 | err = thermal_throttle_add_dev(sys_dev); | 255 | err = thermal_throttle_add_dev(sys_dev, cpu); |
| 255 | mutex_unlock(&therm_cpu_lock); | 256 | mutex_unlock(&therm_cpu_lock); |
| 256 | WARN_ON(err); | 257 | WARN_ON(err); |
| 257 | break; | 258 | break; |
| @@ -287,7 +288,7 @@ static __init int thermal_throttle_init_device(void) | |||
| 287 | #endif | 288 | #endif |
| 288 | /* connect live CPUs to sysfs */ | 289 | /* connect live CPUs to sysfs */ |
| 289 | for_each_online_cpu(cpu) { | 290 | for_each_online_cpu(cpu) { |
| 290 | err = thermal_throttle_add_dev(get_cpu_sysdev(cpu)); | 291 | err = thermal_throttle_add_dev(get_cpu_sysdev(cpu), cpu); |
| 291 | WARN_ON(err); | 292 | WARN_ON(err); |
| 292 | } | 293 | } |
| 293 | #ifdef CONFIG_HOTPLUG_CPU | 294 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/x86/kernel/trampoline.c b/arch/x86/kernel/trampoline.c index a874495b3673..e2a595257390 100644 --- a/arch/x86/kernel/trampoline.c +++ b/arch/x86/kernel/trampoline.c | |||
| @@ -45,8 +45,7 @@ void __init setup_trampoline_page_table(void) | |||
| 45 | /* Copy kernel address range */ | 45 | /* Copy kernel address range */ |
| 46 | clone_pgd_range(trampoline_pg_dir + KERNEL_PGD_BOUNDARY, | 46 | clone_pgd_range(trampoline_pg_dir + KERNEL_PGD_BOUNDARY, |
| 47 | swapper_pg_dir + KERNEL_PGD_BOUNDARY, | 47 | swapper_pg_dir + KERNEL_PGD_BOUNDARY, |
| 48 | min_t(unsigned long, KERNEL_PGD_PTRS, | 48 | KERNEL_PGD_PTRS); |
| 49 | KERNEL_PGD_BOUNDARY)); | ||
| 50 | 49 | ||
| 51 | /* Initialize low mappings */ | 50 | /* Initialize low mappings */ |
| 52 | clone_pgd_range(trampoline_pg_dir, | 51 | clone_pgd_range(trampoline_pg_dir, |
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c index ce8e50239332..26a863a9c2a8 100644 --- a/arch/x86/kernel/tsc.c +++ b/arch/x86/kernel/tsc.c | |||
| @@ -626,6 +626,44 @@ static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu) | |||
| 626 | local_irq_restore(flags); | 626 | local_irq_restore(flags); |
| 627 | } | 627 | } |
| 628 | 628 | ||
| 629 | static unsigned long long cyc2ns_suspend; | ||
| 630 | |||
| 631 | void save_sched_clock_state(void) | ||
| 632 | { | ||
| 633 | if (!sched_clock_stable) | ||
| 634 | return; | ||
| 635 | |||
| 636 | cyc2ns_suspend = sched_clock(); | ||
| 637 | } | ||
| 638 | |||
| 639 | /* | ||
| 640 | * Even on processors with invariant TSC, TSC gets reset in some the | ||
| 641 | * ACPI system sleep states. And in some systems BIOS seem to reinit TSC to | ||
| 642 | * arbitrary value (still sync'd across cpu's) during resume from such sleep | ||
| 643 | * states. To cope up with this, recompute the cyc2ns_offset for each cpu so | ||
| 644 | * that sched_clock() continues from the point where it was left off during | ||
| 645 | * suspend. | ||
| 646 | */ | ||
| 647 | void restore_sched_clock_state(void) | ||
| 648 | { | ||
| 649 | unsigned long long offset; | ||
| 650 | unsigned long flags; | ||
| 651 | int cpu; | ||
| 652 | |||
| 653 | if (!sched_clock_stable) | ||
| 654 | return; | ||
| 655 | |||
| 656 | local_irq_save(flags); | ||
| 657 | |||
| 658 | __get_cpu_var(cyc2ns_offset) = 0; | ||
| 659 | offset = cyc2ns_suspend - sched_clock(); | ||
| 660 | |||
| 661 | for_each_possible_cpu(cpu) | ||
| 662 | per_cpu(cyc2ns_offset, cpu) = offset; | ||
| 663 | |||
| 664 | local_irq_restore(flags); | ||
| 665 | } | ||
| 666 | |||
| 629 | #ifdef CONFIG_CPU_FREQ | 667 | #ifdef CONFIG_CPU_FREQ |
| 630 | 668 | ||
| 631 | /* Frequency scaling support. Adjust the TSC based timer when the cpu frequency | 669 | /* Frequency scaling support. Adjust the TSC based timer when the cpu frequency |
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index b38bd8b92aa6..66ca98aafdd6 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c | |||
| @@ -1870,17 +1870,16 @@ static inline int emulate_grp9(struct x86_emulate_ctxt *ctxt, | |||
| 1870 | struct x86_emulate_ops *ops) | 1870 | struct x86_emulate_ops *ops) |
| 1871 | { | 1871 | { |
| 1872 | struct decode_cache *c = &ctxt->decode; | 1872 | struct decode_cache *c = &ctxt->decode; |
| 1873 | u64 old = c->dst.orig_val; | 1873 | u64 old = c->dst.orig_val64; |
| 1874 | 1874 | ||
| 1875 | if (((u32) (old >> 0) != (u32) c->regs[VCPU_REGS_RAX]) || | 1875 | if (((u32) (old >> 0) != (u32) c->regs[VCPU_REGS_RAX]) || |
| 1876 | ((u32) (old >> 32) != (u32) c->regs[VCPU_REGS_RDX])) { | 1876 | ((u32) (old >> 32) != (u32) c->regs[VCPU_REGS_RDX])) { |
| 1877 | |||
| 1878 | c->regs[VCPU_REGS_RAX] = (u32) (old >> 0); | 1877 | c->regs[VCPU_REGS_RAX] = (u32) (old >> 0); |
| 1879 | c->regs[VCPU_REGS_RDX] = (u32) (old >> 32); | 1878 | c->regs[VCPU_REGS_RDX] = (u32) (old >> 32); |
| 1880 | ctxt->eflags &= ~EFLG_ZF; | 1879 | ctxt->eflags &= ~EFLG_ZF; |
| 1881 | } else { | 1880 | } else { |
| 1882 | c->dst.val = ((u64)c->regs[VCPU_REGS_RCX] << 32) | | 1881 | c->dst.val64 = ((u64)c->regs[VCPU_REGS_RCX] << 32) | |
| 1883 | (u32) c->regs[VCPU_REGS_RBX]; | 1882 | (u32) c->regs[VCPU_REGS_RBX]; |
| 1884 | 1883 | ||
| 1885 | ctxt->eflags |= EFLG_ZF; | 1884 | ctxt->eflags |= EFLG_ZF; |
| 1886 | } | 1885 | } |
| @@ -2616,7 +2615,7 @@ x86_emulate_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops) | |||
| 2616 | c->src.valptr, c->src.bytes); | 2615 | c->src.valptr, c->src.bytes); |
| 2617 | if (rc != X86EMUL_CONTINUE) | 2616 | if (rc != X86EMUL_CONTINUE) |
| 2618 | goto done; | 2617 | goto done; |
| 2619 | c->src.orig_val = c->src.val; | 2618 | c->src.orig_val64 = c->src.val64; |
| 2620 | } | 2619 | } |
| 2621 | 2620 | ||
| 2622 | if (c->src2.type == OP_MEM) { | 2621 | if (c->src2.type == OP_MEM) { |
diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c index 8d10c063d7f2..4b7b73ce2098 100644 --- a/arch/x86/kvm/i8259.c +++ b/arch/x86/kvm/i8259.c | |||
| @@ -64,6 +64,9 @@ static void pic_unlock(struct kvm_pic *s) | |||
| 64 | if (!found) | 64 | if (!found) |
| 65 | found = s->kvm->bsp_vcpu; | 65 | found = s->kvm->bsp_vcpu; |
| 66 | 66 | ||
| 67 | if (!found) | ||
| 68 | return; | ||
| 69 | |||
| 67 | kvm_vcpu_kick(found); | 70 | kvm_vcpu_kick(found); |
| 68 | } | 71 | } |
| 69 | } | 72 | } |
diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h index ffed06871c5c..63c314502993 100644 --- a/arch/x86/kvm/irq.h +++ b/arch/x86/kvm/irq.h | |||
| @@ -43,7 +43,6 @@ struct kvm_kpic_state { | |||
| 43 | u8 irr; /* interrupt request register */ | 43 | u8 irr; /* interrupt request register */ |
| 44 | u8 imr; /* interrupt mask register */ | 44 | u8 imr; /* interrupt mask register */ |
| 45 | u8 isr; /* interrupt service register */ | 45 | u8 isr; /* interrupt service register */ |
| 46 | u8 isr_ack; /* interrupt ack detection */ | ||
| 47 | u8 priority_add; /* highest irq priority */ | 46 | u8 priority_add; /* highest irq priority */ |
| 48 | u8 irq_base; | 47 | u8 irq_base; |
| 49 | u8 read_reg_select; | 48 | u8 read_reg_select; |
| @@ -56,6 +55,7 @@ struct kvm_kpic_state { | |||
| 56 | u8 init4; /* true if 4 byte init */ | 55 | u8 init4; /* true if 4 byte init */ |
| 57 | u8 elcr; /* PIIX edge/trigger selection */ | 56 | u8 elcr; /* PIIX edge/trigger selection */ |
| 58 | u8 elcr_mask; | 57 | u8 elcr_mask; |
| 58 | u8 isr_ack; /* interrupt ack detection */ | ||
| 59 | struct kvm_pic *pics_state; | 59 | struct kvm_pic *pics_state; |
| 60 | }; | 60 | }; |
| 61 | 61 | ||
diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c index 84e236ce76ba..72fc70cf6184 100644 --- a/arch/x86/mm/iomap_32.c +++ b/arch/x86/mm/iomap_32.c | |||
| @@ -74,7 +74,7 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot) | |||
| 74 | /* | 74 | /* |
| 75 | * Map 'pfn' using fixed map 'type' and protections 'prot' | 75 | * Map 'pfn' using fixed map 'type' and protections 'prot' |
| 76 | */ | 76 | */ |
| 77 | void * | 77 | void __iomem * |
| 78 | iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot) | 78 | iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot) |
| 79 | { | 79 | { |
| 80 | /* | 80 | /* |
| @@ -86,12 +86,12 @@ iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot) | |||
| 86 | if (!pat_enabled && pgprot_val(prot) == pgprot_val(PAGE_KERNEL_WC)) | 86 | if (!pat_enabled && pgprot_val(prot) == pgprot_val(PAGE_KERNEL_WC)) |
| 87 | prot = PAGE_KERNEL_UC_MINUS; | 87 | prot = PAGE_KERNEL_UC_MINUS; |
| 88 | 88 | ||
| 89 | return kmap_atomic_prot_pfn(pfn, type, prot); | 89 | return (void __force __iomem *) kmap_atomic_prot_pfn(pfn, type, prot); |
| 90 | } | 90 | } |
| 91 | EXPORT_SYMBOL_GPL(iomap_atomic_prot_pfn); | 91 | EXPORT_SYMBOL_GPL(iomap_atomic_prot_pfn); |
| 92 | 92 | ||
| 93 | void | 93 | void |
| 94 | iounmap_atomic(void *kvaddr, enum km_type type) | 94 | iounmap_atomic(void __iomem *kvaddr, enum km_type type) |
| 95 | { | 95 | { |
| 96 | unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK; | 96 | unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK; |
| 97 | enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id(); | 97 | enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id(); |
diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c index e7e8c5f54956..87bb35e34ef1 100644 --- a/arch/x86/power/cpu.c +++ b/arch/x86/power/cpu.c | |||
| @@ -113,6 +113,7 @@ static void __save_processor_state(struct saved_context *ctxt) | |||
| 113 | void save_processor_state(void) | 113 | void save_processor_state(void) |
| 114 | { | 114 | { |
| 115 | __save_processor_state(&saved_context); | 115 | __save_processor_state(&saved_context); |
| 116 | save_sched_clock_state(); | ||
| 116 | } | 117 | } |
| 117 | #ifdef CONFIG_X86_32 | 118 | #ifdef CONFIG_X86_32 |
| 118 | EXPORT_SYMBOL(save_processor_state); | 119 | EXPORT_SYMBOL(save_processor_state); |
| @@ -229,6 +230,7 @@ static void __restore_processor_state(struct saved_context *ctxt) | |||
| 229 | void restore_processor_state(void) | 230 | void restore_processor_state(void) |
| 230 | { | 231 | { |
| 231 | __restore_processor_state(&saved_context); | 232 | __restore_processor_state(&saved_context); |
| 233 | restore_sched_clock_state(); | ||
| 232 | } | 234 | } |
| 233 | #ifdef CONFIG_X86_32 | 235 | #ifdef CONFIG_X86_32 |
| 234 | EXPORT_SYMBOL(restore_processor_state); | 236 | EXPORT_SYMBOL(restore_processor_state); |
