aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/scripts/python/net_dropmonitor.py
diff options
context:
space:
mode:
authorAndrew Lunn <andrew@lunn.ch>2012-03-08 15:45:59 -0500
committerMike Turquette <mturquette@linaro.org>2012-05-08 19:34:02 -0400
commit27e53cfbce493bb062212263aa24bbbc5a1077f4 (patch)
treea017e6bcfa6f5ebeb152475c8b3b19fefd73b902 /tools/perf/scripts/python/net_dropmonitor.py
parentc510182b1c68e2f2bf61e69f6c65bcf61a188809 (diff)
ARM: Orion: PCIE: Add support for clk
Prepare and enable the clocks when the board indicates the pcie buses will be used. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Tested-by: Jamie Lentin <jm@lentin.co.uk> Signed-off-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'tools/perf/scripts/python/net_dropmonitor.py')
0 files changed, 0 insertions, 0 deletions
erf_irq; EXPORT_SYMBOL(perf_irq); /* * time_init() - it does the following things. * * 1) plat_time_init() - * a) (optional) set up RTC routines, * b) (optional) calibrate and set the mips_hpt_frequency * (only needed if you intended to use cpu counter as timer interrupt * source) * 2) calculate a couple of cached variables for later usage */ unsigned int mips_hpt_frequency; void __init clocksource_set_clock(struct clocksource *cs, unsigned int clock) { u64 temp; u32 shift; /* Find a shift value */ for (shift = 32; shift > 0; shift--) { temp = (u64) NSEC_PER_SEC << shift; do_div(temp, clock); if ((temp >> 32) == 0) break; } cs->shift = shift; cs->mult = (u32) temp; } void __cpuinit clockevent_set_clock(struct clock_event_device *cd, unsigned int clock) { u64 temp; u32 shift; /* Find a shift value */ for (shift = 32; shift > 0; shift--) { temp = (u64) clock << shift; do_div(temp, NSEC_PER_SEC); if ((temp >> 32) == 0) break; } cd->shift = shift; cd->mult = (u32) temp; } /* * This function exists in order to cause an error due to a duplicate * definition if platform code should have its own implementation. The hook * to use instead is plat_time_init. plat_time_init does not receive the * irqaction pointer argument anymore. This is because any function which * initializes an interrupt timer now takes care of its own request_irq rsp. * setup_irq calls and each clock_event_device should use its own * struct irqrequest. */ void __init plat_timer_setup(void) { BUG(); } static __init int cpu_has_mfc0_count_bug(void) { switch (current_cpu_type()) { case CPU_R4000PC: case CPU_R4000SC: case CPU_R4000MC: /* * V3.0 is documented as suffering from the mfc0 from count bug. * Afaik this is the last version of the R4000. Later versions * were marketed as R4400. */ return 1; case CPU_R4400PC: case CPU_R4400SC: case CPU_R4400MC: /* * The published errata for the R4400 upto 3.0 say the CPU * has the mfc0 from count bug. */ if ((current_cpu_data.processor_id & 0xff) <= 0x30) return 1; /* * I don't have erratas for newer R4400 so be paranoid. */ return 1; } return 0; } void __init time_init(void) { plat_time_init(); if (mips_clockevent_init() || !cpu_has_mfc0_count_bug()) init_mips_clocksource(); }