/* SPDX-License-Identifier: LGPL-2.1-only OR BSD-3-Clause */
/******************************************************************************
 *
 * This file is provided under a dual license.  When you use or
 * distribute this software, you may choose to be licensed under
 * version 2.1 of the GNU Lesser General Public License
 * ("LGPLv2.1 License") or BSD License.
 *
 * LGPLv2.1 License
 *
 * Copyright(C) 2019 MediaTek Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of version 2.1 of the GNU Lesser General Public
 * License as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html for more
 * details.
 *
 * BSD LICENSE
 *
 * Copyright(C) 2019 MediaTek Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *  * Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *  * Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *  * Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *****************************************************************************/

#if ! defined(DRV_COMMON_H)
#define DRV_COMMON_H


/* diagnostic program */

#define MTK_CLIWATCHDOG_NAME    		"DogThrd"
#define MTK_CLIIR_NAME					"CliMtkIr"
#define MTK_CLIIRSPTN_NAME      		"IrSPtn"
#define MTK_CLIIRTX_NAME        		"CliIrTx"
#define MTK_CLIIR_STACK_SZ				4096
#define MTK_CLIIR_PRIORITY				100

#define MTK_NAND_NAME					"nandread"
#define MTK_NAND_STACK_SZ				4096
#define MTK_NAND_PRIORITY				100

#define MTK_NOR_NAME					"noread"
#define MTK_NOR_STACK_SZ				4096
#define MTK_NOR_PRIORITY				100

#define DHRYSTONE_THREAD_NAME			"Dhry"
#define DHRYSTONE_STACK_SIZE			8192

#define DIAG_GFX_PWCT_NAME				"gfxpwr"
#define DIAG_GFX_PWCT_STACK_SZ			2048
#define DIAG_GFX_PWCT_PRIORITY			250
                                		
#define D_NIM_MONITOR_THR_NAME			"tserr"
#define D_NIM_MONITOR_STACK_SZ			1024
#define D_NIM_MONITOR_PRIORITY			100

/* Log Print Thread */
#define LOG_PRINT_NAME              	"LogThread"
#define LOG_PRINT_STACK_SZ          	2048
#define LOG_PRINT_PRIORITY          	230

/* FPD MW Scan Thread */
#define FPD_MW_NAME                 	"FPDScan"
#define FPD_MW_STACK_SZ             	2048
#define FPD_MW_PRIORITY             	230

/* Demux thread */
#define DMX_THREAD_NAME                 "Demux"
#define DMX_THREAD_STACK_SIZE           2048
#define DMX_THREAD_PRIORITY             60

#define DMX_PSI_THREAD_NAME             "DMXPSITHREAD"
#define DMX_PSI_THREAD_STACK_SIZE       2048
#define DMX_PSI_THREAD_PRIORITY         60

#define DMX_FVR_THREAD_NAME             "DmxFvr"
#define DMX_FVR_THREAD_STACK_SIZE       2048
#define DMX_FVR_THREAD_PRIORITY         60

#define DMX_FVR_SIT_THREAD_NAME         "DmxFvrSit"
#define DMX_FVR_SIT_THREAD_STACK_SIZE   2048
#define DMX_FVR_SIT_THREAD_PRIORITY     100

/* OsdDma thread */
#define OSD_DMA_THREAD_NAME             "OsdDma"
#define OSD_DMA_THREAD_STACK_SIZE       2048
#define OSD_DMA_THREAD_PRIORITY         100

/* testing code - should be remove from here */

/* demo navigator */

#define NAV_OSD_NAME					"NVGT_OSD"
#define NAV_OSD_STACK_SZ				2048
#define NAV_OSD_PRIORITY				100

#define NAV_IR_NAME						"NVGT_IR"
#define NAV_IR_STACK_SZ					10240
#define NAV_IR_PRIORITY					100

#define NAV_PSI_NAME					"NVGT_PSI"
#define NAV_PSI_STACK_SZ				2048
#define NAV_PSI_PRIORITY				100

#define NAV_NIM_NAME					"NVGT_NIM"
#define NAV_NIM_STACK_SZ				2048
#define NAV_NIM_PRIORITY				250

#define NAV_REC_NAME					"NVGT_REC"
#define NAV_REC_STACK_SZ				2048
#define NAV_REC_PRIORITY				100

/* driver */
#define GPIO_POLL_THREAD_NAME       	"GPIOPoll"
#define GPIO_POLL_STACK_SIZE        	2048
#define GPIO_POLL_THREAD_PRIORITY   	100

#define IRRX_BTN_THREAD_NAME       	    "IRRXBtn"
#define IRRX_BTN_STACK_SIZE        	    2048
#define IRRX_BTN_THREAD_PRIORITY   	    59

#define IDE_CQ_THREAD_NAME				"CQThread"
#define IDE_CQ_STACK_SIZE				16384
#define IDE_CQ_THREAD_PRIORITY			100

#define FBM_VD_THREAD_NAME				"VD Thread"
#define FBM_VD_STACK_SIZE				2048
#define FBM_VD_THREAD_PRIORITY			98

#define FBM_VM_THREAD_NAME				"VM Thread"
#define FBM_VM_STACK_SIZE				2048
#define FBM_VM_THREAD_PRIORITY			99

#define LOG_THREAD_NAME					"PrintT"
#define LOG_STACK_SIZE					2048
#define LOG_THREAD_PRIORITY				230

#define MPV_THREAD_NAME					"MPV"
#define MPV_STACK_SIZE					2048
#define MPV_THREAD_PRIORITY				60

#define FEEDER_THREAD_NAME              "FEEDER"
#define FEEDER_STACK_SIZE               4096
#define FEEDER_THREAD_PRIORITY          60

#define MPV_VPRS_THREAD_NAME			"VPrs"
#define MPV_VPRS_STACK_SIZE				2048
#define MPV_VPRS_THREAD_PRIORITY		100

#define ADSPTASK_NAME					"ADSPTask Thread"
#define ADSPTASK_STACK_SIZE				2048
#define ADSPTASK_THREAD_PRIORITY		100

#define AUD_DRV_THREAD_NAME				"AudDrvThread"
#define AUD_DRV_THREAD_STACK_SIZE		2048
#define AUD_DRV_THREAD_PRIORITY			100

#define AUD_PRE_PARSER_NAME	            "AudParserThread"
#define AUD_PRE_PARSER_STACK_SIZE		2048
#define AUD_PRE_PARSER_PRIORITY		    61

#define PSR_THREAD_NAME					"Parser"
#define PSR_THREAD_STACK_SIZE			16384
#define PSR_THREAD_PRIORITY				90

#define IRRC_THREAD_NAME				"IRRC Thread"
#define IRRC_STACK_SIZE					4096
#define IRRC_THREAD_PRIORITY			59

#define STORG_FLASH_NAME            	"FlashIO"
#define STORG_IDE_NAME              	"IdeIO"
#define STORG_FCI_NAME              	"FciIO"
#define STORG_STACK_SIZE            	1024
#define STORG_THREAD_PRIORITY       	200

#define VIN_THREAD_NAME					"VIN"
#define VIN_STACK_SIZE					1024
#define VIN_THREAD_PRIORITY         	60

#define VSYNC_THREAD_NAME				"VSYNC"
#define VSYNC_STACK_SIZE				2048
#define VSYNC_THREAD_PRIORITY			60

#define CLI_THREAD_NAME					"CLI"
#define CLI_STACK_SIZE					16384
#define CLI_THREAD1_PRIORITY			200

#define DBS_THREAD_NAME					"DBS"
#define DBS_STACK_SIZE					1024
#define DBS_THREAD1_PRIORITY			LOG_PRINT_PRIORITY

/* field record function */
#define D_REC_FLOW_NAME					"REC_F"
#define D_REC_FLOW_STACK_SZ				8192
#define D_REC_FLOW_PRIO					100
#define D_REC_ELOG_NAME					"REC_E"
#define D_REC_ELOG_STACK_SZ				8192
#define D_REC_ELOG_PRIO					100

/* pvr playback */
#define PVR_PB_NAME						"PVR_PB"
#define PVR_PB_STACK_SZ					8192
#define PVR_PB_PRIORITY					100

#define SLT_ECHO_NAME					"SLT_ECHO"
#define SLT_ECHO_STACK_SZ				2048
#define SLT_ECHO_PRIORITY				100

/* Scpos */
#define SCPOS_THREAD_NAME				"Scpos"
#define SCPOS_STACK_SIZE				2048
#define SCPOS_THREAD_PRIORITY			60

/* MDDi */
#define DI_THREAD_NAME			  		"Di"
#define DI_STACK_SIZE			    	2048
#define DI_THREAD_PRIORITY				60

/* Main Loop Video */
#define MLVDO_THREAD_NAME				"MLVdo"
#define MLVDO_STACK_SIZE				2048
#define MLVDO_THREAD_PRIORITY			60

/* Software PS demux */
#define SWDMX_THREAD_NAME               "SwDmxThread"
#define SWDMX_THREAD_STACK_SIZE         8192
#define SWDMX_THREAD_PRIORITY           100

/* OS driver reaper thread */
#define REAPER_THREAD_NAME              "Reaper"
#define REAPER_STACK_SIZE               2048
#define REAPER_PRIORITY                 200

/* Ethernet thread */
#define ETHER_THREAD_NAME               "Ethernet Thread"
#define ETHER_STACK_SIZE                2048
#define ETHER_THREAD_PRIORITY           90

/* Playmgr thread */
#define PLAYMGR_THREAD_NAME              "PlaymgrThread"
#define PLAYMGR_STACK_SIZE               4096
#define PLAYMGR_THREAD_PRIORITY          59

/* Thermal thread */
#define THERMAL_THREAD_NAME              "ThermalThread"
#define THERMAL_STACK_SIZE               1024
#define THERMAL_THREAD_PRIORITY          100


#endif //DRV_COMMON_H

