mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-24 19:40:21 +09:00
board: add CONFIG_ARM64_A32 and CONFIG_COMPAT
PD#169652: add CONFIG_ARM64_A32 and CONFIG_COMPAT add CONFIG_ARM64_A32 support and add missing CONFIG_COMPAT Change-Id: Id041292cccd39618ba9932d123a219f0583fd4c5 Signed-off-by: Ao Xu <ao.xu@amlogic.com>
This commit is contained in:
@@ -14,8 +14,6 @@
|
||||
* See the GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <asm/irq.h>
|
||||
|
||||
#include <linux/version.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/irq.h>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "securekey.h"
|
||||
#include <linux/arm-smccc.h>
|
||||
|
||||
#ifdef CONFIG_ARM64
|
||||
#if (defined CONFIG_ARM64) || (defined CONFIG_ARM64_A32)
|
||||
|
||||
int aml_is_secure_set(void)
|
||||
{
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_ARM64
|
||||
#if (defined CONFIG_ARM64) || (defined CONFIG_ARM64_A32)
|
||||
#define AML_D_P_UPGRADE_CHECK (0x80)
|
||||
#define AML_D_P_IMG_DECRYPT (0x40)
|
||||
#define AML_DATA_PROCESS (0x820000FF)
|
||||
|
||||
@@ -3354,7 +3354,9 @@ static int delsys_confirm(struct dvb_frontend *fe)
|
||||
case SYS_DAB:
|
||||
case SYS_TURBO:
|
||||
case SYS_UNDEFINED:
|
||||
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
|
||||
case SYS_ANALOG:
|
||||
#endif
|
||||
mode = AM_FE_UNKNOWN_N;
|
||||
PR_INFO("delsys not support!%d=\n", cdelsys);
|
||||
return 0;
|
||||
@@ -3486,7 +3488,9 @@ static int delsys_set(struct dvb_frontend *fe, unsigned int delsys)
|
||||
case SYS_DAB:
|
||||
case SYS_TURBO:
|
||||
case SYS_UNDEFINED:
|
||||
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
|
||||
case SYS_ANALOG:
|
||||
#endif
|
||||
mode = AM_FE_UNKNOWN_N;
|
||||
if (get_dtvpll_init_flag()) {
|
||||
PR_INFO("delsys not support!%d=\n", cdelsys);
|
||||
@@ -4104,8 +4108,12 @@ static struct dvb_frontend_ops aml_dtvdm_txl_ops = {
|
||||
};
|
||||
|
||||
static struct dvb_frontend_ops aml_dtvdm_txlx_ops = {
|
||||
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
|
||||
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B, SYS_DVBC_ANNEX_A, SYS_DVBT,
|
||||
SYS_ANALOG},
|
||||
#else
|
||||
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B, SYS_DVBC_ANNEX_A, SYS_DVBT},
|
||||
#endif
|
||||
.info = {
|
||||
/*in aml_fe, it is 'amlogic dvb frontend' */
|
||||
.name = "amlogic dtv demod txlx",
|
||||
|
||||
@@ -1075,10 +1075,7 @@ void apb_write_reg(unsigned int addr, unsigned int data)
|
||||
|
||||
unsigned long apb_read_reg_high(unsigned long addr)
|
||||
{
|
||||
unsigned long tmp;
|
||||
|
||||
tmp = 0;
|
||||
return (tmp >> 32) & 0xffffffff;
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long apb_read_reg(unsigned long addr)
|
||||
|
||||
@@ -67,7 +67,7 @@ void dtmb_clk_set(unsigned int adc_clk)
|
||||
unsigned int fe_modify = 0x4d6a;
|
||||
|
||||
if (adc_clk)
|
||||
fe_modify = 3963617280 / (adc_clk << 3);
|
||||
fe_modify = 3963617280UL / (adc_clk << 3);
|
||||
|
||||
dtmb_set_fe_config_modify(fe_modify);
|
||||
|
||||
|
||||
@@ -40,7 +40,9 @@ void tuner_set_params(struct dvb_frontend *fe)
|
||||
int tuner_get_ch_power(struct dvb_frontend *fe)
|
||||
{
|
||||
int strength = 0;
|
||||
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
|
||||
s16 strengtha = 0;
|
||||
#endif
|
||||
|
||||
if (fe != NULL) {
|
||||
#if 0
|
||||
@@ -49,12 +51,14 @@ int tuner_get_ch_power(struct dvb_frontend *fe)
|
||||
else
|
||||
PR_INFO("no tuner get_strength\n");
|
||||
#endif
|
||||
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
|
||||
if (fe->ops.tuner_ops.get_strength) {
|
||||
fe->ops.tuner_ops.get_strength(fe, &strengtha);
|
||||
strength = (int)strengtha;
|
||||
} else {
|
||||
PR_INFO("no tuner get_strength\n");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -65,12 +69,14 @@ int tuner_get_ch_power2(void)
|
||||
{
|
||||
|
||||
int strength = 0;
|
||||
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
|
||||
s16 strengtha = 0;
|
||||
#endif
|
||||
struct dvb_frontend *fe;
|
||||
|
||||
fe = aml_get_fe();
|
||||
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
|
||||
if (fe != NULL) {
|
||||
|
||||
if (fe->ops.tuner_ops.get_strength) {
|
||||
fe->ops.tuner_ops.get_strength(fe, &strengtha);
|
||||
//strength = strengtha - 256;
|
||||
@@ -79,7 +85,7 @@ int tuner_get_ch_power2(void)
|
||||
PR_INFO("no tuner get_strength\n");
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return strength;
|
||||
}
|
||||
@@ -88,10 +94,13 @@ u16 tuner_get_ch_power3(void)
|
||||
{
|
||||
|
||||
u16 strength = 0;
|
||||
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
|
||||
s16 strengtha = 0;
|
||||
#endif
|
||||
struct dvb_frontend *fe;
|
||||
|
||||
fe = aml_get_fe();
|
||||
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
|
||||
if (fe != NULL) {
|
||||
|
||||
if (fe->ops.tuner_ops.get_strength) {
|
||||
@@ -106,7 +115,7 @@ u16 tuner_get_ch_power3(void)
|
||||
PR_INFO("no tuner get_strength\n");
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return strength;
|
||||
}
|
||||
|
||||
@@ -85,9 +85,11 @@ static unsigned int vsync_irq_count;
|
||||
static bool osd_rdma_done;
|
||||
static int osd_rdma_handle = -1;
|
||||
static struct rdma_table_item *rdma_temp_tbl;
|
||||
void *memcpy(void *dest, const void *src, size_t len);
|
||||
|
||||
static int osd_rdma_init(void);
|
||||
|
||||
#ifdef CONFIG_ARM64
|
||||
static inline void osd_rdma_mem_cpy(struct rdma_table_item *dst,
|
||||
struct rdma_table_item *src, u32 len)
|
||||
{
|
||||
@@ -106,6 +108,13 @@ static inline void osd_rdma_mem_cpy(struct rdma_table_item *dst,
|
||||
: "r" (src), "r" (dst), "r" (len)
|
||||
: "x5", "x6");
|
||||
}
|
||||
#else
|
||||
inline void osd_rdma_mem_cpy(struct rdma_table_item *dst,
|
||||
struct rdma_table_item *src, u32 len)
|
||||
{
|
||||
memcpy(dst, src, len);
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline void reset_rdma_table(void)
|
||||
{
|
||||
@@ -132,7 +141,7 @@ static inline void reset_rdma_table(void)
|
||||
|
||||
if ((item_count * (sizeof(struct rdma_table_item))) >
|
||||
RDMA_TEMP_TBL_SIZE) {
|
||||
pr_info("more memory: allocate(%x), expect(%lx)\n",
|
||||
pr_info("more memory: allocate(%x), expect(%zu)\n",
|
||||
(unsigned int) RDMA_TEMP_TBL_SIZE,
|
||||
sizeof(struct rdma_table_item) *
|
||||
item_count);
|
||||
|
||||
@@ -1384,6 +1384,7 @@ static long picdec_ioctl(struct file *filp, unsigned int cmd,
|
||||
context = (struct ge2d_context_s *) filp->private_data;
|
||||
argp = (void __user *)args;
|
||||
switch (cmd) {
|
||||
#ifdef CONFIG_COMPAT
|
||||
case PICDEC_IOC_FRAME_RENDER32:
|
||||
aml_pr_info(1, "PICDEC_IOC_FRAME_RENDER32\n");
|
||||
{
|
||||
@@ -1404,6 +1405,7 @@ static long picdec_ioctl(struct file *filp, unsigned int cmd,
|
||||
render_frame_block();
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case PICDEC_IOC_FRAME_RENDER:
|
||||
aml_pr_info(1, "PICDEC_IOC_FRAME_RENDER\n");
|
||||
if (copy_from_user
|
||||
|
||||
@@ -83,6 +83,7 @@ struct source_input_s {
|
||||
int rotate;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_COMPAT
|
||||
struct compat_source_input_s {
|
||||
compat_uptr_t input;
|
||||
int frame_width;
|
||||
@@ -91,15 +92,17 @@ struct compat_source_input_s {
|
||||
int rotate;
|
||||
};
|
||||
|
||||
#define PICDEC_IOC_FRAME_RENDER32 _IOW(PICDEC_IOC_MAGIC, 0x00, \
|
||||
struct compat_source_input_s)
|
||||
|
||||
#endif
|
||||
|
||||
#define PICDEC_IOC_MAGIC 'P'
|
||||
#define PICDEC_IOC_FRAME_RENDER _IOW(PICDEC_IOC_MAGIC, 0x00, \
|
||||
struct source_input_s)
|
||||
#define PICDEC_IOC_FRAME_POST _IOW(PICDEC_IOC_MAGIC, 0X01, unsigned int)
|
||||
#define PICDEC_IOC_CONFIG_FRAME _IOW(PICDEC_IOC_MAGIC, 0X02, unsigned int)
|
||||
|
||||
#define PICDEC_IOC_FRAME_RENDER32 _IOW(PICDEC_IOC_MAGIC, 0x00, \
|
||||
struct compat_source_input_s)
|
||||
|
||||
void stop_picdec_task(void);
|
||||
int picdec_buffer_init(void);
|
||||
void get_picdec_buf_info(resource_size_t *start, unsigned int *size,
|
||||
|
||||
@@ -332,7 +332,7 @@ static void bl_gpio_set(int index, int value)
|
||||
|
||||
static inline unsigned int bl_do_div(unsigned long num, unsigned int den)
|
||||
{
|
||||
unsigned long ret = num;
|
||||
unsigned long long ret = num;
|
||||
|
||||
do_div(ret, den);
|
||||
return (unsigned int)ret;
|
||||
|
||||
@@ -453,8 +453,10 @@ unsigned long find_back_trace(void)
|
||||
frame.fp = (unsigned long)__builtin_frame_address(0);
|
||||
frame.sp = current_stack_pointer;
|
||||
frame.pc = _RET_IP_;
|
||||
#ifdef CONFIG_ARM64
|
||||
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
||||
frame.graph = current->curr_ret_stack;
|
||||
#endif
|
||||
#endif
|
||||
while (1) {
|
||||
#ifdef CONFIG_ARM64
|
||||
|
||||
@@ -19,32 +19,32 @@ config AMLOGIC_PINCTRL_MESON8B
|
||||
|
||||
config AMLOGIC_PINCTRL_MESON_GXL
|
||||
bool "Meson gxl SoC pinctrl driver"
|
||||
depends on ARM64
|
||||
depends on ARM64 || ARM64_A32
|
||||
select AMLOGIC_PINCTRL_MESON8_PMX
|
||||
default n
|
||||
|
||||
config AMLOGIC_PINCTRL_MESON_AXG
|
||||
bool "Meson axg SoC pinctrl driver"
|
||||
depends on ARM64
|
||||
depends on ARM64 || ARM64_A32
|
||||
select AMLOGIC_PINCTRL_MESON_AXG_PMX
|
||||
default n
|
||||
|
||||
config AMLOGIC_PINCTRL_MESON_TXLX
|
||||
bool "Meson txlx SoC pinctrl driver"
|
||||
depends on ARM64
|
||||
depends on ARM64 || ARM64_A32
|
||||
select AMLOGIC_PINCTRL_MESON8_PMX
|
||||
default n
|
||||
|
||||
config AMLOGIC_PINCTRL_MESON_G12A
|
||||
bool "Meson g12a SoC pinctrl driver"
|
||||
depends on ARM64
|
||||
depends on ARM64 || ARM64_A32
|
||||
select AMLOGIC_PINCTRL_MESON_AXG_PMX
|
||||
select AMLOGIC_PINCONF_MESON_G12A
|
||||
default n
|
||||
|
||||
config AMLOGIC_PINCTRL_MESON_TXL
|
||||
bool "Meson txl SoC pinctrl driver"
|
||||
depends on ARM64
|
||||
depends on ARM64 || ARM64_A32
|
||||
select AMLOGIC_PINCTRL_MESON8_PMX
|
||||
default n
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ config AMLOGIC_GX_SUSPEND
|
||||
depends on CPU_IDLE
|
||||
depends on PM_WAKELOCKS
|
||||
depends on PM
|
||||
depends on ARM64
|
||||
depends on ARM64 || ARM64_A32
|
||||
default n
|
||||
help
|
||||
This is the Amlogic suspend driver for 64bit family chips
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <asm/suspend.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/cpuidle.h>
|
||||
#include <asm/cpuidle.h>
|
||||
#include <uapi/linux/psci.h>
|
||||
#include <linux/arm-smccc.h>
|
||||
|
||||
@@ -198,6 +198,7 @@ config FRAME_WARN
|
||||
int "Warn for stack frames larger than (needs gcc 4.4)"
|
||||
range 0 8192
|
||||
default 2048 if GCC_PLUGIN_LATENT_ENTROPY
|
||||
default 2048 if ARM64_A32
|
||||
default 1024 if !64BIT
|
||||
default 2048 if 64BIT
|
||||
help
|
||||
|
||||
Reference in New Issue
Block a user