diff options
Diffstat (limited to 'arch/sh/kernel/process_64.c')
-rw-r--r-- | arch/sh/kernel/process_64.c | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c index b7aa09235b51..a7e5f2e74bac 100644 --- a/arch/sh/kernel/process_64.c +++ b/arch/sh/kernel/process_64.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <linux/reboot.h> | 23 | #include <linux/reboot.h> |
24 | #include <linux/init.h> | 24 | #include <linux/init.h> |
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/proc_fs.h> | ||
27 | #include <linux/io.h> | 26 | #include <linux/io.h> |
28 | #include <asm/syscalls.h> | 27 | #include <asm/syscalls.h> |
29 | #include <asm/uaccess.h> | 28 | #include <asm/uaccess.h> |
@@ -33,56 +32,6 @@ | |||
33 | 32 | ||
34 | struct task_struct *last_task_used_math = NULL; | 33 | struct task_struct *last_task_used_math = NULL; |
35 | 34 | ||
36 | static int hlt_counter = 1; | ||
37 | |||
38 | #define HARD_IDLE_TIMEOUT (HZ / 3) | ||
39 | |||
40 | static int __init nohlt_setup(char *__unused) | ||
41 | { | ||
42 | hlt_counter = 1; | ||
43 | return 1; | ||
44 | } | ||
45 | |||
46 | static int __init hlt_setup(char *__unused) | ||
47 | { | ||
48 | hlt_counter = 0; | ||
49 | return 1; | ||
50 | } | ||
51 | |||
52 | __setup("nohlt", nohlt_setup); | ||
53 | __setup("hlt", hlt_setup); | ||
54 | |||
55 | static inline void hlt(void) | ||
56 | { | ||
57 | __asm__ __volatile__ ("sleep" : : : "memory"); | ||
58 | } | ||
59 | |||
60 | /* | ||
61 | * The idle loop on a uniprocessor SH.. | ||
62 | */ | ||
63 | void cpu_idle(void) | ||
64 | { | ||
65 | /* endless idle loop with no priority at all */ | ||
66 | while (1) { | ||
67 | if (hlt_counter) { | ||
68 | while (!need_resched()) | ||
69 | cpu_relax(); | ||
70 | } else { | ||
71 | local_irq_disable(); | ||
72 | while (!need_resched()) { | ||
73 | local_irq_enable(); | ||
74 | hlt(); | ||
75 | local_irq_disable(); | ||
76 | } | ||
77 | local_irq_enable(); | ||
78 | } | ||
79 | preempt_enable_no_resched(); | ||
80 | schedule(); | ||
81 | preempt_disable(); | ||
82 | } | ||
83 | |||
84 | } | ||
85 | |||
86 | void machine_restart(char * __unused) | 35 | void machine_restart(char * __unused) |
87 | { | 36 | { |
88 | extern void phys_stext(void); | 37 | extern void phys_stext(void); |
@@ -97,13 +46,6 @@ void machine_halt(void) | |||
97 | 46 | ||
98 | void machine_power_off(void) | 47 | void machine_power_off(void) |
99 | { | 48 | { |
100 | #if 0 | ||
101 | /* Disable watchdog timer */ | ||
102 | ctrl_outl(0xa5000000, WTCSR); | ||
103 | /* Configure deep standby on sleep */ | ||
104 | ctrl_outl(0x03, STBCR); | ||
105 | #endif | ||
106 | |||
107 | __asm__ __volatile__ ( | 49 | __asm__ __volatile__ ( |
108 | "sleep\n\t" | 50 | "sleep\n\t" |
109 | "synci\n\t" | 51 | "synci\n\t" |
@@ -113,9 +55,6 @@ void machine_power_off(void) | |||
113 | panic("Unexpected wakeup!\n"); | 55 | panic("Unexpected wakeup!\n"); |
114 | } | 56 | } |
115 | 57 | ||
116 | void (*pm_power_off)(void) = machine_power_off; | ||
117 | EXPORT_SYMBOL(pm_power_off); | ||
118 | |||
119 | void show_regs(struct pt_regs * regs) | 58 | void show_regs(struct pt_regs * regs) |
120 | { | 59 | { |
121 | unsigned long long ah, al, bh, bl, ch, cl; | 60 | unsigned long long ah, al, bh, bl, ch, cl; |
@@ -365,18 +304,6 @@ void show_regs(struct pt_regs * regs) | |||
365 | } | 304 | } |
366 | } | 305 | } |
367 | 306 | ||
368 | struct task_struct * alloc_task_struct(void) | ||
369 | { | ||
370 | /* Get task descriptor pages */ | ||
371 | return (struct task_struct *) | ||
372 | __get_free_pages(GFP_KERNEL, get_order(THREAD_SIZE)); | ||
373 | } | ||
374 | |||
375 | void free_task_struct(struct task_struct *p) | ||
376 | { | ||
377 | free_pages((unsigned long) p, get_order(THREAD_SIZE)); | ||
378 | } | ||
379 | |||
380 | /* | 307 | /* |
381 | * Create a kernel thread | 308 | * Create a kernel thread |
382 | */ | 309 | */ |
@@ -662,41 +589,3 @@ unsigned long get_wchan(struct task_struct *p) | |||
662 | #endif | 589 | #endif |
663 | return pc; | 590 | return pc; |
664 | } | 591 | } |
665 | |||
666 | /* Provide a /proc/asids file that lists out the | ||
667 | ASIDs currently associated with the processes. (If the DM.PC register is | ||
668 | examined through the debug link, this shows ASID + PC. To make use of this, | ||
669 | the PID->ASID relationship needs to be known. This is primarily for | ||
670 | debugging.) | ||
671 | */ | ||
672 | |||
673 | #if defined(CONFIG_SH64_PROC_ASIDS) | ||
674 | static int | ||
675 | asids_proc_info(char *buf, char **start, off_t fpos, int length, int *eof, void *data) | ||
676 | { | ||
677 | int len=0; | ||
678 | struct task_struct *p; | ||
679 | read_lock(&tasklist_lock); | ||
680 | for_each_process(p) { | ||
681 | int pid = p->pid; | ||
682 | |||
683 | if (!pid) | ||
684 | continue; | ||
685 | if (p->mm) | ||
686 | len += sprintf(buf+len, "%5d : %02lx\n", pid, | ||
687 | asid_cache(smp_processor_id())); | ||
688 | else | ||
689 | len += sprintf(buf+len, "%5d : (none)\n", pid); | ||
690 | } | ||
691 | read_unlock(&tasklist_lock); | ||
692 | *eof = 1; | ||
693 | return len; | ||
694 | } | ||
695 | |||
696 | static int __init register_proc_asids(void) | ||
697 | { | ||
698 | create_proc_read_entry("asids", 0, NULL, asids_proc_info, NULL); | ||
699 | return 0; | ||
700 | } | ||
701 | __initcall(register_proc_asids); | ||
702 | #endif | ||