diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-03-19 17:59:44 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-03-19 17:59:44 -0400 |
commit | c7c350e92aab1bba68f26a6027b734adcf9824ba (patch) | |
tree | aa99bd94c3049dd871d9c030d70a5f3d87591a95 /arch/powerpc/platforms | |
parent | 2f42b5d043ee271d1e5d30ecd77186b6c4d4e534 (diff) | |
parent | f8512ad0da16cbe156f3a7627971cdf0b39c4138 (diff) |
Merge branch 'hotfixes' into devel
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r-- | arch/powerpc/platforms/83xx/mpc837x_mds.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/Kconfig | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/Kconfig.cputype | 7 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/context.c | 3 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/run.c | 3 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/sched.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/spufs.h | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/pic.c | 2 |
8 files changed, 17 insertions, 12 deletions
diff --git a/arch/powerpc/platforms/83xx/mpc837x_mds.c b/arch/powerpc/platforms/83xx/mpc837x_mds.c index 8a9c26973605..64d17b0d6455 100644 --- a/arch/powerpc/platforms/83xx/mpc837x_mds.c +++ b/arch/powerpc/platforms/83xx/mpc837x_mds.c | |||
@@ -39,12 +39,9 @@ static int mpc837xmds_usb_cfg(void) | |||
39 | if (ret) | 39 | if (ret) |
40 | return ret; | 40 | return ret; |
41 | /* Map BCSR area */ | 41 | /* Map BCSR area */ |
42 | np = of_find_node_by_name(NULL, "bcsr"); | 42 | np = of_find_compatible_node(NULL, NULL, "fsl,mpc837xmds-bcsr"); |
43 | if (np) { | 43 | if (np) { |
44 | struct resource res; | 44 | bcsr_regs = of_iomap(np, 0); |
45 | |||
46 | of_address_to_resource(np, 0, &res); | ||
47 | bcsr_regs = ioremap(res.start, res.end - res.start + 1); | ||
48 | of_node_put(np); | 45 | of_node_put(np); |
49 | } | 46 | } |
50 | if (!bcsr_regs) | 47 | if (!bcsr_regs) |
@@ -96,6 +93,7 @@ static void __init mpc837x_mds_setup_arch(void) | |||
96 | static struct of_device_id mpc837x_ids[] = { | 93 | static struct of_device_id mpc837x_ids[] = { |
97 | { .type = "soc", }, | 94 | { .type = "soc", }, |
98 | { .compatible = "soc", }, | 95 | { .compatible = "soc", }, |
96 | { .compatible = "simple-bus", }, | ||
99 | {}, | 97 | {}, |
100 | }; | 98 | }; |
101 | 99 | ||
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig index 0afd22595546..a578b966ecbc 100644 --- a/arch/powerpc/platforms/Kconfig +++ b/arch/powerpc/platforms/Kconfig | |||
@@ -22,7 +22,6 @@ config PPC_83xx | |||
22 | select FSL_SOC | 22 | select FSL_SOC |
23 | select MPC83xx | 23 | select MPC83xx |
24 | select IPIC | 24 | select IPIC |
25 | select FSL_EMB_PERFMON | ||
26 | 25 | ||
27 | config PPC_86xx | 26 | config PPC_86xx |
28 | bool "Freescale 86xx" | 27 | bool "Freescale 86xx" |
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype index 73d81ce14b67..0c3face0ddbb 100644 --- a/arch/powerpc/platforms/Kconfig.cputype +++ b/arch/powerpc/platforms/Kconfig.cputype | |||
@@ -113,7 +113,12 @@ config FSL_BOOKE | |||
113 | default y | 113 | default y |
114 | 114 | ||
115 | config FSL_EMB_PERFMON | 115 | config FSL_EMB_PERFMON |
116 | bool | 116 | bool "Freescale Embedded Perfmon" |
117 | depends on E500 || PPC_83xx | ||
118 | help | ||
119 | This is the Performance Monitor support found on the e500 core | ||
120 | and some e300 cores (c3 and c4). Select this only if your | ||
121 | core supports the Embedded Performance Monitor APU | ||
117 | 122 | ||
118 | config PTE_64BIT | 123 | config PTE_64BIT |
119 | bool | 124 | bool |
diff --git a/arch/powerpc/platforms/cell/spufs/context.c b/arch/powerpc/platforms/cell/spufs/context.c index cf6c2c89211d..0ad83aeb70b1 100644 --- a/arch/powerpc/platforms/cell/spufs/context.c +++ b/arch/powerpc/platforms/cell/spufs/context.c | |||
@@ -170,7 +170,8 @@ void spu_release_saved(struct spu_context *ctx) | |||
170 | { | 170 | { |
171 | BUG_ON(ctx->state != SPU_STATE_SAVED); | 171 | BUG_ON(ctx->state != SPU_STATE_SAVED); |
172 | 172 | ||
173 | if (test_and_clear_bit(SPU_SCHED_WAS_ACTIVE, &ctx->sched_flags)) | 173 | if (test_and_clear_bit(SPU_SCHED_WAS_ACTIVE, &ctx->sched_flags) && |
174 | test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags)) | ||
174 | spu_activate(ctx, 0); | 175 | spu_activate(ctx, 0); |
175 | 176 | ||
176 | spu_release(ctx); | 177 | spu_release(ctx); |
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c index 6221968c2a3c..cac69e116776 100644 --- a/arch/powerpc/platforms/cell/spufs/run.c +++ b/arch/powerpc/platforms/cell/spufs/run.c | |||
@@ -220,6 +220,7 @@ static int spu_run_init(struct spu_context *ctx, u32 *npc) | |||
220 | } | 220 | } |
221 | } | 221 | } |
222 | 222 | ||
223 | set_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags); | ||
223 | return 0; | 224 | return 0; |
224 | } | 225 | } |
225 | 226 | ||
@@ -234,7 +235,7 @@ static int spu_run_fini(struct spu_context *ctx, u32 *npc, | |||
234 | *npc = ctx->ops->npc_read(ctx); | 235 | *npc = ctx->ops->npc_read(ctx); |
235 | 236 | ||
236 | spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); | 237 | spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); |
237 | ctx->policy = SCHED_IDLE; | 238 | clear_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags); |
238 | spu_release(ctx); | 239 | spu_release(ctx); |
239 | 240 | ||
240 | if (signal_pending(current)) | 241 | if (signal_pending(current)) |
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c index 5d5f680cd0b8..00528ef84ad2 100644 --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c | |||
@@ -867,7 +867,7 @@ static noinline void spusched_tick(struct spu_context *ctx) | |||
867 | if (ctx->policy == SCHED_FIFO) | 867 | if (ctx->policy == SCHED_FIFO) |
868 | goto out; | 868 | goto out; |
869 | 869 | ||
870 | if (--ctx->time_slice && ctx->policy != SCHED_IDLE) | 870 | if (--ctx->time_slice && test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags)) |
871 | goto out; | 871 | goto out; |
872 | 872 | ||
873 | spu = ctx->spu; | 873 | spu = ctx->spu; |
@@ -877,7 +877,7 @@ static noinline void spusched_tick(struct spu_context *ctx) | |||
877 | new = grab_runnable_context(ctx->prio + 1, spu->node); | 877 | new = grab_runnable_context(ctx->prio + 1, spu->node); |
878 | if (new) { | 878 | if (new) { |
879 | spu_unschedule(spu, ctx); | 879 | spu_unschedule(spu, ctx); |
880 | if (ctx->policy != SCHED_IDLE) | 880 | if (test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags)) |
881 | spu_add_to_rq(ctx); | 881 | spu_add_to_rq(ctx); |
882 | } else { | 882 | } else { |
883 | spu_context_nospu_trace(spusched_tick__newslice, ctx); | 883 | spu_context_nospu_trace(spusched_tick__newslice, ctx); |
diff --git a/arch/powerpc/platforms/cell/spufs/spufs.h b/arch/powerpc/platforms/cell/spufs/spufs.h index 2c2fe3c07d72..cdc515182f82 100644 --- a/arch/powerpc/platforms/cell/spufs/spufs.h +++ b/arch/powerpc/platforms/cell/spufs/spufs.h | |||
@@ -44,6 +44,7 @@ struct spu_gang; | |||
44 | enum { | 44 | enum { |
45 | SPU_SCHED_NOTIFY_ACTIVE, | 45 | SPU_SCHED_NOTIFY_ACTIVE, |
46 | SPU_SCHED_WAS_ACTIVE, /* was active upon spu_acquire_saved() */ | 46 | SPU_SCHED_WAS_ACTIVE, /* was active upon spu_acquire_saved() */ |
47 | SPU_SCHED_SPU_RUN, /* context is within spu_run */ | ||
47 | }; | 48 | }; |
48 | 49 | ||
49 | struct spu_context { | 50 | struct spu_context { |
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 40736400ef80..829b8b02527b 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c | |||
@@ -618,9 +618,9 @@ static int pmacpic_find_viaint(void) | |||
618 | if (np == NULL) | 618 | if (np == NULL) |
619 | goto not_found; | 619 | goto not_found; |
620 | viaint = irq_of_parse_and_map(np, 0);; | 620 | viaint = irq_of_parse_and_map(np, 0);; |
621 | #endif /* CONFIG_ADB_PMU */ | ||
622 | 621 | ||
623 | not_found: | 622 | not_found: |
623 | #endif /* CONFIG_ADB_PMU */ | ||
624 | return viaint; | 624 | return viaint; |
625 | } | 625 | } |
626 | 626 | ||