All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
To: bcm-kernel-feedback-list@broadcom.com,
	linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	Florian Fainelli <f.fainelli@gmail.com>,
	Ray Jui <rjui@broadcom.com>,
	Scott Branden <sbranden@broadcom.com>,
	Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Cc: kernel-list@raspberrypi.com, laurent.pinchart@ideasonboard.com,
	gregkh@linuxfoundation.org, devel@driverdev.osuosl.org,
	linux-kernel@vger.kernel.org
Subject: [RFC 44/50] staging: vchi: Get rid of vchi_bulk_queue_transmit()
Date: Wed, 27 May 2020 13:53:49 +0200	[thread overview]
Message-ID: <20200527115400.31391-45-nsaenzjulienne@suse.de> (raw)
In-Reply-To: <20200527115400.31391-1-nsaenzjulienne@suse.de>

Its vchiq counterpart, vchiq_bulk_transmit() is only used by vchi. We
can then merge both functions by moving vchi_bulk_queue_transmit()'s
retry mechanism into vchiq_bulk_transmit() and let services call the
later.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
---
 .../bcm2835-audio/bcm2835-vchiq.c             |  7 +-
 .../vc04_services/interface/vchi/vchi.h       | 11 ----
 .../interface/vchiq_arm/vchiq_arm.c           | 38 +++++++----
 .../interface/vchiq_arm/vchiq_shim.c          | 66 ++++---------------
 4 files changed, 41 insertions(+), 81 deletions(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index 55f1e684eef1..28d64bc895cd 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -343,10 +343,9 @@ int bcm2835_audio_write(struct bcm2835_alsa_stream *alsa_stream,
 	count = size;
 	if (!instance->max_packet) {
 		/* Send the message to the videocore */
-		status = vchi_bulk_queue_transmit(instance->service_handle,
-						  src, count,
-						  VCHIQ_BULK_MODE_BLOCKING,
-						  NULL);
+		status = vchiq_bulk_transmit(instance->service_handle, src,
+					     count, NULL,
+					     VCHIQ_BULK_MODE_BLOCKING);
 	} else {
 		while (count > 0) {
 			int bytes = min(instance->max_packet, count);
diff --git a/drivers/staging/vc04_services/interface/vchi/vchi.h b/drivers/staging/vc04_services/interface/vchi/vchi.h
index ca20b99122f2..c800796f9986 100644
--- a/drivers/staging/vc04_services/interface/vchi/vchi.h
+++ b/drivers/staging/vc04_services/interface/vchi/vchi.h
@@ -54,17 +54,6 @@ struct vchiq_header *vchi_msg_hold(unsigned handle);
 // Routine to release a held message after it has been processed
 extern int32_t vchi_held_msg_release(unsigned handle, struct vchiq_header *message);
 
-/******************************************************************************
- * Global bulk API
- *****************************************************************************/
-
-// Routine to queue up data ready for transfer to the other (once they have signalled they are ready)
-extern int32_t vchi_bulk_queue_transmit(unsigned handle,
-					const void *data_src,
-					uint32_t data_size,
-				        enum vchiq_bulk_mode mode,
-					void *transfer_handle);
-
 /******************************************************************************
  * Configuration plumbing
  *****************************************************************************/
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
index 084e98b4ca61..524128225766 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
@@ -361,19 +361,31 @@ vchiq_bulk_transmit(unsigned int handle, const void *data,
 {
 	enum vchiq_status status;
 
-	switch (mode) {
-	case VCHIQ_BULK_MODE_NOCALLBACK:
-	case VCHIQ_BULK_MODE_CALLBACK:
-		status = vchiq_bulk_transfer(handle, (void *)data, size,
-					     userdata, mode,
-					     VCHIQ_BULK_TRANSMIT);
-		break;
-	case VCHIQ_BULK_MODE_BLOCKING:
-		status = vchiq_blocking_bulk_transfer(handle,
-			(void *)data, size, VCHIQ_BULK_TRANSMIT);
-		break;
-	default:
-		return VCHIQ_ERROR;
+	while (1) {
+		switch (mode) {
+		case VCHIQ_BULK_MODE_NOCALLBACK:
+		case VCHIQ_BULK_MODE_CALLBACK:
+			status = vchiq_bulk_transfer(handle, (void *)data, size,
+						     userdata, mode,
+						     VCHIQ_BULK_TRANSMIT);
+			break;
+		case VCHIQ_BULK_MODE_BLOCKING:
+			status = vchiq_blocking_bulk_transfer(handle,
+				(void *)data, size, VCHIQ_BULK_TRANSMIT);
+			break;
+		default:
+			return VCHIQ_ERROR;
+		}
+
+		/*
+		 * vchiq_*_bulk_transfer() may return VCHIQ_RETRY, so we need
+		 * to implement a retry mechanism since this function is
+		 * supposed to block until queued
+		 */
+		if (status != VCHIQ_RETRY)
+			break;
+
+		msleep(1);
 	}
 
 	return status;
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c
index f69936a9eb29..33493643b5f8 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c
@@ -31,46 +31,6 @@ int vchi_queue_kernel_message(unsigned handle, void *data, unsigned int size)
 }
 EXPORT_SYMBOL(vchi_queue_kernel_message);
 
-/***********************************************************
- * Name: vchi_bulk_queue_transmit
- *
- * Arguments:  VCHI_BULK_HANDLE_T handle,
- *             const void *data_src,
- *             uint32_t data_size,
- *             enum vchi_flags flags,
- *             void *bulk_handle
- *
- * Description: Routine to transmit some data
- *
- * Returns: int32_t - success == 0
- *
- ***********************************************************/
-int32_t vchi_bulk_queue_transmit(unsigned handle, const void *data_src,
-				 uint32_t data_size, enum vchiq_bulk_mode mode,
-				 void *bulk_handle)
-{
-	enum vchiq_status status;
-
-	while (1) {
-		status = vchiq_bulk_transmit(handle, data_src, data_size,
-					     bulk_handle, mode);
-
-		/*
-		 * vchiq_bulk_transmit() may return VCHIQ_RETRY, so we need to
-		 * implement a retry mechanism since this function is supposed
-		 * to block until queued
-		 */
-		if (status != VCHIQ_RETRY)
-			break;
-
-		msleep(1);
-	}
-
-	return status;
-}
-EXPORT_SYMBOL(vchi_bulk_queue_transmit);
-
-
 /***********************************************************
  * Name: vchi_held_msg_release
  *
@@ -80,10 +40,10 @@ EXPORT_SYMBOL(vchi_bulk_queue_transmit);
  * Description: Routine to release a held message (after it has been read with
  *              vchi_msg_hold)
  *
- * Returns: int32_t - success == 0
+ * Returns: int - success == 0
  *
  ***********************************************************/
-int32_t vchi_held_msg_release(unsigned handle, struct vchiq_header *message)
+int vchi_held_msg_release(unsigned handle, struct vchiq_header *message)
 {
 	/*
 	 * Convert the service field pointer back to an
@@ -104,7 +64,7 @@ EXPORT_SYMBOL(vchi_held_msg_release);
  *
  * Arguments:  struct vchi_service *service,
  *             void **data,
- *             uint32_t *msg_size,
+ *             unsigned *msg_size,
  *             struct vchiq_header **message
  *
  * Description: Routine to return a pointer to the current message (to allow
@@ -112,7 +72,7 @@ EXPORT_SYMBOL(vchi_held_msg_release);
  *              to release the message using vchi_held_msg_release when you're
  *              finished.
  *
- * Returns: int32_t - success == 0
+ * Returns: int - success == 0
  *
  ***********************************************************/
 struct vchiq_header *vchi_msg_hold(unsigned handle)
@@ -134,7 +94,7 @@ EXPORT_SYMBOL(vchi_msg_hold);
  *
  ***********************************************************/
 
-int32_t vchi_initialise(struct vchiq_instance **instance)
+int vchi_initialise(struct vchiq_instance **instance)
 {
 	return vchiq_initialise(instance);
 }
@@ -151,7 +111,7 @@ EXPORT_SYMBOL(vchi_initialise);
  * Returns: 0 if successful, failure otherwise
  *
  ***********************************************************/
-int32_t vchi_connect(struct vchiq_instance *instance)
+int vchi_connect(struct vchiq_instance *instance)
 {
 	return vchiq_connect(instance);
 }
@@ -168,7 +128,7 @@ EXPORT_SYMBOL(vchi_connect);
  * Returns: 0 if successful, failure otherwise
  *
  ***********************************************************/
-int32_t vchi_disconnect(struct vchiq_instance *instance)
+int vchi_disconnect(struct vchiq_instance *instance)
 {
 	return vchiq_shutdown(instance);
 }
@@ -184,11 +144,11 @@ EXPORT_SYMBOL(vchi_disconnect);
  *
  * Description: Routine to open a service
  *
- * Returns: int32_t - success == 0
+ * Returns: int - success == 0
  *
  ***********************************************************/
 
-int32_t vchi_service_open(struct vchiq_instance *instance,
+int vchi_service_open(struct vchiq_instance *instance,
 		      struct vchiq_service_params *params,
 		      unsigned *handle)
 {
@@ -196,13 +156,13 @@ int32_t vchi_service_open(struct vchiq_instance *instance,
 }
 EXPORT_SYMBOL(vchi_service_open);
 
-int32_t vchi_service_close(unsigned handle)
+int vchi_service_close(unsigned handle)
 {
 	return vchiq_close_service(handle);
 }
 EXPORT_SYMBOL(vchi_service_close);
 
-int32_t vchi_get_peer_version(unsigned handle, short *peer_version)
+int vchi_get_peer_version(unsigned handle, short *peer_version)
 {
 	return vchiq_get_peer_version(handle, peer_version);
 }
@@ -218,7 +178,7 @@ EXPORT_SYMBOL(vchi_get_peer_version);
  * Returns: void
  *
  ***********************************************************/
-int32_t vchi_service_use(unsigned handle)
+int vchi_service_use(unsigned handle)
 {
 	return vchiq_use_service(handle);
 }
@@ -234,7 +194,7 @@ EXPORT_SYMBOL(vchi_service_use);
  * Returns: void
  *
  ***********************************************************/
-int32_t vchi_service_release(unsigned handle)
+int vchi_service_release(unsigned handle)
 {
 	return vchiq_release_service(handle);
 }
-- 
2.26.2


WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
To: bcm-kernel-feedback-list@broadcom.com,
	linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	Florian Fainelli <f.fainelli@gmail.com>,
	Ray Jui <rjui@broadcom.com>,
	Scott Branden <sbranden@broadcom.com>,
	Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Cc: devel@driverdev.osuosl.org, kernel-list@raspberrypi.com,
	laurent.pinchart@ideasonboard.com, linux-kernel@vger.kernel.org,
	gregkh@linuxfoundation.org
Subject: [RFC 44/50] staging: vchi: Get rid of vchi_bulk_queue_transmit()
Date: Wed, 27 May 2020 13:53:49 +0200	[thread overview]
Message-ID: <20200527115400.31391-45-nsaenzjulienne@suse.de> (raw)
In-Reply-To: <20200527115400.31391-1-nsaenzjulienne@suse.de>

Its vchiq counterpart, vchiq_bulk_transmit() is only used by vchi. We
can then merge both functions by moving vchi_bulk_queue_transmit()'s
retry mechanism into vchiq_bulk_transmit() and let services call the
later.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
---
 .../bcm2835-audio/bcm2835-vchiq.c             |  7 +-
 .../vc04_services/interface/vchi/vchi.h       | 11 ----
 .../interface/vchiq_arm/vchiq_arm.c           | 38 +++++++----
 .../interface/vchiq_arm/vchiq_shim.c          | 66 ++++---------------
 4 files changed, 41 insertions(+), 81 deletions(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index 55f1e684eef1..28d64bc895cd 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -343,10 +343,9 @@ int bcm2835_audio_write(struct bcm2835_alsa_stream *alsa_stream,
 	count = size;
 	if (!instance->max_packet) {
 		/* Send the message to the videocore */
-		status = vchi_bulk_queue_transmit(instance->service_handle,
-						  src, count,
-						  VCHIQ_BULK_MODE_BLOCKING,
-						  NULL);
+		status = vchiq_bulk_transmit(instance->service_handle, src,
+					     count, NULL,
+					     VCHIQ_BULK_MODE_BLOCKING);
 	} else {
 		while (count > 0) {
 			int bytes = min(instance->max_packet, count);
diff --git a/drivers/staging/vc04_services/interface/vchi/vchi.h b/drivers/staging/vc04_services/interface/vchi/vchi.h
index ca20b99122f2..c800796f9986 100644
--- a/drivers/staging/vc04_services/interface/vchi/vchi.h
+++ b/drivers/staging/vc04_services/interface/vchi/vchi.h
@@ -54,17 +54,6 @@ struct vchiq_header *vchi_msg_hold(unsigned handle);
 // Routine to release a held message after it has been processed
 extern int32_t vchi_held_msg_release(unsigned handle, struct vchiq_header *message);
 
-/******************************************************************************
- * Global bulk API
- *****************************************************************************/
-
-// Routine to queue up data ready for transfer to the other (once they have signalled they are ready)
-extern int32_t vchi_bulk_queue_transmit(unsigned handle,
-					const void *data_src,
-					uint32_t data_size,
-				        enum vchiq_bulk_mode mode,
-					void *transfer_handle);
-
 /******************************************************************************
  * Configuration plumbing
  *****************************************************************************/
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
index 084e98b4ca61..524128225766 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
@@ -361,19 +361,31 @@ vchiq_bulk_transmit(unsigned int handle, const void *data,
 {
 	enum vchiq_status status;
 
-	switch (mode) {
-	case VCHIQ_BULK_MODE_NOCALLBACK:
-	case VCHIQ_BULK_MODE_CALLBACK:
-		status = vchiq_bulk_transfer(handle, (void *)data, size,
-					     userdata, mode,
-					     VCHIQ_BULK_TRANSMIT);
-		break;
-	case VCHIQ_BULK_MODE_BLOCKING:
-		status = vchiq_blocking_bulk_transfer(handle,
-			(void *)data, size, VCHIQ_BULK_TRANSMIT);
-		break;
-	default:
-		return VCHIQ_ERROR;
+	while (1) {
+		switch (mode) {
+		case VCHIQ_BULK_MODE_NOCALLBACK:
+		case VCHIQ_BULK_MODE_CALLBACK:
+			status = vchiq_bulk_transfer(handle, (void *)data, size,
+						     userdata, mode,
+						     VCHIQ_BULK_TRANSMIT);
+			break;
+		case VCHIQ_BULK_MODE_BLOCKING:
+			status = vchiq_blocking_bulk_transfer(handle,
+				(void *)data, size, VCHIQ_BULK_TRANSMIT);
+			break;
+		default:
+			return VCHIQ_ERROR;
+		}
+
+		/*
+		 * vchiq_*_bulk_transfer() may return VCHIQ_RETRY, so we need
+		 * to implement a retry mechanism since this function is
+		 * supposed to block until queued
+		 */
+		if (status != VCHIQ_RETRY)
+			break;
+
+		msleep(1);
 	}
 
 	return status;
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c
index f69936a9eb29..33493643b5f8 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c
@@ -31,46 +31,6 @@ int vchi_queue_kernel_message(unsigned handle, void *data, unsigned int size)
 }
 EXPORT_SYMBOL(vchi_queue_kernel_message);
 
-/***********************************************************
- * Name: vchi_bulk_queue_transmit
- *
- * Arguments:  VCHI_BULK_HANDLE_T handle,
- *             const void *data_src,
- *             uint32_t data_size,
- *             enum vchi_flags flags,
- *             void *bulk_handle
- *
- * Description: Routine to transmit some data
- *
- * Returns: int32_t - success == 0
- *
- ***********************************************************/
-int32_t vchi_bulk_queue_transmit(unsigned handle, const void *data_src,
-				 uint32_t data_size, enum vchiq_bulk_mode mode,
-				 void *bulk_handle)
-{
-	enum vchiq_status status;
-
-	while (1) {
-		status = vchiq_bulk_transmit(handle, data_src, data_size,
-					     bulk_handle, mode);
-
-		/*
-		 * vchiq_bulk_transmit() may return VCHIQ_RETRY, so we need to
-		 * implement a retry mechanism since this function is supposed
-		 * to block until queued
-		 */
-		if (status != VCHIQ_RETRY)
-			break;
-
-		msleep(1);
-	}
-
-	return status;
-}
-EXPORT_SYMBOL(vchi_bulk_queue_transmit);
-
-
 /***********************************************************
  * Name: vchi_held_msg_release
  *
@@ -80,10 +40,10 @@ EXPORT_SYMBOL(vchi_bulk_queue_transmit);
  * Description: Routine to release a held message (after it has been read with
  *              vchi_msg_hold)
  *
- * Returns: int32_t - success == 0
+ * Returns: int - success == 0
  *
  ***********************************************************/
-int32_t vchi_held_msg_release(unsigned handle, struct vchiq_header *message)
+int vchi_held_msg_release(unsigned handle, struct vchiq_header *message)
 {
 	/*
 	 * Convert the service field pointer back to an
@@ -104,7 +64,7 @@ EXPORT_SYMBOL(vchi_held_msg_release);
  *
  * Arguments:  struct vchi_service *service,
  *             void **data,
- *             uint32_t *msg_size,
+ *             unsigned *msg_size,
  *             struct vchiq_header **message
  *
  * Description: Routine to return a pointer to the current message (to allow
@@ -112,7 +72,7 @@ EXPORT_SYMBOL(vchi_held_msg_release);
  *              to release the message using vchi_held_msg_release when you're
  *              finished.
  *
- * Returns: int32_t - success == 0
+ * Returns: int - success == 0
  *
  ***********************************************************/
 struct vchiq_header *vchi_msg_hold(unsigned handle)
@@ -134,7 +94,7 @@ EXPORT_SYMBOL(vchi_msg_hold);
  *
  ***********************************************************/
 
-int32_t vchi_initialise(struct vchiq_instance **instance)
+int vchi_initialise(struct vchiq_instance **instance)
 {
 	return vchiq_initialise(instance);
 }
@@ -151,7 +111,7 @@ EXPORT_SYMBOL(vchi_initialise);
  * Returns: 0 if successful, failure otherwise
  *
  ***********************************************************/
-int32_t vchi_connect(struct vchiq_instance *instance)
+int vchi_connect(struct vchiq_instance *instance)
 {
 	return vchiq_connect(instance);
 }
@@ -168,7 +128,7 @@ EXPORT_SYMBOL(vchi_connect);
  * Returns: 0 if successful, failure otherwise
  *
  ***********************************************************/
-int32_t vchi_disconnect(struct vchiq_instance *instance)
+int vchi_disconnect(struct vchiq_instance *instance)
 {
 	return vchiq_shutdown(instance);
 }
@@ -184,11 +144,11 @@ EXPORT_SYMBOL(vchi_disconnect);
  *
  * Description: Routine to open a service
  *
- * Returns: int32_t - success == 0
+ * Returns: int - success == 0
  *
  ***********************************************************/
 
-int32_t vchi_service_open(struct vchiq_instance *instance,
+int vchi_service_open(struct vchiq_instance *instance,
 		      struct vchiq_service_params *params,
 		      unsigned *handle)
 {
@@ -196,13 +156,13 @@ int32_t vchi_service_open(struct vchiq_instance *instance,
 }
 EXPORT_SYMBOL(vchi_service_open);
 
-int32_t vchi_service_close(unsigned handle)
+int vchi_service_close(unsigned handle)
 {
 	return vchiq_close_service(handle);
 }
 EXPORT_SYMBOL(vchi_service_close);
 
-int32_t vchi_get_peer_version(unsigned handle, short *peer_version)
+int vchi_get_peer_version(unsigned handle, short *peer_version)
 {
 	return vchiq_get_peer_version(handle, peer_version);
 }
@@ -218,7 +178,7 @@ EXPORT_SYMBOL(vchi_get_peer_version);
  * Returns: void
  *
  ***********************************************************/
-int32_t vchi_service_use(unsigned handle)
+int vchi_service_use(unsigned handle)
 {
 	return vchiq_use_service(handle);
 }
@@ -234,7 +194,7 @@ EXPORT_SYMBOL(vchi_service_use);
  * Returns: void
  *
  ***********************************************************/
-int32_t vchi_service_release(unsigned handle)
+int vchi_service_release(unsigned handle)
 {
 	return vchiq_release_service(handle);
 }
-- 
2.26.2

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
To: bcm-kernel-feedback-list@broadcom.com,
	linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	Florian Fainelli <f.fainelli@gmail.com>,
	Ray Jui <rjui@broadcom.com>,
	Scott Branden <sbranden@broadcom.com>,
	Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Cc: devel@driverdev.osuosl.org, kernel-list@raspberrypi.com,
	laurent.pinchart@ideasonboard.com, linux-kernel@vger.kernel.org,
	gregkh@linuxfoundation.org
Subject: [RFC 44/50] staging: vchi: Get rid of vchi_bulk_queue_transmit()
Date: Wed, 27 May 2020 13:53:49 +0200	[thread overview]
Message-ID: <20200527115400.31391-45-nsaenzjulienne@suse.de> (raw)
In-Reply-To: <20200527115400.31391-1-nsaenzjulienne@suse.de>

Its vchiq counterpart, vchiq_bulk_transmit() is only used by vchi. We
can then merge both functions by moving vchi_bulk_queue_transmit()'s
retry mechanism into vchiq_bulk_transmit() and let services call the
later.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
---
 .../bcm2835-audio/bcm2835-vchiq.c             |  7 +-
 .../vc04_services/interface/vchi/vchi.h       | 11 ----
 .../interface/vchiq_arm/vchiq_arm.c           | 38 +++++++----
 .../interface/vchiq_arm/vchiq_shim.c          | 66 ++++---------------
 4 files changed, 41 insertions(+), 81 deletions(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index 55f1e684eef1..28d64bc895cd 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -343,10 +343,9 @@ int bcm2835_audio_write(struct bcm2835_alsa_stream *alsa_stream,
 	count = size;
 	if (!instance->max_packet) {
 		/* Send the message to the videocore */
-		status = vchi_bulk_queue_transmit(instance->service_handle,
-						  src, count,
-						  VCHIQ_BULK_MODE_BLOCKING,
-						  NULL);
+		status = vchiq_bulk_transmit(instance->service_handle, src,
+					     count, NULL,
+					     VCHIQ_BULK_MODE_BLOCKING);
 	} else {
 		while (count > 0) {
 			int bytes = min(instance->max_packet, count);
diff --git a/drivers/staging/vc04_services/interface/vchi/vchi.h b/drivers/staging/vc04_services/interface/vchi/vchi.h
index ca20b99122f2..c800796f9986 100644
--- a/drivers/staging/vc04_services/interface/vchi/vchi.h
+++ b/drivers/staging/vc04_services/interface/vchi/vchi.h
@@ -54,17 +54,6 @@ struct vchiq_header *vchi_msg_hold(unsigned handle);
 // Routine to release a held message after it has been processed
 extern int32_t vchi_held_msg_release(unsigned handle, struct vchiq_header *message);
 
-/******************************************************************************
- * Global bulk API
- *****************************************************************************/
-
-// Routine to queue up data ready for transfer to the other (once they have signalled they are ready)
-extern int32_t vchi_bulk_queue_transmit(unsigned handle,
-					const void *data_src,
-					uint32_t data_size,
-				        enum vchiq_bulk_mode mode,
-					void *transfer_handle);
-
 /******************************************************************************
  * Configuration plumbing
  *****************************************************************************/
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
index 084e98b4ca61..524128225766 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
@@ -361,19 +361,31 @@ vchiq_bulk_transmit(unsigned int handle, const void *data,
 {
 	enum vchiq_status status;
 
-	switch (mode) {
-	case VCHIQ_BULK_MODE_NOCALLBACK:
-	case VCHIQ_BULK_MODE_CALLBACK:
-		status = vchiq_bulk_transfer(handle, (void *)data, size,
-					     userdata, mode,
-					     VCHIQ_BULK_TRANSMIT);
-		break;
-	case VCHIQ_BULK_MODE_BLOCKING:
-		status = vchiq_blocking_bulk_transfer(handle,
-			(void *)data, size, VCHIQ_BULK_TRANSMIT);
-		break;
-	default:
-		return VCHIQ_ERROR;
+	while (1) {
+		switch (mode) {
+		case VCHIQ_BULK_MODE_NOCALLBACK:
+		case VCHIQ_BULK_MODE_CALLBACK:
+			status = vchiq_bulk_transfer(handle, (void *)data, size,
+						     userdata, mode,
+						     VCHIQ_BULK_TRANSMIT);
+			break;
+		case VCHIQ_BULK_MODE_BLOCKING:
+			status = vchiq_blocking_bulk_transfer(handle,
+				(void *)data, size, VCHIQ_BULK_TRANSMIT);
+			break;
+		default:
+			return VCHIQ_ERROR;
+		}
+
+		/*
+		 * vchiq_*_bulk_transfer() may return VCHIQ_RETRY, so we need
+		 * to implement a retry mechanism since this function is
+		 * supposed to block until queued
+		 */
+		if (status != VCHIQ_RETRY)
+			break;
+
+		msleep(1);
 	}
 
 	return status;
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c
index f69936a9eb29..33493643b5f8 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c
@@ -31,46 +31,6 @@ int vchi_queue_kernel_message(unsigned handle, void *data, unsigned int size)
 }
 EXPORT_SYMBOL(vchi_queue_kernel_message);
 
-/***********************************************************
- * Name: vchi_bulk_queue_transmit
- *
- * Arguments:  VCHI_BULK_HANDLE_T handle,
- *             const void *data_src,
- *             uint32_t data_size,
- *             enum vchi_flags flags,
- *             void *bulk_handle
- *
- * Description: Routine to transmit some data
- *
- * Returns: int32_t - success == 0
- *
- ***********************************************************/
-int32_t vchi_bulk_queue_transmit(unsigned handle, const void *data_src,
-				 uint32_t data_size, enum vchiq_bulk_mode mode,
-				 void *bulk_handle)
-{
-	enum vchiq_status status;
-
-	while (1) {
-		status = vchiq_bulk_transmit(handle, data_src, data_size,
-					     bulk_handle, mode);
-
-		/*
-		 * vchiq_bulk_transmit() may return VCHIQ_RETRY, so we need to
-		 * implement a retry mechanism since this function is supposed
-		 * to block until queued
-		 */
-		if (status != VCHIQ_RETRY)
-			break;
-
-		msleep(1);
-	}
-
-	return status;
-}
-EXPORT_SYMBOL(vchi_bulk_queue_transmit);
-
-
 /***********************************************************
  * Name: vchi_held_msg_release
  *
@@ -80,10 +40,10 @@ EXPORT_SYMBOL(vchi_bulk_queue_transmit);
  * Description: Routine to release a held message (after it has been read with
  *              vchi_msg_hold)
  *
- * Returns: int32_t - success == 0
+ * Returns: int - success == 0
  *
  ***********************************************************/
-int32_t vchi_held_msg_release(unsigned handle, struct vchiq_header *message)
+int vchi_held_msg_release(unsigned handle, struct vchiq_header *message)
 {
 	/*
 	 * Convert the service field pointer back to an
@@ -104,7 +64,7 @@ EXPORT_SYMBOL(vchi_held_msg_release);
  *
  * Arguments:  struct vchi_service *service,
  *             void **data,
- *             uint32_t *msg_size,
+ *             unsigned *msg_size,
  *             struct vchiq_header **message
  *
  * Description: Routine to return a pointer to the current message (to allow
@@ -112,7 +72,7 @@ EXPORT_SYMBOL(vchi_held_msg_release);
  *              to release the message using vchi_held_msg_release when you're
  *              finished.
  *
- * Returns: int32_t - success == 0
+ * Returns: int - success == 0
  *
  ***********************************************************/
 struct vchiq_header *vchi_msg_hold(unsigned handle)
@@ -134,7 +94,7 @@ EXPORT_SYMBOL(vchi_msg_hold);
  *
  ***********************************************************/
 
-int32_t vchi_initialise(struct vchiq_instance **instance)
+int vchi_initialise(struct vchiq_instance **instance)
 {
 	return vchiq_initialise(instance);
 }
@@ -151,7 +111,7 @@ EXPORT_SYMBOL(vchi_initialise);
  * Returns: 0 if successful, failure otherwise
  *
  ***********************************************************/
-int32_t vchi_connect(struct vchiq_instance *instance)
+int vchi_connect(struct vchiq_instance *instance)
 {
 	return vchiq_connect(instance);
 }
@@ -168,7 +128,7 @@ EXPORT_SYMBOL(vchi_connect);
  * Returns: 0 if successful, failure otherwise
  *
  ***********************************************************/
-int32_t vchi_disconnect(struct vchiq_instance *instance)
+int vchi_disconnect(struct vchiq_instance *instance)
 {
 	return vchiq_shutdown(instance);
 }
@@ -184,11 +144,11 @@ EXPORT_SYMBOL(vchi_disconnect);
  *
  * Description: Routine to open a service
  *
- * Returns: int32_t - success == 0
+ * Returns: int - success == 0
  *
  ***********************************************************/
 
-int32_t vchi_service_open(struct vchiq_instance *instance,
+int vchi_service_open(struct vchiq_instance *instance,
 		      struct vchiq_service_params *params,
 		      unsigned *handle)
 {
@@ -196,13 +156,13 @@ int32_t vchi_service_open(struct vchiq_instance *instance,
 }
 EXPORT_SYMBOL(vchi_service_open);
 
-int32_t vchi_service_close(unsigned handle)
+int vchi_service_close(unsigned handle)
 {
 	return vchiq_close_service(handle);
 }
 EXPORT_SYMBOL(vchi_service_close);
 
-int32_t vchi_get_peer_version(unsigned handle, short *peer_version)
+int vchi_get_peer_version(unsigned handle, short *peer_version)
 {
 	return vchiq_get_peer_version(handle, peer_version);
 }
@@ -218,7 +178,7 @@ EXPORT_SYMBOL(vchi_get_peer_version);
  * Returns: void
  *
  ***********************************************************/
-int32_t vchi_service_use(unsigned handle)
+int vchi_service_use(unsigned handle)
 {
 	return vchiq_use_service(handle);
 }
@@ -234,7 +194,7 @@ EXPORT_SYMBOL(vchi_service_use);
  * Returns: void
  *
  ***********************************************************/
-int32_t vchi_service_release(unsigned handle)
+int vchi_service_release(unsigned handle)
 {
 	return vchiq_release_service(handle);
 }
-- 
2.26.2


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-05-27 11:56 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-27 11:53 [RFC 00/50] staging: vchiq: Getting rid of the vchi/vchiq split Nicolas Saenz Julienne
2020-05-27 11:53 ` Nicolas Saenz Julienne
2020-05-27 11:53 ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 01/50] staging: vchi: Get rid of vchi_service_destroy() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 02/50] staging: vchi: Get rid of vchi_queue_user_message() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 03/50] staging: vchiq: Move copy callback handling into vchiq Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 04/50] staging: vchi: Merge vchi_msg_queue() into vchi_queue_kernel_message() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 05/50] staging: vchi: Get rid of vchi_service_set_option() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 06/50] staging: vchi: Get rid of vchiq_status_to_vchi() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 07/50] staging: vchi: Get rid of not implemented function declarations Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 08/50] staging: vchi: Get rid of C++ guards Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 09/50] staging: vchiq: move vchiq_release_message() into vchiq Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 10/50] staging: vchiq: Get rid of VCHIQ_SERVICE_OPENEND callback reason Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 11/50] staging: vchi: Get rid of all useless callback reasons Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 12/50] staging: vchi: Get rid of vchi_msg_peek() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 13/50] staging: vchi: Get rid of struct vchi_instance_handle Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 14/50] staging: vchi: Unify struct shim_service and struct vchi_service_handle Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 15/50] staging: vc04_services: bcm2835-audio: Use vchi_msg_hold() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 16/50] staging: vchi: Get rid of vchi_msg_dequeue() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 17/50] staging: vchi_common: Get rid of all unused definitions Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 18/50] staging: vc04_services: vc-sm-cma: Get rid of the multiple connections option Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 19/50] staging: vchi: Get rid of unnecessary defines Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 20/50] staging: vc04_services: Get rid of vchi_cfg.h Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 21/50] staging: vchi: Get rid of flags argument in vchi_msg_hold() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 22/50] staging: vchi: Use enum vchiq_bulk_mode instead of vchi's transmission flags Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 23/50] staging: vchi: Use vchiq's enum vchiq_reason Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 24/50] staging: vchi: Get rid of effect less expression Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 25/50] staging: vchiq: Introduce vchiq_validate_params() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 26/50] staging: vchiq: Move message queue into struct vchiq_service Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 27/50] staging: vchiq: Get rid of vchiq_util.h Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 28/50] staging: vchi: Expose struct vchi_service Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 29/50] staging: vchiq: Export vchiq_get_service_userdata() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 30/50] staging: vchiq: Export vchiq_msg_queue_push Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 31/50] staging: vchi: Get rid of vchiq_shim's message callback Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 32/50] staging: vchiq: Don't use a typedef for vchiq_callback Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 33/50] staging: vchi: Use struct vchiq_service_params Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 34/50] staging: vchi: Get rid of struct vchi_service Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 35/50] staging: vchiq: Pass vchiq's message when holding a message Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 36/50] staging: vchi: Rework vchi_msg_hold() to match vchiq_msg_hold() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 37/50] staging: vchiq: Unify fourcc definition mechanisms Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 38/50] staging: vchi: Get rid of struct vchiq_instance forward declaration Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 39/50] staging: vchi: Don't include vchiq_core.h Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 40/50] staging: vchiq: Get rid of unnecessary definitions in vchiq_if.h Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 41/50] staging: vchiq: Make vchiq_add_service() local Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 42/50] staging: vchiq: Move definitions only used by core into core header Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 43/50] staging: vchi: Get rid of vchi_bulk_queue_receive() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` Nicolas Saenz Julienne [this message]
2020-05-27 11:53   ` [RFC 44/50] staging: vchi: Get rid of vchi_bulk_queue_transmit() Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 45/50] staging: vchi: Move vchi_queue_kernel_message() into vchiq Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 46/50] staging: vchiq: Get rid of vchi Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 47/50] staging: vchiq: Move conditional barrier definition into vchiq_core.h Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 48/50] staging: vchiq: Use vchiq.h as the main header file for services Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 49/50] staging: vchiq: Move defines into core header Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53 ` [RFC 50/50] staging: vchiq: Move vchiq.h into include directory Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 11:53   ` Nicolas Saenz Julienne
2020-05-27 12:08 ` [RFC 00/50] staging: vchiq: Getting rid of the vchi/vchiq split Greg KH
2020-05-27 12:08   ` Greg KH
2020-05-27 12:08   ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200527115400.31391-45-nsaenzjulienne@suse.de \
    --to=nsaenzjulienne@suse.de \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=f.fainelli@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=kernel-list@raspberrypi.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=rjui@broadcom.com \
    --cc=sbranden@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.