Home
last modified time | relevance | path

Searched full:tsc (Results 1 – 25 of 311) sorted by relevance

12345678910>>...13

/Linux-v5.15/drivers/input/touchscreen/
Dimx6ul_tsc.c57 /* TSC registers */
68 /* TSC configuration registers field define */
100 * TSC module need ADC to get the measure value. So
101 * before config TSC, we should initialize ADC module.
103 static int imx6ul_adc_init(struct imx6ul_tsc *tsc) in imx6ul_adc_init() argument
111 reinit_completion(&tsc->completion); in imx6ul_adc_init()
113 adc_cfg = readl(tsc->adc_regs + REG_ADC_CFG); in imx6ul_adc_init()
118 if (tsc->average_enable) { in imx6ul_adc_init()
120 adc_cfg |= (tsc->average_select) << ADC_AVGS_SHIFT; in imx6ul_adc_init()
123 writel(adc_cfg, tsc->adc_regs + REG_ADC_CFG); in imx6ul_adc_init()
[all …]
Dlpc32xx_ts.c71 static void lpc32xx_fifo_clear(struct lpc32xx_tsc *tsc) in lpc32xx_fifo_clear() argument
73 while (!(tsc_readl(tsc, LPC32XX_TSC_STAT) & in lpc32xx_fifo_clear()
75 tsc_readl(tsc, LPC32XX_TSC_FIFO); in lpc32xx_fifo_clear()
82 struct lpc32xx_tsc *tsc = dev_id; in lpc32xx_ts_interrupt() local
83 struct input_dev *input = tsc->dev; in lpc32xx_ts_interrupt()
85 tmp = tsc_readl(tsc, LPC32XX_TSC_STAT); in lpc32xx_ts_interrupt()
89 lpc32xx_fifo_clear(tsc); in lpc32xx_ts_interrupt()
100 !(tsc_readl(tsc, LPC32XX_TSC_STAT) & in lpc32xx_ts_interrupt()
102 tmp = tsc_readl(tsc, LPC32XX_TSC_FIFO); in lpc32xx_ts_interrupt()
126 static void lpc32xx_stop_tsc(struct lpc32xx_tsc *tsc) in lpc32xx_stop_tsc() argument
[all …]
Dtps6507x-ts.c50 static int tps6507x_read_u8(struct tps6507x_ts *tsc, u8 reg, u8 *data) in tps6507x_read_u8() argument
52 return tsc->mfd->read_dev(tsc->mfd, reg, 1, data); in tps6507x_read_u8()
55 static int tps6507x_write_u8(struct tps6507x_ts *tsc, u8 reg, u8 data) in tps6507x_write_u8() argument
57 return tsc->mfd->write_dev(tsc->mfd, reg, 1, &data); in tps6507x_write_u8()
60 static s32 tps6507x_adc_conversion(struct tps6507x_ts *tsc, in tps6507x_adc_conversion() argument
69 ret = tps6507x_write_u8(tsc, TPS6507X_REG_TSCMODE, tsc_mode); in tps6507x_adc_conversion()
71 dev_err(tsc->dev, "TSC mode read failed\n"); in tps6507x_adc_conversion()
77 ret = tps6507x_write_u8(tsc, TPS6507X_REG_ADCONFIG, in tps6507x_adc_conversion()
80 dev_err(tsc->dev, "ADC config write failed\n"); in tps6507x_adc_conversion()
85 ret = tps6507x_read_u8(tsc, TPS6507X_REG_ADCONFIG, in tps6507x_adc_conversion()
[all …]
Dtsc2007_iio.c42 struct tsc2007 *tsc = iio->ts; in tsc2007_read_raw() local
52 mutex_lock(&tsc->mlock); in tsc2007_read_raw()
56 *val = tsc2007_xfer(tsc, READ_X); in tsc2007_read_raw()
59 *val = tsc2007_xfer(tsc, READ_Y); in tsc2007_read_raw()
62 *val = tsc2007_xfer(tsc, READ_Z1); in tsc2007_read_raw()
65 *val = tsc2007_xfer(tsc, READ_Z2); in tsc2007_read_raw()
68 *val = tsc2007_xfer(tsc, (ADC_ON_12BIT | TSC2007_MEASURE_AUX)); in tsc2007_read_raw()
73 tc.x = tsc2007_xfer(tsc, READ_X); in tsc2007_read_raw()
74 tc.z1 = tsc2007_xfer(tsc, READ_Z1); in tsc2007_read_raw()
75 tc.z2 = tsc2007_xfer(tsc, READ_Z2); in tsc2007_read_raw()
[all …]
Dcy8ctmg110_ts.c61 static int cy8ctmg110_write_regs(struct cy8ctmg110 *tsc, unsigned char reg, in cy8ctmg110_write_regs() argument
64 struct i2c_client *client = tsc->client; in cy8ctmg110_write_regs()
82 static int cy8ctmg110_read_regs(struct cy8ctmg110 *tsc, in cy8ctmg110_read_regs() argument
85 struct i2c_client *client = tsc->client; in cy8ctmg110_read_regs()
110 static int cy8ctmg110_touch_pos(struct cy8ctmg110 *tsc) in cy8ctmg110_touch_pos() argument
112 struct input_dev *input = tsc->input; in cy8ctmg110_touch_pos()
118 if (cy8ctmg110_read_regs(tsc, reg_p, 9, CY8CTMG110_TOUCH_X1) != 0) in cy8ctmg110_touch_pos()
156 struct cy8ctmg110 *tsc = dev_id; in cy8ctmg110_irq_thread() local
158 cy8ctmg110_touch_pos(tsc); in cy8ctmg110_irq_thread()
Dtsc2007_core.c31 int tsc2007_xfer(struct tsc2007 *tsc, u8 cmd) in tsc2007_xfer() argument
36 data = i2c_smbus_read_word_data(tsc->client, cmd); in tsc2007_xfer()
38 dev_err(&tsc->client->dev, "i2c io error: %d\n", data); in tsc2007_xfer()
48 dev_dbg(&tsc->client->dev, "data: 0x%x, val: 0x%x\n", data, val); in tsc2007_xfer()
53 static void tsc2007_read_values(struct tsc2007 *tsc, struct ts_event *tc) in tsc2007_read_values() argument
56 tc->y = tsc2007_xfer(tsc, READ_Y); in tsc2007_read_values()
59 tc->x = tsc2007_xfer(tsc, READ_X); in tsc2007_read_values()
62 tc->z1 = tsc2007_xfer(tsc, READ_Z1); in tsc2007_read_values()
63 tc->z2 = tsc2007_xfer(tsc, READ_Z2); in tsc2007_read_values()
66 tsc2007_xfer(tsc, PWRDOWN); in tsc2007_read_values()
[all …]
/Linux-v5.15/drivers/thermal/
Drcar_gen3_thermal.c93 void (*thermal_init)(struct rcar_gen3_thermal_tsc *tsc);
96 static inline u32 rcar_gen3_thermal_read(struct rcar_gen3_thermal_tsc *tsc, in rcar_gen3_thermal_read() argument
99 return ioread32(tsc->base + reg); in rcar_gen3_thermal_read()
102 static inline void rcar_gen3_thermal_write(struct rcar_gen3_thermal_tsc *tsc, in rcar_gen3_thermal_write() argument
105 iowrite32(data, tsc->base + reg); in rcar_gen3_thermal_write()
136 static void rcar_gen3_thermal_calc_coefs(struct rcar_gen3_thermal_tsc *tsc, in rcar_gen3_thermal_calc_coefs() argument
146 tsc->tj_t = (FIXPT_INT((ptat[1] - ptat[2]) * (ths_tj_1 - TJ_3)) in rcar_gen3_thermal_calc_coefs()
149 tsc->coef.a1 = FIXPT_DIV(FIXPT_INT(thcode[1] - thcode[2]), in rcar_gen3_thermal_calc_coefs()
150 tsc->tj_t - FIXPT_INT(TJ_3)); in rcar_gen3_thermal_calc_coefs()
151 tsc->coef.b1 = FIXPT_INT(thcode[2]) - tsc->coef.a1 * TJ_3; in rcar_gen3_thermal_calc_coefs()
[all …]
/Linux-v5.15/arch/x86/kernel/
Dtsc_sync.c3 * check TSC synchronization.
7 * We check whether all boot CPUs have their TSC's synchronized,
8 * print a warning if not and turn off the TSC clock-source.
23 #include <asm/tsc.h>
35 * TSC's on different sockets may be reset asynchronously.
36 * This may cause the TSC ADJUST value on socket 0 to be NOT 0.
45 pr_info("tsc: Marking TSC async resets true due to %s\n", reason); in mark_tsc_async_resets()
56 /* Skip unnecessary error messages if TSC already unstable */ in tsc_verify_tsc_adjust()
74 pr_warn(FW_BUG "TSC ADJUST differs: CPU%u %lld --> %lld. Restoring\n", in tsc_verify_tsc_adjust()
92 * the TSC is in sync with the already running cpus. in tsc_sanitize_first_cpu()
[all …]
Dtsc.c33 unsigned int __read_mostly cpu_khz; /* TSC clocks / usec, not used here */
42 * TSC can be unstable due to cpufreq or due to unsynced TSCs
228 * Fall back to jiffies if there's no TSC available: in native_sched_clock()
229 * ( But note that we still use it if the TSC is marked in native_sched_clock()
241 * Generate a sched_clock if you already have a TSC value.
243 u64 native_sched_clock_from_tsc(u64 tsc) in native_sched_clock_from_tsc() argument
245 return cycles_2_ns(tsc); in native_sched_clock_from_tsc()
281 * disable flag for tsc. Takes effect by clearing the TSC cpu flag
309 __setup("tsc=", tsc_setup);
315 * Read TSC and the reference counters. Take care of any disturbances
[all …]
/Linux-v5.15/Documentation/virt/kvm/
Dtimekeeping.rst14 3) TSC Hardware
37 First we discuss the basic hardware devices available. TSC and the related
324 3. TSC Hardware
327 The TSC or time stamp counter is relatively simple in theory; it counts
332 The TSC is represented internally as a 64-bit MSR which can be read with the
334 limitations made it possible to write the TSC, but generally on old hardware it
339 write the TSC MSR is not an architectural guarantee.
341 The TSC is accessible from CPL-0 and conditionally, for CPL > 0 software by
342 means of the CR4.TSD bit, which when enabled, disables CPL > 0 TSC access.
345 atomically not just the TSC, but an indicator which corresponds to the
[all …]
/Linux-v5.15/drivers/thermal/tegra/
Dtegra30-tsensor.c164 const struct tegra_tsensor_channel *tsc = data; in tegra_tsensor_get_temp() local
165 const struct tegra_tsensor *ts = tsc->ts; in tegra_tsensor_get_temp()
173 err = readl_relaxed_poll_timeout(tsc->regs + TSENSOR_SENSOR0_STATUS0, val, in tegra_tsensor_get_temp()
178 dev_err_once(ts->dev, "ch%u: counter invalid\n", tsc->id); in tegra_tsensor_get_temp()
182 val = readl_relaxed(tsc->regs + TSENSOR_SENSOR0_TS_STATUS1); in tegra_tsensor_get_temp()
191 dev_err_once(ts->dev, "ch%u: counter overflow\n", tsc->id); in tegra_tsensor_get_temp()
222 const struct tegra_tsensor_channel *tsc = data; in tegra_tsensor_set_trips() local
223 const struct tegra_tsensor *ts = tsc->ts; in tegra_tsensor_set_trips()
233 val = readl_relaxed(tsc->regs + TSENSOR_SENSOR0_CONFIG1); in tegra_tsensor_set_trips()
238 writel_relaxed(val, tsc->regs + TSENSOR_SENSOR0_CONFIG1); in tegra_tsensor_set_trips()
[all …]
/Linux-v5.15/tools/testing/selftests/kvm/x86_64/
Dvmx_nested_tsc_scaling_test.c7 * This test case verifies that nested TSC scaling behaves as expected when
35 * This function checks whether the "actual" TSC frequency of a guest matches
36 * its expected frequency. In order to account for delays in taking the TSC
49 "TSC freq is expected to be between %"PRIu64" and %"PRIu64 in compare_tsc_freq()
53 "TSC freq is expected to be between %"PRIu64" and %"PRIu64 in compare_tsc_freq()
63 * Reading the TSC twice with about a second's difference should give in check_tsc_freq()
64 * us an approximation of the TSC frequency from the guest's in check_tsc_freq()
99 /* enable TSC offsetting and TSC scaling for L2 */ in l1_guest_code()
125 print_skip("TSC scaling not supported by the HW"); in tsc_scaling_check_supported()
142 if (strncmp(buf, "tsc", sizeof(buf))) in stable_tsc_check_supported()
[all …]
Dhyperv_clock.c86 /* Compare TSC page clocksource with HV_X64_MSR_TIME_REF_COUNT */ in check_tsc_msr_tsc_page()
112 /* Set up TSC page is disabled state, check that it's clean */ in guest_main()
120 /* Set up TSC page is enabled state */ in guest_main()
131 /* Call KVM_SET_CLOCK from userspace, check that TSC page was updated */ in guest_main()
134 /* Sanity check TSC page timestamp, it should be close to 0 */ in guest_main()
142 * Enable Re-enlightenment and check that TSC page stays constant across in guest_main()
158 * Disable re-enlightenment and TSC page, check that KVM doesn't update in guest_main()
182 TEST_ASSERT(tsc_freq > 0, "TSC frequency must be nonzero"); in host_check_tsc_msr_rdtsc()
200 "Elapsed time does not match (MSR=%ld, TSC=%ld)", in host_check_tsc_msr_rdtsc()
220 "TSC page has to be page aligned\n"); in main()
[all …]
Dvmx_preemption_timer_test.c141 * tsc deadlines so that host can verify they are as expected in l1_guest_code()
220 pr_info("Stage %d: L1 PT expiry TSC (%lu) , L1 TSC deadline (%lu)\n", in main()
223 pr_info("Stage %d: L2 PT expiry TSC (%lu) , L2 TSC deadline (%lu)\n", in main()
227 "Stage %d: L1 PT expiry TSC (%lu) < L1 TSC deadline (%lu)", in main()
231 "Stage %d: L2 PT expiry TSC (%lu) > L2 TSC deadline (%lu)", in main()
/Linux-v5.15/tools/power/cpupower/utils/idle_monitor/
Dmperf_monitor.c67 * 1) calculated after measurements if we know TSC ticks at mperf/P0 frequency
83 static int mperf_get_tsc(unsigned long long *tsc) in mperf_get_tsc() argument
87 ret = read_msr(base_cpu, MSR_TSC, tsc); in mperf_get_tsc()
89 dprint("Reading TSC MSR failed, returning %llu\n", *tsc); in mperf_get_tsc()
174 dprint("%s: TSC Ref - mperf_diff: %llu, tsc_diff: %llu\n", in mperf_get_count_percent()
208 /* Calculate max_freq from TSC count */ in mperf_get_count_freq()
217 (max_freq_mode == MAX_FREQ_TSC_REF) ? "TSC calculated" : "sysfs read"); in mperf_get_count_freq()
237 dprint("TSC diff: %llu\n", dbg - tsc_at_measure_start); in mperf_start()
253 dprint("TSC diff: %llu\n", dbg - tsc_at_measure_end); in mperf_stop()
262 * we use TSC counter if it reliably ticks at P0/mperf frequency.
[all …]
Dnhm_idle.c27 enum intel_nhm_id { C3 = 0, C6, PC3, PC6, TSC = 0xFFFF }; enumerator
89 case TSC: in nhm_get_count()
131 nhm_get_count(TSC, &tsc_at_measure_start, base_cpu); in nhm_start()
139 nhm_get_count(TSC, &dbg, base_cpu); in nhm_start()
140 dprint("TSC diff: %llu\n", dbg - tsc_at_measure_start); in nhm_start()
150 nhm_get_count(TSC, &tsc_at_measure_end, base_cpu); in nhm_stop()
158 nhm_get_count(TSC, &dbg, base_cpu); in nhm_stop()
159 dprint("TSC diff: %llu\n", dbg - tsc_at_measure_end); in nhm_stop()
212 .overflow_s = 922000000 /* 922337203 seconds TSC overflow
/Linux-v5.15/Documentation/devicetree/bindings/input/touchscreen/
Dlpc32xx-tsc.txt1 * NXP LPC32xx SoC Touchscreen Controller (TSC)
4 - compatible: must be "nxp,lpc3220-tsc"
7 - interrupts: The TSC/ADC interrupt
11 tsc@40048000 {
12 compatible = "nxp,lpc3220-tsc";
Dimx6ul_tsc.txt4 - compatible: must be "fsl,imx6ul-tsc".
8 - clock-names; must be "tsc" and "adc".
24 tsc: tsc@2040000 {
25 compatible = "fsl,imx6ul-tsc";
31 clock-names = "tsc", "adc";
/Linux-v5.15/arch/x86/include/asm/xen/
Dcpuid.h78 * Sub-leaf 0: EAX: bit 0: emulated tsc
79 * bit 1: host tsc is known to be reliable
83 * ECX: guest tsc frequency in kHz
84 * EDX: guest tsc incarnation (migration count)
85 * Sub-leaf 1: EAX: tsc offset low part
86 * EBX: tsc offset high part
87 * ECX: multiplicator for tsc->ns conversion
88 * EDX: shift amount for tsc->ns conversion
89 * Sub-leaf 2: EAX: host tsc frequency in kHz
/Linux-v5.15/arch/x86/include/asm/
Dstackprotector.h32 #include <asm/tsc.h>
54 u64 tsc; in boot_init_stack_canary() local
60 * We both use the random pool and the current TSC as a source in boot_init_stack_canary()
61 * of randomness. The TSC only matters for very early init, in boot_init_stack_canary()
66 tsc = rdtsc(); in boot_init_stack_canary()
67 canary += tsc + (tsc << 32UL); in boot_init_stack_canary()
/Linux-v5.15/tools/perf/util/intel-pt-decoder/
Dintel-pt-decoder.c353 * A TSC packet can slip past MTC packets so that the timestamp appears in intel_pt_decoder_new()
355 * cycles, which is certainly less than 0x1000 TSC ticks, but accept in intel_pt_decoder_new()
863 * For now, do not support using TSC packets - refer in intel_pt_calc_cyc_cb()
949 …intel_pt_log("Timestamp: calculated %g TSC ticks per cycle too big (c.f. CBR-based value %g), pos … in intel_pt_calc_cyc_cb()
958 …intel_pt_log("Timestamp: calculated %g TSC ticks per cycle c.f. CBR-based value %g, pos " x64_fmt … in intel_pt_calc_cyc_cb()
961 …intel_pt_log("Timestamp: calculated %g TSC ticks per cycle c.f. unknown CBR-based value, pos " x64… in intel_pt_calc_cyc_cb()
986 * For now, do not support using TSC packets for at least the reasons: in intel_pt_calc_cyc_to_tsc()
988 * 2) TSC packets within PSB+ can slip against CYC packets in intel_pt_calc_cyc_to_tsc()
2055 bool tsc, pip, vmcs, tma, psbend; member
2078 data->tsc = true; in intel_pt_vm_psb_lookahead_cb()
[all …]
/Linux-v5.15/tools/perf/tests/
Dperf-time-to-tsc.c20 #include "tsc.h"
41 * test__perf_time_to_tsc - test converting perf time to TSC.
44 * to and from TSC is consistent with the order of events. If the test passes
45 * %0 is returned, otherwise %-1 is returned. If TSC conversion is not
164 pr_debug("1st event perf time %"PRIu64" tsc %"PRIu64"\n", in test__perf_time_to_tsc()
166 pr_debug("rdtsc time %"PRIu64" tsc %"PRIu64"\n", in test__perf_time_to_tsc()
168 pr_debug("2nd event perf time %"PRIu64" tsc %"PRIu64"\n", in test__perf_time_to_tsc()
191 * Except x86_64/i386 and Arm64, other archs don't support TSC in perf. in test__tsc_is_supported()
/Linux-v5.15/tools/perf/pmu-events/arch/x86/broadwellde/
Dbdwde-metrics.json94 "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC / msr@tsc@",
124 "MetricExpr": "(cstate_core@c3\\-residency@ / msr@tsc@) * 100",
130 "MetricExpr": "(cstate_core@c6\\-residency@ / msr@tsc@) * 100",
136 "MetricExpr": "(cstate_core@c7\\-residency@ / msr@tsc@) * 100",
142 "MetricExpr": "(cstate_pkg@c2\\-residency@ / msr@tsc@) * 100",
148 "MetricExpr": "(cstate_pkg@c3\\-residency@ / msr@tsc@) * 100",
154 "MetricExpr": "(cstate_pkg@c6\\-residency@ / msr@tsc@) * 100",
160 "MetricExpr": "(cstate_pkg@c7\\-residency@ / msr@tsc@) * 100",
/Linux-v5.15/tools/perf/Documentation/
Dperf-intel-pt.txt211 -e intel_pt/tsc,noretcomp=0/
215 -e intel_pt/tsc=1,noretcomp=0/
231 /sys/bus/event_source/devices/intel_pt/format/tsc:config:10
239 -e intel_pt/tsc=1,noretcomp=0/
241 So, to disable TSC packets use:
243 -e intel_pt/tsc=0/
294 tsc Always supported. Produces TSC timestamp packets to provide
299 The default config selects tsc (i.e. tsc=1).
346 Because a TSC packet is produced with PSB, the PSB period can
352 MTC packets provide finer grain timestamp information than TSC
[all …]
/Linux-v5.15/include/trace/events/
Dmce.h27 __field( u64, tsc )
47 __entry->tsc = m->tsc;
58 …x, IPID: %016Lx, ADDR/MISC/SYND: %016Lx/%016Lx/%016Lx, RIP: %02x:<%016Lx>, TSC: %llx, PROCESSOR: %…
65 __entry->tsc,

12345678910>>...13