diff options
| -rw-r--r-- | arch/sh/lib64/dbg.c | 48 | ||||
| -rw-r--r-- | arch/sh/lib64/udelay.c | 2 |
2 files changed, 1 insertions, 49 deletions
diff --git a/arch/sh/lib64/dbg.c b/arch/sh/lib64/dbg.c index 25f2481bd89e..6152a6a6d9c6 100644 --- a/arch/sh/lib64/dbg.c +++ b/arch/sh/lib64/dbg.c | |||
| @@ -246,51 +246,3 @@ void show_excp_regs(char *from, int trapnr, int signr, struct pt_regs *regs) | |||
| 246 | print_dtlb(); | 246 | print_dtlb(); |
| 247 | print_itlb(); | 247 | print_itlb(); |
| 248 | } | 248 | } |
| 249 | |||
| 250 | /* ======================================================================= */ | ||
| 251 | |||
| 252 | /* | ||
| 253 | ** Depending on <base> scan the MMU, Data or Instruction side | ||
| 254 | ** looking for a valid mapping matching Eaddr & asid. | ||
| 255 | ** Return -1 if not found or the TLB id entry otherwise. | ||
| 256 | ** Note: it works only for 4k pages! | ||
| 257 | */ | ||
| 258 | static unsigned long | ||
| 259 | lookup_mmu_side(unsigned long base, unsigned long Eaddr, unsigned long asid) | ||
| 260 | { | ||
| 261 | regType_t pteH; | ||
| 262 | unsigned long epn; | ||
| 263 | int count; | ||
| 264 | |||
| 265 | epn = Eaddr & 0xfffff000; | ||
| 266 | |||
| 267 | for (count = 0; count < MAX_TLBs; count++, base += TLB_STEP) { | ||
| 268 | pteH = getConfigReg(base); | ||
| 269 | if (GET_VALID(pteH)) | ||
| 270 | if ((unsigned long) GET_EPN(pteH) == epn) | ||
| 271 | if ((unsigned long) GET_ASID(pteH) == asid) | ||
| 272 | break; | ||
| 273 | } | ||
| 274 | return ((unsigned long) ((count < MAX_TLBs) ? base : -1)); | ||
| 275 | } | ||
| 276 | |||
| 277 | unsigned long lookup_dtlb(unsigned long Eaddr) | ||
| 278 | { | ||
| 279 | unsigned long asid = get_asid(); | ||
| 280 | return (lookup_mmu_side((u64) DTLB_BASE, Eaddr, asid)); | ||
| 281 | } | ||
| 282 | |||
| 283 | unsigned long lookup_itlb(unsigned long Eaddr) | ||
| 284 | { | ||
| 285 | unsigned long asid = get_asid(); | ||
| 286 | return (lookup_mmu_side((u64) ITLB_BASE, Eaddr, asid)); | ||
| 287 | } | ||
| 288 | |||
| 289 | void print_page(struct page *page) | ||
| 290 | { | ||
| 291 | printk(" page[%p] -> index 0x%lx, count 0x%x, flags 0x%lx\n", | ||
| 292 | page, page->index, page_count(page), page->flags); | ||
| 293 | printk(" address_space = %p, pages =%ld\n", page->mapping, | ||
| 294 | page->mapping->nrpages); | ||
| 295 | |||
| 296 | } | ||
diff --git a/arch/sh/lib64/udelay.c b/arch/sh/lib64/udelay.c index d76bd801194f..f215b063da70 100644 --- a/arch/sh/lib64/udelay.c +++ b/arch/sh/lib64/udelay.c | |||
| @@ -33,7 +33,7 @@ void __delay(unsigned long loops) | |||
| 33 | :"0"(loops)); | 33 | :"0"(loops)); |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | inline void __const_udelay(unsigned long xloops) | 36 | void __const_udelay(unsigned long xloops) |
| 37 | { | 37 | { |
| 38 | __delay(xloops * (HZ * cpu_data[raw_smp_processor_id()].loops_per_jiffy)); | 38 | __delay(xloops * (HZ * cpu_data[raw_smp_processor_id()].loops_per_jiffy)); |
| 39 | } | 39 | } |
