Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90f49bf8 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: vidc: Add missing support for msm_vidc kernel client's"

parents 5fd0053d efb03e76
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -13,7 +13,8 @@

#include <linux/slab.h>
#include <mach/iommu_domains.h>
#include "msm_smem.h"
#include <media/msm_smem.h>
#include "msm_vidc_resources.h"
#include "msm_vidc_debug.h"

struct smem_client {
@@ -319,6 +320,7 @@ struct msm_smem *msm_smem_user_to_kernel(void *clt, int fd, u32 offset,
	}
	return mem;
}
EXPORT_SYMBOL(msm_smem_user_to_kernel);

static int ion_cache_operations(struct smem_client *client,
	struct msm_smem *mem, enum smem_cache_ops cache_op)
@@ -391,12 +393,14 @@ int msm_smem_cache_operations(void *clt, struct msm_smem *mem,
	}
	return rc;
}
EXPORT_SYMBOL(msm_smem_cache_operations);

void *msm_smem_new_client(enum smem_type mtype,
		struct msm_vidc_platform_resources *res)
		void *platform_resources)
{
	struct smem_client *client = NULL;
	void *clnt = NULL;
	struct msm_vidc_platform_resources *res = platform_resources;
	switch (mtype) {
	case SMEM_ION:
		clnt = ion_new_client();
@@ -417,7 +421,8 @@ void *msm_smem_new_client(enum smem_type mtype,
			mtype);
	}
	return client;
};
}
EXPORT_SYMBOL(msm_smem_new_client);

struct msm_smem *msm_smem_alloc(void *clt, size_t size, u32 align, u32 flags,
		enum hal_buffer buffer_type, int map_kernel)
@@ -457,6 +462,7 @@ struct msm_smem *msm_smem_alloc(void *clt, size_t size, u32 align, u32 flags,
	}
	return mem;
}
EXPORT_SYMBOL(msm_smem_alloc);

void msm_smem_free(void *clt, struct msm_smem *mem)
{
@@ -475,6 +481,7 @@ void msm_smem_free(void *clt, struct msm_smem *mem)
	}
	kfree(mem);
};
EXPORT_SYMBOL(msm_smem_free);

void msm_smem_delete_client(void *clt)
{
@@ -493,6 +500,7 @@ void msm_smem_delete_client(void *clt)
	}
	kfree(client);
}
EXPORT_SYMBOL(msm_smem_delete_client);

int msm_smem_get_domain_partition(void *clt, u32 flags, enum hal_buffer
		buffer_type, int *domain_num, int *partition_num)
@@ -531,3 +539,5 @@ int msm_smem_get_domain_partition(void *clt, u32 flags, enum hal_buffer
			*domain_num, *partition_num);
	return 0;
}
EXPORT_SYMBOL(msm_smem_get_domain_partition);
+1 −1
Original line number Diff line number Diff line
@@ -13,10 +13,10 @@

#include <linux/slab.h>
#include <mach/scm.h>
#include <media/msm_smem.h>
#include "msm_vidc_internal.h"
#include "msm_vidc_common.h"
#include "vidc_hfi_api.h"
#include "msm_smem.h"
#include "msm_vidc_debug.h"

#define MSM_VDEC_DVC_NAME "msm_vdec_8974"
+1 −1
Original line number Diff line number Diff line
@@ -11,11 +11,11 @@
 *
 */
#include <linux/slab.h>
#include <media/msm_smem.h>

#include "msm_vidc_internal.h"
#include "msm_vidc_common.h"
#include "vidc_hfi_api.h"
#include "msm_smem.h"
#include "msm_vidc_debug.h"

#define MSM_VENC_DVC_NAME "msm_venc_8974"
+47 −3
Original line number Diff line number Diff line
@@ -14,12 +14,12 @@
#include <linux/sched.h>
#include <linux/slab.h>
#include <media/msm_vidc.h>
#include <media/msm_smem.h>
#include "msm_vidc_internal.h"
#include "msm_vidc_debug.h"
#include "msm_vdec.h"
#include "msm_venc.h"
#include "msm_vidc_common.h"
#include "msm_smem.h"
#include <linux/delay.h>
#include "vidc_hfi_api.h"

@@ -71,6 +71,7 @@ int msm_vidc_poll(void *instance, struct file *filp,
	poll_wait(filp, &outq->done_wq, wait);
	return get_poll_flags(inst);
}
EXPORT_SYMBOL(msm_vidc_poll);

/* Kernel client alternative for msm_vidc_poll */
int msm_vidc_wait(void *instance)
@@ -81,6 +82,7 @@ int msm_vidc_wait(void *instance)
	wait_event(inst->kernel_event_queue, (rc = get_poll_flags(inst)));
	return rc;
}
EXPORT_SYMBOL(msm_vidc_wait);

int msm_vidc_get_iommu_domain_partition(void *instance, u32 flags,
		enum v4l2_buf_type buf_type, int *domain, int *partition)
@@ -93,6 +95,19 @@ int msm_vidc_get_iommu_domain_partition(void *instance, u32 flags,
	return msm_comm_get_domain_partition(inst, flags, buf_type, domain,
		partition);
}
EXPORT_SYMBOL(msm_vidc_get_iommu_domain_partition);

void *msm_vidc_get_resources(void *instance)
{
	struct msm_vidc_inst *inst = instance;
	struct msm_vidc_platform_resources *res = NULL;

	if (inst != NULL && inst->core != NULL)
		res = &inst->core->resources;

	return res;
}
EXPORT_SYMBOL(msm_vidc_get_resources);

int msm_vidc_querycap(void *instance, struct v4l2_capability *cap)
{
@@ -107,6 +122,8 @@ int msm_vidc_querycap(void *instance, struct v4l2_capability *cap)
		return msm_venc_querycap(instance, cap);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_querycap);

int msm_vidc_s_parm(void *instance,
		struct v4l2_streamparm *a)
{
@@ -120,6 +137,8 @@ int msm_vidc_s_parm(void *instance,
		return msm_venc_s_parm(instance, a);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_s_parm);

int msm_vidc_enum_fmt(void *instance, struct v4l2_fmtdesc *f)
{
	struct msm_vidc_inst *inst = instance;
@@ -133,6 +152,8 @@ int msm_vidc_enum_fmt(void *instance, struct v4l2_fmtdesc *f)
		return msm_venc_enum_fmt(instance, f);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_enum_fmt);

int msm_vidc_s_fmt(void *instance, struct v4l2_format *f)
{
	struct msm_vidc_inst *inst = instance;
@@ -146,6 +167,8 @@ int msm_vidc_s_fmt(void *instance, struct v4l2_format *f)
		return msm_venc_s_fmt(instance, f);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_s_fmt);

int msm_vidc_g_fmt(void *instance, struct v4l2_format *f)
{
	struct msm_vidc_inst *inst = instance;
@@ -159,6 +182,8 @@ int msm_vidc_g_fmt(void *instance, struct v4l2_format *f)
		return msm_venc_g_fmt(instance, f);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_g_fmt);

int msm_vidc_s_ctrl(void *instance, struct v4l2_control *control)
{
	struct msm_vidc_inst *inst = instance;
@@ -172,6 +197,8 @@ int msm_vidc_s_ctrl(void *instance, struct v4l2_control *control)
		return msm_venc_s_ctrl(instance, control);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_s_ctrl);

int msm_vidc_g_ctrl(void *instance, struct v4l2_control *control)
{
	struct msm_vidc_inst *inst = instance;
@@ -185,6 +212,8 @@ int msm_vidc_g_ctrl(void *instance, struct v4l2_control *control)
		return msm_venc_g_ctrl(instance, control);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_g_ctrl);

int msm_vidc_reqbufs(void *instance, struct v4l2_requestbuffers *b)
{
	struct msm_vidc_inst *inst = instance;
@@ -198,6 +227,7 @@ int msm_vidc_reqbufs(void *instance, struct v4l2_requestbuffers *b)
		return msm_venc_reqbufs(instance, b);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_reqbufs);

struct buffer_info *get_registered_buf(struct msm_vidc_inst *inst,
		struct v4l2_buffer *b, int idx, int *plane)
@@ -697,6 +727,7 @@ int msm_vidc_prepare_buf(void *instance, struct v4l2_buffer *b)
		return msm_venc_prepare_buf(instance, b);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_prepare_buf);

int msm_vidc_release_buffers(void *instance, int buffer_type)
{
@@ -751,6 +782,7 @@ int msm_vidc_release_buffers(void *instance, int buffer_type)
	}
	return rc;
}
EXPORT_SYMBOL(msm_vidc_release_buffers);

int msm_vidc_encoder_cmd(void *instance, struct v4l2_encoder_cmd *enc)
{
@@ -759,6 +791,7 @@ int msm_vidc_encoder_cmd(void *instance, struct v4l2_encoder_cmd *enc)
		return msm_venc_cmd(instance, enc);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_encoder_cmd);

int msm_vidc_decoder_cmd(void *instance, struct v4l2_decoder_cmd *dec)
{
@@ -767,6 +800,7 @@ int msm_vidc_decoder_cmd(void *instance, struct v4l2_decoder_cmd *dec)
		return msm_vdec_cmd(instance, dec);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_decoder_cmd);

int msm_vidc_qbuf(void *instance, struct v4l2_buffer *b)
{
@@ -851,6 +885,7 @@ int msm_vidc_qbuf(void *instance, struct v4l2_buffer *b)
err_invalid_buff:
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_qbuf);

int msm_vidc_dqbuf(void *instance, struct v4l2_buffer *b)
{
@@ -915,6 +950,7 @@ int msm_vidc_dqbuf(void *instance, struct v4l2_buffer *b)

	return rc;
}
EXPORT_SYMBOL(msm_vidc_dqbuf);

int msm_vidc_streamon(void *instance, enum v4l2_buf_type i)
{
@@ -929,6 +965,7 @@ int msm_vidc_streamon(void *instance, enum v4l2_buf_type i)
		return msm_venc_streamon(instance, i);
	return -EINVAL;
}
EXPORT_SYMBOL(msm_vidc_streamon);

int msm_vidc_streamoff(void *instance, enum v4l2_buf_type i)
{
@@ -943,7 +980,7 @@ int msm_vidc_streamoff(void *instance, enum v4l2_buf_type i)
		return msm_venc_streamoff(instance, i);
	return -EINVAL;
}

EXPORT_SYMBOL(msm_vidc_streamoff);

int msm_vidc_enum_framesizes(void *instance, struct v4l2_frmsizeenum *fsize)
{
@@ -968,6 +1005,8 @@ int msm_vidc_enum_framesizes(void *instance, struct v4l2_frmsizeenum *fsize)
	fsize->stepwise.step_height = capability->height.step_size;
	return 0;
}
EXPORT_SYMBOL(msm_vidc_enum_framesizes);

static void *vidc_get_userptr(void *alloc_ctx, unsigned long vaddr,
				unsigned long size, int write)
{
@@ -1035,7 +1074,7 @@ int msm_vidc_subscribe_event(void *inst, const struct v4l2_event_subscription *s
	rc = v4l2_event_subscribe(&vidc_inst->event_handler, sub, MAX_EVENTS, NULL);
	return rc;
}

EXPORT_SYMBOL(msm_vidc_subscribe_event);

int msm_vidc_unsubscribe_event(void *inst, const struct v4l2_event_subscription *sub)
{
@@ -1048,6 +1087,7 @@ int msm_vidc_unsubscribe_event(void *inst, const struct v4l2_event_subscription
	rc = v4l2_event_unsubscribe(&vidc_inst->event_handler, sub);
	return rc;
}
EXPORT_SYMBOL(msm_vidc_unsubscribe_event);

int msm_vidc_dqevent(void *inst, struct v4l2_event *event)
{
@@ -1060,6 +1100,7 @@ int msm_vidc_dqevent(void *inst, struct v4l2_event *event)
	rc = v4l2_event_dequeue(&vidc_inst->event_handler, event, false);
	return rc;
}
EXPORT_SYMBOL(msm_vidc_dqevent);

void *msm_vidc_open(int core_id, int session_type)
{
@@ -1167,6 +1208,7 @@ fail_mem_client:
err_invalid_core:
	return inst;
}
EXPORT_SYMBOL(msm_vidc_open);

static void cleanup_instance(struct msm_vidc_inst *inst)
{
@@ -1273,3 +1315,5 @@ int msm_vidc_close(void *instance)
	kfree(inst);
	return 0;
}
EXPORT_SYMBOL(msm_vidc_close);
+1 −1
Original line number Diff line number Diff line
@@ -17,10 +17,10 @@
#include <linux/kernel.h>
#include <asm/div64.h>
#include <mach/subsystem_restart.h>
#include <media/msm_smem.h>

#include "msm_vidc_common.h"
#include "vidc_hfi_api.h"
#include "msm_smem.h"
#include "msm_vidc_debug.h"

#define IS_ALREADY_IN_STATE(__p, __d) ({\
Loading