You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.6 KiB
Diff
39 lines
1.6 KiB
Diff
From ffdd605fc5bf096855bd24311bb0f112257dd53e Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
|
Date: Wed, 13 Feb 2019 12:36:56 +0000
|
|
Subject: [PATCH 356/725] staging: mmal-vchiq: Always return the param size
|
|
from param_get
|
|
|
|
mmal-vchiq is a reimplementation of the userland library for MMAL.
|
|
When getting a parameter, the client provides the storage and
|
|
the size of the storage. The VPU then returns the size of the
|
|
parameter that it wished to return, and as much as possible of
|
|
that parameter is returned to the client.
|
|
|
|
The implementation previously only returned the size provided
|
|
by the VPU should it exceed the buffer size. So for parameters
|
|
such as the supported encodings list the client had no idea
|
|
how much of the provided storage had been populated.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
|
---
|
|
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
|
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
|
@@ -1413,11 +1413,12 @@ static int port_parameter_get(struct vch
|
|
*/
|
|
memcpy(value, &rmsg->u.port_parameter_get_reply.value,
|
|
*value_size);
|
|
- *value_size = rmsg->u.port_parameter_get_reply.size;
|
|
} else {
|
|
memcpy(value, &rmsg->u.port_parameter_get_reply.value,
|
|
rmsg->u.port_parameter_get_reply.size);
|
|
}
|
|
+ /* Always report the size of the returned parameter to the caller */
|
|
+ *value_size = rmsg->u.port_parameter_get_reply.size;
|
|
|
|
pr_debug("%s:result:%d component:0x%x port:%d parameter:%d\n", __func__,
|
|
ret, port->component->handle, port->handle, parameter_id);
|