• Home
  • Raw
  • Download

Lines Matching +full:sink +full:- +full:only

1 /* SPDX-License-Identifier: GPL-2.0-only */
24 * enum media_gobj_type - type of a graph object
40 #define MEDIA_BITS_PER_ID (32 - MEDIA_BITS_PER_TYPE)
41 #define MEDIA_ID_MASK GENMASK_ULL(MEDIA_BITS_PER_ID - 1, 0)
46 * struct media_gobj - Define a graph object.
49 * @id: Non-zero object ID identifier. The ID should be unique
53 * @list: List entry stored in one of the per-type mdev object lists
66 * struct media_entity_enum - An enumeration of media entities.
69 * media_entity->internal_idx.
78 * struct media_graph - Media graph traversal state
99 * struct media_pipeline - Media pipeline related information
101 * @streaming_count: Streaming start count - streaming stop count
110 * struct media_link - A link object part of a media graph.
117 * @source: Part of a union. Used only if the first object (gobj0) is
119 * @intf: Part of a union. Used only if the first object (gobj0) is
123 * @sink: Part of a union. Used only if the second object (gobj1) is
124 * a pad. In that case, it represents the sink pad.
125 * @entity: Part of a union. Used only if the second object (gobj1) is
142 struct media_pad *sink; member
151 * enum media_pad_signal_type - type of the signal inside a media pad
158 * Intermediate Frequency, a baseband signal or sub-cariers.
159 * Tuner inputs, IF-PLL demodulators, composite and s-video signals
167 * sub-carrier or an audio bitstream. IF signals are provided by tuners
179 * struct media_pad - A media pad graph object.
198 * struct media_entity_operations - Media entity operations
224 * enum media_entity_type - Media entity type
234 * entity structure is inherited by (through embedding) other subsystem-specific
251 * struct media_entity - A media entity graph object.
262 * @num_pads: Number of sink and source pads.
266 * re-used if entities are unregistered or registered again.
321 * struct media_interface - A media interface graph object.
344 * struct media_intf_devnode - A media interface via a device node.
359 * media_entity_id() - return the media entity graph object id
365 return entity->graph_obj.id; in media_entity_id()
369 * media_type() - return the media object type
375 return gobj->id >> MEDIA_BITS_PER_ID; in media_type()
379 * media_id() - return the media object ID
385 return gobj->id & MEDIA_ID_MASK; in media_id()
389 * media_gobj_gen_id() - encapsulates type and ID on at the object ID
405 * is_media_entity_v4l2_video_device() - Check if the entity is a video_device
414 return entity && entity->obj_type == MEDIA_ENTITY_TYPE_VIDEO_DEVICE; in is_media_entity_v4l2_video_device()
418 * is_media_entity_v4l2_subdev() - Check if the entity is a v4l2_subdev
427 return entity && entity->obj_type == MEDIA_ENTITY_TYPE_V4L2_SUBDEV; in is_media_entity_v4l2_subdev()
431 * __media_entity_enum_init - Initialise an entity enumeration
442 * media_entity_enum_cleanup - Release resources of an entity enumeration
449 * media_entity_enum_zero - Clear the entire enum
455 bitmap_zero(ent_enum->bmap, ent_enum->idx_max); in media_entity_enum_zero()
459 * media_entity_enum_set - Mark a single entity in the enum
467 if (WARN_ON(entity->internal_idx >= ent_enum->idx_max)) in media_entity_enum_set()
470 __set_bit(entity->internal_idx, ent_enum->bmap); in media_entity_enum_set()
474 * media_entity_enum_clear - Unmark a single entity in the enum
482 if (WARN_ON(entity->internal_idx >= ent_enum->idx_max)) in media_entity_enum_clear()
485 __clear_bit(entity->internal_idx, ent_enum->bmap); in media_entity_enum_clear()
489 * media_entity_enum_test - Test whether the entity is marked
499 if (WARN_ON(entity->internal_idx >= ent_enum->idx_max)) in media_entity_enum_test()
502 return test_bit(entity->internal_idx, ent_enum->bmap); in media_entity_enum_test()
506 * media_entity_enum_test_and_set - Test whether the entity is marked,
518 if (WARN_ON(entity->internal_idx >= ent_enum->idx_max)) in media_entity_enum_test_and_set()
521 return __test_and_set_bit(entity->internal_idx, ent_enum->bmap); in media_entity_enum_test_and_set()
525 * media_entity_enum_empty - Test whether the entire enum is empty
533 return bitmap_empty(ent_enum->bmap, ent_enum->idx_max); in media_entity_enum_empty()
537 * media_entity_enum_intersects - Test whether two enums intersect
549 WARN_ON(ent_enum1->idx_max != ent_enum2->idx_max); in media_entity_enum_intersects()
551 return bitmap_intersects(ent_enum1->bmap, ent_enum2->bmap, in media_entity_enum_intersects()
552 min(ent_enum1->idx_max, ent_enum2->idx_max)); in media_entity_enum_intersects()
556 * gobj_to_entity - returns the struct &media_entity pointer from the
565 * gobj_to_pad - returns the struct &media_pad pointer from the
574 * gobj_to_link - returns the struct &media_link pointer from the
583 * gobj_to_intf - returns the struct &media_interface pointer from the
592 * intf_to_devnode - returns the struct media_intf_devnode pointer from the
601 * media_gobj_create - Initialize a graph object
618 * media_gobj_destroy - Stop using a graph object on a media device
628 * media_entity_pads_init() - Initialize the entity pads
631 * @num_pads: total number of sink and source pads
639 * &media_entity->num_pads with 0 and &media_entity->pads with %NULL or call
644 * pads array in a driver-specific structure, avoiding dynamic allocation.
653 * media_entity_cleanup() - free resources associated with an entity
667 * media_get_pad_index() - retrieves a pad index from an entity
670 * @is_sink: true if the pad is a sink, false if it is a source
679 * entity is a NULL pointer, return -EINVAL.
685 * media_create_pad_link() - creates a link between two entities.
689 * @sink: pointer to &media_entity of the sink pad.
690 * @sink_pad: number of the sink pad in the pads array.
699 * When two or more links target a sink pad, only one of them can be
713 u16 source_pad, struct media_entity *sink,
717 * media_create_pad_links() - creates a link between two entities.
720 * @source_function: Function of the source entities. Used only if @source is
725 * @sink_function: Function of the sink entities. Used only if @sink is NULL.
726 * @sink: pointer to &media_entity of the sink pad. If NULL, it will use
728 * @sink_pad: number of the sink pad in the pads array.
730 * @allow_both_undefined: if %true, then both @source and @sink can be NULL.
734 * and @sink are NULL.
740 * flag is passed as an argument, only the first created link will have
748 * It is common for some devices to have multiple source and/or sink entities
751 * cross-bar (n:n) links.
764 struct media_entity *sink,
772 * media_entity_remove_links() - remove all links associated with an entity
784 * __media_entity_setup_link - Configure a media link without locking
794 * The user is expected to hold link->source->parent->mutex. If not,
800 * media_entity_setup_link() - changes the link flags properties in runtime
805 * The only configurable property is the %MEDIA_LNK_FL_ENABLED link flag
810 * link_setup operation for the two entities at the source and sink of the
821 * is non-immutable. The operation must either configure the hardware or store
825 * enabled link at a sink pad prevents another link at the same pad from
826 * being enabled, the link_setup operation must return %-EBUSY and can't
838 * media_entity_find_link - Find a link between two pads
840 * @sink: Sink pad
846 struct media_pad *sink);
849 * media_entity_remote_pad - Find the pad at the remote end of a link
861 * media_entity_get_fwnode_pad - Get pad number from fwnode
884 * media_graph_walk_init - Allocate resources used by graph walk.
893 * media_graph_walk_cleanup - Release resources used by graph walk.
900 * media_graph_walk_start - Start walking the media graph at a
918 * media_graph_walk_next - Get the next entity in the graph
921 * Perform a depth-first traversal of the given media entities graph.
932 * media_pipeline_start - Mark a pipeline as streaming
948 * __media_pipeline_start - Mark a pipeline as streaming
953 * ..note:: This is the non-locking version of media_pipeline_start()
959 * media_pipeline_stop - Mark a pipeline as not streaming
973 * __media_pipeline_stop - Mark a pipeline as not streaming
977 * .. note:: This is the non-locking version of media_pipeline_stop()
982 * media_devnode_create() - creates and initializes a device node interface
1006 * media_devnode_remove() - removes a device node interface
1017 * media_create_intf_link() - creates a link between an entity and an interface
1034 * A typical example is an hybrid TV device that handle only one type of
1049 * __media_remove_intf_link() - remove a single interface link
1058 * media_remove_intf_link() - remove a single interface link
1067 * __media_remove_intf_links() - remove all links associated with an interface
1076 * media_remove_intf_links() - remove all links associated with an interface
1090 * media_entity_call - Calls a struct media_entity_operations operation on
1102 (((entity)->ops && (entity)->ops->operation) ? \
1103 (entity)->ops->operation((entity) , ##args) : -ENOIOCTLCMD)