| /linux/drivers/gpu/drm/scheduler/ |
| H A D | sched_entity.c | 116 int drm_sched_entity_init(struct drm_sched_entity *entity, in drm_sched_entity_init() argument 122 if (!entity || !sched_list || !num_sched_list || !sched_list[0]) in drm_sched_entity_init() 125 memset(entity, 0, sizeof(struct drm_sched_entity)); in drm_sched_entity_init() 127 entity->stats = drm_sched_entity_stats_new(); in drm_sched_entity_init() 128 if (!entity->stats) in drm_sched_entity_init() 131 INIT_LIST_HEAD(&entity->list); in drm_sched_entity_init() 132 entity->guilty = guilty; in drm_sched_entity_init() 133 entity->priority = priority; in drm_sched_entity_init() 134 entity->last_user = current->group_leader; in drm_sched_entity_init() 135 entity->rq_priority = drm_sched_policy == DRM_SCHED_POLICY_FAIR ? in drm_sched_entity_init() [all …]
|
| H A D | sched_rq.c | 32 struct drm_sched_entity *entity = in drm_sched_rq_update_prio() local 33 rb_entry(rb, typeof(*entity), rb_tree_node); in drm_sched_rq_update_prio() 46 prio = READ_ONCE(entity->priority); in drm_sched_rq_update_prio() 52 static void drm_sched_rq_remove_fifo_locked(struct drm_sched_entity *entity, in drm_sched_rq_remove_fifo_locked() argument 55 lockdep_assert_held(&entity->lock); in drm_sched_rq_remove_fifo_locked() 58 if (!RB_EMPTY_NODE(&entity->rb_tree_node)) { in drm_sched_rq_remove_fifo_locked() 59 rb_erase_cached(&entity->rb_tree_node, &rq->rb_tree_root); in drm_sched_rq_remove_fifo_locked() 60 RB_CLEAR_NODE(&entity->rb_tree_node); in drm_sched_rq_remove_fifo_locked() 65 static void drm_sched_rq_update_fifo_locked(struct drm_sched_entity *entity, in drm_sched_rq_update_fifo_locked() argument 74 lockdep_assert_held(&entity->lock); in drm_sched_rq_update_fifo_locked() [all …]
|
| /linux/block/ |
| H A D | bfq-wf2q.c | 30 static unsigned int bfq_class_idx(struct bfq_entity *entity) in bfq_class_idx() argument 32 struct bfq_queue *bfqq = bfq_entity_to_bfqq(entity); in bfq_class_idx() 194 static bool bfq_no_longer_next_in_service(struct bfq_entity *entity) in bfq_no_longer_next_in_service() argument 198 if (bfq_entity_to_bfqq(entity)) in bfq_no_longer_next_in_service() 201 bfqg = container_of(entity, struct bfq_group, entity); in bfq_no_longer_next_in_service() 221 static void bfq_inc_active_entities(struct bfq_entity *entity) in bfq_inc_active_entities() argument 223 struct bfq_sched_data *sd = entity->sched_data; in bfq_inc_active_entities() 230 static void bfq_dec_active_entities(struct bfq_entity *entity) in bfq_dec_active_entities() argument 232 struct bfq_sched_data *sd = entity->sched_data; in bfq_dec_active_entities() 246 static bool bfq_no_longer_next_in_service(struct bfq_entity *entity) in bfq_no_longer_next_in_service() argument [all …]
|
| H A D | bfq-cgroup.c | 324 struct bfq_entity *group_entity = bfqq->entity.parent; in bfqq_group() 327 entity) : in bfqq_group() 438 void bfq_init_entity(struct bfq_entity *entity, struct bfq_group *bfqg) in bfq_init_entity() argument 440 struct bfq_queue *bfqq = bfq_entity_to_bfqq(entity); in bfq_init_entity() 442 entity->weight = entity->new_weight; in bfq_init_entity() 443 entity->orig_weight = entity->new_weight; in bfq_init_entity() 453 entity->parent = bfqg->my_entity; /* NULL for root group */ in bfq_init_entity() 454 entity->sched_data = &bfqg->sched_data; in bfq_init_entity() 536 struct bfq_entity *entity = &bfqg->entity; in bfq_pd_init() local 539 entity->orig_weight = entity->weight = entity->new_weight = d->weight; in bfq_pd_init() [all …]
|
| H A D | bfq-iosched.h | 288 struct bfq_entity entity; member 1008 struct bfq_entity entity; member 1028 struct bfq_entity entity; member 1084 void bfq_init_entity(struct bfq_entity *entity, struct bfq_group *bfqg); 1105 #define for_each_entity(entity) \ argument 1106 for (; entity ; entity = entity->parent) 1114 #define for_each_entity_safe(entity, parent) \ argument 1115 for (; entity && ({ parent = entity->parent; 1; }); entity = parent) 1123 #define for_each_entity(entity) \ argument 1124 for (; entity ; entity = NULL) [all …]
|
| H A D | bfq-iosched.c | 586 struct bfq_entity *entity; in bfqq_request_over_limit() local 599 entity = &bfqq->entity; in bfqq_request_over_limit() 600 if (!entity->on_st_or_in_serv) in bfqq_request_over_limit() 616 sched_data = entity->sched_data; in bfqq_request_over_limit() 619 for_each_entity(entity) { in bfqq_request_over_limit() 625 if (!entity->on_st_or_in_serv) in bfqq_request_over_limit() 630 entities[level++] = entity; in bfqq_request_over_limit() 634 entity = entities[level]; in bfqq_request_over_limit() 636 wsum = bfq_entity_service_tree(entity)->wsum; in bfqq_request_over_limit() 654 limit = DIV_ROUND_CLOSEST(limit * entity->weight, wsum); in bfqq_request_over_limit() [all …]
|
| /linux/sound/soc/sdca/ |
| H A D | sdca_asoc.c | 36 static bool exported_control(struct sdca_entity *entity, struct sdca_control *control) in exported_control() argument 38 switch (SDCA_CTL_TYPE(entity->type, control->sel)) { in exported_control() 54 static int ge_count_routes(struct sdca_entity *entity) in ge_count_routes() argument 59 for (i = 0; i < entity->ge.num_modes; i++) { in ge_count_routes() 60 struct sdca_ge_mode *mode = &entity->ge.modes[i]; in ge_count_routes() 105 struct sdca_entity *entity = &function->entities[i]; in sdca_asoc_count_component() local 109 switch (entity->type) { in sdca_asoc_count_component() 112 *num_routes += !!entity->iot.clock; in sdca_asoc_count_component() 113 *num_routes += !!entity->iot.is_dataport; in sdca_asoc_count_component() 114 *num_controls += !entity->iot.is_dataport; in sdca_asoc_count_component() [all …]
|
| H A D | sdca_ump.c | 32 struct sdca_entity *entity, in sdca_ump_get_owner_host() argument 38 reg = SDW_SDCA_CTL(function->desc->adr, entity->id, control->sel, 0); in sdca_ump_get_owner_host() 42 entity->label, ret); in sdca_ump_get_owner_host() 47 dev_err(dev, "%s: host is not the UMP owner\n", entity->label); in sdca_ump_get_owner_host() 68 struct sdca_entity *entity, in sdca_ump_set_owner_device() argument 74 reg = SDW_SDCA_CTL(function->desc->adr, entity->id, control->sel, 0); in sdca_ump_set_owner_device() 78 entity->label, ret); in sdca_ump_set_owner_device() 110 struct sdca_entity *entity, in sdca_ump_read_message() argument 120 reg = SDW_SDCA_CTL(function->desc->adr, entity->id, offset_sel, 0); in sdca_ump_read_message() 124 entity->label, ret); in sdca_ump_read_message() [all …]
|
| H A D | sdca_regmap.c | 33 entity_find_control(struct sdca_entity *entity, unsigned int reg) in entity_find_control() argument 37 for (i = 0; i < entity->num_controls; i++) { in entity_find_control() 38 if (SDW_SDCA_CTL_CSEL(reg) == entity->controls[i].sel) in entity_find_control() 39 return &entity->controls[i]; in entity_find_control() 48 struct sdca_entity *entity; in function_find_control() local 50 entity = function_find_entity(function, reg); in function_find_control() 51 if (!entity) in function_find_control() 54 return entity_find_control(entity, reg); in function_find_control() 218 struct sdca_entity *entity = &function->entities[i]; in sdca_regmap_count_constants() 220 for (j = 0; j < entity in sdca_regmap_count_constants() 225 struct sdca_entity *entity = &function->entities[i]; sdca_regmap_count_constants() local 259 struct sdca_entity *entity = &function->entities[i]; sdca_regmap_populate_constants() local 304 struct sdca_entity *entity = &function->entities[i]; sdca_regmap_write_defaults() local [all...] |
| H A D | sdca_functions.c | 255 const struct sdca_entity *entity, in find_sdca_control_label() argument 258 switch (SDCA_CTL_TYPE(entity->type, control->sel)) { in find_sdca_control_label() 548 static unsigned int find_sdca_control_bits(const struct sdca_entity *entity, in find_sdca_control_bits() argument 551 switch (SDCA_CTL_TYPE(entity->type, control->sel)) { in find_sdca_control_bits() 617 find_sdca_control_datatype(const struct sdca_entity *entity, in find_sdca_control_datatype() argument 620 switch (SDCA_CTL_TYPE(entity->type, control->sel)) { in find_sdca_control_datatype() 788 static bool find_sdca_control_volatile(const struct sdca_entity *entity, in find_sdca_control_volatile() argument 802 switch (SDCA_CTL_TYPE(entity->type, control->sel)) { in find_sdca_control_volatile() 884 static int find_sdca_control_value(struct device *dev, struct sdca_entity *entity, in find_sdca_control_value() argument 921 static int find_sdca_control_reset(const struct sdca_entity *entity, in find_sdca_control_reset() argument [all …]
|
| H A D | sdca_hid.c | 157 interrupt->function, interrupt->entity, 164 interrupt->function, interrupt->entity, 171 interrupt->function, interrupt->entity, 23 struct sdca_entity *entity = hid->driver_data; sdwhid_parse() local 85 sdca_add_hid_device(struct device * dev,struct sdca_entity * entity) sdca_add_hid_device() argument
|
| H A D | sdca_jack.c | 50 reg = SDW_SDCA_CTL(interrupt->function->desc->adr, interrupt->entity->id, in sdca_jack_process() 59 reg = SDW_SDCA_CTL(interrupt->function->desc->adr, interrupt->entity->id, in sdca_jack_process() 144 interrupt->entity->label, in sdca_jack_init_state() 203 struct sdca_entity *entity = interrupt->entity; in sdca_jack_set_jack() local 210 switch (SDCA_CTL_TYPE(entity->type, control->sel)) { in sdca_jack_set_jack() 212 range = sdca_selector_find_range(interrupt->dev, entity, in sdca_jack_set_jack() 252 reg = SDW_SDCA_CTL(interrupt->function->desc->adr, interrupt->entity->id, in sdca_jack_report() 261 range = sdca_selector_find_range(interrupt->dev, interrupt->entity, in sdca_jack_report()
|
| /linux/drivers/media/mc/ |
| H A D | mc-entity.c | 123 pad->entity->name, pad->index); in dev_dbg_obj() 194 int media_entity_pads_init(struct media_entity *entity, u16 num_pads, in media_entity_pads_init() argument 197 struct media_device *mdev = entity->graph_obj.mdev; in media_entity_pads_init() 205 entity->num_pads = num_pads; in media_entity_pads_init() 206 entity->pads = pads; in media_entity_pads_init() 211 media_entity_for_each_pad(entity, iter) { in media_entity_pads_init() 212 iter->entity = entity; in media_entity_pads_init() 227 media_entity_for_each_pad(entity, iter) in media_entity_pads_init() 266 static bool media_entity_has_pad_interdep(struct media_entity *entity, in media_entity_has_pad_interdep() argument 269 if (pad0 >= entity->num_pads || pad1 >= entity->num_pads) in media_entity_has_pad_interdep() [all …]
|
| H A D | mc-device.c | 83 struct media_entity *entity; in find_entity() local 88 media_device_for_each_entity(entity, mdev) { in find_entity() 89 if (((media_entity_id(entity) == id) && !next) || in find_entity() 90 ((media_entity_id(entity) > id) && next)) { in find_entity() 91 return entity; in find_entity() 146 upad->entity = media_entity_id(kpad->entity); in media_device_kpad_to_upad() 154 struct media_entity *entity; in media_device_enum_links() local 156 entity = find_entity(mdev, links->entity); in media_device_enum_links() 157 if (entity == NULL) in media_device_enum_links() 163 for (p = 0; p < entity->num_pads; p++) { in media_device_enum_links() [all …]
|
| /linux/drivers/staging/media/imx/ |
| H A D | imx-media-dev-common.c | 55 struct media_entity *entity = srcpad->entity; in imx_media_add_vdev_to_pad() local 63 if (!is_media_entity_v4l2_subdev(entity)) in imx_media_add_vdev_to_pad() 66 sd = media_entity_to_v4l2_subdev(entity); in imx_media_add_vdev_to_pad() 71 entity->name, srcpad->index); in imx_media_add_vdev_to_pad() 86 vdev->vfd->entity.name, entity->name, srcpad->index); in imx_media_add_vdev_to_pad() 97 for (i = 0; i < entity->num_pads; i++) { in imx_media_add_vdev_to_pad() 98 struct media_pad *pad = &entity->pads[i]; in imx_media_add_vdev_to_pad() 103 list_for_each_entry(link, &entity->links, list) { in imx_media_add_vdev_to_pad() 124 struct media_entity *entity; in imx_media_alloc_pad_vdev_lists() local 129 entity = &sd->entity; in imx_media_alloc_pad_vdev_lists() [all …]
|
| /linux/drivers/media/usb/au0828/ |
| H A D | au0828-core.c | 216 struct media_entity *entity, *mixer = NULL, *decoder = NULL; in au0828_media_graph_notify() local 224 media_device_for_each_entity(entity, dev->media_dev) { in au0828_media_graph_notify() 225 if (entity->function == MEDIA_ENT_F_AUDIO_MIXER) in au0828_media_graph_notify() 226 mixer = entity; in au0828_media_graph_notify() 227 else if (entity->function == MEDIA_ENT_F_ATV_DECODER) in au0828_media_graph_notify() 228 decoder = entity; in au0828_media_graph_notify() 241 media_device_for_each_entity(entity, dev->media_dev) { in au0828_media_graph_notify() 242 if (entity->function == MEDIA_ENT_F_AUDIO_MIXER) in au0828_media_graph_notify() 243 mixer = entity; in au0828_media_graph_notify() 266 struct media_entity *entity) in au0828_is_link_shareable() argument [all …]
|
| /linux/drivers/media/dvb-core/ |
| H A D | dvbdev.c | 210 if (dvbdev->entity) { in dvb_media_device_free() 211 media_device_unregister_entity(dvbdev->entity); in dvb_media_device_free() 212 kfree(dvbdev->entity); in dvb_media_device_free() 214 dvbdev->entity = NULL; in dvb_media_device_free() 266 struct media_entity *entity = &dvbdev->tsout_entity[i]; in dvb_create_tsout_entity() local 269 entity->name = kasprintf(GFP_KERNEL, "%s #%d", name, i); in dvb_create_tsout_entity() 270 if (!entity->name) in dvb_create_tsout_entity() 273 entity->function = MEDIA_ENT_F_IO_DTV; in dvb_create_tsout_entity() 276 ret = media_entity_pads_init(entity, 1, pads); in dvb_create_tsout_entity() 281 entity); in dvb_create_tsout_entity() [all …]
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_ctx.c | 33 container_of((e), struct amdgpu_ctx_entity, entity) 209 struct amdgpu_ctx_entity *entity; in amdgpu_ctx_init_entity() local 215 entity = kzalloc_flex(*entity, fences, amdgpu_sched_jobs); in amdgpu_ctx_init_entity() 216 if (!entity) in amdgpu_ctx_init_entity() 221 entity->hw_ip = hw_ip; in amdgpu_ctx_init_entity() 222 entity->sequence = 1; in amdgpu_ctx_init_entity() 257 r = drm_sched_entity_init(&entity->entity, drm_prio, scheds, num_scheds, in amdgpu_ctx_init_entity() 263 if (cmpxchg(&ctx->entities[hw_ip][ring], NULL, entity)) in amdgpu_ctx_init_entity() 269 drm_sched_entity_fini(&entity->entity); in amdgpu_ctx_init_entity() 272 kfree(entity); in amdgpu_ctx_init_entity() [all …]
|
| /linux/drivers/media/platform/ti/omap3isp/ |
| H A D | isp.c | 545 pipe = to_isp_pipeline(&isp->isp_ccp2.subdev.entity); in isp_isr_sbl() 551 pipe = to_isp_pipeline(&isp->isp_csi2a.subdev.entity); in isp_isr_sbl() 557 pipe = to_isp_pipeline(&isp->isp_ccdc.subdev.entity); in isp_isr_sbl() 563 pipe = to_isp_pipeline(&isp->isp_prev.subdev.entity); in isp_isr_sbl() 572 pipe = to_isp_pipeline(&isp->isp_res.subdev.entity); in isp_isr_sbl() 675 struct media_entity *entity; in isp_pipeline_enable() local 697 entity = &pipe->output->video.entity; in isp_pipeline_enable() 699 pad = &entity->pads[0]; in isp_pipeline_enable() 704 if (!pad || !is_media_entity_v4l2_subdev(pad->entity)) in isp_pipeline_enable() 707 entity = pad->entity; in isp_pipeline_enable() [all …]
|
| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_submitqueue.c | 82 if (queue->entity == &queue->_vm_bind_entity[0]) in msm_submitqueue_destroy() 83 drm_sched_entity_destroy(queue->entity); in msm_submitqueue_destroy() 122 if (queue->entity == &queue->_vm_bind_entity[0]) in msm_submitqueue_close() 123 drm_sched_entity_flush(queue->entity, MAX_WAIT_SCHED_ENTITY_Q_EMPTY); in msm_submitqueue_close() 150 struct drm_sched_entity *entity; in get_sched_entity() local 154 entity = kzalloc_obj(*ctx->entities[idx]); in get_sched_entity() 156 ret = drm_sched_entity_init(entity, sched_prio, &sched, 1, NULL); in get_sched_entity() 159 kfree(entity); in get_sched_entity() 163 ctx->entities[idx] = entity; in get_sched_entity() 228 queue->entity = &queue->_vm_bind_entity[0]; in msm_submitqueue_create() [all …]
|
| /linux/Documentation/driver-api/media/ |
| H A D | mc-core.rst | 21 An entity is a basic media hardware building block. It can correspond to 27 A pad is a connection endpoint through which an entity can interact with 28 other entities. Data (not restricted to video) produced by an entity 29 flows from the entity's output to one or more entity inputs. Pads should 33 on the same entity or on different entities. Data flows from a source 60 instance, defined in ``include/media/media-entity.h``. The structure is usually 65 Drivers initialize entity pads by calling 78 ``include/media/media-entity.h``. Currently, only one type of interface is 90 defined in ``include/media/media-entity.h``. Each entity stores its pads in 91 a pads array managed by the entity driver. Drivers usually embed the array in [all …]
|
| /linux/Documentation/userspace-api/media/mediactl/ |
| H A D | media-ioc-enum-links.rst | 13 MEDIA_IOC_ENUM_LINKS - Enumerate all pads and links for a given entity 34 To enumerate pads and/or links for a given entity, applications set the 35 entity field of a struct :c:type:`media_links_enum` 43 with information about the entity's pads. The array must have enough 44 room to store all the entity's pads. The number of pads can be retrieved 48 with information about the entity's outbound links. The array must have 49 enough room to store all the entity's outbound links. The number of 52 Only forward links that originate at one of the entity's source pads are 65 - ``entity`` 93 - ``entity`` [all …]
|
| /linux/drivers/media/platform/samsung/exynos4-is/ |
| H A D | common.c | 17 struct v4l2_subdev *fimc_find_remote_sensor(struct media_entity *entity) in fimc_find_remote_sensor() argument 19 struct media_pad *pad = &entity->pads[0]; in fimc_find_remote_sensor() 25 if (!pad || !is_media_entity_v4l2_subdev(pad->entity)) in fimc_find_remote_sensor() 28 sd = media_entity_to_v4l2_subdev(pad->entity); in fimc_find_remote_sensor() 34 pad = &sd->entity.pads[0]; in fimc_find_remote_sensor()
|
| /linux/drivers/media/platform/microchip/ |
| H A D | microchip-isc-scaler.c | 200 isc->scaler_sd.entity.function = MEDIA_ENT_F_PROC_VIDEO_SCALER; in isc_scaler_init() 201 isc->scaler_sd.entity.ops = &isc_scaler_entity_ops; in isc_scaler_init() 214 ret = media_entity_pads_init(&isc->scaler_sd.entity, in isc_scaler_init() 236 ret = media_create_pad_link(&isc->current_subdev->sd->entity, in isc_scaler_link() 237 isc->remote_pad, &isc->scaler_sd.entity, in isc_scaler_link() 244 isc->current_subdev->sd->entity.name, in isc_scaler_link() 245 isc->scaler_sd.entity.name); in isc_scaler_link() 252 ret = media_create_pad_link(&isc->scaler_sd.entity, in isc_scaler_link() 254 &isc->video_dev.entity, ISC_PAD_SINK, in isc_scaler_link() 260 isc->scaler_sd.entity.name, in isc_scaler_link() [all …]
|
| /linux/drivers/media/test-drivers/vimc/ |
| H A D | vimc-common.c | 243 if (is_media_entity_v4l2_subdev(pad->entity)) { in vimc_get_pix_format() 245 media_entity_to_v4l2_subdev(pad->entity); in vimc_get_pix_format() 260 } else if (is_media_entity_v4l2_video_device(pad->entity)) { in vimc_get_pix_format() 261 struct video_device *vdev = container_of(pad->entity, in vimc_get_pix_format() 263 entity); in vimc_get_pix_format() 294 link->source->entity->name, in vimc_vdev_link_validate() 300 link->sink->entity->name, in vimc_vdev_link_validate() 369 ved->ent = &sd->entity; in vimc_ent_sd_register() 374 sd->entity.function = function; in vimc_ent_sd_register() 375 sd->entity.ops = &vimc_ent_sd_mops; in vimc_ent_sd_register() [all …]
|