36 lines
1.5 KiB
Diff
36 lines
1.5 KiB
Diff
From ad99dc8a0f71efaa3c97669f77214d43f6f0120c Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
|
Date: Tue, 22 Jan 2019 12:04:09 +0000
|
|
Subject: [PATCH] staging: mmal-vchiq: Fix client_component for 64 bit
|
|
kernel
|
|
|
|
The MMAL client_component field is used with the event
|
|
mechanism to allow the client to identify the component for
|
|
which the event is generated.
|
|
The field is only 32bits in size, therefore we can't use a
|
|
pointer to the component in a 64 bit kernel.
|
|
|
|
Component handles are already held in an array per VCHI
|
|
instance, so use the array index as the client_component handle
|
|
to avoid having to create a new IDR for this purpose.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
|
---
|
|
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
|
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
|
|
@@ -460,9 +460,9 @@ buffer_from_host(struct vchiq_mmal_insta
|
|
static void event_to_host_cb(struct vchiq_mmal_instance *instance,
|
|
struct mmal_msg *msg, u32 msg_len)
|
|
{
|
|
- /* FIXME: Not going to work on 64 bit */
|
|
+ int comp_idx = msg->u.event_to_host.client_component;
|
|
struct vchiq_mmal_component *component =
|
|
- (struct vchiq_mmal_component *)msg->u.event_to_host.client_component;
|
|
+ &instance->component[comp_idx];
|
|
struct vchiq_mmal_port *port = NULL;
|
|
struct mmal_msg_context *msg_context;
|
|
u32 port_num = msg->u.event_to_host.port_num;
|