Home
last modified time | relevance | path

Searched full:pps (Results 1 – 25 of 245) sorted by relevance

12345678910

/Linux-v5.10/drivers/pps/
Dkapi.c41 static void pps_echo_client_default(struct pps_device *pps, int event, in pps_echo_client_default() argument
44 dev_info(pps->dev, "echo %s %s\n", in pps_echo_client_default()
53 /* pps_register_source - add a PPS source in the system
54 * @info: the PPS info struct
55 * @default_params: the default PPS parameters of the new source
57 * This function is used to add a new PPS source in the system. The new
58 * source is described by info's fields and it will have, as default PPS
61 * The function returns, in case of success, the PPS device. Otherwise
68 struct pps_device *pps; in pps_register_source() local
85 /* Allocate memory for the new PPS source struct */ in pps_register_source()
[all …]
Dpps.c3 * PPS core file
40 struct pps_device *pps = file->private_data; in pps_cdev_poll() local
42 poll_wait(file, &pps->queue, wait); in pps_cdev_poll()
49 struct pps_device *pps = file->private_data; in pps_cdev_fasync() local
50 return fasync_helper(fd, file, on, &pps->async_queue); in pps_cdev_fasync()
53 static int pps_cdev_pps_fetch(struct pps_device *pps, struct pps_fdata *fdata) in pps_cdev_pps_fetch() argument
55 unsigned int ev = pps->last_ev; in pps_cdev_pps_fetch()
60 err = wait_event_interruptible(pps->queue, in pps_cdev_pps_fetch()
61 ev != pps->last_ev); in pps_cdev_pps_fetch()
65 dev_dbg(pps->dev, "timeout %lld.%09d\n", in pps_cdev_pps_fetch()
[all …]
Dkc.c3 * PPS kernel consumer API
25 /* PPS API (RFC 2783): current source and mode for kernel consumer */
29 /* pps_kc_bind - control PPS kernel consumer binding
30 * @pps: the PPS source
33 * This function is used to bind or unbind PPS kernel consumer according to
36 int pps_kc_bind(struct pps_device *pps, struct pps_bind_args *bind_args) in pps_kc_bind() argument
42 if (pps_kc_hardpps_dev == pps) { in pps_kc_bind()
46 dev_info(pps->dev, "unbound kernel" in pps_kc_bind()
50 dev_err(pps->dev, "selected kernel consumer" in pps_kc_bind()
56 pps_kc_hardpps_dev == pps) { in pps_kc_bind()
[all …]
DKconfig3 # PPS support configuration
6 menuconfig PPS config
7 tristate "PPS support"
9 PPS (Pulse Per Second) is a special pulse provided by some GPS
13 Some antennae's PPS signals are connected with the CD (Carrier
17 Some antennae's PPS signals are connected with some special host
23 if PPS
26 bool "PPS debugging messages"
28 Say Y here if you want the PPS support to produce a bunch of debug
30 problem with PPS support and want to see more of what is going on.
[all …]
Dsysfs.c3 * PPS sysfs support
21 struct pps_device *pps = dev_get_drvdata(dev); in assert_show() local
23 if (!(pps->info.mode & PPS_CAPTUREASSERT)) in assert_show()
27 (long long) pps->assert_tu.sec, pps->assert_tu.nsec, in assert_show()
28 pps->assert_sequence); in assert_show()
35 struct pps_device *pps = dev_get_drvdata(dev); in clear_show() local
37 if (!(pps->info.mode & PPS_CAPTURECLEAR)) in clear_show()
41 (long long) pps->clear_tu.sec, pps->clear_tu.nsec, in clear_show()
42 pps->clear_sequence); in clear_show()
49 struct pps_device *pps = dev_get_drvdata(dev); in mode_show() local
[all …]
Dkc.h3 * PPS kernel consumer API header
16 extern int pps_kc_bind(struct pps_device *pps,
18 extern void pps_kc_remove(struct pps_device *pps);
19 extern void pps_kc_event(struct pps_device *pps,
25 static inline int pps_kc_bind(struct pps_device *pps, in pps_kc_bind() argument
27 static inline void pps_kc_remove(struct pps_device *pps) {} in pps_kc_remove() argument
28 static inline void pps_kc_event(struct pps_device *pps, in pps_kc_event() argument
/Linux-v5.10/drivers/gpu/drm/amd/display/dc/dcn20/
Ddcn20_dsc.c30 static void dsc_log_pps(struct display_stream_compressor *dsc, struct drm_dsc_config *pps);
202 DC_LOG_DSC("programming DSC Picture Parameter Set (PPS):"); in dsc2_set_config()
203 dsc_log_pps(dsc, &dsc20->reg_vals.pps); in dsc2_set_config()
217 DC_LOG_DSC("Getting packed DSC PPS for DSC Config:"); in dsc2_get_packed_pps()
219 DC_LOG_DSC("DSC Picture Parameter Set (PPS):"); in dsc2_get_packed_pps()
222 …drm_dsc_pps_payload_pack((struct drm_dsc_picture_parameter_set *)dsc_packed_pps, &dsc_reg_vals.pps in dsc2_get_packed_pps()
223 dsc_log_pps(dsc, &dsc_reg_vals.pps); in dsc2_get_packed_pps()
279 static void dsc_log_pps(struct display_stream_compressor *dsc, struct drm_dsc_config *pps) in dsc_log_pps() argument
282 int bits_per_pixel = pps->bits_per_pixel; in dsc_log_pps()
284 DC_LOG_DSC("\tdsc_version_major %d", pps->dsc_version_major); in dsc_log_pps()
[all …]
/Linux-v5.10/Documentation/driver-api/
Dpps.rst4 PPS - Pulse Per Second
25 system several PPS sources.
27 PPS means "pulse per second" and a PPS source is just a device which
31 A PPS source can be connected to a serial port (usually to the Data
38 GPS receiver as PPS source, to obtain a wallclock-time with
45 While implementing a PPS API as RFC 2783 defines and using an embedded
55 task for a PPS API. But this assumption does not work for a single
58 precondition for the use of a PPS API.
60 The problem can be simply solved if you consider that a PPS source is
64 for instance) is a PPS source too, and if not they should provide the
[all …]
/Linux-v5.10/drivers/pps/clients/
Dpps-ldisc.c3 * pps-ldisc.c -- PPS line discipline
20 struct pps_device *pps; in pps_tty_dcd_change() local
25 pps = pps_lookup_dev(tty); in pps_tty_dcd_change()
30 if (WARN_ON_ONCE(pps == NULL)) in pps_tty_dcd_change()
33 /* Now do the PPS event report */ in pps_tty_dcd_change()
34 pps_event(pps, &ts, status ? PPS_CAPTUREASSERT : in pps_tty_dcd_change()
37 dev_dbg(pps->dev, "PPS %s at %lu\n", in pps_tty_dcd_change()
48 struct pps_device *pps; in pps_tty_open() local
59 pps = pps_register_source(&info, PPS_CAPTUREBOTH | \ in pps_tty_open()
61 if (IS_ERR(pps)) { in pps_tty_open()
[all …]
Dpps-gpio.c3 * pps-gpio.c -- PPS client driver using GPIO
9 #define PPS_GPIO_NAME "pps-gpio"
19 #include <linux/pps-gpio.h>
29 int irq; /* IRQ used as PPS source */
30 struct pps_device *pps; /* PPS source device */ member
31 struct pps_source_info info; /* PPS source information */
37 unsigned int echo_active_ms; /* PPS echo active duration */
42 * Report the PPS event
59 pps_event(info->pps, &ts, PPS_CAPTUREASSERT, data); in pps_gpio_irq_handler()
63 pps_event(info->pps, &ts, PPS_CAPTURECLEAR, data); in pps_gpio_irq_handler()
[all …]
Dpps-ktimer.c3 * pps-ktimer.c -- kernel timer test client
21 static struct pps_device *pps; variable
35 pps_event(pps, &ts, PPS_CAPTUREASSERT, NULL); in pps_ktimer_event()
41 * The PPS info struct
59 dev_info(pps->dev, "ktimer PPS source unregistered\n"); in pps_ktimer_exit()
62 pps_unregister_source(pps); in pps_ktimer_exit()
67 pps = pps_register_source(&pps_ktimer_info, in pps_ktimer_init()
69 if (IS_ERR(pps)) { in pps_ktimer_init()
70 pr_err("cannot register PPS source\n"); in pps_ktimer_init()
71 return PTR_ERR(pps); in pps_ktimer_init()
[all …]
DKconfig3 # PPS clients configuration
6 comment "PPS clients support"
11 If you say yes here you get support for a PPS debugging client
12 which uses a kernel timer to generate the PPS signal.
15 will be called pps-ktimer.
18 tristate "PPS line discipline"
21 If you say yes here you get support for a PPS source connected
25 tristate "Parallel port PPS client"
28 If you say yes here you get support for a PPS source connected
32 tristate "PPS client using GPIO"
[all …]
Dpps_parport.c3 * pps_parport.c -- kernel parallel port PPS client
25 #define DRVDESC "parallel port PPS client"
43 struct pps_device *pps; /* PPS device */ member
86 dev_err(dev->pps->dev, "lost the signal\n"); in parport_irq()
103 dev_err(dev->pps->dev, "disabled clear edge capture after %d" in parport_irq()
111 pps_event(dev->pps, &ts_assert, in parport_irq()
117 pps_event(dev->pps, &ts_assert, in parport_irq()
120 pps_event(dev->pps, &ts_clear, in parport_irq()
166 device->pps = pps_register_source(&info, in parport_attach()
168 if (IS_ERR(device->pps)) { in parport_attach()
[all …]
/Linux-v5.10/Documentation/ABI/testing/
Dsysfs-pps1 What: /sys/class/pps/
5 The /sys/class/pps/ directory will contain files and
7 the PPS sources.
9 What: /sys/class/pps/ppsX/
13 The /sys/class/pps/ppsX/ directory is related to X-th
14 PPS source into the system. Each directory will
15 contain files to manage and control its PPS source.
17 What: /sys/class/pps/ppsX/assert
21 The /sys/class/pps/ppsX/assert file reports the assert events
29 What: /sys/class/pps/ppsX/clear
[all …]
/Linux-v5.10/drivers/gpu/drm/
Ddrm_dsc.c33 * drm_dsc_dp_pps_header_init() - Initializes the PPS Header
53 * drm_dsc_pps_payload_pack() - Populates the DSC PPS
62 * DSC source device sends a picture parameter set (PPS) containing the
64 * populates the DSC PPS struct using the DSC configuration parameters in
66 * device expects the PPS payload in big endian format for fields
80 /* PPS 0 */ in drm_dsc_pps_payload_pack()
85 /* PPS 1, 2 is 0 */ in drm_dsc_pps_payload_pack()
87 /* PPS 3 */ in drm_dsc_pps_payload_pack()
92 /* PPS 4 */ in drm_dsc_pps_payload_pack()
101 /* PPS 5 */ in drm_dsc_pps_payload_pack()
[all …]
/Linux-v5.10/include/linux/
Dpps_kernel.h3 * PPS API kernel header
11 #include <linux/pps.h>
22 /* The specific PPS source info */
26 int mode; /* PPS allowed mode */
28 void (*echo)(struct pps_device *pps,
29 int event, void *data); /* PPS echo function */
46 struct pps_kparams params; /* PPS current params */
48 __u32 assert_sequence; /* PPS assert event seq # */
49 __u32 clear_sequence; /* PPS clear event seq # */
52 int current_mode; /* PPS mode at event time */
[all …]
/Linux-v5.10/samples/bpf/
Dxdp_monitor_user.c272 double pps = 0; in calc_pps() local
276 pps = packets / period; in calc_pps()
278 return pps; in calc_pps()
284 double pps = 0; in calc_pps_u64() local
288 pps = packets / period; in calc_pps_u64()
290 return pps; in calc_pps_u64()
296 double pps = 0; in calc_drop() local
300 pps = packets / period; in calc_drop()
302 return pps; in calc_drop()
308 double pps = 0; in calc_info() local
[all …]
Dxdp_redirect_cpu_user.c306 __u64 pps = 0; in calc_pps() local
310 pps = packets / period_; in calc_pps()
312 return pps; in calc_pps()
318 __u64 pps = 0; in calc_drop_pps() local
322 pps = packets / period_; in calc_drop_pps()
324 return pps; in calc_drop_pps()
331 __u64 pps = 0; in calc_errs_pps() local
335 pps = packets / period_; in calc_errs_pps()
337 return pps; in calc_errs_pps()
357 double pps = 0, drop = 0, err = 0; in stats_print() local
[all …]
/Linux-v5.10/Documentation/devicetree/bindings/pps/
Dpps-gpio.txt1 Device-Tree Bindings for a PPS Signal on GPIO
3 These properties describe a PPS (pulse-per-second) signal connected to
7 - compatible: should be "pps-gpio"
8 - gpios: one PPS GPIO in the format described by ../gpio/gpio.txt
10 Additional required properties for the PPS ECHO functionality:
11 - echo-gpios: one PPS ECHO GPIO in the format described by ../gpio/gpio.txt
19 pps {
29 compatible = "pps-gpio";
/Linux-v5.10/drivers/staging/media/allegro-dvt/
Dnal-h264.c11 * generator to generate the RBSP for SPS/PPS nal units and add them to the
679 static void nal_h264_rbsp_pps(struct rbsp *rbsp, struct nal_h264_pps *pps) in nal_h264_rbsp_pps() argument
683 rbsp_uev(rbsp, &pps->pic_parameter_set_id); in nal_h264_rbsp_pps()
684 rbsp_uev(rbsp, &pps->seq_parameter_set_id); in nal_h264_rbsp_pps()
685 rbsp_bit(rbsp, &pps->entropy_coding_mode_flag); in nal_h264_rbsp_pps()
686 rbsp_bit(rbsp, &pps->bottom_field_pic_order_in_frame_present_flag); in nal_h264_rbsp_pps()
687 rbsp_uev(rbsp, &pps->num_slice_groups_minus1); in nal_h264_rbsp_pps()
688 if (pps->num_slice_groups_minus1 > 0) { in nal_h264_rbsp_pps()
689 rbsp_uev(rbsp, &pps->slice_group_map_type); in nal_h264_rbsp_pps()
690 switch (pps->slice_group_map_type) { in nal_h264_rbsp_pps()
[all …]
/Linux-v5.10/tools/testing/selftests/drivers/net/mlxsw/
Ddevlink_trap_policer.sh214 # by the policer. Make sure measured received rate is about 1000 pps
215 log_info "=== Tx rate: Highest, Policer rate: 1000 pps ==="
224 …check_err $? "Expected rate 1000 pps, got $rate pps, which is $pct% off. Required accuracy is +-10…
225 log_info "Expected rate 1000 pps, measured rate $rate pps"
230 log_info "Measured policer drop rate of $drop_rate pps"
234 # Send packets at a rate of 1000 pps and make sure they are not dropped
236 log_info "=== Tx rate: 1000 pps, Policer rate: 1000 pps ==="
244 check_err $? "Expected zero policer drop rate, got a drop rate of $drop_rate pps"
245 log_info "Measured policer drop rate of $drop_rate pps"
251 # received rate is higher than 1000 pps
[all …]
/Linux-v5.10/drivers/staging/media/sunxi/cedrus/
Dcedrus_h265.c246 const struct v4l2_ctrl_hevc_pps *pps; in cedrus_h265_setup() local
257 pps = run->h265.pps; in cedrus_h265_setup()
392 /* PPS. */ in cedrus_h265_setup()
394 reg = VE_DEC_H265_DEC_PPS_CTRL0_PPS_CR_QP_OFFSET(pps->pps_cr_qp_offset) | in cedrus_h265_setup()
395 VE_DEC_H265_DEC_PPS_CTRL0_PPS_CB_QP_OFFSET(pps->pps_cb_qp_offset) | in cedrus_h265_setup()
396 VE_DEC_H265_DEC_PPS_CTRL0_INIT_QP_MINUS26(pps->init_qp_minus26) | in cedrus_h265_setup()
397 VE_DEC_H265_DEC_PPS_CTRL0_DIFF_CU_QP_DELTA_DEPTH(pps->diff_cu_qp_delta_depth); in cedrus_h265_setup()
401 pps->flags); in cedrus_h265_setup()
405 pps->flags); in cedrus_h265_setup()
409 pps->flags); in cedrus_h265_setup()
[all …]
/Linux-v5.10/drivers/staging/media/hantro/
Dhantro_g1_h264_dec.c27 const struct v4l2_ctrl_h264_pps *pps = ctrls->pps; in set_params() local
59 reg = G1_REG_DEC_CTRL2_CH_QP_OFFSET(pps->chroma_qp_index_offset) | in set_params()
60 G1_REG_DEC_CTRL2_CH_QP_OFFSET2(pps->second_chroma_qp_index_offset); in set_params()
62 if (pps->flags & V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT) in set_params()
70 G1_REG_DEC_CTRL3_INIT_QP(pps->pic_init_qp_minus26 + 26) | in set_params()
77 G1_REG_DEC_CTRL4_WEIGHT_BIPR_IDC(pps->weighted_bipred_idc); in set_params()
78 if (pps->flags & V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE) in set_params()
84 if (pps->flags & V4L2_H264_PPS_FLAG_WEIGHTED_PRED) in set_params()
91 if (pps->flags & V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED) in set_params()
93 if (pps->flags & V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT) in set_params()
[all …]
/Linux-v5.10/drivers/gpu/drm/i915/display/
Dintel_lvds.c154 struct intel_lvds_pps *pps) in intel_lvds_pps_get_hw_state() argument
158 pps->powerdown_on_reset = intel_de_read(dev_priv, PP_CONTROL(0)) & PANEL_POWER_RESET; in intel_lvds_pps_get_hw_state()
161 pps->port = REG_FIELD_GET(PANEL_PORT_SELECT_MASK, val); in intel_lvds_pps_get_hw_state()
162 pps->t1_t2 = REG_FIELD_GET(PANEL_POWER_UP_DELAY_MASK, val); in intel_lvds_pps_get_hw_state()
163 pps->t5 = REG_FIELD_GET(PANEL_LIGHT_ON_DELAY_MASK, val); in intel_lvds_pps_get_hw_state()
166 pps->t3 = REG_FIELD_GET(PANEL_POWER_DOWN_DELAY_MASK, val); in intel_lvds_pps_get_hw_state()
167 pps->tx = REG_FIELD_GET(PANEL_LIGHT_OFF_DELAY_MASK, val); in intel_lvds_pps_get_hw_state()
170 pps->divider = REG_FIELD_GET(PP_REFERENCE_DIVIDER_MASK, val); in intel_lvds_pps_get_hw_state()
180 pps->t4 = val * 1000; in intel_lvds_pps_get_hw_state()
183 pps->t1_t2 == 0 && pps->t5 == 0 && pps->t3 == 0 && pps->tx == 0) { in intel_lvds_pps_get_hw_state()
[all …]
/Linux-v5.10/drivers/pps/generators/
DKconfig3 # PPS generators configuration
6 comment "PPS generators support"
9 tristate "Parallel port PPS signal generator"
12 If you say yes here you get support for a PPS signal generator which
13 utilizes STROBE pin of a parallel port to send PPS signals. It uses

12345678910