This is part 1 of what I believe will be a 2 series fix to make the camera driver work for arm64(64 bit). The mmal_msg_header structure has two fields which are pointer dependent(control_service and context). control_service isn't use by the kernel, so it's safe to change to u32. The context field is used heavily to store the pairing between request and reply messages. The solution chosen was to use a mapping table as implemented by the btree library in the kernel source to keep track of outstanding requests and associate them with an opaque u32 handle that is sent to the firmware. Series 2 which I intend to submit latter will deal with a few pointers in what are essentialy control message or get/set property requests on the camera. These pointer are not used, but the pointers do cause the offsets of other fields to change. So it's necessary to have a local version of the data and a remote version, and do a memberwise copy when converting between the two. The local version does need to have a pointer, but the pointer itself does not need to be sent access the communication channel. Michael Zoran (2): staging: bcm2835_camera: Convert control_service field of mmal_msg_header to u32 staging: bcm2835_camera: Use a mapping table for context field of mmal_msg_header .../staging/vc04_services/bcm2835-camera/Kconfig | 1 + .../vc04_services/bcm2835-camera/mmal-msg.h | 4 +- .../vc04_services/bcm2835-camera/mmal-vchiq.c | 176 ++++++++++++++++++--- 3 files changed, 157 insertions(+), 24 deletions(-) -- 2.11.0 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel