Home
last modified time | relevance | path

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

12345678910>>...15

/linux-6.14.4/drivers/pps/
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 …]
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 …]
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 …]
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 …]
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 …]
/linux-6.14.4/drivers/gpu/drm/amd/display/dc/dsc/dcn20/
Ddcn20_dsc.c199 DC_LOG_DSC("programming DSC Picture Parameter Set (PPS):"); in dsc2_set_config()
200 dsc_log_pps(dsc, &dsc20->reg_vals.pps); in dsc2_set_config()
214 DC_LOG_DSC("Getting packed DSC PPS for DSC Config:"); in dsc2_get_packed_pps()
216 DC_LOG_DSC("DSC Picture Parameter Set (PPS):"); in dsc2_get_packed_pps()
219 …drm_dsc_pps_payload_pack((struct drm_dsc_picture_parameter_set *)dsc_packed_pps, &dsc_reg_vals.pps in dsc2_get_packed_pps()
220 dsc_log_pps(dsc, &dsc_reg_vals.pps); in dsc2_get_packed_pps()
288 void dsc_log_pps(struct display_stream_compressor *dsc, struct drm_dsc_config *pps) in dsc_log_pps() argument
291 int bits_per_pixel = pps->bits_per_pixel; in dsc_log_pps()
293 DC_LOG_DSC("\tdsc_version_major %d", pps->dsc_version_major); in dsc_log_pps()
294 DC_LOG_DSC("\tdsc_version_minor %d", pps->dsc_version_minor); in dsc_log_pps()
[all …]
/linux-6.14.4/drivers/gpu/drm/amd/display/dc/dsc/dcn401/
Ddcn401_dsc.c158 DC_LOG_DSC("programming DSC Picture Parameter Set (PPS):"); in dsc401_set_config()
159 dsc_log_pps(dsc, &dsc401->reg_vals.pps); in dsc401_set_config()
238 DSCCIF_CONFIG0__BITS_PER_COMPONENT, reg_vals->pps.bits_per_component); in dsc_write_to_registers()
241 PIC_WIDTH, reg_vals->pps.pic_width, in dsc_write_to_registers()
242 PIC_HEIGHT, reg_vals->pps.pic_height); in dsc_write_to_registers()
271 DSC_VERSION_MINOR, reg_vals->pps.dsc_version_minor, in dsc_write_to_registers()
272 LINEBUF_DEPTH, reg_vals->pps.line_buf_depth, in dsc_write_to_registers()
273 DSCC_PPS_CONFIG0__BITS_PER_COMPONENT, reg_vals->pps.bits_per_component); in dsc_write_to_registers()
284 BLOCK_PRED_ENABLE, reg_vals->pps.block_pred_enable, in dsc_write_to_registers()
287 CHUNK_SIZE, reg_vals->pps.slice_chunk_size); in dsc_write_to_registers()
[all …]
/linux-6.14.4/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-6.14.4/drivers/pps/clients/
Dpps-ldisc.c3 * pps-ldisc.c -- PPS line discipline
18 struct pps_device *pps; in pps_tty_dcd_change() local
23 pps = pps_lookup_dev(tty); in pps_tty_dcd_change()
28 if (WARN_ON_ONCE(pps == NULL)) in pps_tty_dcd_change()
31 /* Now do the PPS event report */ in pps_tty_dcd_change()
32 pps_event(pps, &ts, active ? PPS_CAPTUREASSERT : in pps_tty_dcd_change()
35 dev_dbg(&pps->dev, "PPS %s at %lu\n", in pps_tty_dcd_change()
46 struct pps_device *pps; in pps_tty_open() local
57 pps = pps_register_source(&info, PPS_CAPTUREBOTH | \ in pps_tty_open()
59 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"
28 int irq; /* IRQ used as PPS source */
29 struct pps_device *pps; /* PPS source device */ member
30 struct pps_source_info info; /* PPS source information */
36 unsigned int echo_active_ms; /* PPS echo active duration */
41 * Report the PPS event
60 pps_event(info->pps, &ts, PPS_CAPTUREASSERT, data); in pps_gpio_irq_handler()
64 pps_event(info->pps, &ts, PPS_CAPTURECLEAR, data); in pps_gpio_irq_handler()
66 dev_warn_ratelimited(&info->pps->dev, "IRQ did not trigger any PPS event\n"); 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_dbg(&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 …]
/linux-6.14.4/drivers/gpu/drm/i915/display/
Dintel_pps.c32 struct intel_pps *pps = &intel_dp->pps; in pps_name() local
35 switch (pps->vlv_pps_pipe) { in pps_name()
39 * to always have a valid PPS when calling this. in pps_name()
41 return "PPS <none>"; in pps_name()
43 return "PPS A"; in pps_name()
45 return "PPS B"; in pps_name()
47 MISSING_CASE(pps->vlv_pps_pipe); in pps_name()
51 switch (pps->pps_idx) { in pps_name()
53 return "PPS 0"; in pps_name()
55 return "PPS 1"; in pps_name()
[all …]
Dintel_vdsc_regs.h58 #define DSCA_PPS(pps) _MMIO(_DSCA_PPS_0 + ((pps) < 12 ? (pps) : (pps) + 12) * 4) argument
59 #define DSCC_PPS(pps) _MMIO(_DSCC_PPS_0 + ((pps) < 12 ? (pps) : (pps) + 12) * 4) argument
81 #define ICL_DSC0_PPS(pipe, pps) _MMIO(_ICL_DSC0_PPS_0(pipe) + ((pps) * 4)) argument
82 #define ICL_DSC1_PPS(pipe, pps) _MMIO(_ICL_DSC1_PPS_0(pipe) + ((pps) * 4)) argument
83 #define BMG_DSC2_PPS(pipe, pps) _MMIO(_BMG_DSC2_PPS_0(pipe) + ((pps) * 4)) argument
85 /* PPS 0 */
102 /* PPS 1 */
106 /* PPS 2 */
112 /* PPS 3 */
118 /* PPS 4 */
[all …]
/linux-6.14.4/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 …]
Dsysfs-pps-gen1 What: /sys/class/pps-gen/
6 The /sys/class/pps-gen/ directory contains files and
7 directories that provide a unified interface to the PPS
10 What: /sys/class/pps-gen/pps-genX/
15 The /sys/class/pps-gen/pps-genX/ directory is related to X-th
16 PPS generator in the system. Each directory contain files to
17 manage and control its PPS generator.
19 What: /sys/class/pps-gen/pps-genX/enable
25 PPS signal.
27 What: /sys/class/pps-gen/pps-genX/system
[all …]
/linux-6.14.4/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-6.14.4/drivers/media/platform/allegro-dvt/
Dnal-hevc.c11 * RBSP for VPS/SPS/PPS nal units and add them to the encoded stream if the
430 static void nal_hevc_rbsp_pps(struct rbsp *rbsp, struct nal_hevc_pps *pps) in nal_hevc_rbsp_pps() argument
434 rbsp_uev(rbsp, &pps->pps_pic_parameter_set_id); in nal_hevc_rbsp_pps()
435 rbsp_uev(rbsp, &pps->pps_seq_parameter_set_id); in nal_hevc_rbsp_pps()
436 rbsp_bit(rbsp, &pps->dependent_slice_segments_enabled_flag); in nal_hevc_rbsp_pps()
437 rbsp_bit(rbsp, &pps->output_flag_present_flag); in nal_hevc_rbsp_pps()
438 rbsp_bits(rbsp, 3, &pps->num_extra_slice_header_bits); in nal_hevc_rbsp_pps()
439 rbsp_bit(rbsp, &pps->sign_data_hiding_enabled_flag); in nal_hevc_rbsp_pps()
440 rbsp_bit(rbsp, &pps->cabac_init_present_flag); in nal_hevc_rbsp_pps()
441 rbsp_uev(rbsp, &pps->num_ref_idx_l0_default_active_minus1); in nal_hevc_rbsp_pps()
[all …]
Dnal-h264.c11 * generator to generate the RBSP for SPS/PPS nal units and add them to the
283 static void nal_h264_rbsp_pps(struct rbsp *rbsp, struct nal_h264_pps *pps) in nal_h264_rbsp_pps() argument
287 rbsp_uev(rbsp, &pps->pic_parameter_set_id); in nal_h264_rbsp_pps()
288 rbsp_uev(rbsp, &pps->seq_parameter_set_id); in nal_h264_rbsp_pps()
289 rbsp_bit(rbsp, &pps->entropy_coding_mode_flag); in nal_h264_rbsp_pps()
290 rbsp_bit(rbsp, &pps->bottom_field_pic_order_in_frame_present_flag); in nal_h264_rbsp_pps()
291 rbsp_uev(rbsp, &pps->num_slice_groups_minus1); in nal_h264_rbsp_pps()
292 if (pps->num_slice_groups_minus1 > 0) { in nal_h264_rbsp_pps()
293 rbsp_uev(rbsp, &pps->slice_group_map_type); in nal_h264_rbsp_pps()
294 switch (pps->slice_group_map_type) { in nal_h264_rbsp_pps()
[all …]
/linux-6.14.4/drivers/gpu/drm/amd/display/dc/dsc/
Drc_calc.c31 * @pps: DRM struct with all required DSC values
40 void calc_rc_params(struct rc_params *rc, const struct drm_dsc_config *pps) in calc_rc_params() argument
46 u16 drm_bpp = pps->bits_per_pixel; in calc_rc_params()
47 int slice_width = pps->slice_width; in calc_rc_params()
48 int slice_height = pps->slice_height; in calc_rc_params()
50 mode = pps->convert_rgb ? CM_RGB : (pps->simple_422 ? CM_444 : in calc_rc_params()
51 (pps->native_422 ? CM_422 : in calc_rc_params()
52 pps->native_420 ? CM_420 : CM_444)); in calc_rc_params()
53 bpc = (pps->bits_per_component == 8) ? BPC_8 : (pps->bits_per_component == 10) in calc_rc_params()
56 is_navite_422_or_420 = pps->native_422 || pps->native_420; in calc_rc_params()
[all …]
/linux-6.14.4/drivers/media/platform/verisilicon/
Dhantro_g2_hevc_dec.c15 const struct v4l2_ctrl_hevc_pps *pps = ctrls->pps; in prepare_tile_info_buffer() local
18 unsigned int num_tile_rows = pps->num_tile_rows_minus1 + 1; in prepare_tile_info_buffer()
19 unsigned int num_tile_cols = pps->num_tile_columns_minus1 + 1; in prepare_tile_info_buffer()
25 tiles_enabled = !!(pps->flags & V4L2_HEVC_PPS_FLAG_TILES_ENABLED); in prepare_tile_info_buffer()
26 uniform_spacing = !!(pps->flags & V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING); in prepare_tile_info_buffer()
57 h = pps->row_height_minus1[i] + 1; in prepare_tile_info_buffer()
62 tmp_w += pps->column_width_minus1[j] + 1; in prepare_tile_info_buffer()
63 *p++ = pps->column_width_minus1[j] + 1; in prepare_tile_info_buffer()
86 (pps->column_width_minus1[0] + 1) == 1 && in prepare_tile_info_buffer()
111 const struct v4l2_ctrl_hevc_pps *pps = ctrls->pps; in compute_header_skip_length() local
[all …]
/linux-6.14.4/drivers/pps/generators/
DKconfig3 # PPS generators configuration
7 tristate "PPS generators support"
9 PPS generators are special hardware which are able to produce PPS
18 tristate "Dummy PPS generator (Testing generator, use for debug)"
20 If you say yes here you get support for a PPS debugging generator
21 (which generates no PPS signal at all).
27 tristate "Parallel port PPS signal generator"
30 If you say yes here you get support for a PPS signal generator which
31 utilizes STROBE pin of a parallel port to send PPS signals. It uses
Dpps_gen.c3 * PPS generators core file
153 pr_debug("deallocating pps-gen%d\n", pps_gen->id); in pps_gen_device_destruct()
168 pr_err("too many PPS sources in the system\n"); in pps_gen_register_cdev()
187 pps_gen, "pps-gen%d", pps_gen->id); in pps_gen_register_cdev()
209 pr_debug("unregistering pps-gen%d\n", pps_gen->id); in pps_gen_unregister_cdev()
218 * pps_gen_register_source() - add a PPS generator in the system
219 * @info: the PPS generator info struct
221 * This function is used to register a new PPS generator in the system.
225 * Return: the PPS generator device in case of success, and ERR_PTR(errno)
264 * pps_gen_unregister_source() - remove a PPS generator from the system
[all …]
/linux-6.14.4/samples/bpf/
Dxdp_sample_user.c60 #define PPS(pps) pps, "pkt/s" macro
123 __u64 pps; member
137 __u64 pps; member
592 __u64 pps = 0; in calc_pps() local
596 pps = sample_round(packets / period_); in calc_pps()
598 return pps; in calc_pps()
604 __u64 pps = 0; in calc_drop_pps() local
608 pps = sample_round(packets / period_); in calc_drop_pps()
610 return pps; in calc_drop_pps()
616 __u64 pps = 0; in calc_errs_pps() local
[all …]
/linux-6.14.4/Documentation/devicetree/bindings/pps/
Dpps-gpio.yaml4 $id: http://devicetree.org/schemas/pps/pps-gpio.yaml#
7 title: PPS Signal via GPIO
14 const: pps-gpio
17 description: The GPIO that provides the PPS signal.
21 description: The GPIO that provides the PPS ECHO signal.
41 pps {
42 compatible = "pps-gpio";

12345678910>>...15