staging: vc04_services: Replace vchiq_status return type to int
authorUmang Jain <umang.jain@ideasonboard.com>
Fri, 23 Dec 2022 12:23:58 +0000 (17:53 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Jan 2023 18:22:11 +0000 (19:22 +0100)
Modify the functions' signature using enum vchiq_status to return int.
Currently, this patch only touches the function signatures and
in subsequent patches each vchiq_status enumerated value will be
replaced by a integer value.

This patch acts as an initial point 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-2-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_arm.h
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_ioctl.h
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c

index f4c2c95..0fd92af 100644 (file)
@@ -91,10 +91,10 @@ static int bcm2835_audio_send_simple(struct bcm2835_audio_instance *instance,
        return bcm2835_audio_send_msg(instance, &m, wait);
 }
 
-static enum vchiq_status audio_vchi_callback(struct vchiq_instance *vchiq_instance,
-                                            enum vchiq_reason reason,
-                                            struct vchiq_header *header,
-                                            unsigned int handle, void *userdata)
+static int audio_vchi_callback(struct vchiq_instance *vchiq_instance,
+                              enum vchiq_reason reason,
+                              struct vchiq_header *header,
+                              unsigned int handle, void *userdata)
 {
        struct bcm2835_audio_instance *instance = vchiq_get_service_userdata(vchiq_instance,
                                                                             handle);
index db1441c..71f4cb5 100644 (file)
@@ -57,11 +57,11 @@ struct vchiq_instance;
 
 struct vchiq_service_base {
        int fourcc;
-       enum vchiq_status (*callback)(struct vchiq_instance *instance,
-                                     enum vchiq_reason reason,
-                                     struct vchiq_header *header,
-                                     unsigned int handle,
-                                     void *bulk_userdata);
+       int (*callback)(struct vchiq_instance *instance,
+                       enum vchiq_reason reason,
+                       struct vchiq_header *header,
+                       unsigned int handle,
+                       void *bulk_userdata);
        void *userdata;
 };
 
@@ -74,11 +74,11 @@ struct vchiq_completion_data_kernel {
 
 struct vchiq_service_params_kernel {
        int fourcc;
-       enum vchiq_status (*callback)(struct vchiq_instance *instance,
-                                     enum vchiq_reason reason,
-                                     struct vchiq_header *header,
-                                     unsigned int handle,
-                                     void *bulk_userdata);
+       int (*callback)(struct vchiq_instance *instance,
+                       enum vchiq_reason reason,
+                       struct vchiq_header *header,
+                       unsigned int handle,
+                       void *bulk_userdata);
        void *userdata;
        short version;       /* Increment for non-trivial changes */
        short version_min;   /* Update for incompatible changes */
@@ -86,33 +86,32 @@ struct vchiq_service_params_kernel {
 
 struct vchiq_instance;
 
-extern enum vchiq_status vchiq_initialise(struct vchiq_instance **pinstance);
-extern enum vchiq_status vchiq_shutdown(struct vchiq_instance *instance);
-extern enum vchiq_status vchiq_connect(struct vchiq_instance *instance);
-extern enum vchiq_status vchiq_open_service(struct vchiq_instance *instance,
-       const struct vchiq_service_params_kernel *params,
-       unsigned int *pservice);
-extern enum vchiq_status vchiq_close_service(struct vchiq_instance *instance,
-                                            unsigned int service);
-extern enum vchiq_status vchiq_use_service(struct vchiq_instance *instance, unsigned int service);
-extern enum vchiq_status vchiq_release_service(struct vchiq_instance *instance,
-                                              unsigned int service);
+extern int vchiq_initialise(struct vchiq_instance **pinstance);
+extern int vchiq_shutdown(struct vchiq_instance *instance);
+extern int vchiq_connect(struct vchiq_instance *instance);
+extern int vchiq_open_service(struct vchiq_instance *instance,
+                             const struct vchiq_service_params_kernel *params,
+                             unsigned int *pservice);
+extern int vchiq_close_service(struct vchiq_instance *instance,
+                              unsigned int service);
+extern int vchiq_use_service(struct vchiq_instance *instance, unsigned int service);
+extern int vchiq_release_service(struct vchiq_instance *instance,
+                                unsigned int service);
 extern void vchiq_msg_queue_push(struct vchiq_instance *instance, unsigned int handle,
                                 struct vchiq_header *header);
 extern void vchiq_release_message(struct vchiq_instance *instance, unsigned int service,
                                  struct vchiq_header *header);
 extern int vchiq_queue_kernel_message(struct vchiq_instance *instance, unsigned int handle,
                                      void *data, unsigned int size);
-extern enum vchiq_status vchiq_bulk_transmit(struct vchiq_instance *instance, unsigned int service,
-                                            const void *data, unsigned int size, void *userdata,
-                                            enum vchiq_bulk_mode mode);
-extern enum vchiq_status vchiq_bulk_receive(struct vchiq_instance *instance, unsigned int service,
-                                           void *data, unsigned int size, void *userdata,
-                                           enum vchiq_bulk_mode mode);
+extern int vchiq_bulk_transmit(struct vchiq_instance *instance, unsigned int service,
+                              const void *data, unsigned int size, void *userdata,
+                              enum vchiq_bulk_mode mode);
+extern int vchiq_bulk_receive(struct vchiq_instance *instance, unsigned int service,
+                             void *data, unsigned int size, void *userdata,
+                             enum vchiq_bulk_mode mode);
 extern void *vchiq_get_service_userdata(struct vchiq_instance *instance, unsigned int service);
-extern enum vchiq_status vchiq_get_peer_version(struct vchiq_instance *instance,
-                                               unsigned int handle,
-                                               short *peer_version);
+extern int vchiq_get_peer_version(struct vchiq_instance *instance, unsigned int handle,
+                                 short *peer_version);
 extern struct vchiq_header *vchiq_msg_hold(struct vchiq_instance *instance, unsigned int handle);
 
 #endif /* VCHIQ_H */
index dc33490..fa92c34 100644 (file)
@@ -151,7 +151,7 @@ static struct semaphore g_free_fragments_sema;
 
 static DEFINE_SEMAPHORE(g_free_fragments_mutex);
 
-static enum vchiq_status
+static int
 vchiq_blocking_bulk_transfer(struct vchiq_instance *instance, unsigned int handle, void *data,
                             unsigned int size, enum vchiq_bulk_dir dir);
 
@@ -722,7 +722,7 @@ void free_bulk_waiter(struct vchiq_instance *instance)
        }
 }
 
-enum vchiq_status vchiq_shutdown(struct vchiq_instance *instance)
+int vchiq_shutdown(struct vchiq_instance *instance)
 {
        enum vchiq_status status = VCHIQ_SUCCESS;
        struct vchiq_state *state = instance->state;
@@ -749,7 +749,7 @@ static int vchiq_is_connected(struct vchiq_instance *instance)
        return instance->connected;
 }
 
-enum vchiq_status vchiq_connect(struct vchiq_instance *instance)
+int vchiq_connect(struct vchiq_instance *instance)
 {
        enum vchiq_status status;
        struct vchiq_state *state = instance->state;
@@ -773,7 +773,7 @@ failed:
 }
 EXPORT_SYMBOL(vchiq_connect);
 
-static enum vchiq_status
+static int
 vchiq_add_service(struct vchiq_instance *instance,
                  const struct vchiq_service_params_kernel *params,
                  unsigned int *phandle)
@@ -803,7 +803,7 @@ vchiq_add_service(struct vchiq_instance *instance,
        return status;
 }
 
-enum vchiq_status
+int
 vchiq_open_service(struct vchiq_instance *instance,
                   const struct vchiq_service_params_kernel *params,
                   unsigned int *phandle)
@@ -835,7 +835,7 @@ failed:
 }
 EXPORT_SYMBOL(vchiq_open_service);
 
-enum vchiq_status
+int
 vchiq_bulk_transmit(struct vchiq_instance *instance, unsigned int handle, const void *data,
                    unsigned int size, void *userdata, enum vchiq_bulk_mode mode)
 {
@@ -873,9 +873,9 @@ vchiq_bulk_transmit(struct vchiq_instance *instance, unsigned int handle, const
 }
 EXPORT_SYMBOL(vchiq_bulk_transmit);
 
-enum vchiq_status vchiq_bulk_receive(struct vchiq_instance *instance, unsigned int handle,
-                                    void *data, unsigned int size, void *userdata,
-                                    enum vchiq_bulk_mode mode)
+int vchiq_bulk_receive(struct vchiq_instance *instance, unsigned int handle,
+                      void *data, unsigned int size, void *userdata,
+                      enum vchiq_bulk_mode mode)
 {
        enum vchiq_status status;
 
@@ -910,7 +910,7 @@ enum vchiq_status vchiq_bulk_receive(struct vchiq_instance *instance, unsigned i
 }
 EXPORT_SYMBOL(vchiq_bulk_receive);
 
-static enum vchiq_status
+static int
 vchiq_blocking_bulk_transfer(struct vchiq_instance *instance, unsigned int handle, void *data,
                             unsigned int size, enum vchiq_bulk_dir dir)
 {
@@ -983,7 +983,7 @@ vchiq_blocking_bulk_transfer(struct vchiq_instance *instance, unsigned int handl
        return status;
 }
 
-static enum vchiq_status
+static int
 add_completion(struct vchiq_instance *instance, enum vchiq_reason reason,
               struct vchiq_header *header, struct user_service *user_service,
               void *bulk_userdata)
@@ -1044,7 +1044,7 @@ add_completion(struct vchiq_instance *instance, enum vchiq_reason reason,
        return VCHIQ_SUCCESS;
 }
 
-enum vchiq_status
+int
 service_callback(struct vchiq_instance *instance, enum vchiq_reason reason,
                 struct vchiq_header *header, unsigned int handle, void *bulk_userdata)
 {
@@ -1314,7 +1314,7 @@ vchiq_get_state(void)
  * Autosuspend related functionality
  */
 
-static enum vchiq_status
+static int
 vchiq_keepalive_vchiq_callback(struct vchiq_instance *instance,
                               enum vchiq_reason reason,
                               struct vchiq_header *header,
@@ -1587,7 +1587,7 @@ vchiq_instance_set_trace(struct vchiq_instance *instance, int trace)
        instance->trace = (trace != 0);
 }
 
-enum vchiq_status
+int
 vchiq_use_service(struct vchiq_instance *instance, unsigned int handle)
 {
        enum vchiq_status ret = VCHIQ_ERROR;
@@ -1601,7 +1601,7 @@ vchiq_use_service(struct vchiq_instance *instance, unsigned int handle)
 }
 EXPORT_SYMBOL(vchiq_use_service);
 
-enum vchiq_status
+int
 vchiq_release_service(struct vchiq_instance *instance, unsigned int handle)
 {
        enum vchiq_status ret = VCHIQ_ERROR;
@@ -1695,7 +1695,7 @@ vchiq_dump_service_use_state(struct vchiq_state *state)
        kfree(service_data);
 }
 
-enum vchiq_status
+int
 vchiq_check_service(struct vchiq_service *service)
 {
        struct vchiq_arm_state *arm_state;
index 2851ef6..2fb31f9 100644 (file)
@@ -85,13 +85,13 @@ extern struct vchiq_state g_state;
 extern struct vchiq_state *
 vchiq_get_state(void);
 
-enum vchiq_status
+int
 vchiq_use_service(struct vchiq_instance *instance, unsigned int handle);
 
-extern enum vchiq_status
+extern int
 vchiq_release_service(struct vchiq_instance *instance, unsigned int handle);
 
-extern enum vchiq_status
+extern int
 vchiq_check_service(struct vchiq_service *service);
 
 extern void
@@ -100,10 +100,10 @@ vchiq_dump_platform_use_state(struct vchiq_state *state);
 extern void
 vchiq_dump_service_use_state(struct vchiq_state *state);
 
-extern enum vchiq_status
+extern int
 vchiq_use_internal(struct vchiq_state *state, struct vchiq_service *service,
                   enum USE_TYPE_E use_type);
-extern enum vchiq_status
+extern int
 vchiq_release_internal(struct vchiq_state *state,
                       struct vchiq_service *service);
 
@@ -137,7 +137,7 @@ static inline int vchiq_register_chrdev(struct device *parent) { return 0; }
 
 #endif /* IS_ENABLED(CONFIG_VCHIQ_CDEV) */
 
-extern enum vchiq_status
+extern int
 service_callback(struct vchiq_instance *vchiq_instance, enum vchiq_reason reason,
                 struct vchiq_header *header, unsigned int handle, void *bulk_userdata);
 
index 2571a37..e1502ff 100644 (file)
@@ -463,7 +463,7 @@ mark_service_closing(struct vchiq_service *service)
        mark_service_closing_internal(service, 0);
 }
 
-static inline enum vchiq_status
+static inline int
 make_service_callback(struct vchiq_service *service, enum vchiq_reason reason,
                      struct vchiq_header *header, void *bulk_userdata)
 {
@@ -910,7 +910,7 @@ copy_message_data(ssize_t (*copy_callback)(void *context, void *dest, size_t off
 }
 
 /* Called by the slot handler and application threads */
-static enum vchiq_status
+static int
 queue_message(struct vchiq_state *state, struct vchiq_service *service,
              int msgid,
              ssize_t (*copy_callback)(void *context, void *dest,
@@ -1149,7 +1149,7 @@ queue_message(struct vchiq_state *state, struct vchiq_service *service,
 }
 
 /* Called by the slot handler and application threads */
-static enum vchiq_status
+static int
 queue_message_sync(struct vchiq_state *state, struct vchiq_service *service,
                   int msgid,
                   ssize_t (*copy_callback)(void *context, void *dest,
@@ -1309,7 +1309,7 @@ get_bulk_reason(struct vchiq_bulk *bulk)
 }
 
 /* Called by the slot handler - don't hold the bulk mutex */
-static enum vchiq_status
+static int
 notify_bulks(struct vchiq_service *service, struct vchiq_bulk_queue *queue,
             int retry_poll)
 {
@@ -2496,7 +2496,7 @@ vchiq_add_service_internal(struct vchiq_state *state,
        return service;
 }
 
-enum vchiq_status
+int
 vchiq_open_service_internal(struct vchiq_service *service, int client_id)
 {
        struct vchiq_open_payload payload = {
@@ -2619,7 +2619,7 @@ do_abort_bulks(struct vchiq_service *service)
        return (status == VCHIQ_SUCCESS);
 }
 
-static enum vchiq_status
+static int
 close_service_complete(struct vchiq_service *service, int failstate)
 {
        enum vchiq_status status;
@@ -2684,7 +2684,7 @@ close_service_complete(struct vchiq_service *service, int failstate)
 }
 
 /* Called by the slot handler */
-enum vchiq_status
+int
 vchiq_close_service_internal(struct vchiq_service *service, int close_recvd)
 {
        struct vchiq_state *state = service->state;
@@ -2842,7 +2842,7 @@ vchiq_free_service_internal(struct vchiq_service *service)
        vchiq_service_put(service);
 }
 
-enum vchiq_status
+int
 vchiq_connect_internal(struct vchiq_state *state, struct vchiq_instance *instance)
 {
        struct vchiq_service *service;
@@ -2889,7 +2889,7 @@ vchiq_shutdown_internal(struct vchiq_state *state, struct vchiq_instance *instan
        }
 }
 
-enum vchiq_status
+int
 vchiq_close_service(struct vchiq_instance *instance, unsigned int handle)
 {
        /* Unregister the service */
@@ -2947,7 +2947,7 @@ vchiq_close_service(struct vchiq_instance *instance, unsigned int handle)
 }
 EXPORT_SYMBOL(vchiq_close_service);
 
-enum vchiq_status
+int
 vchiq_remove_service(struct vchiq_instance *instance, unsigned int handle)
 {
        /* Unregister the service */
@@ -3014,9 +3014,9 @@ vchiq_remove_service(struct vchiq_instance *instance, unsigned int handle)
  * When called in blocking mode, the userdata field points to a bulk_waiter
  * structure.
  */
-enum vchiq_status vchiq_bulk_transfer(struct vchiq_instance *instance, unsigned int handle,
-                                     void *offset, void __user *uoffset, int size, void *userdata,
-                                     enum vchiq_bulk_mode mode, enum vchiq_bulk_dir dir)
+int vchiq_bulk_transfer(struct vchiq_instance *instance, unsigned int handle,
+                       void *offset, void __user *uoffset, int size, void *userdata,
+                       enum vchiq_bulk_mode mode, enum vchiq_bulk_dir dir)
 {
        struct vchiq_service *service = find_service_by_handle(instance, handle);
        struct vchiq_bulk_queue *queue;
@@ -3171,7 +3171,7 @@ error_exit:
        return status;
 }
 
-enum vchiq_status
+int
 vchiq_queue_message(struct vchiq_instance *instance, unsigned int handle,
                    ssize_t (*copy_callback)(void *context, void *dest,
                                             size_t offset, size_t maxsize),
@@ -3287,7 +3287,7 @@ release_message_sync(struct vchiq_state *state, struct vchiq_header *header)
        remote_event_signal(&state->remote->sync_release);
 }
 
-enum vchiq_status
+int
 vchiq_get_peer_version(struct vchiq_instance *instance, unsigned int handle, short *peer_version)
 {
        enum vchiq_status status = VCHIQ_ERROR;
@@ -3650,7 +3650,7 @@ vchiq_loud_error_footer(void)
                        "============================================================================");
 }
 
-enum vchiq_status vchiq_send_remote_use(struct vchiq_state *state)
+int vchiq_send_remote_use(struct vchiq_state *state)
 {
        if (state->conn_state == VCHIQ_CONNSTATE_DISCONNECTED)
                return VCHIQ_RETRY;
@@ -3658,7 +3658,7 @@ enum vchiq_status vchiq_send_remote_use(struct vchiq_state *state)
        return queue_message(state, NULL, MAKE_REMOTE_USE, NULL, NULL, 0, 0);
 }
 
-enum vchiq_status vchiq_send_remote_use_active(struct vchiq_state *state)
+int vchiq_send_remote_use_active(struct vchiq_state *state)
 {
        if (state->conn_state == VCHIQ_CONNSTATE_DISCONNECTED)
                return VCHIQ_RETRY;
index fd6c95e..3c198eb 100644 (file)
@@ -476,7 +476,7 @@ vchiq_init_slots(void *mem_base, int mem_size);
 extern int
 vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero, struct device *dev);
 
-extern enum vchiq_status
+extern int
 vchiq_connect_internal(struct vchiq_state *state, struct vchiq_instance *instance);
 
 struct vchiq_service *
@@ -485,10 +485,10 @@ vchiq_add_service_internal(struct vchiq_state *state,
                           int srvstate, struct vchiq_instance *instance,
                           void (*userdata_term)(void *userdata));
 
-extern enum vchiq_status
+extern int
 vchiq_open_service_internal(struct vchiq_service *service, int client_id);
 
-extern enum vchiq_status
+extern int
 vchiq_close_service_internal(struct vchiq_service *service, int close_recvd);
 
 extern void
@@ -503,7 +503,7 @@ vchiq_shutdown_internal(struct vchiq_state *state, struct vchiq_instance *instan
 extern void
 remote_event_pollall(struct vchiq_state *state);
 
-extern enum vchiq_status
+extern int
 vchiq_bulk_transfer(struct vchiq_instance *instance, unsigned int handle, void *offset,
                    void __user *uoffset, int size, void *userdata, enum vchiq_bulk_mode mode,
                    enum vchiq_bulk_dir dir);
@@ -554,7 +554,7 @@ vchiq_service_get(struct vchiq_service *service);
 extern void
 vchiq_service_put(struct vchiq_service *service);
 
-extern enum vchiq_status
+extern int
 vchiq_queue_message(struct vchiq_instance *instance, unsigned int handle,
                    ssize_t (*copy_callback)(void *context, void *dest,
                                             size_t offset, size_t maxsize),
@@ -586,13 +586,13 @@ void vchiq_on_remote_release(struct vchiq_state *state);
 
 int vchiq_platform_init_state(struct vchiq_state *state);
 
-enum vchiq_status vchiq_check_service(struct vchiq_service *service);
+int vchiq_check_service(struct vchiq_service *service);
 
 void vchiq_on_remote_use_active(struct vchiq_state *state);
 
-enum vchiq_status vchiq_send_remote_use(struct vchiq_state *state);
+int vchiq_send_remote_use(struct vchiq_state *state);
 
-enum vchiq_status vchiq_send_remote_use_active(struct vchiq_state *state);
+int vchiq_send_remote_use_active(struct vchiq_state *state);
 
 void vchiq_platform_conn_state_changed(struct vchiq_state *state,
                                       enum vchiq_connstate oldstate,
@@ -602,7 +602,7 @@ void vchiq_set_conn_state(struct vchiq_state *state, enum vchiq_connstate newsta
 
 void vchiq_log_dump_mem(const char *label, u32 addr, const void *void_mem, size_t num_bytes);
 
-enum vchiq_status vchiq_remove_service(struct vchiq_instance *instance, unsigned int service);
+int vchiq_remove_service(struct vchiq_instance *instance, unsigned int service);
 
 int vchiq_get_client_id(struct vchiq_instance *instance, unsigned int service);
 
index 86d77f2..96f50be 100644 (file)
 
 struct vchiq_service_params {
        int fourcc;
-       enum vchiq_status __user (*callback)(enum vchiq_reason reason,
-                                     struct vchiq_header *header,
-                                     unsigned int handle,
-                                     void *bulk_userdata);
+       int __user (*callback)(enum vchiq_reason reason,
+                              struct vchiq_header *header,
+                              unsigned int handle,
+                              void *bulk_userdata);
        void __user *userdata;
        short version;       /* Increment for non-trivial changes */
        short version_min;   /* Update for incompatible changes */
index 294b184..0388818 100644 (file)
@@ -548,10 +548,9 @@ static void bulk_abort_cb(struct vchiq_mmal_instance *instance,
 }
 
 /* incoming event service callback */
-static enum vchiq_status service_callback(struct vchiq_instance *vchiq_instance,
-                                         enum vchiq_reason reason,
-                                         struct vchiq_header *header,
-                                         unsigned int handle, void *bulk_ctx)
+static int service_callback(struct vchiq_instance *vchiq_instance,
+                           enum vchiq_reason reason, struct vchiq_header *header,
+                           unsigned int handle, void *bulk_ctx)
 {
        struct vchiq_mmal_instance *instance = vchiq_get_service_userdata(vchiq_instance, handle);
        u32 msg_len;