summaryrefslogtreecommitdiff
authorAo Xu <ao.xu@amlogic.com>2018-08-13 07:25:28 (GMT)
committer Zhi Zhou <zhi.zhou@amlogic.com>2018-08-22 02:19:44 (GMT)
commit1e37ecaba24a7e63afe122946f02094659eafec2 (patch)
tree2042215bd6521b3e72e12d7c47744dda3e73b685
parentd978b867263e92efdeb06be83dbc4fe8bbf67258 (diff)
downloadmedia_modules-1e37ecaba24a7e63afe122946f02094659eafec2.zip
media_modules-1e37ecaba24a7e63afe122946f02094659eafec2.tar.gz
media_modules-1e37ecaba24a7e63afe122946f02094659eafec2.tar.bz2
media_module: solve 32bit compile error
PD#169652: media_modules: solve 32bit compile error Change-Id: Id12608913df7372a303606dbf39b1f349eaaf08d Signed-off-by: Ao Xu <ao.xu@amlogic.com>
Diffstat
-rw-r--r--Media.mk9
-rw-r--r--drivers/amvdec_ports/aml_vcodec_dec.c4
-rw-r--r--drivers/amvdec_ports/decoder/vdec_h264_if.c4
-rw-r--r--drivers/frame_provider/decoder/avs2/vavs2.c2
-rw-r--r--drivers/frame_provider/decoder/h264_multi/vmh264.c4
-rw-r--r--drivers/frame_provider/decoder/mpeg12/vmpeg12.c4
-rw-r--r--drivers/frame_provider/decoder/utils/secprot.c32
-rw-r--r--drivers/frame_provider/decoder/utils/secprot.h2
-rw-r--r--drivers/frame_provider/decoder/utils/vdec.c6
-rw-r--r--drivers/frame_provider/decoder/vp9/vvp9.c2
-rw-r--r--drivers/frame_sink/encoder/h265/vmm.h2
-rw-r--r--drivers/frame_sink/encoder/h265/vpu.c12
-rw-r--r--drivers/frame_sink/encoder/h265/vpu.h4
13 files changed, 75 insertions, 12 deletions
diff --git a/Media.mk b/Media.mk
index 97ad1ae..d9726d7 100644
--- a/Media.mk
+++ b/Media.mk
@@ -1,4 +1,9 @@
+ifeq ($(KERNEL_A32_SUPPORT), true)
+KERNEL_ARCH := arm
+else
KERNEL_ARCH := arm64
+endif
+
CONFIGS := CONFIG_AMLOGIC_MEDIA_VDEC_MPEG12=m \
CONFIG_AMLOGIC_MEDIA_VDEC_MPEG4=m \
CONFIG_AMLOGIC_MEDIA_VDEC_MPEG4_MULTI=m \
@@ -82,7 +87,11 @@ ifeq (,$(wildcard $(MODS_OUT)))
$(shell mkdir $(MODS_OUT) -p)
endif
+ifeq ($(KERNEL_A32_SUPPORT), true)
+TOOLS := /opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
+else
TOOLS := /opt/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
+endif
modules:
@$(MAKE) -C $(KDIR) M=$(MEDIA_DRIVERS) ARCH=$(KERNEL_ARCH) \
diff --git a/drivers/amvdec_ports/aml_vcodec_dec.c b/drivers/amvdec_ports/aml_vcodec_dec.c
index a2055aa..e33ca62 100644
--- a/drivers/amvdec_ports/aml_vcodec_dec.c
+++ b/drivers/amvdec_ports/aml_vcodec_dec.c
@@ -253,9 +253,9 @@ void trans_vframe_to_user(struct aml_vcodec_ctx *ctx, struct vdec_fb *fb)
if (!dstbuf->used)
return;
- aml_v4l2_debug(4,"%s() [%d], base_y: %lu, idx: %u\n",
+ aml_v4l2_debug(4,"%s() [%d], base_y: %zu, idx: %u\n",
__FUNCTION__, __LINE__, fb->base_y.size, dstbuf->vb.vb2_buf.index);
- aml_v4l2_debug(4,"%s() [%d], base_c: %lu, idx: %u\n",
+ aml_v4l2_debug(4,"%s() [%d], base_c: %zu, idx: %u\n",
__FUNCTION__, __LINE__, fb->base_c.size, dstbuf->vb.vb2_buf.index);
dstbuf->vb.vb2_buf.timestamp = vf->timestamp;
diff --git a/drivers/amvdec_ports/decoder/vdec_h264_if.c b/drivers/amvdec_ports/decoder/vdec_h264_if.c
index 0c441d9..fbda1f2 100644
--- a/drivers/amvdec_ports/decoder/vdec_h264_if.c
+++ b/drivers/amvdec_ports/decoder/vdec_h264_if.c
@@ -517,10 +517,10 @@ static void vdec_h264_get_vf(struct vdec_h264_inst *inst, struct vdec_fb **out)
//dump_write(fb->base_y.va, fb->base_y.bytes_used);
//dump_write(fb->base_c.va, fb->base_c.bytes_used);
- aml_vcodec_debug(inst, "%s() [%d], va: %p, phy: %x, size: %lu\n",
+ aml_vcodec_debug(inst, "%s() [%d], va: %p, phy: %x, size: %zu\n",
__FUNCTION__, __LINE__, fb->base_y.va,
(unsigned int)virt_to_phys(fb->base_y.va), fb->base_y.size);
- aml_vcodec_debug(inst, "%s() [%d], va: %p, phy: %x, size: %lu\n",
+ aml_vcodec_debug(inst, "%s() [%d], va: %p, phy: %x, size: %zu\n",
__FUNCTION__, __LINE__, fb->base_c.va,
(unsigned int)virt_to_phys(fb->base_c.va), fb->base_c.size);
}
diff --git a/drivers/frame_provider/decoder/avs2/vavs2.c b/drivers/frame_provider/decoder/avs2/vavs2.c
index 15f986c..0039864 100644
--- a/drivers/frame_provider/decoder/avs2/vavs2.c
+++ b/drivers/frame_provider/decoder/avs2/vavs2.c
@@ -274,7 +274,7 @@ static inline int div_r32(int64_t m, int n)
return (int)(m/n)
*/
#ifndef CONFIG_ARM64
- do_div(m, n);
+ div_s64(m, n);
return (int)m;
#else
return (int)(m/n);
diff --git a/drivers/frame_provider/decoder/h264_multi/vmh264.c b/drivers/frame_provider/decoder/h264_multi/vmh264.c
index bbbe129..24fa32e 100644
--- a/drivers/frame_provider/decoder/h264_multi/vmh264.c
+++ b/drivers/frame_provider/decoder/h264_multi/vmh264.c
@@ -6082,11 +6082,13 @@ static int vmh264_user_data_read(struct vdec_s *vdec,
struct mh264_userdata_record_t *p_userdata_rec;
u32 data_size;
u32 res;
+ unsigned long addr;
int copy_ok = 1;
hw = (struct vdec_h264_hw_s *)vdec->private;
- pdest_buf = (void *)(puserdata_para->pbuf_addr);
+ addr = puserdata_para->pbuf_addr;
+ pdest_buf = (void *)addr;
mutex_lock(&hw->userdata_mutex);
/*
diff --git a/drivers/frame_provider/decoder/mpeg12/vmpeg12.c b/drivers/frame_provider/decoder/mpeg12/vmpeg12.c
index 6eda94c..36c9dbd 100644
--- a/drivers/frame_provider/decoder/mpeg12/vmpeg12.c
+++ b/drivers/frame_provider/decoder/mpeg12/vmpeg12.c
@@ -1478,13 +1478,15 @@ static int vmpeg12_user_data_read(struct vdec_s *vdec,
u8 *rec_data_start;
u8 *pdest_buf;
struct mpeg12_userdata_recored_t *p_userdata_rec;
+ unsigned long addr;
u32 data_size;
u32 res;
int copy_ok = 1;
- pdest_buf = (void *)(puserdata_para->pbuf_addr);
+ addr = puserdata_para->pbuf_addr;
+ pdest_buf = (void *)addr;
mutex_lock(&userdata_mutex);
if (!p_userdata_mgr) {
diff --git a/drivers/frame_provider/decoder/utils/secprot.c b/drivers/frame_provider/decoder/utils/secprot.c
index 1d14e2c..a1e7fa7 100644
--- a/drivers/frame_provider/decoder/utils/secprot.c
+++ b/drivers/frame_provider/decoder/utils/secprot.c
@@ -15,7 +15,14 @@
*
*/
+#include <linux/kernel.h>
+#include <asm/compiler.h>
#include "secprot.h"
+#ifndef CONFIG_ARM64
+#include <asm/opcodes-sec.h>
+#endif
+
+#ifdef CONFIG_ARM64
int tee_config_device_secure(int dev_id, int secure)
{
@@ -40,4 +47,29 @@ int tee_config_device_secure(int dev_id, int secure)
return ret;
}
+#else
+int tee_config_device_secure(int dev_id, int secure)
+{
+ int ret = 0;
+ register unsigned int r0 asm("r0");
+ register unsigned int r1 asm("r1");
+ register unsigned int r2 asm("r2");
+
+ r0 = OPTEE_SMC_CONFIG_DEVICE_SECURE;
+ r1 = dev_id;
+ r2 = secure;
+
+ asm volatile(
+ __asmeq("%0", "r0")
+ __asmeq("%1", "r0")
+ __asmeq("%2", "r1")
+ __asmeq("%3", "r2")
+ __SMC(0)
+ : "=r"(r0)
+ : "r"(r0), "r"(r1), "r"(r2));
+ ret = r0;
+
+ return ret;
+}
+#endif
diff --git a/drivers/frame_provider/decoder/utils/secprot.h b/drivers/frame_provider/decoder/utils/secprot.h
index f8fc5da..28ee477 100644
--- a/drivers/frame_provider/decoder/utils/secprot.h
+++ b/drivers/frame_provider/decoder/utils/secprot.h
@@ -31,7 +31,7 @@
#define OPTEE_SMC_CONFIG_DEVICE_SECURE 0xb200000e
-#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"
+/*#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"*/
extern int tee_config_device_secure(int dev_id, int secure);
diff --git a/drivers/frame_provider/decoder/utils/vdec.c b/drivers/frame_provider/decoder/utils/vdec.c
index 0b9ac7f..2ad8c3c 100644
--- a/drivers/frame_provider/decoder/utils/vdec.c
+++ b/drivers/frame_provider/decoder/utils/vdec.c
@@ -3168,6 +3168,7 @@ static ssize_t show_debug(struct class *class,
struct vdec_s *vdec;
struct vdec_core_s *core = vdec_core;
unsigned long flags = vdec_core_lock(vdec_core);
+ u64 tmp;
pbuf += sprintf(pbuf,
"============== help:\n");
@@ -3207,11 +3208,12 @@ static ssize_t show_debug(struct class *class,
vdec->input_underrun_count[type]);
pbuf += sprintf(pbuf, "\t%d",
vdec->not_run_ready_count[type]);
+ tmp = vdec->run_clk[type] * 100;
+ do_div(tmp, vdec->total_clk[type]);
pbuf += sprintf(pbuf,
"\t%d%%\n",
vdec->total_clk[type] == 0 ? 0 :
- (u32)((vdec->run_clk[type] * 100)
- / vdec->total_clk[type]));
+ (u32)tmp);
}
}
}
diff --git a/drivers/frame_provider/decoder/vp9/vvp9.c b/drivers/frame_provider/decoder/vp9/vvp9.c
index 6e5da22..a7cabcd 100644
--- a/drivers/frame_provider/decoder/vp9/vvp9.c
+++ b/drivers/frame_provider/decoder/vp9/vvp9.c
@@ -265,7 +265,7 @@ static inline int div_r32(int64_t m, int n)
*return (int)(m/n)
*/
#ifndef CONFIG_ARM64
- do_div(m, n);
+ div_s64(m, n);
return (int)m;
#else
return (int)(m/n);
diff --git a/drivers/frame_sink/encoder/h265/vmm.h b/drivers/frame_sink/encoder/h265/vmm.h
index 3c9c6d8..a32dd06 100644
--- a/drivers/frame_sink/encoder/h265/vmm.h
+++ b/drivers/frame_sink/encoder/h265/vmm.h
@@ -476,7 +476,7 @@ s32 vmem_init(struct video_mm_t *mm, ulong addr, ulong size)
(struct page_t *)VMEM_P_ALLOC(
mm->num_pages * sizeof(struct page_t));
if (mm->page_list == NULL) {
- pr_err("%s:%d failed to kmalloc(%ld)\n",
+ pr_err("%s:%d failed to kmalloc(%zu)\n",
__func__, __LINE__,
mm->num_pages * sizeof(struct page_t));
return -1;
diff --git a/drivers/frame_sink/encoder/h265/vpu.c b/drivers/frame_sink/encoder/h265/vpu.c
index 3345b0a..ecc4ba7 100644
--- a/drivers/frame_sink/encoder/h265/vpu.c
+++ b/drivers/frame_sink/encoder/h265/vpu.c
@@ -491,6 +491,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_ALLOCATE_PHYSICAL_MEMORY\n");
}
break;
+#ifdef CONFIG_COMPAT
case VDI_IOCTL_ALLOCATE_PHYSICAL_MEMORY32:
{
struct vpudrv_buffer_pool_t *vbp;
@@ -560,6 +561,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_ALLOCATE_PHYSICAL_MEMORY32\n");
}
break;
+#endif
case VDI_IOCTL_FREE_PHYSICALMEMORY:
{
struct vpudrv_buffer_pool_t *vbp, *n;
@@ -596,6 +598,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_FREE_PHYSICALMEMORY\n");
}
break;
+#ifdef CONFIG_COMPAT
case VDI_IOCTL_FREE_PHYSICALMEMORY32:
{
struct vpudrv_buffer_pool_t *vbp, *n;
@@ -642,6 +645,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_FREE_PHYSICALMEMORY32\n");
}
break;
+#endif
case VDI_IOCTL_GET_RESERVED_VIDEO_MEMORY_INFO:
{
enc_pr(LOG_ALL,
@@ -659,6 +663,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_GET_RESERVED_VIDEO_MEMORY_INFO\n");
}
break;
+#ifdef CONFIG_COMPAT
case VDI_IOCTL_GET_RESERVED_VIDEO_MEMORY_INFO32:
{
struct compat_vpudrv_buffer_t buf32;
@@ -686,6 +691,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_GET_RESERVED_VIDEO_MEMORY_INFO32\n");
}
break;
+#endif
case VDI_IOCTL_WAIT_INTERRUPT:
{
struct vpudrv_intr_info_t info;
@@ -804,6 +810,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_GET_INSTANCE_POOL\n");
}
break;
+#ifdef CONFIG_COMPAT
case VDI_IOCTL_GET_INSTANCE_POOL32:
{
struct compat_vpudrv_buffer_t buf32;
@@ -875,6 +882,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_GET_INSTANCE_POOL32\n");
}
break;
+#endif
case VDI_IOCTL_GET_COMMON_MEMORY:
{
enc_pr(LOG_ALL,
@@ -907,6 +915,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_GET_COMMON_MEMORY\n");
}
break;
+#ifdef CONFIG_COMPAT
case VDI_IOCTL_GET_COMMON_MEMORY32:
{
struct compat_vpudrv_buffer_t buf32;
@@ -965,6 +974,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_GET_COMMON_MEMORY32\n");
}
break;
+#endif
case VDI_IOCTL_OPEN_INSTANCE:
{
struct vpudrv_inst_info_t inst_info;
@@ -1133,6 +1143,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
s_vpu_register.size);
}
break;
+#ifdef CONFIG_COMPAT
case VDI_IOCTL_GET_REGISTER_INFO32:
{
struct compat_vpudrv_buffer_t buf32;
@@ -1207,6 +1218,7 @@ static long vpu_ioctl(struct file *filp, u32 cmd, ulong arg)
"[-]VDI_IOCTL_FLUSH_BUFFER32\n");
}
break;
+#endif
case VDI_IOCTL_FLUSH_BUFFER:
{
struct vpudrv_buffer_pool_t *pool, *n;
diff --git a/drivers/frame_sink/encoder/h265/vpu.h b/drivers/frame_sink/encoder/h265/vpu.h
index 9c29a43..eaf764c 100644
--- a/drivers/frame_sink/encoder/h265/vpu.h
+++ b/drivers/frame_sink/encoder/h265/vpu.h
@@ -101,6 +101,7 @@
READ_HHI_REG(HHI_WAVE420L_CLK_CNTL2) \
& (~(1 << 8)))
+#ifdef CONFIG_COMPAT
struct compat_vpudrv_buffer_t {
u32 size;
u32 cached;
@@ -108,6 +109,7 @@ struct compat_vpudrv_buffer_t {
compat_ulong_t base; /* kernel logical address in use kernel */
compat_ulong_t virt_addr; /* virtual user space address */
};
+#endif
struct vpudrv_buffer_t {
u32 size;
@@ -204,6 +206,7 @@ struct vpudrv_instance_pool_t {
#define VDI_IOCTL_FLUSH_BUFFER \
_IOW(VDI_MAGIC, 13, VPUDRV_BUF_LEN)
+#ifdef CONFIG_COMPAT
#define VDI_IOCTL_ALLOCATE_PHYSICAL_MEMORY32 \
_IOW(VDI_MAGIC, 0, VPUDRV_BUF_LEN32)
@@ -224,6 +227,7 @@ struct vpudrv_instance_pool_t {
#define VDI_IOCTL_FLUSH_BUFFER32 \
_IOW(VDI_MAGIC, 13, VPUDRV_BUF_LEN32)
+#endif
enum {
W4_INT_INIT_VPU = 0,