staging: vc04_services: Drop VCHIQ_SUCCESS usage
authorUmang Jain <umang.jain@ideasonboard.com>
Fri, 23 Dec 2022 12:23:59 +0000 (17:53 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Jan 2023 18:22:11 +0000 (19:22 +0100)
Drop the usage of VCHIQ_SUCCESS vchiq_status enum type. Replace it with
0 to report the success status.

This patch acts as intermediatory to address the TODO item:
* Get rid of custom function return values
for vc04_services/interface.

Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/20221223122404.170585-3-umang.jain@ideasonboard.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c

index 0fd92af..d74110c 100644 (file)
@@ -101,7 +101,7 @@ static int audio_vchi_callback(struct vchiq_instance *vchiq_instance,
        struct vc_audio_msg *m;
 
        if (reason != VCHIQ_MESSAGE_AVAILABLE)
-               return VCHIQ_SUCCESS;
+               return 0;
 
        m = (void *)header->data;
        if (m->type == VC_AUDIO_MSG_TYPE_RESULT) {
@@ -119,7 +119,7 @@ static int audio_vchi_callback(struct vchiq_instance *vchiq_instance,
        }
 
        vchiq_release_message(vchiq_instance, instance->service_handle, header);
-       return VCHIQ_SUCCESS;
+       return 0;
 }
 
 static int
index 71f4cb5..52c513e 100644 (file)
@@ -19,7 +19,6 @@ enum vchiq_reason {
 
 enum vchiq_status {
        VCHIQ_ERROR   = -1,
-       VCHIQ_SUCCESS = 0,
        VCHIQ_RETRY   = 1
 };
 
index fa92c34..6e4e172 100644 (file)
@@ -724,7 +724,7 @@ void free_bulk_waiter(struct vchiq_instance *instance)
 
 int vchiq_shutdown(struct vchiq_instance *instance)
 {
-       enum vchiq_status status = VCHIQ_SUCCESS;
+       int status = 0;
        struct vchiq_state *state = instance->state;
 
        if (mutex_lock_killable(&state->mutex))
@@ -761,7 +761,7 @@ int vchiq_connect(struct vchiq_instance *instance)
        }
        status = vchiq_connect_internal(state, instance);
 
-       if (status == VCHIQ_SUCCESS)
+       if (!status)
                instance->connected = 1;
 
        mutex_unlock(&state->mutex);
@@ -793,7 +793,7 @@ vchiq_add_service(struct vchiq_instance *instance,
 
        if (service) {
                *phandle = service->handle;
-               status = VCHIQ_SUCCESS;
+               status = 0;
        } else {
                status = VCHIQ_ERROR;
        }
@@ -822,7 +822,7 @@ vchiq_open_service(struct vchiq_instance *instance,
        if (service) {
                *phandle = service->handle;
                status = vchiq_open_service_internal(service, current->pid);
-               if (status != VCHIQ_SUCCESS) {
+               if (status) {
                        vchiq_remove_service(instance, service->handle);
                        *phandle = VCHIQ_SERVICE_HANDLE_INVALID;
                }
@@ -1004,7 +1004,7 @@ add_completion(struct vchiq_instance *instance, enum vchiq_reason reason,
                        return VCHIQ_RETRY;
                } else if (instance->closing) {
                        vchiq_log_info(vchiq_arm_log_level, "service_callback closing");
-                       return VCHIQ_SUCCESS;
+                       return 0;
                }
                DEBUG_TRACE(SERVICE_CALLBACK_LINE);
        }
@@ -1041,7 +1041,7 @@ add_completion(struct vchiq_instance *instance, enum vchiq_reason reason,
 
        complete(&instance->insert_event);
 
-       return VCHIQ_SUCCESS;
+       return 0;
 }
 
 int
@@ -1066,14 +1066,14 @@ service_callback(struct vchiq_instance *instance, enum vchiq_reason reason,
        service = handle_to_service(instance, handle);
        if (WARN_ON(!service)) {
                rcu_read_unlock();
-               return VCHIQ_SUCCESS;
+               return 0;
        }
 
        user_service = (struct user_service *)service->base.userdata;
 
        if (!instance || instance->closing) {
                rcu_read_unlock();
-               return VCHIQ_SUCCESS;
+               return 0;
        }
 
        /*
@@ -1110,7 +1110,7 @@ service_callback(struct vchiq_instance *instance, enum vchiq_reason reason,
                                DEBUG_TRACE(SERVICE_CALLBACK_LINE);
                                status = add_completion(instance, reason, NULL, user_service,
                                                        bulk_userdata);
-                               if (status != VCHIQ_SUCCESS) {
+                               if (status) {
                                        DEBUG_TRACE(SERVICE_CALLBACK_LINE);
                                        vchiq_service_put(service);
                                        return status;
@@ -1158,7 +1158,7 @@ service_callback(struct vchiq_instance *instance, enum vchiq_reason reason,
        vchiq_service_put(service);
 
        if (skip_completion)
-               return VCHIQ_SUCCESS;
+               return 0;
 
        return add_completion(instance, reason, header, user_service,
                bulk_userdata);
@@ -1350,14 +1350,14 @@ vchiq_keepalive_thread_func(void *v)
        }
 
        status = vchiq_connect(instance);
-       if (status != VCHIQ_SUCCESS) {
+       if (status) {
                vchiq_log_error(vchiq_susp_log_level, "%s vchiq_connect failed %d", __func__,
                                status);
                goto shutdown;
        }
 
        status = vchiq_add_service(instance, &params, &ka_handle);
-       if (status != VCHIQ_SUCCESS) {
+       if (status) {
                vchiq_log_error(vchiq_susp_log_level, "%s vchiq_open_service failed %d", __func__,
                                status);
                goto shutdown;
@@ -1386,14 +1386,14 @@ vchiq_keepalive_thread_func(void *v)
                while (uc--) {
                        atomic_inc(&arm_state->ka_use_ack_count);
                        status = vchiq_use_service(instance, ka_handle);
-                       if (status != VCHIQ_SUCCESS) {
+                       if (status) {
                                vchiq_log_error(vchiq_susp_log_level,
                                                "%s vchiq_use_service error %d", __func__, status);
                        }
                }
                while (rc--) {
                        status = vchiq_release_service(instance, ka_handle);
-                       if (status != VCHIQ_SUCCESS) {
+                       if (status) {
                                vchiq_log_error(vchiq_susp_log_level,
                                                "%s vchiq_release_service error %d", __func__,
                                                status);
@@ -1446,13 +1446,13 @@ vchiq_use_internal(struct vchiq_state *state, struct vchiq_service *service,
        write_unlock_bh(&arm_state->susp_res_lock);
 
        if (!ret) {
-               enum vchiq_status status = VCHIQ_SUCCESS;
+               int status = 0;
                long ack_cnt = atomic_xchg(&arm_state->ka_use_ack_count, 0);
 
-               while (ack_cnt && (status == VCHIQ_SUCCESS)) {
+               while (ack_cnt && !status) {
                        /* Send the use notify to videocore */
                        status = vchiq_send_remote_use_active(state);
-                       if (status == VCHIQ_SUCCESS)
+                       if (!status)
                                ack_cnt--;
                        else
                                atomic_add(ack_cnt, &arm_state->ka_use_ack_count);
@@ -1708,7 +1708,7 @@ vchiq_check_service(struct vchiq_service *service)
 
        read_lock_bh(&arm_state->susp_res_lock);
        if (service->service_use_count)
-               ret = VCHIQ_SUCCESS;
+               ret = 0;
        read_unlock_bh(&arm_state->susp_res_lock);
 
        if (ret == VCHIQ_ERROR) {
index e1502ff..aaca92d 100644 (file)
@@ -478,7 +478,7 @@ make_service_callback(struct vchiq_service *service, enum vchiq_reason reason,
                vchiq_log_warning(vchiq_core_log_level,
                                  "%d: ignoring ERROR from callback to service %x",
                                  service->state->id, service->handle);
-               status = VCHIQ_SUCCESS;
+               status = 0;
        }
 
        if (reason != VCHIQ_MESSAGE_AVAILABLE)
@@ -1145,7 +1145,7 @@ queue_message(struct vchiq_state *state, struct vchiq_service *service,
 
        remote_event_signal(&state->remote->trigger);
 
-       return VCHIQ_SUCCESS;
+       return 0;
 }
 
 /* Called by the slot handler and application threads */
@@ -1233,7 +1233,7 @@ queue_message_sync(struct vchiq_state *state, struct vchiq_service *service,
        if (VCHIQ_MSG_TYPE(msgid) != VCHIQ_MSG_PAUSE)
                mutex_unlock(&state->sync_mutex);
 
-       return VCHIQ_SUCCESS;
+       return 0;
 }
 
 static inline void
@@ -1313,7 +1313,7 @@ static int
 notify_bulks(struct vchiq_service *service, struct vchiq_bulk_queue *queue,
             int retry_poll)
 {
-       enum vchiq_status status = VCHIQ_SUCCESS;
+       int status = 0;
 
        vchiq_log_trace(vchiq_core_log_level, "%d: nb:%d %cx - p=%x rn=%x r=%x", service->state->id,
                        service->localport, (queue == &service->bulk_tx) ? 't' : 'r',
@@ -1367,7 +1367,7 @@ notify_bulks(struct vchiq_service *service, struct vchiq_bulk_queue *queue,
                complete(&service->bulk_remove_event);
        }
        if (!retry_poll)
-               status = VCHIQ_SUCCESS;
+               status = 0;
 
        if (status == VCHIQ_RETRY)
                request_poll(service->state, service, (queue == &service->bulk_tx) ?
@@ -1408,13 +1408,12 @@ poll_services_of_group(struct vchiq_state *state, int group)
                         */
                        service->public_fourcc = VCHIQ_FOURCC_INVALID;
 
-                       if (vchiq_close_service_internal(service, NO_CLOSE_RECVD) !=
-                                                        VCHIQ_SUCCESS)
+                       if (vchiq_close_service_internal(service, NO_CLOSE_RECVD))
                                request_poll(state, service, VCHIQ_POLL_REMOVE);
                } else if (service_flags & BIT(VCHIQ_POLL_TERMINATE)) {
                        vchiq_log_info(vchiq_core_log_level, "%d: ps - terminate %d<->%d",
                                       state->id, service->localport, service->remoteport);
-                       if (vchiq_close_service_internal(service, NO_CLOSE_RECVD) != VCHIQ_SUCCESS)
+                       if (vchiq_close_service_internal(service, NO_CLOSE_RECVD))
                                request_poll(state, service, VCHIQ_POLL_TERMINATE);
                }
                if (service_flags & BIT(VCHIQ_POLL_TXNOTIFY))
@@ -2505,7 +2504,7 @@ vchiq_open_service_internal(struct vchiq_service *service, int client_id)
                service->version,
                service->version_min
        };
-       enum vchiq_status status = VCHIQ_SUCCESS;
+       int status = 0;
 
        service->client_id = client_id;
        vchiq_use_service_internal(service);
@@ -2516,7 +2515,7 @@ vchiq_open_service_internal(struct vchiq_service *service, int client_id)
                               sizeof(payload),
                               QMFLAGS_IS_BLOCKING);
 
-       if (status != VCHIQ_SUCCESS)
+       if (status)
                return status;
 
        /* Wait for the ACK/NAK */
@@ -2612,11 +2611,11 @@ do_abort_bulks(struct vchiq_service *service)
        mutex_unlock(&service->bulk_mutex);
 
        status = notify_bulks(service, &service->bulk_tx, NO_RETRY_POLL);
-       if (status != VCHIQ_SUCCESS)
+       if (status)
                return 0;
 
        status = notify_bulks(service, &service->bulk_rx, NO_RETRY_POLL);
-       return (status == VCHIQ_SUCCESS);
+       return !status;
 }
 
 static int
@@ -2688,7 +2687,7 @@ int
 vchiq_close_service_internal(struct vchiq_service *service, int close_recvd)
 {
        struct vchiq_state *state = service->state;
-       enum vchiq_status status = VCHIQ_SUCCESS;
+       int status = 0;
        int is_server = (service->public_fourcc != VCHIQ_FOURCC_INVALID);
        int close_id = MAKE_CLOSE(service->localport,
                                  VCHIQ_MSG_DSTPORT(service->remoteport));
@@ -2740,11 +2739,11 @@ vchiq_close_service_internal(struct vchiq_service *service, int close_recvd)
 
                release_service_messages(service);
 
-               if (status == VCHIQ_SUCCESS)
+               if (!status)
                        status = queue_message(state, service, close_id, NULL,
                                               NULL, 0, QMFLAGS_NO_MUTEX_UNLOCK);
 
-               if (status != VCHIQ_SUCCESS) {
+               if (status) {
                        if (service->srvstate == VCHIQ_SRVSTATE_OPENSYNC)
                                mutex_unlock(&state->sync_mutex);
                        break;
@@ -2778,7 +2777,7 @@ vchiq_close_service_internal(struct vchiq_service *service, int close_recvd)
                        break;
                }
 
-               if (status == VCHIQ_SUCCESS)
+               if (!status)
                        status = close_service_complete(service, VCHIQ_SRVSTATE_CLOSERECVD);
                break;
 
@@ -2872,7 +2871,7 @@ vchiq_connect_internal(struct vchiq_state *state, struct vchiq_instance *instanc
                complete(&state->connect);
        }
 
-       return VCHIQ_SUCCESS;
+       return 0;
 }
 
 void
@@ -2894,7 +2893,7 @@ vchiq_close_service(struct vchiq_instance *instance, unsigned int handle)
 {
        /* Unregister the service */
        struct vchiq_service *service = find_service_by_handle(instance, handle);
-       enum vchiq_status status = VCHIQ_SUCCESS;
+       int status = 0;
 
        if (!service)
                return VCHIQ_ERROR;
@@ -2936,7 +2935,7 @@ vchiq_close_service(struct vchiq_instance *instance, unsigned int handle)
                                  srvstate_names[service->srvstate]);
        }
 
-       if ((status == VCHIQ_SUCCESS) &&
+       if (!status &&
            (service->srvstate != VCHIQ_SRVSTATE_FREE) &&
            (service->srvstate != VCHIQ_SRVSTATE_LISTENING))
                status = VCHIQ_ERROR;
@@ -2952,7 +2951,7 @@ vchiq_remove_service(struct vchiq_instance *instance, unsigned int handle)
 {
        /* Unregister the service */
        struct vchiq_service *service = find_service_by_handle(instance, handle);
-       enum vchiq_status status = VCHIQ_SUCCESS;
+       int status = 0;
 
        if (!service)
                return VCHIQ_ERROR;
@@ -2997,8 +2996,7 @@ vchiq_remove_service(struct vchiq_instance *instance, unsigned int handle)
                                  srvstate_names[service->srvstate]);
        }
 
-       if ((status == VCHIQ_SUCCESS) &&
-           (service->srvstate != VCHIQ_SRVSTATE_FREE))
+       if (!status && (service->srvstate != VCHIQ_SRVSTATE_FREE))
                status = VCHIQ_ERROR;
 
        vchiq_service_put(service);
@@ -3038,7 +3036,7 @@ int vchiq_bulk_transfer(struct vchiq_instance *instance, unsigned int handle,
        if (!offset && !uoffset)
                goto error_exit;
 
-       if (vchiq_check_service(service) != VCHIQ_SUCCESS)
+       if (vchiq_check_service(service))
                goto error_exit;
 
        switch (mode) {
@@ -3131,7 +3129,7 @@ int vchiq_bulk_transfer(struct vchiq_instance *instance, unsigned int handle,
                               QMFLAGS_IS_BLOCKING |
                               QMFLAGS_NO_MUTEX_LOCK |
                               QMFLAGS_NO_MUTEX_UNLOCK);
-       if (status != VCHIQ_SUCCESS)
+       if (status)
                goto unlock_both_error_exit;
 
        queue->local_insert++;
@@ -3146,7 +3144,7 @@ int vchiq_bulk_transfer(struct vchiq_instance *instance, unsigned int handle,
 waiting:
        vchiq_service_put(service);
 
-       status = VCHIQ_SUCCESS;
+       status = 0;
 
        if (bulk_waiter) {
                bulk_waiter->bulk = bulk;
@@ -3185,7 +3183,7 @@ vchiq_queue_message(struct vchiq_instance *instance, unsigned int handle,
        if (!service)
                goto error_exit;
 
-       if (vchiq_check_service(service) != VCHIQ_SUCCESS)
+       if (vchiq_check_service(service))
                goto error_exit;
 
        if (!size) {
@@ -3296,14 +3294,14 @@ vchiq_get_peer_version(struct vchiq_instance *instance, unsigned int handle, sho
        if (!service)
                goto exit;
 
-       if (vchiq_check_service(service) != VCHIQ_SUCCESS)
+       if (vchiq_check_service(service))
                goto exit;
 
        if (!peer_version)
                goto exit;
 
        *peer_version = service->peer_version;
-       status = VCHIQ_SUCCESS;
+       status = 0;
 
 exit:
        if (service)
index 7e29749..d9c4d55 100644 (file)
@@ -112,7 +112,7 @@ vchiq_ioc_queue_message(struct vchiq_instance *instance, unsigned int handle,
                        struct vchiq_element *elements, unsigned long count)
 {
        struct vchiq_io_copy_callback_context context;
-       enum vchiq_status status = VCHIQ_SUCCESS;
+       int status = 0;
        unsigned long i;
        size_t total_size = 0;
 
@@ -142,7 +142,7 @@ static int vchiq_ioc_create_service(struct vchiq_instance *instance,
 {
        struct user_service *user_service = NULL;
        struct vchiq_service *service;
-       enum vchiq_status status = VCHIQ_SUCCESS;
+       int status = 0;
        struct vchiq_service_params_kernel params;
        int srvstate;
 
@@ -190,7 +190,7 @@ static int vchiq_ioc_create_service(struct vchiq_instance *instance,
 
        if (args->is_open) {
                status = vchiq_open_service_internal(service, instance->pid);
-               if (status != VCHIQ_SUCCESS) {
+               if (status) {
                        vchiq_remove_service(instance, service->handle);
                        return (status == VCHIQ_RETRY) ?
                                -EINTR : -EIO;
@@ -577,7 +577,7 @@ static long
 vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 {
        struct vchiq_instance *instance = file->private_data;
-       enum vchiq_status status = VCHIQ_SUCCESS;
+       int status = 0;
        struct vchiq_service *service = NULL;
        long ret = 0;
        int i, rc;
@@ -598,12 +598,12 @@ vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                                                           instance, &i))) {
                        status = vchiq_remove_service(instance, service->handle);
                        vchiq_service_put(service);
-                       if (status != VCHIQ_SUCCESS)
+                       if (status)
                                break;
                }
                service = NULL;
 
-               if (status == VCHIQ_SUCCESS) {
+               if (!status) {
                        /* Wake the completion thread and ask it to exit */
                        instance->closing = 1;
                        complete(&instance->insert_event);
@@ -627,7 +627,7 @@ vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                status = vchiq_connect_internal(instance->state, instance);
                mutex_unlock(&instance->state->mutex);
 
-               if (status == VCHIQ_SUCCESS)
+               if (!status)
                        instance->connected = 1;
                else
                        vchiq_log_error(vchiq_arm_log_level,
@@ -675,7 +675,7 @@ vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                        status = (cmd == VCHIQ_IOC_CLOSE_SERVICE) ?
                                 vchiq_close_service(instance, service->handle) :
                                 vchiq_remove_service(instance, service->handle);
-                       if (status != VCHIQ_SUCCESS)
+                       if (status)
                                break;
                }
 
@@ -868,7 +868,7 @@ vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                        ret = -EINTR;
        }
 
-       if ((status == VCHIQ_SUCCESS) && (ret < 0) && (ret != -EINTR) && (ret != -EWOULDBLOCK))
+       if (!status && (ret < 0) && (ret != -EINTR) && (ret != -EWOULDBLOCK))
                vchiq_log_info(vchiq_arm_log_level,
                               "  ioctl instance %pK, cmd %s -> status %d, %ld",
                               instance, (_IOC_NR(cmd) <= VCHIQ_IOC_MAX) ?
index 0388818..6b5879a 100644 (file)
@@ -559,7 +559,7 @@ static int service_callback(struct vchiq_instance *vchiq_instance,
 
        if (!instance) {
                pr_err("Message callback passed NULL instance\n");
-               return VCHIQ_SUCCESS;
+               return 0;
        }
 
        switch (reason) {
@@ -643,7 +643,7 @@ static int service_callback(struct vchiq_instance *vchiq_instance,
                break;
        }
 
-       return VCHIQ_SUCCESS;
+       return 0;
 }
 
 static int send_synchronous_mmal_msg(struct vchiq_mmal_instance *instance,