diff --git a/BSP/linux-kernel/arch/arm/configs/na51089_evb_cardv_defconfig_release b/BSP/linux-kernel/arch/arm/configs/na51089_evb_cardv_defconfig_release index 637cdd6a7..5b379f486 100755 --- a/BSP/linux-kernel/arch/arm/configs/na51089_evb_cardv_defconfig_release +++ b/BSP/linux-kernel/arch/arm/configs/na51089_evb_cardv_defconfig_release @@ -1576,9 +1576,9 @@ CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set -CONFIG_FB_CFB_FILLRECT=m -CONFIG_FB_CFB_COPYAREA=m -CONFIG_FB_CFB_IMAGEBLIT=m +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set @@ -2077,6 +2077,7 @@ CONFIG_NVT_HDAL_KDRV_VIDEOPROCESS=y CONFIG_NVT_HDAL_KDRV_VIDEOCODEC=y CONFIG_NVT_HDAL_KDRV_AUDIO_COMMON=y CONFIG_NVT_HDAL_KDRV_AUDIO=y +CONFIG_NVT_HDAL_KDRV_VIDEOOUT=y CONFIG_NVT_HDAL_KFLOW_COMMON=y CONFIG_NVT_HDAL_KFLOW_VIDEOCAPTURE=y CONFIG_NVT_HDAL_KFLOW_VIDEOPROCESS=y @@ -2084,6 +2085,8 @@ CONFIG_NVT_HDAL_KFLOW_VIDEOENC=y CONFIG_NVT_HDAL_KFLOW_GFX2D=y CONFIG_NVT_HDAL_KFLOW_VIDEOSPRITE=y CONFIG_NVT_HDAL_KFLOW_AUDIOCAPTURE=y +CONFIG_NVT_HDAL_KFLOW_AUDIOOUT=y +CONFIG_NVT_HDAL_KFLOW_VIDEOOUT=y CONFIG_NVT_HDAL_ISP_ISP=y CONFIG_NVT_HDAL_ISP_AE=y CONFIG_NVT_HDAL_ISP_AWB=y diff --git a/BSP/linux-kernel/drivers/soc/nvt/Kconfig b/BSP/linux-kernel/drivers/soc/nvt/Kconfig index 011cbd7a1..55b76f04b 100755 --- a/BSP/linux-kernel/drivers/soc/nvt/Kconfig +++ b/BSP/linux-kernel/drivers/soc/nvt/Kconfig @@ -31,6 +31,7 @@ config NVT_HDAL_BUILD_IN_ADV select NVT_HDAL_KDRV_VIDEOCODEC select NVT_HDAL_KDRV_AUDIO_COMMON select NVT_HDAL_KDRV_AUDIO + select NVT_HDAL_KDRV_VIDEOOUT select NVT_HDAL_KFLOW_COMMON select NVT_HDAL_KFLOW_VIDEOCAPTURE select NVT_HDAL_KFLOW_VIDEOPROCESS @@ -38,6 +39,8 @@ config NVT_HDAL_BUILD_IN_ADV select NVT_HDAL_KFLOW_GFX2D select NVT_HDAL_KFLOW_VIDEOSPRITE select NVT_HDAL_KFLOW_AUDIOCAPTURE + select NVT_HDAL_KFLOW_AUDIOOUT + select NVT_HDAL_KFLOW_VIDEOOUT select NVT_HDAL_ISP_ISP select NVT_HDAL_ISP_IQ select NVT_HDAL_ISP_AE diff --git a/BSP/linux-kernel/drivers/soc/nvt/nvt_hdal/Kconfig b/BSP/linux-kernel/drivers/soc/nvt/nvt_hdal/Kconfig index aa0a9504f..de114f679 100755 --- a/BSP/linux-kernel/drivers/soc/nvt/nvt_hdal/Kconfig +++ b/BSP/linux-kernel/drivers/soc/nvt/nvt_hdal/Kconfig @@ -50,6 +50,13 @@ config NVT_HDAL_KDRV_AUDIO_COMMON config NVT_HDAL_KDRV_AUDIO bool default n +config NVT_HDAL_KDRV_VIDEOOUT + bool + default n + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT + config NVT_HDAL_KFLOW_COMMON bool default n @@ -71,6 +78,12 @@ config NVT_HDAL_KFLOW_VIDEOSPRITE config NVT_HDAL_KFLOW_AUDIOCAPTURE bool default n +config NVT_HDAL_KFLOW_AUDIOOUT + bool + default n +config NVT_HDAL_KFLOW_VIDEOOUT + bool + default n config NVT_HDAL_ISP_ISP bool default n diff --git a/BSP/linux-kernel/drivers/soc/nvt/nvt_hdal/Makefile b/BSP/linux-kernel/drivers/soc/nvt/nvt_hdal/Makefile index 02e76de3b..a33f81439 100755 --- a/BSP/linux-kernel/drivers/soc/nvt/nvt_hdal/Makefile +++ b/BSP/linux-kernel/drivers/soc/nvt/nvt_hdal/Makefile @@ -16,6 +16,11 @@ obj-$(CONFIG_NVT_HDAL_KDRV_GFX2D) += $(KDRV_SRC_DIR)/kdrv_gfx2d/ obj-$(CONFIG_NVT_HDAL_KDRV_VIDEOCAPTURE) += $(KDRV_SRC_DIR)/kdrv_videocapture/ obj-$(CONFIG_NVT_HDAL_KDRV_VIDEOPROCESS) += $(KDRV_SRC_DIR)/kdrv_videoprocess/ obj-$(CONFIG_NVT_HDAL_KDRV_VIDEOCODEC) += $(KDRV_SRC_DIR)/kdrv_videocodec/ + +obj-$(CONFIG_NVT_HDAL_KDRV_VIDEOOUT) += $(KDRV_SRC_DIR)/kdrv_videoout/display_obj/ +obj-$(CONFIG_NVT_HDAL_KDRV_VIDEOOUT) += $(KDRV_SRC_DIR)/kdrv_videoout/fbdev/ +obj-$(CONFIG_NVT_HDAL_KDRV_VIDEOOUT) += $(KDRV_SRC_DIR)/kdrv_videoout/ide/ + obj-$(CONFIG_NVT_HDAL_KDRV_AUDIO_COMMON) += $(KDRV_SRC_DIR)/kdrv_audioio/audio_common/ obj-$(CONFIG_NVT_HDAL_KDRV_AUDIO) += $(KDRV_SRC_DIR)/kdrv_audioio/kdrv_audio/ obj-$(CONFIG_NVT_HDAL_KFLOW_COMMON) += $(KFLOW_SRC_DIR)/kflow_common/ @@ -23,8 +28,10 @@ obj-$(CONFIG_NVT_HDAL_KFLOW_VIDEOCAPTURE) += $(KFLOW_SRC_DIR)/kflow_videocapture obj-$(CONFIG_NVT_HDAL_KFLOW_VIDEOSPRITE) += $(KFLOW_SRC_DIR)/kflow_gfx/videosprite/ obj-$(CONFIG_NVT_HDAL_KFLOW_VIDEOPROCESS) += $(KFLOW_SRC_DIR)/kflow_videoprocess/ obj-$(CONFIG_NVT_HDAL_KFLOW_VIDEOENC) += $(KFLOW_SRC_DIR)/kflow_videoenc/unit/ +obj-$(CONFIG_NVT_HDAL_KFLOW_VIDEOOUT) += $(KFLOW_SRC_DIR)/kflow_videoout/unit/ obj-$(CONFIG_NVT_HDAL_KFLOW_GFX2D) += $(KFLOW_SRC_DIR)/kflow_gfx/ obj-$(CONFIG_NVT_HDAL_KFLOW_AUDIOCAPTURE) += $(KFLOW_SRC_DIR)/kflow_audiocapture/unit/ +obj-$(CONFIG_NVT_HDAL_KFLOW_AUDIOOUT) += $(KFLOW_SRC_DIR)/kflow_audioout/unit/ obj-$(CONFIG_NVT_HDAL_KDRV_VIDEOCODEC) += $(VENDOR_MEDIA_DIR)/nvt_vencrc/ obj-$(CONFIG_NVT_HDAL_ISP_ISP) += $(VENDOR_ISP_DIR)/isp/ obj-$(CONFIG_NVT_HDAL_ISP_AE) += $(VENDOR_ISP_DIR)/ae/ diff --git a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S07_SysInit b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S07_SysInit index 2ff22c50b..1d49975e0 100755 --- a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S07_SysInit +++ b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S07_SysInit @@ -11,7 +11,7 @@ device_node_create() #SF_ADC_MUXB=225 #DELAY=0.003 -# insmod /etc/lib/modules/$KERVER/extra/fs/exfat/exfat.ko +insmod /etc/lib/modules/$KERVER/extra/fs/exfat/exfat.ko #echo ${SF_ADC_MUXA} > /sys/class/gpio/export #echo ${SF_ADC_MUXB} > /sys/class/gpio/export diff --git a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 index d711c9cb6..ee4d6119c 100755 --- a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 +++ b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 @@ -232,6 +232,6 @@ insmod_if_exist ${PREFIX}/lib/modules/$KERVER/hdal/kflow_audioenc/unit/kflow_aud # isf auddec insmod_if_exist ${PREFIX}/lib/modules/$KERVER/hdal/kflow_audiodec/unit/kflow_audiodec.ko -insmod /etc/lib/modules/$KERVER/extra/fs/exfat/exfat.ko +#insmod /etc/lib/modules/$KERVER/extra/fs/exfat/exfat.ko #fi \ No newline at end of file diff --git a/code/application/source/cardv/SrcCode/System/SysMain.c b/code/application/source/cardv/SrcCode/System/SysMain.c index 7f2e6945f..505827410 100644 --- a/code/application/source/cardv/SrcCode/System/SysMain.c +++ b/code/application/source/cardv/SrcCode/System/SysMain.c @@ -536,16 +536,30 @@ void UserMainProc(void) vos_perf_list_mark(__func__, __LINE__, 0); #if POWERON_FAST_PREVIEW == ENABLE + + System_InstallAppObj(); //install VControl type list of App Object and UIControl Object + System_InstallModeObj(); + extern UINT8 sf_cardv_check_power_on_mode(void); + //sf_cardv_check_power_on_mode(); + //DBG_WRN("%lu %lu %lu\n", PRIMARY_MODE_PHOTO, PRIMARY_MODE_TRANSCODE, System_GetBootFirstMode()); + if(PRIMARY_MODE_PHOTO == System_GetBootFirstMode()){ - System_InstallAppObj(); //install VControl type list of App Object and UIControl Object - System_InstallModeObj(); //install SYS_MODE objects vos_perf_list_mark(__func__, __LINE__, 0); System_OnVideoInit(); vos_perf_list_mark(__func__, __LINE__, 0); System_OnVideoInit2(); vos_perf_list_mark(__func__, __LINE__, 0); Ux_SendEvent(&CustomPhotoObjCtrl, NVTEVT_EXE_OPEN, 1, 1); + + if(is_fb_init == FALSE){ + nvt_lvgl_init(); + UIFlowLVGL(); + is_fb_init = TRUE; + lv_plugin_scr_open(UIFlowPhoto, NULL); + lv_task_handler(); + } } + #endif /* move adc cal here */ @@ -553,11 +567,7 @@ void UserMainProc(void) UserMainProc_Init(); - if(is_fb_init == FALSE){ - nvt_lvgl_init(); - UIFlowLVGL(); - is_fb_init = TRUE; - } + vos_perf_list_mark(__func__, __LINE__, 0); @@ -570,19 +580,29 @@ void UserMainProc(void) // System_InstallModeObj(); //install SYS_MODE objects TM_BOOT_END("flow", "preboot"); -#if POWERON_FAST_PREVIEW == ENABLE - if(PRIMARY_MODE_PHOTO != System_GetBootFirstMode()){ - System_InstallAppObj(); //install VControl type list of App Object and UIControl Object - System_InstallModeObj(); //install SYS_MODE objects +#if POWERON_FAST_PREVIEW != ENABLE + + if(is_fb_init == FALSE){ + nvt_lvgl_init(); + UIFlowLVGL(); + is_fb_init = TRUE; } -#else + System_InstallAppObj(); //install VControl type list of App Object and UIControl Object System_InstallModeObj(); //install SYS_MODE objects +#else + + if(PRIMARY_MODE_PHOTO != System_GetBootFirstMode()){ + if(is_fb_init == FALSE){ + nvt_lvgl_init(); + UIFlowLVGL(); + is_fb_init = TRUE; + } + } #endif Ux_SendEvent(0, NVTEVT_SYSTEM_BOOT, 1, 1); - NVTEVT evt = 0; UINT32 paramNum = 0; //fix for CID 45082 UINT32 paramArray[MAX_MESSAGE_PARAM_NUM] = {0}; diff --git a/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c b/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c index c17b7b835..0591d6cae 100755 --- a/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c @@ -390,7 +390,10 @@ INT32 System_OnUsbInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) #if HUNTING_CAMERA_MCU == ENABLE //temporally support MSDC only //vos_util_delay_ms(1000); - Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMSDC); + if((System_GetState(SYS_STATE_CURRMODE) != PRIMARY_MODE_USBMSDC)) + { + Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMSDC); + } #else Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMENU); #endif diff --git a/code/application/source/cardv/SrcCode/System/main.c b/code/application/source/cardv/SrcCode/System/main.c index 3af208301..9f5b759ad 100755 --- a/code/application/source/cardv/SrcCode/System/main.c +++ b/code/application/source/cardv/SrcCode/System/main.c @@ -385,6 +385,9 @@ UINT8 sf_cardv_check_power_on_mode(void) int NvtMain(void) { + #if HUNTING_CAMERA_MCU == ENABLE + sf_cardv_check_power_on_mode(); + #endif System_InstallID(); #if (USB_MODE==ENABLE) System_OnUsbPreInit(); @@ -419,13 +422,13 @@ int NvtMain(void) nvt_user_init(); #if HUNTING_CAMERA_MCU == ENABLE sf_log_Level_set(SF_LOG_LEVEL_DEBUG); - sf_cardv_check_power_on_mode(); + //sf_cardv_check_power_on_mode(); BOOL inUsb = GxUSB_GetIsUSBPlug(); - if(TRUE == inUsb)//(!sf_gpio_get_status(GPIO_INT_USBPLUGIN)) - { - sf_usb_mux_s(0); - sf_sys_status_led_set(SF_LED_SYS_STATE_USB_IN); - } + // if(TRUE == inUsb)//(!sf_gpio_get_status(GPIO_INT_USBPLUGIN)) + // { + // sf_usb_mux_s(0); + // sf_sys_status_led_set(SF_LED_SYS_STATE_USB_IN); + // } #if HUNTING_CAMERA_4G == ENABLE sf_share_mem_file_init(); diff --git a/code/hdal/drivers/k_driver/source/kdrv_videoout/display_obj/modules.builtin b/code/hdal/drivers/k_driver/source/kdrv_videoout/display_obj/modules.builtin new file mode 100644 index 000000000..e69de29bb diff --git a/code/hdal/drivers/k_driver/source/kdrv_videoout/fbdev/modules.builtin b/code/hdal/drivers/k_driver/source/kdrv_videoout/fbdev/modules.builtin new file mode 100644 index 000000000..e69de29bb diff --git a/code/hdal/drivers/k_driver/source/kdrv_videoout/ide/modules.builtin b/code/hdal/drivers/k_driver/source/kdrv_videoout/ide/modules.builtin new file mode 100644 index 000000000..e69de29bb diff --git a/code/hdal/drivers/k_flow/source/kflow_audioout/unit/Makefile b/code/hdal/drivers/k_flow/source/kflow_audioout/unit/Makefile index 84a081295..78d3b7525 100755 --- a/code/hdal/drivers/k_flow/source/kflow_audioout/unit/Makefile +++ b/code/hdal/drivers/k_flow/source/kflow_audioout/unit/Makefile @@ -22,7 +22,12 @@ C_CFLAGS += -D__LINUX -Werror EXTRA_CFLAGS += $(C_CFLAGS) $(EXTRA_INCLUDE) -Wno-date-time -Wno-missing-braces -I$(src)/include -DDEBUG KBUILD_EXTRA_SYMBOLS = $(shell find $(VOS_DRIVER_DIR) -name Module.symvers) $(shell find $(KDRV_DIR) -name Module.symvers) $(shell find $(KFLOW_DIR) -name Module.symvers) +ifeq ($(CONFIG_NVT_HDAL_KFLOW_AUDIOOUT),y) +obj-y += $(MODULE_NAME).o +else obj-m += $(MODULE_NAME).o +endif + OBJ := \ linux/isf_audout_main.o \ linux/isf_audout_proc.o \ diff --git a/code/hdal/drivers/k_flow/source/kflow_audioout/unit/linux/isf_audout_proc.c b/code/hdal/drivers/k_flow/source/kflow_audioout/unit/linux/isf_audout_proc.c index 9136df89b..21341f090 100755 --- a/code/hdal/drivers/k_flow/source/kflow_audioout/unit/linux/isf_audout_proc.c +++ b/code/hdal/drivers/k_flow/source/kflow_audioout/unit/linux/isf_audout_proc.c @@ -31,7 +31,7 @@ typedef struct proc_cmd { //============================================================================ // Global variable //============================================================================ -PISF_AUDOUT_DRV_INFO p_drv_info_data; +static PISF_AUDOUT_DRV_INFO p_drv_info_data; static struct seq_file *g_seq_file; //============================================================================ diff --git a/code/hdal/drivers/k_flow/source/kflow_audioout/unit/modules.builtin b/code/hdal/drivers/k_flow/source/kflow_audioout/unit/modules.builtin new file mode 100644 index 000000000..e69de29bb diff --git a/code/hdal/drivers/k_flow/source/kflow_videoout/unit/isf_vdoout_debug_no_tracer.o b/code/hdal/drivers/k_flow/source/kflow_videoout/unit/isf_vdoout_debug_no_tracer.o index 9d88ab077..72e7acfd6 100644 Binary files a/code/hdal/drivers/k_flow/source/kflow_videoout/unit/isf_vdoout_debug_no_tracer.o and b/code/hdal/drivers/k_flow/source/kflow_videoout/unit/isf_vdoout_debug_no_tracer.o differ diff --git a/code/hdal/drivers/k_flow/source/kflow_videoout/unit/modules.builtin b/code/hdal/drivers/k_flow/source/kflow_videoout/unit/modules.builtin new file mode 100644 index 000000000..e69de29bb diff --git a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-storage-partition.dtsi b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-storage-partition.dtsi index d0bccbec5..44ff642db 100755 --- a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-storage-partition.dtsi +++ b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-storage-partition.dtsi @@ -12,11 +12,11 @@ partition_fdt.app { label = "fdt.app"; reg = <0x0 0x30000 0x0 0x20000>; }; /* Fixed */ partition_uboot { label = "uboot"; reg = <0x0 0x50000 0x0 0xA0000>; }; partition_uenv { label = "uenv"; reg = <0x0 0xF0000 0x0 0x10000>; }; - partition_kernel { label = "kernel"; reg = <0x0 0x100000 0x0 0x320000>; }; - partition_rootfs { label = "rootfs"; reg = <0x0 0x420000 0x0 0x3C0000>; }; - partition_rootfs1 { label = "rootfs1"; reg = <0x0 0x7E0000 0x0 0xD40000>; }; - partition_rtos { label = "rtos"; reg = <0x0 0x1520000 0x0 0x930000>; }; - partition_app { label = "app"; reg = <0x0 0x1E50000 0x0 0x50000>; }; /* app size depneds on hdal/samples/vendor_cfg/Makeile: ROOTFS_UBI_MAX_LEB_COUNT */ - partition_sys { label = "sys"; reg = <0x0 0x1EA0000 0x0 0x10000>; }; + partition_kernel { label = "kernel"; reg = <0x0 0x100000 0x0 0x330000>; }; + partition_rootfs { label = "rootfs"; reg = <0x0 0x430000 0x0 0x3C0000>; }; + partition_rootfs1 { label = "rootfs1"; reg = <0x0 0x7F0000 0x0 0xD40000>; }; + partition_rtos { label = "rtos"; reg = <0x0 0x1530000 0x0 0x930000>; }; + partition_app { label = "app"; reg = <0x0 0x1E60000 0x0 0x50000>; }; /* app size depneds on hdal/samples/vendor_cfg/Makeile: ROOTFS_UBI_MAX_LEB_COUNT */ + partition_sys { label = "sys"; reg = <0x0 0x1EB0000 0x0 0x10000>; }; partition_all { label = "all"; reg = <0x0 0x0000000 0x0 0x2000000>; }; }; diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c b/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c index c8c536007..82a3af43d 100644 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c @@ -34,7 +34,7 @@ #define CFG_LINUX_MAX_CODE_SIZE 0x01000000 //for 64MB dram, assume linux (ro+rw+bss) limited on this size //#define CFG_LINUX_COMP_MAX_SIZE 0xA00000 //max uImage size //#define CFG_RAMFS_COMP_MAX_SIZE 0x500000 //max ramdisk size -#define CFG_LINUX_COMP_MAX_SIZE 0x320000 //max uImage size +#define CFG_LINUX_COMP_MAX_SIZE 0x330000 //max uImage size #define CFG_RAMFS_COMP_MAX_SIZE 0x330000 //max ramdisk size #define CFG_MULTI_MKIMAGE_LEN 0x8 //mkimage's multi image always comes 8 bytes for sub-image size