#include <linux/slab.h>
#include <linux/hrtimer.h>
#include <linux/ktime.h>
+#include <linux/version.h>
#include <asm/uaccess.h>
#include <linux/videodev2.h>
#include <media/videobuf2-vmalloc.h>
static int ioctl_set_parm(struct file *file, void *fh, struct v4l2_streamparm *fmt);
static int ioctl_queryctl(struct file *file, void *fh, struct v4l2_queryctrl *ctl);
+/* TODO find out exact version where this switched over */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0)
+#define ALLOC_CTX_TYPE void
+#else
+#define ALLOC_CTX_TYPE struct device
+#endif
+
static int queue_setup(struct vb2_queue *vbq, unsigned int *nbuf,
- unsigned int *nplanes, unsigned int *sizes, struct device **alloc_ctx);
+ unsigned int *nplanes, unsigned int *sizes, ALLOC_CTX_TYPE **alloc_ctx);
static int buf_prepare(struct vb2_buffer *vb);
static void buf_queue(struct vb2_buffer *vb);
static int start_streaming(struct vb2_queue *vbq, unsigned int count);
}
static int queue_setup(struct vb2_queue *vbq, unsigned int *nbuf,
- unsigned int *nplanes, unsigned int *sizes, struct device **alloc_ctx)
+ unsigned int *nplanes, unsigned int *sizes, ALLOC_CTX_TYPE **alloc_ctx)
{
if(vbq->num_buffers + *nbuf < 2) {
*nbuf = 2 - vbq->num_buffers;