Lines Matching full:service
102 * This use count is not associated with a service, so needs to be
454 struct vchiq_service *service = NULL; in vchiq_add_service() local
463 service = vchiq_add_service_internal(state, params, srvstate, instance, NULL); in vchiq_add_service()
465 if (service) { in vchiq_add_service()
466 *phandle = service->handle; in vchiq_add_service()
483 struct vchiq_service *service = NULL; in vchiq_open_service() local
491 service = vchiq_add_service_internal(state, params, VCHIQ_SRVSTATE_OPENING, instance, NULL); in vchiq_open_service()
493 if (service) { in vchiq_open_service()
494 *phandle = service->handle; in vchiq_open_service()
495 ret = vchiq_open_service_internal(service, current->pid); in vchiq_open_service()
497 vchiq_remove_service(instance, service->handle); in vchiq_open_service()
583 struct vchiq_service *service; in vchiq_blocking_bulk_transfer() local
587 service = find_service_by_handle(instance, handle); in vchiq_blocking_bulk_transfer()
588 if (!service) in vchiq_blocking_bulk_transfer()
591 vchiq_service_put(service); in vchiq_blocking_bulk_transfer()
615 spin_lock(&service->state->bulk_waiter_spinlock); in vchiq_blocking_bulk_transfer()
617 spin_unlock(&service->state->bulk_waiter_spinlock); in vchiq_blocking_bulk_transfer()
634 spin_lock(&service->state->bulk_waiter_spinlock); in vchiq_blocking_bulk_transfer()
636 spin_unlock(&service->state->bulk_waiter_spinlock); in vchiq_blocking_bulk_transfer()
683 completion->service_userdata = user_service->service; in add_completion()
692 vchiq_service_get(user_service->service); in add_completion()
716 enum vchiq_reason reason, struct vchiq_service *service, in service_single_message() argument
721 user_service = (struct user_service *)service->base.userdata; in service_single_message()
723 dev_dbg(service->state->dev, "arm: msg queue full\n"); in service_single_message()
764 struct vchiq_service *service; in service_callback() local
772 service = handle_to_service(instance, handle); in service_callback()
773 if (WARN_ON(!service)) { in service_callback()
778 user_service = (struct user_service *)service->base.userdata; in service_callback()
789 vchiq_service_get(service); in service_callback()
792 dev_dbg(service->state->dev, in service_callback()
793 "arm: service %p(%d,%p), reason %d, header %p, instance %p, cb_data %p, cb_userdata %p\n", in service_callback()
794 user_service, service->localport, user_service->userdata, in service_callback()
798 spin_lock(&service->state->msg_queue_spinlock); in service_callback()
803 spin_unlock(&service->state->msg_queue_spinlock); in service_callback()
807 ret = service_single_message(instance, reason, service, in service_callback()
811 vchiq_service_put(service); in service_callback()
815 spin_lock(&service->state->msg_queue_spinlock); in service_callback()
834 spin_unlock(&service->state->msg_queue_spinlock); in service_callback()
840 vchiq_service_put(service); in service_callback()
863 struct vchiq_service *service; in vchiq_dump_platform_instances() local
866 service = rcu_dereference(state->services[i]); in vchiq_dump_platform_instances()
867 if (!service || service->base.callback != service_callback) in vchiq_dump_platform_instances()
870 instance = service->instance; in vchiq_dump_platform_instances()
877 struct vchiq_service *service; in vchiq_dump_platform_instances() local
881 service = rcu_dereference(state->services[i]); in vchiq_dump_platform_instances()
882 if (!service || service->base.callback != service_callback) { in vchiq_dump_platform_instances()
887 instance = service->instance; in vchiq_dump_platform_instances()
906 struct vchiq_service *service) in vchiq_dump_platform_service_state() argument
909 (struct user_service *)service->base.userdata; in vchiq_dump_platform_service_state()
911 seq_printf(f, " instance %pK", service->instance); in vchiq_dump_platform_service_state()
913 if ((service->base.callback == service_callback) && user_service->is_vchi) { in vchiq_dump_platform_service_state()
993 * Call use/release service the requisite number of times. in vchiq_keepalive_thread_func()
1020 vchiq_use_internal(struct vchiq_state *state, struct vchiq_service *service, in vchiq_use_internal() argument
1037 } else if (service) { in vchiq_use_internal()
1039 &service->base.fourcc, in vchiq_use_internal()
1040 service->client_id); in vchiq_use_internal()
1041 entity_uc = &service->service_use_count; in vchiq_use_internal()
1043 dev_err(state->dev, "suspend: %s: null service ptr\n", __func__); in vchiq_use_internal()
1077 vchiq_release_internal(struct vchiq_state *state, struct vchiq_service *service) in vchiq_release_internal() argument
1089 if (service) { in vchiq_release_internal()
1091 &service->base.fourcc, in vchiq_release_internal()
1092 service->client_id); in vchiq_release_internal()
1093 entity_uc = &service->service_use_count; in vchiq_release_internal()
1139 vchiq_use_service_internal(struct vchiq_service *service) in vchiq_use_service_internal() argument
1141 return vchiq_use_internal(service->state, service, USE_TYPE_SERVICE); in vchiq_use_service_internal()
1145 vchiq_release_service_internal(struct vchiq_service *service) in vchiq_release_service_internal() argument
1147 return vchiq_release_internal(service->state, service); in vchiq_release_service_internal()
1159 struct vchiq_service *service; in vchiq_instance_get_use_count() local
1164 while ((service = __next_service_by_instance(instance->state, in vchiq_instance_get_use_count()
1166 use_count += service->service_use_count; in vchiq_instance_get_use_count()
1186 struct vchiq_service *service; in vchiq_instance_set_trace() local
1191 while ((service = __next_service_by_instance(instance->state, in vchiq_instance_set_trace()
1193 service->trace = trace; in vchiq_instance_set_trace()
1202 struct vchiq_service *service = find_service_by_handle(instance, handle); in vchiq_use_service() local
1204 if (service) { in vchiq_use_service()
1205 ret = vchiq_use_internal(service->state, service, USE_TYPE_SERVICE); in vchiq_use_service()
1206 vchiq_service_put(service); in vchiq_use_service()
1216 struct vchiq_service *service = find_service_by_handle(instance, handle); in vchiq_release_service() local
1218 if (service) { in vchiq_release_service()
1219 ret = vchiq_release_internal(service->state, service); in vchiq_release_service()
1220 vchiq_service_put(service); in vchiq_release_service()
1296 "suspend: %p4cc:%d service count %d %s\n", in vchiq_dump_service_use_state()
1308 vchiq_check_service(struct vchiq_service *service) in vchiq_check_service() argument
1313 if (!service || !service->state) in vchiq_check_service()
1316 arm_state = vchiq_platform_get_arm_state(service->state); in vchiq_check_service()
1319 if (service->service_use_count) in vchiq_check_service()
1324 dev_err(service->state->dev, in vchiq_check_service()
1325 "suspend: %s: %p4cc:%d service count %d, state count %d\n", in vchiq_check_service()
1326 __func__, &service->base.fourcc, service->client_id, in vchiq_check_service()
1327 service->service_use_count, arm_state->videocore_use_count); in vchiq_check_service()
1328 vchiq_dump_service_use_state(service->state); in vchiq_check_service()