diff --git a/.gitignore b/.gitignore index 4105cfbd6f2639..0645bd5491ffb3 100644 --- a/.gitignore +++ b/.gitignore @@ -118,3 +118,6 @@ all.config # fetched Android config fragments kernel/configs/android-*.cfg + +drivers/net/wireguard/crypto/zinc/chacha20/chacha20-arm64.S +drivers/net/wireguard/crypto/zinc/poly1305/poly1305-arm64.S diff --git a/arch/arm64/configs/checkers_defconfig b/arch/arm64/configs/checkers_defconfig index 4e8fcbef4c8e52..049f3991054096 100644 --- a/arch/arm64/configs/checkers_defconfig +++ b/arch/arm64/configs/checkers_defconfig @@ -199,7 +199,6 @@ CONFIG_GTP9XX_SLEEP_MODE=y CONFIG_INPUT_MISC=y CONFIG_INPUT_UINPUT=y CONFIG_INPUT_HALL_BU520=y -# CONFIG_VT is not set CONFIG_LEGACY_PTY_COUNT=16 # CONFIG_DEVMEM is not set # CONFIG_DEVKMEM is not set @@ -388,3 +387,13 @@ CONFIG_CRYPTO_LZ4=y # CONFIG_CRYPTO_HW is not set CONFIG_CRYPTO_SHA2_ARM64_CE=y CONFIG_CRYPTO_AES_ARM64_CE_BLK=y + +## akku fix +## kallsyms failure: relative symbol value 0xffffff8008081000 out of range in relative mode +CONFIG_KALLSYMS=n + +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FONTS=y +CONFIG_FONT_8x16=y diff --git a/arch/arm64/kernel/vdso/gettimeofday.S b/arch/arm64/kernel/vdso/gettimeofday.S index 21805e41648312..22f9b9cb34600e 100644 --- a/arch/arm64/kernel/vdso/gettimeofday.S +++ b/arch/arm64/kernel/vdso/gettimeofday.S @@ -115,7 +115,7 @@ x_tmp .req x8 9998: .endm - .macro clock_gettime_return, shift=0 + .macro clock_gettime_return shift=0 .if \shift == 1 lsr x11, x11, x12 .endif @@ -220,7 +220,7 @@ realtime: get_clock_shifted_nsec res=x15, cycle_last=x10, mult=x11 get_ts_realtime res_sec=x10, res_nsec=x11, \ clock_nsec=x15, xtime_sec=x13, xtime_nsec=x14, nsec_to_sec=x9 - clock_gettime_return, shift=1 + clock_gettime_return shift=1 ALIGN monotonic: @@ -243,7 +243,7 @@ monotonic: clock_nsec=x15, xtime_sec=x13, xtime_nsec=x14, nsec_to_sec=x9 add_ts sec=x10, nsec=x11, ts_sec=x3, ts_nsec=x4, nsec_to_sec=x9 - clock_gettime_return, shift=1 + clock_gettime_return shift=1 ALIGN monotonic_raw: @@ -264,7 +264,7 @@ monotonic_raw: clock_nsec=x15, nsec_to_sec=x9 add_ts sec=x10, nsec=x11, ts_sec=x13, ts_nsec=x14, nsec_to_sec=x9 - clock_gettime_return, shift=1 + clock_gettime_return shift=1 ALIGN realtime_coarse: diff --git a/drivers/input/touchscreen/mediatek/focaltech_touch/focaltech_test/focaltech_test_ini.c b/drivers/input/touchscreen/mediatek/focaltech_touch/focaltech_test/focaltech_test_ini.c index 197b1fb59a4bf4..cc4da849bc2513 100755 --- a/drivers/input/touchscreen/mediatek/focaltech_touch/focaltech_test/focaltech_test_ini.c +++ b/drivers/input/touchscreen/mediatek/focaltech_touch/focaltech_test/focaltech_test_ini.c @@ -263,18 +263,25 @@ Return: Returns the number of key. If you go wrong, return a negative number. *************************************************************/ int ini_get_key_data(char *filedata) { - char buf1[MAX_CFG_BUF + 1] = {0}; + char *buf1 = kzalloc(MAX_CFG_BUF + 1, GFP_KERNEL); int n = 0; int ret = 0; int dataoff = 0; int iEqualSign = 0; int i = 0; - char tmsection_name[MAX_CFG_BUF + 1] = {0}; + char *tmsection_name = kzalloc(MAX_CFG_BUF + 1, GFP_KERNEL); + if (!buf1) return -ENOMEM; + if (!tmsection_name) { + kfree(buf1); + return -ENOMEM; + } FTS_TEST_FUNC_ENTER(); ret = init_key_data(); if (ret < 0) { FTS_TEST_ERROR("init key data failed"); + kfree(buf1); + kfree(tmsection_name); return -1; } @@ -357,11 +364,15 @@ int ini_get_key_data(char *filedata) FTS_TEST_FUNC_EXIT(); + kfree(buf1); + kfree(tmsection_name); return 0; cfg_scts_end: FTS_TEST_FUNC_EXIT(); + kfree(buf1); + kfree(tmsection_name); return ret; } diff --git a/drivers/input/touchscreen/mediatek/focaltech_touch/focaltech_test/supported_ic/focaltech_test_ft5446.c b/drivers/input/touchscreen/mediatek/focaltech_touch/focaltech_test/supported_ic/focaltech_test_ft5446.c index 9d8166cbaeb703..72490a699990b6 100755 --- a/drivers/input/touchscreen/mediatek/focaltech_touch/focaltech_test/supported_ic/focaltech_test_ft5446.c +++ b/drivers/input/touchscreen/mediatek/focaltech_touch/focaltech_test/supported_ic/focaltech_test_ft5446.c @@ -1606,9 +1606,9 @@ unsigned char FT5X46_TestItem_WeakShortTest( bool *bTestResult ) if ((iMin_CG > fGShortResistance[i]) || (iDsen - iDoffset < 0)) { //<=0 ShortResistance = 0 iCount++; if (i + 1 <= iMaxTx) - FTS_TEST_SAVE_INFO("\nTx%02d: %02d (k¦¸), ", i + 1, fGShortResistance[i]); + FTS_TEST_SAVE_INFO("\nTx%02d: %02d (kohm), ", i + 1, fGShortResistance[i]); else - FTS_TEST_SAVE_INFO("\nRx%02d: %02d (k¦¸), ", i + 1 - iMaxTx, fGShortResistance[i]); + FTS_TEST_SAVE_INFO("\nRx%02d: %02d (kohm), ", i + 1 - iMaxTx, fGShortResistance[i]); if (iCount % 10 == 0) FTS_TEST_SAVE_INFO("\n\n"); } @@ -1660,9 +1660,9 @@ unsigned char FT5X46_TestItem_WeakShortTest( bool *bTestResult ) if ( fMShortResistance[i] <= 0 || fMShortResistance[i] < iMin_CC ) { iCount++; if (i + 1 <= iMaxTx) - FTS_TEST_SAVE_INFO("\nTx%02d: %02d(k¦¸), ", i + 1, fMShortResistance[i]); + FTS_TEST_SAVE_INFO("\nTx%02d: %02d(kohm), ", i + 1, fMShortResistance[i]); else - FTS_TEST_SAVE_INFO("\nRx%02d: %02d(k¦¸), ", i + 1 - iMaxTx, fMShortResistance[i]); + FTS_TEST_SAVE_INFO("\nRx%02d: %02d(kohm), ", i + 1 - iMaxTx, fMShortResistance[i]); if (iCount % 10 == 0) FTS_TEST_SAVE_INFO("\n\n"); diff --git a/drivers/misc/mediatek/base/power/mt8163/cpu_dormant.S b/drivers/misc/mediatek/base/power/mt8163/cpu_dormant.S index b973a2aea281e9..d1386c2d262b63 100644 --- a/drivers/misc/mediatek/base/power/mt8163/cpu_dormant.S +++ b/drivers/misc/mediatek/base/power/mt8163/cpu_dormant.S @@ -13,38 +13,29 @@ .global write_cntpctl write_cntpctl: - .func msr CNTP_CTL_EL0, x0 ret - .endfunc .global read_cntpctl read_cntpctl: - .func mrs x0, CNTP_CTL_EL0 ret - .endfunc .global read_cpu_id read_cpu_id: - .func mrs x0, MPIDR_EL1 ands x0, x0, #0xff ret - .endfunc .global read_cluster_id read_cluster_id: - .func mrs x0, MPIDR_EL1 lsr x0, x0, #0x8 ands x0, x0, #0xff ret - .endfunc .global mt_save_generic_timer mt_save_generic_timer: - .func mrs x3, CNTKCTL_EL1 str x3, [x0, #0] mrs x2, CNTP_CTL_EL0 @@ -54,11 +45,9 @@ mt_save_generic_timer: mrs x3, CNTV_TVAL_EL0 stp x2, x3, [x0, #24]! ret - .endfunc .global mt_restore_generic_timer mt_restore_generic_timer: - .func ldr x3, [x0, #0] msr CNTKCTL_EL1, x3 ldp x2, x3, [x0, #8] @@ -68,4 +57,3 @@ mt_restore_generic_timer: msr CNTV_CTL_EL0, x2 msr CNTV_TVAL_EL0, x3 ret - .endfunc diff --git a/drivers/misc/mediatek/btcvsd/AudioBTCVSDDef.h b/drivers/misc/mediatek/btcvsd/inc/mt8163/AudioBTCVSDDef.h similarity index 100% rename from drivers/misc/mediatek/btcvsd/AudioBTCVSDDef.h rename to drivers/misc/mediatek/btcvsd/inc/mt8163/AudioBTCVSDDef.h diff --git a/drivers/misc/mediatek/cmdq/v2/Makefile b/drivers/misc/mediatek/cmdq/v2/Makefile index 5fff619792be74..cb454954124fdb 100644 --- a/drivers/misc/mediatek/cmdq/v2/Makefile +++ b/drivers/misc/mediatek/cmdq/v2/Makefile @@ -14,6 +14,8 @@ # common driver code for CMDQ # 72/82/92 does not use this common code +ccflags-y += -Wno-typedef-redefinition + ccflags-y += -I$(srctree)/drivers/misc/mediatek/cmdq/v2/$(MTK_PLATFORM) \ -I$(srctree)/drivers/misc/mediatek/smi/ \ -I$(srctree)/drivers/misc/mediatek/mmp/ \ diff --git a/drivers/misc/mediatek/cmdq/v2/cmdq_test.c b/drivers/misc/mediatek/cmdq/v2/cmdq_test.c index b964badba0719d..a35c59ee42c4e5 100644 --- a/drivers/misc/mediatek/cmdq/v2/cmdq_test.c +++ b/drivers/misc/mediatek/cmdq/v2/cmdq_test.c @@ -4621,8 +4621,8 @@ static ssize_t cmdq_write_test_proc_config(struct file *file, #ifdef CMDQ_USE_CCF if (trick_test) { - char node_name[25]; - char clk_name[20]; + char node_name[26]; + char clk_name[21]; int clk_enable = 0; struct clk *clk_module; /* trick to control clock by test node for testing */ diff --git a/drivers/misc/mediatek/cmdq/v2/mtee/Makefile b/drivers/misc/mediatek/cmdq/v2/mtee/Makefile index c948f5f5b868c1..74107fc0c93ccd 100644 --- a/drivers/misc/mediatek/cmdq/v2/mtee/Makefile +++ b/drivers/misc/mediatek/cmdq/v2/mtee/Makefile @@ -13,6 +13,9 @@ # drivers/cmdq +ccflags-y += -Wno-typedef-redefinition \ + -Wno-implicit-enum-enum-cast + ccflags-y += -I$(srctree)/drivers/misc/mediatek/cmdq/v2 \ -I$(srctree)/drivers/misc/mediatek/m4u/$(MTK_PLATFORM)\ -I$(srctree)/drivers/misc/mediatek/mach/$(MTK_PLATFORM)/include \ diff --git a/drivers/misc/mediatek/gpu/ged/src/ged_base.c b/drivers/misc/mediatek/gpu/ged/src/ged_base.c index 26322097241b2b..58643fa77e7d42 100644 --- a/drivers/misc/mediatek/gpu/ged/src/ged_base.c +++ b/drivers/misc/mediatek/gpu/ged/src/ged_base.c @@ -118,7 +118,7 @@ long ged_get_pid(void) #endif } -unsigned long long ged_get_time() +unsigned long long ged_get_time(void) { unsigned long long temp; diff --git a/drivers/misc/mediatek/gpu/ged/src/ged_dvfs.c b/drivers/misc/mediatek/gpu/ged/src/ged_dvfs.c index 4731154d8441c1..bf0bb082afbb07 100644 --- a/drivers/misc/mediatek/gpu/ged/src/ged_dvfs.c +++ b/drivers/misc/mediatek/gpu/ged/src/ged_dvfs.c @@ -125,8 +125,6 @@ static int g_VsyncOffsetLevel; static int g_probe_pid = GED_NO_UM_SERVICE; -typedef void (*gpufreq_input_boost_notify)(unsigned int); - extern void mt_gpufreq_input_boost_notify_registerCB(gpufreq_input_boost_notify pCB); extern void mt_gpufreq_power_limit_notify_registerCB(gpufreq_power_limit_notify pCB); extern void (*mtk_boost_gpu_freq_fp)(void); diff --git a/drivers/misc/mediatek/gpu/ged/src/ged_monitor_3D_fence.c b/drivers/misc/mediatek/gpu/ged/src/ged_monitor_3D_fence.c index 72b317227e66ed..2bef1c04220ba1 100644 --- a/drivers/misc/mediatek/gpu/ged/src/ged_monitor_3D_fence.c +++ b/drivers/misc/mediatek/gpu/ged/src/ged_monitor_3D_fence.c @@ -113,7 +113,7 @@ static void ged_monitor_3D_fence_work_cb(struct work_struct *psWork) ged_free(psMonitor, sizeof(GED_MONITOR_3D_FENCE)); } -unsigned long ged_monitor_3D_fence_done_time() +unsigned long ged_monitor_3D_fence_done_time(void) { return g_ul3DFenceDoneTime; } diff --git a/drivers/misc/mediatek/gpu/gpu_mali/mali_midgard/midgard-r26p0/gpu/arm/midgard/mali_kbase_jd.c b/drivers/misc/mediatek/gpu/gpu_mali/mali_midgard/midgard-r26p0/gpu/arm/midgard/mali_kbase_jd.c index 2ab939789314d7..e4f7a64444b2d2 100644 --- a/drivers/misc/mediatek/gpu/gpu_mali/mali_midgard/midgard-r26p0/gpu/arm/midgard/mali_kbase_jd.c +++ b/drivers/misc/mediatek/gpu/gpu_mali/mali_midgard/midgard-r26p0/gpu/arm/midgard/mali_kbase_jd.c @@ -20,7 +20,8 @@ * */ - +/* 71 | return u64_to_user_ptr(p); */ +#pragma clang diagnostic ignored "-Wdefault-const-init-var-unsafe" #if defined(CONFIG_DMA_SHARED_BUFFER) #include diff --git a/drivers/misc/mediatek/hwmon/hwmsen/hwmsen_dev.c b/drivers/misc/mediatek/hwmon/hwmsen/hwmsen_dev.c index 3c30e0e4f7cdef..3c7ee21188c293 100644 --- a/drivers/misc/mediatek/hwmon/hwmsen/hwmsen_dev.c +++ b/drivers/misc/mediatek/hwmon/hwmsen/hwmsen_dev.c @@ -651,7 +651,7 @@ static int hwmsen_enable(struct hwmdev_object *obj, int sensor, int enable) } - } else if ((enable == 0)) { + } else if (enable == 0) { obj->active_data_sensor &= ~sensor_type; diff --git a/drivers/misc/mediatek/leds/mtk_leds_drv.c b/drivers/misc/mediatek/leds/mtk_leds_drv.c index cad336b164c893..58e1b35014cf09 100644 --- a/drivers/misc/mediatek/leds/mtk_leds_drv.c +++ b/drivers/misc/mediatek/leds/mtk_leds_drv.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include "mtk_leds_drv.h" #include #ifdef CONFIG_MTK_AAL_SUPPORT #include diff --git a/drivers/misc/mediatek/m4u/mt8163/m4u.c b/drivers/misc/mediatek/m4u/mt8163/m4u.c index 4c183524e6c7d3..90ea91c94a60e9 100644 --- a/drivers/misc/mediatek/m4u/mt8163/m4u.c +++ b/drivers/misc/mediatek/m4u/mt8163/m4u.c @@ -1074,7 +1074,7 @@ static struct page *m4u_cache_get_page(unsigned long va) start = va & (~M4U_PAGE_MASK); pa = m4u_user_v2p(start); - if ((pa == 0)) { + if (pa == 0) { M4UMSG("error m4u_get_phys user_v2p return 0 on va=0x%lx\n", start); /* dump_page(page); */ diff --git a/drivers/misc/mediatek/m4u/mt8163/m4u_mva.c b/drivers/misc/mediatek/m4u/mt8163/m4u_mva.c index 161b499703a163..df44823ce80265 100644 --- a/drivers/misc/mediatek/m4u/mt8163/m4u_mva.c +++ b/drivers/misc/mediatek/m4u/mt8163/m4u_mva.c @@ -33,7 +33,7 @@ #define MVAGRAPH_INDEX(mva) (mva>>MVA_BLOCK_SIZE_ORDER) -static short mvaGraph[MVA_MAX_BLOCK_NR + 1]; +static unsigned short mvaGraph[MVA_MAX_BLOCK_NR + 1]; static void *mvaInfoGraph[MVA_MAX_BLOCK_NR + 1]; static DEFINE_SPINLOCK(gMvaGraph_lock); diff --git a/drivers/misc/mediatek/mtee/Makefile b/drivers/misc/mediatek/mtee/Makefile index f807a3fd129753..30941f3c6d47e9 100644 --- a/drivers/misc/mediatek/mtee/Makefile +++ b/drivers/misc/mediatek/mtee/Makefile @@ -19,7 +19,7 @@ # inconsistent state and crashed. KCOV_INSTRUMENT_tz_system.o := n -ccflags-y += -Werror +ccflags-y += -Werror -Wno-typedef-redefinition ccflags-y += -I$(srctree)/drivers/misc/mediatek/include/mt-plat/trustzone obj-y += tz_module.o diff --git a/drivers/misc/mediatek/rtc/mt6323/mtk_rtc_hal.c b/drivers/misc/mediatek/rtc/mt6323/mtk_rtc_hal.c index 316548172f2608..9a8ce514b001b4 100644 --- a/drivers/misc/mediatek/rtc/mt6323/mtk_rtc_hal.c +++ b/drivers/misc/mediatek/rtc/mt6323/mtk_rtc_hal.c @@ -31,7 +31,7 @@ //#include #include -#include +#include "mtk_rtc_hw.h" #if defined CONFIG_MTK_KERNEL_POWER_OFF_CHARGING #include #endif diff --git a/drivers/misc/mediatek/thermal/common/coolers/mtk_cooler_sysrst.c b/drivers/misc/mediatek/thermal/common/coolers/mtk_cooler_sysrst.c index c95d4d79c6c918..bbd459671c7fa3 100644 --- a/drivers/misc/mediatek/thermal/common/coolers/mtk_cooler_sysrst.c +++ b/drivers/misc/mediatek/thermal/common/coolers/mtk_cooler_sysrst.c @@ -84,7 +84,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } @@ -122,7 +122,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; @@ -159,7 +159,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; @@ -196,7 +196,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_6311buck.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_6311buck.c index 1e4aec1da34744..e3cdb7c53fd9ab 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_6311buck.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_6311buck.c @@ -332,7 +332,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; } diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_Abts.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_Abts.c index 20e8bf829740a1..2c6ec2082c223a 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_Abts.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_Abts.c @@ -509,7 +509,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_battery.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_battery.c index 1f4759c3dda699..8055aca92e472a 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_battery.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_battery.c @@ -466,7 +466,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; } diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_buck.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_buck.c index 307cd8f4192206..e56646c54a4fea 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_buck.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_buck.c @@ -509,7 +509,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; } diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_charger.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_charger.c index 92476d60dca880..399b64a963be1e 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_charger.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_charger.c @@ -381,7 +381,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_charger2.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_charger2.c index 66e0fa0c0120ef..aef5da1cf33aea 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_charger2.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_charger2.c @@ -339,7 +339,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_dram.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_dram.c index 27cd005a2bb15d..d5d44737076970 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_dram.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_dram.c @@ -249,7 +249,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_imgsensor.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_imgsensor.c index b6c2f3ef4d7a8c..d22eec3b4e9b15 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_imgsensor.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_imgsensor.c @@ -781,7 +781,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; } diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pa.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pa.c index 96ef04ecc9845c..d42e9c435c34ae 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pa.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pa.c @@ -436,7 +436,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; } diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pmic.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pmic.c index d66632db17ed9d..2128f0aae1e04b 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pmic.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pmic.c @@ -266,7 +266,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pmic1.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pmic1.c index 36dfd76fc4d4b2..30cdabdd3cb710 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pmic1.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_pmic1.c @@ -262,7 +262,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_tsx.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_tsx.c index 30f0e4207306fc..9afe1d26ab687d 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_tsx.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_tsx.c @@ -272,7 +272,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); /* arch_reset(0,NULL); */ } return 0; diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_wmt.c b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_wmt.c index 157e4317b428a7..3fb2a8d2df1272 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_wmt.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/mtk_ts_wmt.c @@ -794,7 +794,7 @@ struct thermal_cooling_device *cool_dev, unsigned long v) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/thermal/common/thermal_zones/ts_da9214.c b/drivers/misc/mediatek/thermal/common/thermal_zones/ts_da9214.c index 647e485255debc..be355f5ed61d69 100644 --- a/drivers/misc/mediatek/thermal/common/thermal_zones/ts_da9214.c +++ b/drivers/misc/mediatek/thermal/common/thermal_zones/ts_da9214.c @@ -258,7 +258,7 @@ struct thermal_cooling_device *cdev, unsigned long state) /* To trigger data abort to reset the system * for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_all_ts.c b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_all_ts.c index 8e77ce9813c20e..31aa6dd6091f9a 100644 --- a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_all_ts.c +++ b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_all_ts.c @@ -556,7 +556,7 @@ static int tsallts_sysrst_set_cur_state(struct thermal_cooling_device *cdev, /* tsallts_printk("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); */ /* To trigger data abort to reset the system for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; } diff --git a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_battery.c b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_battery.c index a7eb1048a0d89f..303463f2fe3b7f 100755 --- a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_battery.c +++ b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_battery.c @@ -385,7 +385,7 @@ static int tsbat_sysrst_set_cur_state(struct thermal_cooling_device *cdev, pr_err("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); /* To trigger data abort to reset the system for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; } diff --git a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_cpu.c b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_cpu.c index dfe88b2db15186..c62d58af311c8d 100644 --- a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_cpu.c +++ b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_cpu.c @@ -2974,7 +2974,7 @@ static int sysrst_cpu_set_cur_state(struct thermal_cooling_device *cdev, /* To trigger data abort to reset the system *for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; } diff --git a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_pa_thput.c b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_pa_thput.c index c3c84927f4db6c..65de7220448720 100644 --- a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_pa_thput.c +++ b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_pa_thput.c @@ -96,10 +96,10 @@ static int mdinfoex_threshold[MAX_MDINFOEX_OPCODE] = {0}; struct md_info g_pinfo_list[] = { {"TXPWR_MD1", -127, "db", -127, 0}, {"TXPWR_MD2", -127, "db", -127, 1}, - {"RFTEMP_2G_MD1", -127000, "m¢XC", -127000, 2}, - {"RFTEMP_2G_MD2", -127000, "m¢XC", -127000, 3}, - {"RFTEMP_3G_MD1", -127000, "m¢XC", -127000, 4}, - {"RFTEMP_3G_MD2", -127000, "m¢XC", -127000, 5} + {"RFTEMP_2G_MD1", -127000, "m_XC", -127000, 2}, + {"RFTEMP_2G_MD2", -127000, "m_XC", -127000, 3}, + {"RFTEMP_3G_MD1", -127000, "m_XC", -127000, 4}, + {"RFTEMP_3G_MD2", -127000, "m_XC", -127000, 5} }; #if MTK_TS_PA_THPUT_VIA_CCCI == 1 diff --git a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_pmic6323.c b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_pmic6323.c index 7bfc17be5d575d..7fc5bf4d3e53aa 100755 --- a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_pmic6323.c +++ b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_pmic6323.c @@ -403,7 +403,7 @@ static int tspmic_sysrst_set_cur_state(struct thermal_cooling_device *cdev, pr_err("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); /* BUG(); */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); /* arch_reset(0,NULL); */ } return 0; diff --git a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_wmt.c b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_wmt.c index 80ff8b7796b0a9..3b2c1403ddf2f9 100755 --- a/drivers/misc/mediatek/thermal/mt8163/mtk_ts_wmt.c +++ b/drivers/misc/mediatek/thermal/mt8163/mtk_ts_wmt.c @@ -576,7 +576,7 @@ static int wmt_cl_set_cur_state(struct thermal_cooling_device *cool_dev, /* the temperature is over than the critical, system reboot. */ /* To trigger data abort to reset the system for thermal protection. */ - *(unsigned int *)0x0 = 0xdead; + __builtin_trap(); } return 0; diff --git a/drivers/misc/mediatek/uart/mt8163/Makefile b/drivers/misc/mediatek/uart/mt8163/Makefile index 0ecd0288486908..67a43929654941 100644 --- a/drivers/misc/mediatek/uart/mt8163/Makefile +++ b/drivers/misc/mediatek/uart/mt8163/Makefile @@ -3,5 +3,6 @@ ccflags-y += -I$(srctree)/drivers/misc/mediatek/uart ccflags-y += -I$(srctree)/drivers/misc/mediatek/base/power/$(CONFIG_MTK_PLATFORM) +ccflags-y += -I$(srctree)/drivers/misc/mediatek/uart/$(CONFIG_MTK_PLATFORM) obj-$(CONFIG_MTK_SERIAL) := platform_uart.o diff --git a/drivers/misc/mediatek/video/include/DpDataType.h b/drivers/misc/mediatek/video/include/DpDataType.h index 5d309f227f218d..94cec08a8ffc65 100644 --- a/drivers/misc/mediatek/video/include/DpDataType.h +++ b/drivers/misc/mediatek/video/include/DpDataType.h @@ -21,6 +21,8 @@ #ifndef __DP_DATA_TYPE_H__ #define __DP_DATA_TYPE_H__ +#include + #ifndef MAX #define MAX(x, y) (((x) >= (y)) ? (x) : (y)) #endif /* MAX */ diff --git a/drivers/misc/mediatek/video/mt8163/dispsys/Makefile b/drivers/misc/mediatek/video/mt8163/dispsys/Makefile index 818c1c061f959d..16347b503e3909 100644 --- a/drivers/misc/mediatek/video/mt8163/dispsys/Makefile +++ b/drivers/misc/mediatek/video/mt8163/dispsys/Makefile @@ -1,5 +1,7 @@ # drivers/dispsys +ccflags-y += -Wno-switch -Wno-implicit-enum-enum-cast -Wno-typedef-redefinition + #for build #ccflags-y += -I$(srctree)/drivers/misc/mediatek/video/include/ \ -I$(srctree)/drivers/misc/mediatek/video/common/ @@ -13,7 +15,8 @@ ccflags-y += -I$(srctree)/drivers/misc/mediatek/video/$(MTK_PLATFORM)/videox/ \ -I$(srctree)/drivers/misc/mediatek/lcm/inc/ \ -I$(srctree)/drivers/misc/mediatek/m4u/$(MTK_PLATFORM) \ -I$(srctree)/drivers/misc/mediatek/leds/ \ - -I$(srctree)/drivers/misc/mediatek/leds/$(MTK_PLATFORM) + -I$(srctree)/drivers/misc/mediatek/leds/$(MTK_PLATFORM) \ + -I$(srctree)/drivers/misc/mediatek/video/$(MTK_PLATFORM)/dispsys/ subdir-ccflags-$(CONFIG_MTK_LCM) += -I$(srctree)/drivers/misc/mediatek/lcm/inc diff --git a/drivers/misc/mediatek/video/mt8163/dispsys/ddp_log.h b/drivers/misc/mediatek/video/mt8163/dispsys/ddp_log.h index 0b9016c51cba6d..7df4a72aa6ed6d 100644 --- a/drivers/misc/mediatek/video/mt8163/dispsys/ddp_log.h +++ b/drivers/misc/mediatek/video/mt8163/dispsys/ddp_log.h @@ -18,6 +18,7 @@ #include "display_recorder.h" #include #include +#include #ifndef LOG_TAG #define LOG_TAG @@ -75,13 +76,23 @@ DISP_LOG_E(fmt, ##args); \ } +static __maybe_unused noinline void __ddpdump_helper(const char *fmt, ...) +{ + char log[512]; + va_list args; + + va_start(args, fmt); + vsnprintf(log, sizeof(log), fmt, args); + va_end(args); + + dprec_logger_dump(log); +} + #if 1 #define DDPDUMP(fmt, ...) \ do { \ if (ddp_debug_analysis_to_buffer()) { \ - char log[512] = {'\0'}; \ - sprintf(log, fmt, ##__VA_ARGS__); \ - dprec_logger_dump(log); \ + __ddpdump_helper(fmt, ##__VA_ARGS__); \ } else \ pr_debug("[DDP/" LOG_TAG "]" fmt, ##__VA_ARGS__); \ } while (0) @@ -89,9 +100,7 @@ #define DDPDUMP(fmt, ...) \ do { \ if (ddp_debug_analysis_to_buffer()) { \ - char log[512] = {'\0'}; \ - snprintf(log, 511, fmt, ##__VA_ARGS__); \ - dprec_logger_dump(log); \ + __ddpdump_helper(fmt, ##__VA_ARGS__); \ } else \ pr_notice("[DDP/" LOG_TAG "]" fmt, ##__VA_ARGS__); \ } while (0) diff --git a/drivers/misc/mediatek/video/mt8163/dispsys/ddp_path.c b/drivers/misc/mediatek/video/mt8163/dispsys/ddp_path.c index db7fd5f68d5812..256fea417cfe65 100644 --- a/drivers/misc/mediatek/video/mt8163/dispsys/ddp_path.c +++ b/drivers/misc/mediatek/video/mt8163/dispsys/ddp_path.c @@ -29,7 +29,11 @@ #include "m4u.h" #include "mtk_smi.h" +#ifdef __clang__ +#pragma clang optimize off +#else #pragma GCC optimize("O0") +#endif struct module_map_t { enum DISP_MODULE_ENUM module; diff --git a/drivers/misc/mediatek/video/mt8163/dispsys/ddp_reg.h b/drivers/misc/mediatek/video/mt8163/dispsys/ddp_reg.h index 459d9cb9128c37..ca44f4e4565408 100644 --- a/drivers/misc/mediatek/video/mt8163/dispsys/ddp_reg.h +++ b/drivers/misc/mediatek/video/mt8163/dispsys/ddp_reg.h @@ -1075,7 +1075,7 @@ extern unsigned long dsi_reg_va; #define REG_FLD_VAL_GET(field, regval) \ (((regval)®_FLD_MASK(field)) >> REG_FLD_SHIFT(field)) -#define DISP_REG_GET(reg32) (*(/* volatile */ \ +#define DISP_REG_GET(reg32) (*(volatile \ unsigned int *)((unsigned long)reg32)) #define DISP_REG_GET_FIELD(field, reg32) \ ((*(/* volatile */ unsigned int *)((unsigned long)reg32) & \ diff --git a/drivers/misc/mediatek/video/mt8163/videox/Makefile b/drivers/misc/mediatek/video/mt8163/videox/Makefile index 5ff057bebff4e1..90cf1353c24920 100644 --- a/drivers/misc/mediatek/video/mt8163/videox/Makefile +++ b/drivers/misc/mediatek/video/mt8163/videox/Makefile @@ -1,5 +1,6 @@ # drivers/video/mtk/Makefile +ccflags-y += -Wno-typedef-redefinition -Wno-non-literal-null-conversion obj-$(CONFIG_MTK_FB) += mtkfb_console.o \ disp_assert_layer.o \ @@ -28,7 +29,8 @@ ccflags-y += -I$(srctree)/drivers/misc/mediatek/video/$(MTK_PLATFORM)/dispsys/ -I$(srctree)/drivers/misc/mediatek/ext_disp/$(MTK_PLATFORM) \ -I$(srctree)/drivers/misc/mediatek/lcm/inc/ \ -I$(srctree)/drivers/misc/mediatek/mach/$(MTK_PLATFORM)/include/mach/ \ - -I$(srctree)/drivers/misc/mediatek/base/power/$(MTK_PLATFORM) + -I$(srctree)/drivers/misc/mediatek/base/power/$(MTK_PLATFORM) \ + -I$(srctree)/drivers/misc/mediatek/video/$(MTK_PLATFORM)/videox/ ccflags-y += -I$(srctree)/drivers/staging/android/ion \ -I$(srctree)/drivers/staging/android/ion/mtk diff --git a/drivers/mmc/host/mtk-sdio.c b/drivers/mmc/host/mtk-sdio.c index 9b87fd3a5ca041..354dc422eeade1 100644 --- a/drivers/mmc/host/mtk-sdio.c +++ b/drivers/mmc/host/mtk-sdio.c @@ -37,7 +37,7 @@ #include #include -#include +#include "mtk-sdio.h" static void sdr_set_bits(void __iomem *reg, u32 bs) { diff --git a/drivers/staging/android/ion/mtk/ion_drv.h b/drivers/staging/android/ion/mtk/ion_drv.h index ebeb536cceed40..047821dd9cfe9a 100644 --- a/drivers/staging/android/ion/mtk/ion_drv.h +++ b/drivers/staging/android/ion/mtk/ion_drv.h @@ -15,7 +15,7 @@ #define __ION_DRV_H__ #include -#include +#include "../ion.h" #define BACKTRACE_SIZE 10 diff --git a/drivers/staging/android/ion/mtk/ion_drv_priv.h b/drivers/staging/android/ion/mtk/ion_drv_priv.h index 0b30796bb2ebdb..85159db8458deb 100644 --- a/drivers/staging/android/ion/mtk/ion_drv_priv.h +++ b/drivers/staging/android/ion/mtk/ion_drv_priv.h @@ -14,7 +14,7 @@ #ifndef __ION_DRV_PRIV_H__ #define __ION_DRV_PRIV_H__ -#include "ion_priv.h" +#include "../ion_priv.h" /* STRUCT ION_HEAP *G_ION_HEAPS[ION_HEAP_IDX_MAX]; */ diff --git a/drivers/thermal/amazon_virtual_sensor_thermal.c b/drivers/thermal/amazon_virtual_sensor_thermal.c index 2feb5a24f2c020..9fdcb99c4cdd01 100644 --- a/drivers/thermal/amazon_virtual_sensor_thermal.c +++ b/drivers/thermal/amazon_virtual_sensor_thermal.c @@ -33,7 +33,7 @@ #include #include #include -#include +#include "thermal_core.h" #define DMF 1000 #define NUM_OF_MOVING_AVG_PROP 4 @@ -335,7 +335,7 @@ static ssize_t _store_params(struct device *dev, const char *buf, size_t count) { - char param[20], sensor[20]; + char param[21], sensor[21]; int value; struct virtual_thermal_zone *vtz = dev_get_drvdata(dev); struct virtual_thermal_dev *vtdev; diff --git a/sound/soc/mediatek/mt_soc_audio_8163_amzn/AudDrv_Afe.c b/sound/soc/mediatek/mt_soc_audio_8163_amzn/AudDrv_Afe.c index 7e5939544b63ac..4309d6c4e3a9dd 100644 --- a/sound/soc/mediatek/mt_soc_audio_8163_amzn/AudDrv_Afe.c +++ b/sound/soc/mediatek/mt_soc_audio_8163_amzn/AudDrv_Afe.c @@ -94,12 +94,12 @@ dma_addr_t Get_Afe_Sram_Capture_Phys_Addr(void) (AFE_INTERNAL_SRAM_PHY_BASE + SramCaptureOffSet); } -void *Get_Afe_SramBase_Pointer() +void *Get_Afe_SramBase_Pointer(void) { return AFE_SRAM_ADDRESS; } -void *Get_Afe_SramCaptureBase_Pointer() +void *Get_Afe_SramCaptureBase_Pointer(void) { char *CaptureSramPointer = (char *)(AFE_SRAM_ADDRESS) + SramCaptureOffSet; @@ -107,17 +107,17 @@ void *Get_Afe_SramCaptureBase_Pointer() return (void *)CaptureSramPointer; } -void *Get_Afe_Powertop_Pointer() +void *Get_Afe_Powertop_Pointer(void) { return AFE_TOP_ADDRESS; } -void *Get_AudClk_Pointer() +void *Get_AudClk_Pointer(void) { return AFE_CLK_ADDRESS; } -void *Get_Afe_Infra_Pointer() +void *Get_Afe_Infra_Pointer(void) { return AFE_INFRA_ADDRESS; } diff --git a/sound/soc/mediatek/mt_soc_audio_8163_amzn/mt_soc_afe_control.c b/sound/soc/mediatek/mt_soc_audio_8163_amzn/mt_soc_afe_control.c index d259d8da31dbe2..97d075962f1529 100644 --- a/sound/soc/mediatek/mt_soc_audio_8163_amzn/mt_soc_afe_control.c +++ b/sound/soc/mediatek/mt_soc_audio_8163_amzn/mt_soc_afe_control.c @@ -555,7 +555,7 @@ irqreturn_t AudDrv_IRQ_handler(int irq, void *dev_id) Auddrv_UL2_Interrupt_Handler(); } if (u4RegValue & INTERRUPT_IRQ7_MCU) { - if ((mAudioMEMIF[Soc_Aud_Digital_Block_MEM_DL2]->mState == true)) + if (mAudioMEMIF[Soc_Aud_Digital_Block_MEM_DL2]->mState == true) Auddrv_DL2_Interrupt_Handler(); } if (u4RegValue & INTERRUPT_IRQ5_MCU) { diff --git a/sound/soc/mediatek/mt_soc_audio_8163_amzn/mt_soc_machine.c b/sound/soc/mediatek/mt_soc_audio_8163_amzn/mt_soc_machine.c index a06faad6293333..39e0912ad2227e 100644 --- a/sound/soc/mediatek/mt_soc_audio_8163_amzn/mt_soc_machine.c +++ b/sound/soc/mediatek/mt_soc_audio_8163_amzn/mt_soc_machine.c @@ -929,8 +929,10 @@ static ssize_t mt_soc_ana_debug_read(struct file *file, char __user *buf, size_t count, loff_t *pos) { const int size = 4096; - char buffer[size]; int n = 0; + ssize_t ret = 0; + char *buffer = kzalloc(size, GFP_KERNEL); + if (!buffer) return -ENOMEM; pr_info("mt_soc_ana_debug_read count = %zu\n", count); AudDrv_ANA_Clk_On(); @@ -1001,7 +1003,9 @@ static ssize_t mt_soc_ana_debug_read(struct file *file, char __user *buf, AudDrv_Clk_Off(); AudDrv_ANA_Clk_Off(); - return simple_read_from_buffer(buf, count, pos, buffer, n); + ret = simple_read_from_buffer(buf, count, pos, buffer, n); + kfree(buffer); + return ret; } @@ -1014,8 +1018,10 @@ static int mt_soc_debug_open(struct inode *inode, struct file *file) static ssize_t mt_soc_debug_read(struct file *file, char __user *buf, size_t count, loff_t *pos) { const int size = 4096; - char buffer[size]; int n = 0; + ssize_t ret = 0; + char *buffer = kzalloc(size, GFP_KERNEL); + if (!buffer) return -ENOMEM; AudDrv_ANA_Clk_On(); AudDrv_Clk_On(); @@ -1331,7 +1337,9 @@ static ssize_t mt_soc_debug_read(struct file *file, char __user *buf, size_t cou AudDrv_Clk_Off(); AudDrv_ANA_Clk_Off(); - return simple_read_from_buffer(buf, count, pos, buffer, n); + ret = simple_read_from_buffer(buf, count, pos, buffer, n); + kfree(buffer); + return ret; } static const char ParSetkeyAfe[] = "Setafereg";