Closed alifilhan0 closed 1 year ago
I think all the magic is here https://android.googlesource.com/platform/hardware/bsp/kernel/mediatek/mt8516-v4.4/+/refs/heads/nougat-iot-release/drivers/misc/mediatek/connectivity/common/common_main/platform/include/mt8167.h
A lot of device address definitions. I think this is worth a check, and maybe we can even modify it? If you think we need to modify it, then we need a good informal datahseet or we should look for these in the Mt7623 kernel tree. Maybe if a complete datasheet is needed, I might find a good one in one of the chinese sites I know about.....or is there already required similar files in the kernel tree?
i guess adresses (at least in later kernel-versions) are defined in devicetree...maybe it's on of the first steps to read the values from DT instead of hardcode in headerfile
one part looking needed is this:
drivers/misc/mediatek.bak/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c:610: node = of_find_compatible_node(NULL, NULL, "mediatek,mt7623-consys");
in platform-folder this is hardcoded to mediatek,mt8167-consys
so basicly we need to replace platform folder with (a compatible version) of mt7623-folder or make parts configurable / change to mt7623
I think changing the device tree nodes should be tried. Did you see the registers and the address of the connsys node? Across the older CPUs, this is based on MT8167, consys ip is the same. It changed recently around the MT6797, when they first used a MIPS Img tech IP. So what I'm thinking is maybe just changing the registers and the address may help here? From the DT node
| compatible = "mediatek,mt8167-consys"; | reg = <0 0x18070000 0 0x0200>, / CONN_MCU_CONFIG_BASE / | <0 0x10000000 0 0x2000>; / TOPCKGEN_BASE / | power-domains = <&scpsys MT8167_POWER_DOMAIN_CONN>; | interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>, / BGF_EINT / | <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>; / WDT_EINT / | resets = <&toprgu MT8167_TOPRGU_CONN_MCU_RST>; | reset-names = "connsys"; | status = "disabled"; | }; | | wifi@180f0000 { | compatible = "mediatek,wifi"; | reg = <0 0x180f0000 0 0x005c>; | interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>; | clocks = <&topckgen CLK_TOP_APDMA>; | clock-names = "wifi-dma"; | };
And from the mt8167.h file
| #if CONFIG_OF | struct CONSYS_BASE_ADDRESS { | SIZE_T mcu_base; | SIZE_T ap_rgu_base; | SIZE_T topckgen_base; | SIZE_T spm_base; | }; | | /TOPCKGEN_BASE/ | #define CONSYS_TOP_CLKCG_CLR_OFFSET 0x00000084 | #define CONSYS_TOP_CLKCG_SET_OFFSET 0x00000054 | #define CONSYS_WD_SYS_RST_OFFSET 0x00000018 | #define CONSYS_AP2CONN_OSC_EN_OFFSET 0x00001f00 | #define CONSYS_EMI_MAPPING_OFFSET 0x00001320 | /AP_RGU_BASE/ | #define CONSYS_CPU_SW_RST_OFFSET 0x00000018 | /SPM_BASE/ | #define CONSYS_PWRON_CONFG_EN_OFFSET 0x00000000 | #define CONSYS_TOP1_PWR_CTRL_OFFSET 0x00000280 | #define CONSYS_PWR_CONN_ACK_OFFSET 0x0000060c | #define CONSYS_PWR_CONN_ACK_S_OFFSET 0x00000610 | /CONN_MCU_CONFIG_BASE/ | #define CONSYS_CHIP_ID_OFFSET 0x00000008 | #define CONSYS_ROM_RAM_DELSEL_OFFSET 0x00000114 | #define CONSYS_MCU_CFG_ACR_OFFSET 0x00000110 | #define CONSYS_CPUPCR_OFFSET 0x00000160 | #endif | /AXI bus/ | #define CONSYS_TOPAXI_PROT_EN_OFFSET 0x1220 | #define CONSYS_TOPAXI_PROT_STA1_OFFSET 0x1228 | | /tag start: connsys register base address (hard code, no use) / | #define AP_RGU_BASE 0xF0007000 | #define TOPCKGEN_BASE 0xF0000000 | #define SPM_BASE 0xF0006000 | #define CONN_MCU_CONFIG_BASE 0xF8070000 | /GIC Interrupt ID
To me this part looks very interesting. If only I had a Bpi working board, I would have already off in trying, no matter how foolish it looked. According to this header file, even device tree mode and hard code mode header file is also defined in this header. Is there any possible option to use the desired device tree mode depicted here? I suspect this whole driver is being tried to be coded in hard code mode(i.e board file mode with include/mt-plat). I mean is it worth trying changing the registers and the address of the consys node? because the header file definition is based on that register it seems
Sorry, I meant changing the TOPCKGEN_BASE in the reg and the IRQs, and maybe the header file needs some changes, because I think the IP is just same with different address.
added platform-file and header-file, but it seems not be used...tried to add some debug, but this is not shown...any idea?
i guess the mtXXXX.c should be more generic, right? it uses compatible (can be also a const) and different header-file (maybe matched by config-option MTK_PLATFORM)?
This is what I was going to say. If this doesn't work, I think we need to modify the makefiles or the headers in a different way I suppose? Did you change the other files to include the header? And yes, my bad, I thought of modifying the header file because I thought the MT7623 kernel doesn't have one. But apparently it seems you have both of them
I thought this is done here
And as i set Config_mtk_platform to mt7623 is should use my new file (and should be broken before) i tried adding debugs...but i do not see them.in other branch i used info
https://github.com/frank-w/BPI-R2-4.14/blob/5.10-main/drivers/misc/mediatek/Makefile#L16
MTK_PLATFORM is empty in this makefile
changed to info and see this:
Platform-Makefile
y
plat:
use alps.o
traced back and only in misc/mediatek makefile it is available (where it was set from CONFIG_MTK_PLATFORM)
MTK_PLATFORM := $(subst ",,$(CONFIG_MTK_PLATFORM))
So what is the final result, does the driver compile? The mediatek makefiles are very disorganized sometimes, at first, used to remove the MTPLATFROM or MTK***** variables and wrote the full filenames instead. For example, I would have started by directly putting MT7623 in the makefile removing the variable MTK_PLATFORM. So how's it going? I am thinking for the PMIC, since I am done adding LDOs, I would use the MT6360 charger driver since the IP is the same with MT6328. Which PMIC does this board have and does this board support charging and battery power too?
Driver compiles,but does not use platform-folder
I remember i had similar issue in old/ported driver.
Imho we need to pass mtk_platform through all makefiles or do the subst in each makefile using it
have added this to the drivers/misc/mediatek/connectivity/common/common_main/platform/Makefile
MTK_PLATFORM := $(subst ",,$(CONFIG_MTK_PLATFORM))
$(info $(CONFIG_MTK_COMBO))
$(info plat:$(MTK_PLATFORM))
$(info combo:$(CONFIG_MTK_COMBO_CHIP))
$(MTK_PLATFORM).o is only built if CONFIG_MTK_COMBOCHIP is set to CONSYS* but currently it is set to MT6620
plat:mt7623
combo:"MT6620"
maybe the combo-setting is wrong here...there is a MTK_COMBO_CHIP_CONSYS_8167, but (of course no MTK_COMBO_CHIP_CONSYS_7623)...i'm not sure it is right to add it to use the new files in platform-folder
now i hang on missing files in include-dir
./drivers/misc/mediatek/include/mt-plat/mt8167/include/mach/upmu_sw.h
this is also needed for mt7623, seems pmic-related...as MT6392PMIC* consts are used...for mt7623 i guess we need to use MT6323, but these do not exist...MT6392 are defined in ./drivers/misc/mediatek/include/mt-plat/mt8167/include/mach/upmu_hw.h
Sometimes mediatek kernels have absurdly named files but they contain the right thing you need. Moreover, it's hardware blocks are similar, so it is worth trying with different settings. For the combo chip setting, it is set to MT6620 but the real combo chip is actually MT6630, though MT66xx are supported by this driver. And yes, this driver is also somewhat compiled into a devicetree and board file style, so it needs the include/mt-plat files. I will try to compile this kernel's required files and tell you right ahead
Okay I tried and got this error
This was my config, did I chose anything wrong? I don't understand after I place these config optios, they turn into big and bold text. Can you tell me how do you add code snippets in your comments/messages? `# Modem & Connectivity related configs #
CONFIG_MTK_COMBO=y
CONFIG_MTK_COMBO_CHIP_CONSYS_7623=y CONFIG_MTK_COMBO_CHIP="CONSYS_7623" CONFIG_MTK_COMBO_PLAT_PATH="" CONFIG_MTK_COMBO_COMM=y CONFIG_MTK_COMBO_COMM_UART=y CONFIG_MTK_COMBO_COMM_SDIO=y CONFIG_MTK_COMBO_COMM_NPWR=y CONFIG_MTK_COMBO_COMM_APO=y CONFIG_MTK_COMBO_BT=y CONFIG_MTK_COMBO_ANT=y CONFIG_MTK_COMBO_GPS=y CONFIG_MTK_COMBO_WIFI=y
CONFIG_MTK_PASSPOINT_R1_SUPPORT=y CONFIG_MTK_PASSPOINT_R2_SUPPORT=y CONFIG_MTK_WIFI_MCC_SUPPORT=y
And I also get this error when I save a configuration `[home-amd@home-desktop BPI-R2-4.14-4.4-mt6625]$ make ARCH=arm menuconfig scripts/kconfig/mconf Kconfig warning: (MTK_COMBO_WIFI && GELIC_WIRELESS && PCMCIA_RAYCS && AIRO && ATMEL && PCMCIA_ATMEL && AIRO_CS && PCMCIA_WL3501 && PRISM54 && USB_ZD1201 && HOSTAP && IPW2100 && IPW2200 && LIBIPW && LIBERTAS && HERMES && PRISM2_USB && RTL8192U && R8712U && R8188EU && R8723AU && RTL8192E) selects WIRELESS_EXT which has unmet direct dependencies (NET && WIRELESS) warning: (MTK_COMBO_WIFI && PCMCIA_RAYCS && AIRO && ATMEL && AIRO_CS && PRISM54 && USB_ZD1201 && HOSTAP && IPW2100 && IPW2200 && HERMES && PRISM2_USB && RTL8192U && R8712U && R8188EU && R8723AU && RTL8192E) selects WEXT_PRIV which has unmet direct dependencies (NET && WIRELESS) warning: (MTK_COMBO_WIFI && PCMCIA_RAYCS && AIRO && ATMEL && AIRO_CS && PRISM54 && USB_ZD1201 && HOSTAP && IPW2100 && IPW2200 && HERMES && PRISM2_USB && RTL8192U && R8712U && R8188EU && R8723AU && RTL8192E) selects WEXT_PRIV which has unmet direct dependencies (NET && WIRELESS) configuration written to .config
End of the configuration. Execute 'make' to start the build or try 'make help'. `
CONFIG_MTK_COMBO_CHIP_CONSYS_7623
Does not work yet...if you compile with my defconfig (see build.sh) compile should work and uses mt6620 without consys
I have only prepared kconfig to make use of platform folder,but it needs additional files
CONFIG_MTK_COMBO_CHIP_CONSYS_8167 should include platform too for supported chip for first test
Yes, I suppose. It built fine but no activity on the common/ directory. Moreover, no errors. so, how about renaming the two mt7623 files into 8167 and removing the old ones and testing on router? I mean at this point isn't it more important to test the driver than compile with MT7623 setting?
Finally I get something meaningful, after choosing CONFIG_MTK_COMBO_CHIP_CONSYS_8167. However it looks for conn-drv_init.h and doesn't find it. Also the kernel is full of strange errors, and warnings I don't understad why? Is it because my GCC is 11 and I used kernel headers 5.12.9? Should I build a gcc with this kernel's headers?
DTC arch/arm/boot/dts/mt7623n-bpi-r2.dtb crypto/xts.c:337:13: error: conflicting types for built-in function ‘free’; expected ‘void(void *)’ [-Werror=builtin-declaration-mismatch] 337 | static void free(struct crypto_instance *inst) | ^~~~ crypto/xts.c:27:1: note: ‘free’ is declared in header ‘<stdlib.h>’ 26 | #include <crypto/gf128mul.h> +++ |+#include <stdlib.h> 27 | In file included from arch/arm/boot/dts/mt7623n-bpi-r2.dts:16: arch/arm/boot/dts/mt7623.dtsi:15:10: fatal error: dt-bindings/interrupt-controller/irq.h: No such file or directory 15 | #include <dt-bindings/interrupt-controller/irq.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[1]: *** [scripts/Makefile.lib:293: arch/arm/boot/dts/mt7623n-bpi-r2.dtb] Error 1 make: *** [arch/arm/Makefile:340: dtbs] Error 2 make: *** Waiting for unfinished jobs.... cc1: all warnings being treated as errors make[1]: *** [scripts/Makefile.build:277: crypto/xts.o] Error 1 make[1]: *** Waiting for unfinished jobs.... CHK kernel/config_data.h make: *** [Makefile:993: crypto] Error 2 misc-mtk_plat:mt7623 connectivity_plat: common_plat: CC [M] drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect.o common_main/Makefile common-main_plat:mt7623 CC [M] drivers/misc/mediatek/connectivity/common/common_detect/sdio_detect.o make[6]: *** No rule to make target 'drivers/misc/mediatek/connectivity/common/common_main/linux/pri/wmt_dev.o', needed by 'drivers/misc/mediatek/connectivity/common/common_main/mtk_stp_wmt_soc.o'. Stop. make[5]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity/common/common_main] Error 2 make[5]: *** Waiting for unfinished jobs.... CC drivers/perf/arm_pmu.o CC [M] drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.o CC drivers/phy/phy-core.o CC drivers/pinctrl/core.o CC drivers/phy/phy-mt65xx-usb3.o CC drivers/pinctrl/pinctrl-utils.o drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect.c:27:10: fatal error: conn_drv_init.h: No such file or directory 27 | #include "conn_drv_init.h" | ^~~~~~~~~~~~~~~~~ compilation terminated. make[6]: *** [scripts/Makefile.build:277: drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect.o] Error 1 make[6]: *** Waiting for unfinished jobs.... drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.c: In function ‘nicRxProcessEventPacket’: drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.c:1223:51: error: array subscript ‘struct _BOW_LINK_CONNECTED[0]’ is partly outside array bounds of ‘UINT_8[12]’ {aka ‘unsigned char[12]’} [-Werror=array-bounds] 1223 | prBowLinkConnected->rChannel.ucChannelNum = prEventBtOverWifi->ucSelectedChannel; | ^~ drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.c:1204:32: note: while referencing ‘aucTmp’ 1204 | UINT_8 aucTmp[sizeof(AMPC_EVENT) + sizeof(BOW_LINK_DISCONNECTED)]; | ^~~~~~ make[5]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity/common/common_detect] Error 2 make[4]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity/common] Error 2 make[4]: *** Waiting for unfinished jobs.... LD drivers/pps/clients/built-in.o CC drivers/power/power_supply_core.o LD drivers/pps/generators/built-in.o CC [M] drivers/pps/pps.o cc1: all warnings being treated as errors make[6]: *** [scripts/Makefile.build:277: drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.o] Error 1 make[5]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity/wlan/gen2] Error 2 make[4]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity/wlan] Error 2 make[3]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity] Error 2 make[2]: *** [scripts/Makefile.build:484: drivers/misc/mediatek] Error 2 make[1]: *** [scripts/Makefile.build:484: drivers/misc] Error
I test only with my current defconfig and gcc 9.3
If changing anything it may break,consys_mt8167 is NEXT step we need to check if driver is compilable with this setting before adding mt7623 support to this folder (i've copied come mt8167 files,but not changed much,only compatible and chipid)
You are still on branch 4.4-mt6625l?
Yeah, and the errors are related directly to headers and libc of the GCC11. So I built gcc again with 4.4 headers and tested, the kernel compiles but with those errors. It has also some dtc errors which I fixed but aftsr that, still missing headers. By the way, which kernel version are you using at this moment? Or which should I try with?
I use precompiled linaro toolchain from ubuntu 20.4 and distribution kernel.
No, I meant which kernel version are you using at this moment? Since you asked about 4.4, are you still using it or a newer version?
You mean ON r2 (not on host for building). I use 5.10.32 from my hnat branch on my mainrouter
Oh okay. So for the gcc errors, I don't understand....these gcc errors don't look normal. And they are too many to be shared, mostly warnings and notes. Finally I could build on the connectivity directory with make -M, and the file indeed built without errors, but the platform folder is untouched. Should I try modifying the makefiles differently?
I remember the drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.c error i had on gcc8...maybe it is introduced in gcc11.
File upload here is possible too with the image button...but please only stderr
As for now, I removed variable MTK_PLATFORM and directly wrote mt7623 so that is just builds compulsorily. I even removed the condition ifeq(CONFIG_MTK_COMBO,y) so that it is forced to compile. But now I find that this directory is never even touched! I thought it wasn't accessed because of the previous compilation errors, but there is something we aren't getting right.
[home-amd@home-desktop BPI-R2-4.14-4.4-mt6625]$ make ARCH=arm -j12 CROSS_COMPILE=arm-linux-gnueabihf- CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h CHK scripts/mod/devicetable-offsets.h make[1]: 'include/generated/mach-types.h' is up to date. CHK include/generated/timeconst.h CHK include/generated/bounds.h CHK include/generated/asm-offsets.h CALL scripts/checksyscalls.sh CHK include/generated/compile.h CC crypto/xts.o CC crypto/gcm.o CHK kernel/config_data.h crypto/xts.c:337:13: error: conflicting types for built-in function ‘free’; expected ‘void(void *)’ [-Werror=builtin-declaration-mismatch] 337 | static void free(struct crypto_instance *inst) | ^~~~ crypto/xts.c:27:1: note: ‘free’ is declared in header ‘<stdlib.h>’ 26 | #include <crypto/gf128mul.h> +++ |+#include <stdlib.h> 27 | cc1: all warnings being treated as errors make[1]: *** [scripts/Makefile.build:277: crypto/xts.o] Error 1 make[1]: *** Waiting for unfinished jobs.... DTC arch/arm/boot/dts/mt7623n-bpi-r2.dtb In file included from arch/arm/boot/dts/mt7623n-bpi-r2.dts:16: arch/arm/boot/dts/mt7623.dtsi:15:10: fatal error: dt-bindings/interrupt-controller/irq.h: No such file or directory 15 | #include <dt-bindings/interrupt-controller/irq.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[1]: *** [scripts/Makefile.lib:293: arch/arm/boot/dts/mt7623n-bpi-r2.dtb] Error 1 make: *** [arch/arm/Makefile:340: dtbs] Error 2 make: *** Waiting for unfinished jobs.... make: *** [Makefile:993: crypto] Error 2 misc-mtk_plat:mt7623 connectivity_plat: common_plat: common_main/Makefile common-main_plat:mt7623 LD drivers/misc/mediatek/connectivity/common/common_detect/built-in.o CC [M] drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect.o CC [M] drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.o drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect.c:27:10: fatal error: conn_drv_init.h: No such file or directory 27 | #include "conn_drv_init.h" | ^~~~~~~~~~~~~~~~~ compilation terminated. make[6]: *** [scripts/Makefile.build:277: drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect.o] Error 1 make[5]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity/common/common_detect] Error 2 make[5]: *** Waiting for unfinished jobs.... drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.c: In function ‘nicRxProcessEventPacket’: drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.c:1223:51: error: array subscript ‘struct _BOW_LINK_CONNECTED[0]’ is partly outside array bounds of ‘UINT_8[12]’ {aka ‘unsigned char[12]’} [-Werror=array-bounds] 1223 | prBowLinkConnected->rChannel.ucChannelNum = prEventBtOverWifi->ucSelectedChannel; | ^~ drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.c:1204:32: note: while referencing ‘aucTmp’ 1204 | UINT_8 aucTmp[sizeof(AMPC_EVENT) + sizeof(BOW_LINK_DISCONNECTED)]; | ^~~~~~ CC [M] drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_pwr_mgt.o cc1: all warnings being treated as errors make[6]: *** [scripts/Makefile.build:277: drivers/misc/mediatek/connectivity/wlan/gen2/nic/nic_rx.o] Error 1 make[6]: *** Waiting for unfinished jobs.... CC drivers/ras/ras.o CC [M] drivers/misc/mediatek/connectivity/common/common_main/core/wmt_core.o CC [M] drivers/misc/mediatek/connectivity/common/common_main/core/wmt_lib.o CC drivers/video/hdmi.o CC drivers/scsi/scsi_sysfs.o LD drivers/usb/common/usb-common.o LD drivers/usb/common/built-in.o CC drivers/video/console/dummycon.o CC drivers/video/console/fbcon.o CC drivers/tty/n_tty.o CC drivers/video/console/bitblit.o LD drivers/usb/gadget/function/built-in.o CC [M] drivers/usb/gadget/function/f_acm.o CC drivers/video/console/softcursor.o CC drivers/usb/core/hub.o CC drivers/usb/core/hcd.o CC drivers/scsi/scsi_devinfo.o CC drivers/scsi/scsi_sysctl.o CC drivers/video/console/tileblit.o CC [M] drivers/usb/gadget/function/u_serial.o CC drivers/scsi/scsi_proc.o make[6]: *** No rule to make target 'drivers/misc/mediatek/connectivity/common/common_main/linux/pri/wmt_dev.o', needed by 'drivers/misc/mediatek/connectivity/common/common_main/mtk_stp_wmt_soc.o'. Stop. make[6]: *** Waiting for unfinished jobs.... CC [M] drivers/misc/mediatek/connectivity/common/common_main/core/wmt_conf.o
Which dir do you mean?
mt7623 folder (folder from old driver) is not yet used as i get many errors on building,platform should be used,but the mtxxxx.c file is only build if CONFIG_MTK_COMBOCHIP contains CONSYS
Could you try using my build.sh (params importconfig and build) to test your setup/gcc? I guess you miss any option
Note that I didn't remove any line, just uncommented it. And I haven't pasted the whole makefile because this isn't possible. This is my makefile for drivers/misc/mediatek/connectivity/common/common_main
`ifeq ($(CONFIG_ARCH_MT6580), y) subdir-ccflags-y += -D CFG_WMT_READ_EFUSE_VCN33 endif
ifeq ($(CONFIG_MTK_COMBO), m)
obj-$(CONFIG_MTK_COMBO) += mtk_stp_wmt$(EXT_FLAG).o
mtk_stp_wmt$(EXT_FLAG)-objs := core/wmt_core.o core/wmt_ctrl.o core/wmt_func.o core/wmt_ic_soc.o core/wmt_lib.o core/wmt_conf.o
mtk_stp_wmt$(EXT_FLAG)-objs += linux/pri/wmt_dev.o linux/pri/wmt_exp.o mtk_stp_wmt$(EXT_FLAG)-objs += linux/pri/stp_btif.o
mtk_stp_wmt$(EXT_FLAG)-objs += linux/pub/osal.o linux/pub/bgw_desense.o
mtk_stp_wmt$(EXT_FLAG)-objs += linux/pri/stp_exp.o core/stp_core.o core/psm_core.o core/btm_core.o linux/pri/stp_dbg.o
endif
obj-y += core/ obj-y += linux/ obj-y += platform/
And this is for the drivers/misc/mediatek/common/common _main/platform
`PLAT := alps
$(info use mt7623.o) obj-y += mt7623.o
obj-y += wmt_plat_alps.o
obj-y += mtk_wcn_cmb_hw.o obj-y += mtk_wcn_consys_hw.o
endif`
I know this is not a good and practical way to use it like this but I just wanted to see what happens when we get there. But I failed too
mhm, currently i get build-error too..
./drivers/misc/mediatek/include/mt-plat/upmu_common.h:18:10: fatal error: mach/upmu_sw.h: No such file or directory
18 | #include <mach/upmu_sw.h>
| ^~~~~~~~~~~~~~~~
compilation terminated.
it seems my new Kconfig-entry is set by default
MTK_COMBO_CHIP [=CONSYS_7623]
i wonder why i had compiled before adding the mt7623_consys to kconfig....defconfig still
So what's the conclusion? Is it because the compilation gets terminated even before it reaches the platform directory? Should i try now to make the whole connectivity directory into a module and see if that reaches the platform file? And by the way, the compilation in my case is terminated by that UNIT_8 error and the irq.h file in the mt7623 dts. <dt-bindings/interrupt-controller/irq.h no such file or directory. I am using the new GCC 11 built with 4.4 kernel headers and it still gives warnings but I ignore them.
sorry CONFIG_MTK_COMBO_CHIP_CONSYS_7623=y was already present in defconfig...at the time i added kconfig-option it was set ;)
if i change MTK_COMBO_CHIP to MT6620 i can compile, but get linking-errors, but i don't know why yet
undefined reference to `g_IsNeedDoChipReset'
in drivers/misc/mediatek/connectivity/wlan/wmt_chrdev_wifi.c
it is because i had hardcoded gen2 before...
--- a/drivers/misc/mediatek/connectivity/wlan/Makefile
+++ b/drivers/misc/mediatek/connectivity/wlan/Makefile
@@ -25,7 +25,7 @@ obj-$(CONFIG_MTK_COMBO_WIFI) += wmt_chrdev_wifi.o
#########################################################
# WLAN driver
-# obj-y += gen2/
+obj-y += gen2/
ifneq ($(filter "MT6630",$(CONFIG_MTK_COMBO_CHIP)),)
obj-y += gen3/
as for the UINT8-Error, you could try the gcc8-fix i've linked, it seems that gcc9.3 does not report it...in "new" driver code it is not yet applied
for dtc: i have a include/dt-bindings/interrupt-controller/irq.h, so i guess your dtc is missing the include-folder
i have an actual arch/arm/boot/dts/mt7623n-bpi-r2.dtb from my last build
I fixed the irq.h error by first removing the dt-bingings and then linking the include/dt-bindings again in the folder, now the dtb compiles fine. Here I am stuck presently, I don't understand this message though and after choosing combo chip 6620, the UNIT8 errors vanished, but that maybe just because the compilation was terminated before it could go there.
DTC arch/arm/boot/dts/mt7623n-bpi-r2.dtb misc-mtk_plat:mt7623 connectivity_plat: common_plat: common_main/Makefile common-main_plat:mt7623 make[6]: *** No rule to make target 'drivers/misc/mediatek/connectivity/common/common_main/linux/pri/wmt_dev.o', needed by 'drivers/misc/mediatek/connectivity/common/common_main/mtk_stp_wmt_soc.o'. Stop. make[5]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity/common/common_main] Error 2 make[5]: *** Waiting for unfinished jobs.... make[4]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity/common] Error 2 make[3]: *** [scripts/Makefile.build:484: drivers/misc/mediatek/connectivity] Error 2 make[2]: *** [scripts/Makefile.build:484: drivers/misc/mediatek] Error 2 make[1]: *** [scripts/Makefile.build:484: drivers/misc] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:993: drivers] Error 2
i have no directory drivers/misc/mediatek/connectivity/common/common_main/linux/pri/ (and no other pri-folder in the driver)
drivers/misc/mediatek/connectivity/common/common_main/linux/wmt_dev.o exists
but i see this in common_main-Makefile:
EXT_FLAG=_soc ... mtk_stp_wmt$(EXT_FLAG)-objs += linux/pri/wmt_dev.o linux/pri/wmt_exp.o
which should be without "/pri"
uploaded my current state (compilable with my gcc9.3 and build.sh)
I immediately noticed it after I commented, and then after the fix UNIT8 errors are back again.
for dtb-error (irq.h) maybe you miss this?
$ ls -l arch/arm/boot/dts/include
insgesamt 0
lrwxrwxrwx 1 frank frank 34 Jun 11 15:55 dt-bindings -> ../../../../../include/dt-bindings
include is a folder in dts
for uint8-error you can try apply the gcc8-fix i've linked above to the new codebase
No, I fixed it already, it works fine after removing the file dt-bindings from dts/include and then linking the header file dt-bindings directory again in the include dir inside the device tree containing folder
And yes, I am applying your fixes
Some of the defines:
Maybe we should use mt7623 parts from this as it looks in better shape as 4.4
And this repo has subfolders pub and priv which are simply included
i have tried to add mt6323 pmic-constants, but many of them used in the upmu_{h,s}w.h do not exist...as i have working driver and this binds to much of my limited time, i stop here
Okay then, I will kwwp working on this, thanks for trying.
Please notify me (maybe fork and create pull-request) if you make progress. I try to use vendor 4.14 for wifi-client mode (is reported to be working in bpi-forum)
Btw. I added vendors 4.14 code to my repo (4.14-mt6625) and tried wifi client...this works..ap mode too,but it is reported by vendor that bt is not working...but i try to compare this driver with my 4.14-main to figure out why my client mode is not working (reported,not tried...so i try same steps with my kernel first)
It looks like the wifi-driver is based on my ported code as i see debug messages i've added (and later disabled)...these disabled debugs is largest part in diff
Diff looks pretty small and it looks like wifi-client fix is in drivers/misc/mediatek/connectivity/wlan/gen2/mgmt/p2p_fsm.c
https://github.com/frank-w/BPI-R2-4.14/commit/5042bbd1c648fdf19e419539192e2a21fd4eba46
And can you also try to see why BT/BLE doesn't work?
Wifi-client works with my 5.10...
Bt works because we disabled automatic init, compiled bt as module and loaded after core init is done (after firmware load)
But i have no idea how to track btle
You can leave BTLE out of the topic, no one will even notice, since it is compatible with BT. For my vendor code, I directly added them to my kernel tree in 5.12.9, without any testing in the old kernel and voila! It actually reaches there and shows some errors. Though these codes are modem related and not entirely related to the connectivity part. I will try with connectivity this evening.
In file included from drivers/misc/mediatek/c2k_usb/f_rawbulk.c:23:
./include/linux/wakelock.h: In function ‘wake_lock_init’:
./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
39 | wakeup_source_init(&lock->ws, name);
| ^~~~~~
| wakeup_source_add
./include/linux/wakelock.h: In function ‘wake_lock_destroy’:
./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
44 | wakeup_source_trash(&lock->ws);
| ^~~~~~~
| wakeup_source_add
In file included from drivers/misc/mediatek/c2k_usb/rawbulk.c:37:
./include/linux/wakelock.h: In function ‘wake_lock_init’:
./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
39 | wakeup_source_init(&lock->ws, name);
| ^~~~~~
| wakeup_source_add
./include/linux/wakelock.h: In function ‘wake_lock_destroy’:
./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
44 | wakeup_source_trash(&lock->ws);
| ^~~~~~~
| wakeup_source_add
AR drivers/firmware/smccc/built-in.a
CC drivers/clocksource/arm_arch_timer.o
AR drivers/firmware/tegra/built-in.a
In file included from drivers/misc/mediatek/c2k_usb/viatel_rawbulk.h:25,
from drivers/misc/mediatek/c2k_usb/rawbulk_transfer.c:48:
./include/linux/wakelock.h: In function ‘wake_lock_init’:
./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
39 | wakeup_source_init(&lock->ws, name);
| ^~~~~~
| wakeup_source_add
CC drivers/clocksource/dummy_timer.o
./include/linux/wakelock.h: In function ‘wake_lock_destroy’:
./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
44 | wakeup_source_trash(&lock->ws);
| ^~~~~~~
| wakeup_source_add
cc1: all warnings being treated as errors
AR drivers/firmware/xilinx/built-in.a
make[4]: [scripts/Makefile.build:271: drivers/misc/mediatek/c2k_usb/f_rawbulk.o] Error 1
make[4]: Waiting for unfinished jobs....
CC drivers/hid/i2c-hid/i2c-hid-of.o
CC drivers/hid/hid-input.o
CC drivers/of/base.o
cc1: all warnings being treated as errors
make[4]: [scripts/Makefile.build:271: drivers/misc/mediatek/c2k_usb/rawbulk.o] Error 1
CC drivers/of/device.o
CC drivers/misc/mediatek/ccci_util/ccci_util_lib_fo.o
CC drivers/of/platform.o
AR drivers/firmware/psci/built-in.a
AR drivers/firmware/built-in.a
CC drivers/misc/mediatek/ccci_util/ccci_util_lib_load_img.o
AR drivers/platform/built-in.a
CC drivers/of/property.o
cc1: all warnings being treated as errors
make[4]: [scripts/Makefile.build:271: drivers/misc/mediatek/c2k_usb/rawbulk_transfer.o] Error 1
make[3]: [scripts/Makefile.build:514: drivers/misc/mediatek/c2k_usb] Error 2
make[3]: Waiting for unfinished jobs....
CC drivers/remoteproc/remoteproc_core.o
AR drivers/hid/i2c-hid/built-in.a
CC drivers/remoteproc/remoteproc_coredump.o
drivers/misc/mediatek/ccci_util/ccci_util_lib_load_img.c:97:10: fatal error: ../board_id/board_id.h: No such file or directory
97 | #include "../board_id/board_id.h"
| ^~~~~~~~
compilation terminated.
make[4]: [scripts/Makefile.build:271: drivers/misc/mediatek/ccci_util/ccci_util_lib_load_img.o] Error 1
make[4]: Waiting for unfinished jobs....
CC drivers/hid/hid-quirks.o
CC drivers/remoteproc/remoteproc_debugfs.o
CC drivers/hid/hid-debug.o
drivers/misc/mediatek/ccci_util/ccci_util_lib_fo.c: In function ‘lk_info_parsing_v1’:
drivers/misc/mediatek/ccci_util/ccci_util_lib_fo.c:838:27: error: implicit declaration of function ‘ioremap_nocache’; did you mean ‘ioremap_cache’? [-Werror=implicit-function-declaration]
838 | s_g_lk_inf_base = ioremap_nocache((phys_addr_t)lk_inf.lk_info_base_addr, MAX_LK_INFO_SIZE);
| ^~~~~~~
| ioremap_cache
drivers/misc/mediatek/ccci_util/ccci_util_lib_fo.c:838:25: error: assignment to ‘void ’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion]
838 | s_g_lk_inf_base = ioremap_nocache((phys_addr_t)lk_inf.lk_info_base_addr, MAX_LK_INFO_SIZE);
| ^
drivers/misc/mediatek/ccci_util/ccci_util_lib_fo.c: In function ‘lk_info_parsing_v2’:
drivers/misc/mediatek/ccci_util/ccci_util_lib_fo.c:883:25: error: assignment to ‘void ’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion]
883 | s_g_lk_inf_base = ioremap_nocache((phys_addr_t)lk_inf.lk_info_base_addr, MAX_LK_INFO_SIZE);
| ^
AR drivers/clocksource/built-in.a
CC drivers/devfreq/devfreq.o
CC drivers/devfreq/governor_simpleondemand.o
cc1: all warnings being treated as errors
make[4]: [scripts/Makefile.build:271: drivers/misc/mediatek/ccci_util/ccci_util_lib_fo.o] Error 1
make[3]: [scripts/Makefile.build:514: drivers/misc/mediatek/ccci_util] Error 2
make[2]: [scripts/Makefile.build:514: drivers/misc/mediatek] Error 2
make[1]: [scripts/Makefile.build:514: drivers/misc] Error 2
I didn't wait for evening and completely disabled all modem related code to focus here. And these are the errors, maybe some progress from yesterday's deadlock situation?
In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:46: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/common/common_main/linux/osal.c:35: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add drivers/misc/mediatek/connectivity/common/common_main/linux/osal.c: In function ‘osal_thread_show_stack’: drivers/misc/mediatek/connectivity/common/common_main/linux/osal.c:318:16: error: implicit declaration of function ‘show_stack’ [-Werror=implicit-function-declaration] 318 | return show_stack(pThread->pThread, NULL); | ^ |
return show_stack(pThread->pThread, NULL); | ^ |
VOID osal_thread_show_stack(P_OSAL_THREAD pThread) | ^ |
init_timer(timer); | ^ |
init_timers drivers/misc/mediatek/connectivity/common/common_main/linux/osal.c:627:25: error: assignment to ‘void ()(struct timer_list )’ from incompatible pointer type ‘P_TIMEOUT_HANDLER’ {aka ‘void (*)(long unsigned int)’} [-Werror=incompatible-pointer-types] 627 | timer->function = pTimer->timeoutHandler; | ^ drivers/misc/mediatek/connectivity/common/common_main/linux/osal.c:628:14: error: ‘struct timer_list’ has no member named ‘data’ 628 | timer->data = (ULONG)pTimer->timeroutHandlerData; | ^~ drivers/misc/mediatek/connectivity/common/common_main/linux/osal.c: In function ‘osal_gettimeofday’: drivers/misc/mediatek/connectivity/common/common_main/linux/osal.c:1176:24: error: storage size of ‘now’ isn’t known 1176 | struct timeval now; | ^~~ drivers/misc/mediatek/connectivity/common/common_main/linux/osal.c:1178:9: error: implicit declaration of function ‘do_gettimeofday’; did you mean ‘do_settimeofday64’? [-Werror=implicit-function-declaration] 1178 | do_gettimeofday(&now); | ^ |
do_settimeofday64 drivers/misc/mediatek/connectivity/common/common_main/linux/osal.c:1176:24: error: unused variable ‘now’ [-Werror=unused-variable] 1176 | struct timeval now; | ^~~ drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c: At top level: drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:184:15: error: variable ‘old’ has initializer but incomplete type 184 | static struct timeval old = {0}; | ^ |
static struct timeval old = {0}; | ^ drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:184:30: note: (near initialization for ‘old’) cc1: all warnings being treated as errors make[7]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/linux/osal.o] Error 1 make[7]: Waiting for unfinished jobs.... drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c: In function ‘stp_sdio_tx_wkr’: drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:1809:24: error: storage size of ‘now’ isn’t known 1809 | struct timeval now; | ^~~ CC drivers/misc/mediatek/connectivity/common/common_detect/sdio_detect.o In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/common/common_main/include/stp_exp.h:23, from drivers/misc/mediatek/connectivity/common/common_main/linux/stp_uart.c:41: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:1943:25: error: implicit declaration of function ‘do_gettimeofday’; did you mean ‘do_settimeofday64’? [-Werror=implicit-function-declaration] 1943 | do_gettimeofday(&old); | ^ |
do_settimeofday64 drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:1952:46: error: invalid use of undefined type ‘struct timeval’ 1952 | if ((now.tv_sec - old.tv_sec) > TX_NO_ACK_TIMEOUT_ASSERT) { | ^ drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:1809:24: error: unused variable ‘now’ [-Werror=unused-variable] 1809 | struct timeval now; | ^~~ drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c: In function ‘stp_sdio_rxdbg_setup’: drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:2748:79: error: passing argument 4 of ‘proc_create’ from incompatible pointer type [-Werror=incompatible-pointer-types] 2748 | gStpSdioRxDbgEntry = proc_create(STP_SDIO_RXDBG_PROCNAME, 0644, NULL, &stp_sdio_rxdbg_fops); | ^ |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
const struct file_operations * |
In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:34, from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:46: ./include/linux/proc_fs.h:109:122: note: expected ‘const struct proc_ops ’ but argument is of type ‘const struct file_operations ’ 109 | struct proc_dir_entry proc_create(const char name, umode_t mode, struct proc_dir_entry parent, const struct proc_ops proc_ops); | gStpSdioTxDbgEntry = proc_create(STP_SDIO_TXDBG_PROCNAME, 0644, NULL, &stp_sdio_txdbg_fops); | ^ |
|
---|---|---|---|---|
const struct file_operations * |
In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:34, from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:46: ./include/linux/proc_fs.h:109:122: note: expected ‘const struct proc_ops ’ but argument is of type ‘const struct file_operations ’ 109 | struct proc_dir_entry proc_create(const char name, umode_t mode, struct proc_dir_entry parent, const struct proc_ops proc_ops); | gStpSdioOwnEntry = proc_create(STP_SDIO_OWNDBG_PROCNAME, 0644, NULL, &stp_sdio_own_fops); | ^ |
|
---|---|---|---|---|
const struct file_operations * |
In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:34, from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.c:46: ./include/linux/proc_fs.h:109:122: note: expected ‘const struct proc_ops ’ but argument is of type ‘const struct file_operations ’ 109 | struct proc_dir_entry proc_create(const char name, umode_t mode, struct proc_dir_entry parent, const struct proc_ops proc_ops); | static struct timeval old = {0}; | ^~~ ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add drivers/misc/mediatek/connectivity/common/common_main/linux/stp_uart.c: In function ‘stp_uart_tty_open’: drivers/misc/mediatek/connectivity/common/common_main/linux/stp_uart.c:213:18: error: ‘struct tty_port’ has no member named ‘low_latency’ 213 | tty->port->low_latency = 1; | ^~ drivers/misc/mediatek/connectivity/common/common_main/linux/stp_uart.c: In function ‘stp_uart_tty_ioctl’: drivers/misc/mediatek/connectivity/common/common_main/linux/stp_uart.c:595:26: error: ‘struct tty_port’ has no member named ‘low_latency’ 595 | tty->port->low_latency = 1; | ^~ drivers/misc/mediatek/connectivity/common/common_main/linux/stp_uart.c: In function ‘mtk_wcn_stp_uart_init’: drivers/misc/mediatek/connectivity/common/common_main/linux/stp_uart.c:776:29: error: assignment to ‘ssize_t ()(struct tty_struct , struct file , unsigned char , size_t, void , long unsigned int)’ {aka ‘long int ()(struct tty_struct , struct file , unsigned char , long unsigned int, void , long unsigned int)’} from incompatible pointer type ‘ssize_t ()(struct tty_struct , struct file , unsigned char , size_t)’ {aka ‘long int ()(struct tty_struct , struct file , unsigned char , long unsigned int)’} [-Werror=incompatible-pointer-types] 776 | stp_uart_ldisc.read = stp_uart_tty_read; | ^ In file included from drivers/misc/mediatek/connectivity/common/common_detect/../common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_detect/../common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/common/common_detect/wmt_gpio.h:24, from drivers/misc/mediatek/connectivity/common/common_detect/wmt_gpio.c:15: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add cc1: all warnings being treated as errors cc1: all warnings being treated as errors In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_main/linux/include/hif_sdio.h:58, from drivers/misc/mediatek/connectivity/common/common_main/linux/hif_sdio.c:43: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add make[7]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/linux/stp_sdio.o] Error 1 make[7]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/linux/stp_uart.o] Error 1 CC drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect_pwr.o ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add cc1: all warnings being treated as errors make[6]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_detect/wmt_gpio.o] Error 1 make[6]: Waiting for unfinished jobs.... In file included from ./include/linux/proc_fs.h:8, from drivers/misc/mediatek/connectivity/common/common_main/linux/hif_sdio.c:42: drivers/misc/mediatek/connectivity/common/common_main/linux/hif_sdio.c: In function ‘hif_sdio_stp_on’: drivers/misc/mediatek/connectivity/common/common_main/linux/hif_sdio.c:2098:33: error: implicit declaration of function ‘mmc_card_removed’; did you mean ‘mmc_can_retune’? [-Werror=implicit-function-declaration] 2098 | mmc_card_removed(func->card))) { | ^ |
# define unlikely(x) __builtin_expect(!!(x), 0) | ^ CC drivers/misc/mediatek/connectivity/common/common_main/core/wmt_ctrl.o CC drivers/misc/mediatek/connectivity/common/common_main/core/wmt_func.o CC drivers/misc/mediatek/connectivity/common/common_main/core/wmt_lib.o In file included from drivers/misc/mediatek/connectivity/common/common_detect/../common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_detect/../common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/common/common_detect/wmt_gpio.h:24, from drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect.c:24: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add CC drivers/misc/mediatek/connectivity/common/common_main/platform/alps/wmt_plat_alps.o ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add AR drivers/misc/mediatek/connectivity/common/common_detect/drv_init/built-in.a CC drivers/misc/mediatek/connectivity/common/common_main/platform/alps/wmt_plat_stub.o drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect.c: In function ‘wmt_detect_unlocked_ioctl’: drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect.c:120:26: error: implicit declaration of function ‘wmt_plat_get_soc_chipid’ [-Werror=implicit-function-declaration] 120 | retval = wmt_plat_get_soc_chipid(); | ^ |
wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add In file included from drivers/misc/mediatek/connectivity/common/common_detect/../common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_detect/../common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/common/common_detect/wmt_gpio.h:24, from drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect_pwr.c:23: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add In file included from drivers/misc/mediatek/connectivity/common/common_main/platform/alps/wmt_plat_stub.c:37: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_main/core/wmt_func.c:40: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add cc1: all warnings being treated as errors make[6]: *** [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_detect/wmt_detect_pwr.o] Error 1 In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_main/core/wmt_ctrl.c:41: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_main/core/wmt_lib.c:42: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add make[5]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/common/common_detect] Error 2 make[5]: Waiting for unfinished jobs.... ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add CC drivers/misc/mediatek/connectivity/wlan/wmt_chrdev_wifi.o drivers/misc/mediatek/connectivity/common/common_main/platform/alps/wmt_plat_alps.c: In function ‘wmt_plat_uart_ctrl’: drivers/misc/mediatek/connectivity/common/common_main/platform/alps/wmt_plat_alps.c:891:17: error: this statement may fall through [-Werror=implicit-fallthrough=] 891 | pinctrl_select_state(gpio_ctrl_info.pinctrl_info, gpio_ctrl_info. | ^ |
gpio_ctrl_state[GPIO_COMBO_URXD_PIN].gpio_state[GPIO_IN_PULLUP]); | default: | ^ |
wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add In file included from drivers/misc/mediatek/connectivity/common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/common/common_main/core/wmt_conf.c:26: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add cc1: all warnings being treated as errors cc1: all warnings being treated as errors make[8]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/platform/alps/mtk_wcn_cmb_hw.o] Error 1 make[7]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/core/wmt_func.o] Error 1 CC drivers/misc/mediatek/connectivity/gps/gps.o CC drivers/misc/mediatek/connectivity/gps/gps_emi.o CC drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.o cc1: all warnings being treated as errors make[8]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/platform/alps/wmt_plat_alps.o] Error 1 make[7]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/common/common_main/platform/alps] Error 2 make[6]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/common/common_main/platform] Error 2 make[6]: Waiting for unfinished jobs.... cc1: all warnings being treated as errors cc1: all warnings being treated as errors cc1: all warnings being treated as errors make[7]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/linux/hif_sdio.o] Error 1 make[6]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/common/common_main/linux] Error 2 make[7]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/core/wmt_conf.o] Error 1 drivers/misc/mediatek/connectivity/fmradio/Makefile:28: FM_CHIP := mt6627 drivers/misc/mediatek/connectivity/fmradio/Makefile:50: core/fm_module.o core/fm_main.o core/fm_config.o core/fm_rds_parser.o core/fm_patch.o core/fm_utils.o core/fm_link.o core/fm_eint.o core/fm_cmd.o mt6627/pub/mt6627_fm_lib.o mt6627/pub/mt6627_fm_rds.o make[7]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/core/wmt_ctrl.o] Error 1 CC drivers/misc/mediatek/connectivity/fmradio/core/fm_module.o In file included from drivers/misc/mediatek/connectivity/gps/stp_chrdev_gps.c:21: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add CC drivers/misc/mediatek/connectivity/fmradio/core/fm_main.o CC drivers/misc/mediatek/connectivity/fmradio/core/fm_config.o In file included from ./arch/arm64/include/asm/uaccess.h:22, from drivers/misc/mediatek/connectivity/fmradio/core/fm_main.c:15: ./arch/arm64/include/asm/mmu.h:48:32: error: unknown type name ‘pgprot_t’ 48 | pgprot_t prot, bool page_mappings_only); | ^ |
extern void fixmap_remap_fdt(phys_addr_t dt_phys, int size, pgprot_t prot); | ^ |
unsigned long ret, limit = TASK_SIZE_MAX - 1; | ^ |
XATTR_SIZE_MAX ./arch/arm64/include/asm/uaccess.h:38:36: note: each undeclared identifier is reported only once for each function it appears in ./arch/arm64/include/asm/uaccess.h:46:14: error: ‘current’ undeclared (first use in this function) 46 | (current->flags & PF_KTHREAD | test_thread_flag(TIF_TAGGED_ADDR))) | ^ |
(current->flags & PF_KTHREAD | test_thread_flag(TIF_TAGGED_ADDR))) | ^ |
(current->flags & PF_KTHREAD | test_thread_flag(TIF_TAGGED_ADDR))) | ^ |
(current->flags & PF_KTHREAD | test_thread_flag(TIF_TAGGED_ADDR))) | ^ |
: "r" (ptr), "r" (TASK_SIZE_MAX - 1), | ^ |
XATTR_SIZE_MAX drivers/misc/mediatek/connectivity/gps/gps.c:1100:34: error: array type has incomplete element type ‘struct of_device_id’ 1100 | static const struct of_device_id apgps_of_ids[] = { | ^ |
wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add make[5]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/gps/gps.o] Error 1 make[5]: Waiting for unfinished jobs.... ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add In file included from drivers/misc/mediatek/connectivity/gps/../common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/gps/../common/common_main/linux/include/osal.h:24, from drivers/misc/mediatek/connectivity/gps/../common/common_main/core/include/wmt_ctrl.h:24, from drivers/misc/mediatek/connectivity/gps/../common/common_main/core/include/wmt_core.h:23, from drivers/misc/mediatek/connectivity/gps/gps.h:10, from drivers/misc/mediatek/connectivity/gps/gps_emi.c:33: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add In file included from drivers/misc/mediatek/connectivity/ant/../common/common_main/linux/include/osal_typedef.h:49, from drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.c:27: ./include/linux/wakelock.h: In function ‘wake_lock_init’: ./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 39 | wakeup_source_init(&lock->ws, name); | ^ |
wakeup_source_add cc1: all warnings being treated as errors make[7]: *** [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/common/common_main/core/wmt_lib.o] Error 1 ./include/linux/wakelock.h: In function ‘wake_lock_destroy’: ./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration] 44 | wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add make[6]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/common/common_main/core] Error 2 make[5]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/common/common_main] Error 2 make[4]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/common] Error 2 make[4]: Waiting for unfinished jobs.... In file included from drivers/misc/mediatek/connectivity/gps/gps_emi.c:33: drivers/misc/mediatek/connectivity/gps/gps.h: At top level: drivers/misc/mediatek/connectivity/gps/gps.h:13:10: fatal error: mtk_wcn_consys_hw.h: No such file or directory 13 | #include "mtk_wcn_consys_hw.h" | ^ |
wakeup_source_trash(&lock->ws); | ^ |
wakeup_source_add drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.c: In function ‘ANT_DownLoad_RAM_Code’: drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.c:430:9: error: ISO C90 forbids variable length array ‘pbPatchExtBin’ [-Werror=vla] 430 | UINT8 pbPatchExtBin[read_ram_code_length]; | ^~~~~ drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.c:436:31: error: implicit declaration of function ‘get_fs’; did you mean ‘sget_fc’? [-Werror=implicit-function-declaration] 436 | mm_segment_t old_fs = get_fs(); | ^ |
sget_fc drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.c:436:31: error: invalid initializer drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.c:438:9: error: implicit declaration of function ‘set_fs’; did you mean ‘sget_fc’? [-Werror=implicit-function-declaration] 438 | set_fs(KERNEL_DS); | ^ |
sget_fc cc1: all warnings being treated as errors make[5]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/gps/stp_chrdev_gps.o] Error 1 make[4]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/gps] Error 2 drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.c:438:16: error: ‘KERNEL_DS’ undeclared (first use in this function); did you mean ‘KERNFS_NS’? 438 | set_fs(KERNEL_DS); | ^ |
KERNFS_NS drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.c:438:16: note: each undeclared identifier is reported only once for each function it appears in CC drivers/misc/mediatek/connectivity/fmradio/core/fm_patch.o CC drivers/misc/mediatek/connectivity/fmradio/core/fm_utils.o In file included from drivers/misc/mediatek/connectivity/fmradio/core/fm_main.c:19: drivers/misc/mediatek/connectivity/fmradio/inc/fm_main.h: At top level: drivers/misc/mediatek/connectivity/fmradio/inc/fm_main.h:238:24: error: field ‘tvThd’ has incomplete type 238 | struct timeval tvThd; / time value diff threshold / | ^~~~~ drivers/misc/mediatek/connectivity/fmradio/inc/fm_main.h:243:32: error: field ‘tv’ has incomplete type 243 | struct timeval tv; / time stamp value in RTC / | ^~ CC drivers/misc/mediatek/connectivity/fmradio/core/fm_link.o cc1: all warnings being treated as errors make[5]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/ant/stp_chrdev_ant.o] Error 1 make[4]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/ant] Error 2 CC drivers/misc/mediatek/connectivity/fmradio/core/fm_eint.o cc1: all warnings being treated as errors make[5]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/wlan/wmt_chrdev_wifi.o] Error 1 make[4]: [scripts/Makefile.build:514: drivers/misc/mediatek/connectivity/wlan] Error 2 In file included from drivers/misc/mediatek/connectivity/fmradio/core/fm_module.c:28: drivers/misc/mediatek/connectivity/fmradio/inc/fm_main.h:238:24: error: field ‘tvThd’ has incomplete type 238 | struct timeval tvThd; / time value diff threshold / | ^~~~~ drivers/misc/mediatek/connectivity/fmradio/inc/fm_main.h:243:32: error: field ‘tv’ has incomplete type 243 | struct timeval tv; / time stamp value in RTC / | ^~ In file included from drivers/misc/mediatek/connectivity/fmradio/core/fm_module.c:14: drivers/misc/mediatek/connectivity/fmradio/core/fm_module.c: In function ‘fm_ops_ioctl’: drivers/misc/mediatek/connectivity/fmradio/core/fm_module.c:102:53: error: ‘struct file’ has no member named ‘f_dentry’ 102 | struct fm_platform *plat = container_of(filp->f_dentry->d_inode->i_cdev, struct fm_platform, cdev); | ^~ ./include/linux/kernel.h:708:33: note: in definition of macro ‘container_of’ 708 | void __mptr = (void )(ptr); \ | ^~~
In file included from |
struct fm_platform *plat = container_of(filp->f_dentry->d_inode->i_cdev, struct fm_platform, cdev); | ^~ ././include/linux/compiler_types.h:300:23: note: in definition of macro ‘__compiletime_assert’ 300 | if (!(condition)) \ | ^ |
_compiletime_assert(condition, msg, compiletimeassert, COUNTER__) | ^ |
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^ |
BUILD_BUG_ON_MSG(!__same_type((ptr), ((type )0)->member) && \ | ^ |
BUILD_BUG_ON_MSG(!__same_type((ptr), ((type )0)->member) && \ | ^ |
struct fm_platform *plat = container_of(filp->f_dentry->d_inode->i_cdev, struct fm_platform, cdev); | ^ |
struct fm_platform *plat = container_of(filp->f_dentry->d_inode->i_cdev, struct fm_platform, cdev); | ^~ ././include/linux/compiler_types.h:300:23: note: in definition of macro ‘__compiletime_assert’ 300 | if (!(condition)) \ | ^ |
_compiletime_assert(condition, msg, compiletimeassert, COUNTER__) | ^ |
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^ |
BUILD_BUG_ON_MSG(!__same_type((ptr), ((type )0)->member) && \ | ^ |
!__same_type(*(ptr), void), \ | ^ |
struct fm_platform *plat = container_of(filp->f_dentry->d_inode->i_cdev, struct fm_platform, cdev); | ^ |
g_fm_proc = proc_create(FM_PROC_FILE, 0444, NULL, &fm_proc_ops); | ^ |
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
const struct file_operations * |
In file included from drivers/misc/mediatek/connectivity/fmradio/core/fm_module.c:20:
./include/linux/proc_fs.h:109:122: note: expected ‘const struct proc_ops ’ but argument is of type ‘const struct file_operations ’
109 | struct proc_dir_entry proc_create(const char name, umode_t mode, struct proc_dir_entry parent, const struct proc_ops proc_ops);
| ~~~~~^~
cc1: all warnings being treated as errors
CC drivers/misc/mediatek/connectivity/fmradio/core/fm_cmd.o
make[5]: [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/fmradio/core/fm_module.o] Error 1
make[5]: Waiting for unfinished jobs....
In file included from drivers/misc/mediatek/connectivity/fmradio/../common/common_main/linux/include/osal_typedef.h:49,
from drivers/misc/mediatek/connectivity/fmradio/core/fm_main.c:22:
./include/linux/wakelock.h: In function ‘wake_lock_init’:
./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
39 | wakeup_source_init(&lock->ws, name);
| ^~~~~~
| wakeup_source_add
./include/linux/wakelock.h: In function ‘wake_lock_destroy’:
./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
44 | wakeup_source_trash(&lock->ws);
| ^~~~~~~
| wakeup_source_add
cc1: all warnings being treated as errors
make[5]: * [scripts/Makefile.build:271: drivers/misc/mediatek/connectivity/fmradio/core/fm_main.o] Error 1
drivers/misc/mediatek/connectivity/fmradio/core/fm_utils.c: In function ‘fm_timer_init’:
drivers/misc/mediatek/connectivity/fmradio/core/fm_utils.c:408:29: error: assignment to ‘void ()(struct timer_list )’ from incompatible pointer type ‘void ()(long unsigned int)’ [-Werror=incompatible-pointer-types]
408 | timerlist->function = thiz->timeout_func;
| ^
drivers/misc/mediatek/connectivity/fmradio/core/fm_utils.c:409:18: error: ‘struct timer_list’ has no member named ‘data’
409 | timerlist->data = (unsigned long)thiz->data;
| ^~
drivers/misc/mediatek/connectivity/fmradio/core/fm_utils.c: In function ‘fm_timer_create’:
drivers/misc/mediatek/connectivity/fmradio/core/fm_utils.c:470:9: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
470 | init_timer(timerlist);
| ^~~~~~
| init_timers
cc1: all warnings being treated as errors
make[5]: [scripts/Makefile.build:272: drivers/misc/mediatek/connectivity/fmradio/core/fm_utils.o] Error 1
In file included from drivers/misc/mediatek/connectivity/fmradio/../common/common_main/linux/include/osal_typedef.h:49,
from drivers/misc/mediatek/connectivity/fmradio/core/fm_link.c:22:
./include/linux/wakelock.h: In function ‘wake_lock_init’:
./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
39 | wakeup_source_init(&lock->ws, name);
| ^~~~~~
| wakeup_source_add
./include/linux/wakelock.h: In function ‘wake_lock_destroy’:
./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
44 | wakeup_source_trash(&lock->ws);
| ^~~~~~~
| wakeup_source_add
In file included from drivers/misc/mediatek/connectivity/fmradio/../common/common_main/linux/include/osal_typedef.h:49,
from drivers/misc/mediatek/connectivity/fmradio/core/fm_eint.c:14:
./include/linux/wakelock.h: In function ‘wake_lock_init’:
./include/linux/wakelock.h:39:9: error: implicit declaration of function ‘wakeup_source_init’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
39 | wakeup_source_init(&lock->ws, name);
| ^~~~~~
| wakeup_source_add
./include/linux/wakelock.h: In function ‘wake_lock_destroy’:
./include/linux/wakelock.h:44:9: error: implicit declaration of function ‘wakeup_source_trash’; did you mean ‘wakeup_source_add’? [-Werror=implicit-function-declaration]
44 | wakeup_source_trash(&lock->ws);
| ^~~~~~~
| wakeup_source_add
for wakelocks maybe this is useful:
commit 247c0a1b4c44
By the way, can you tell me more Android API specific things that might be present more in the modems directory? I am very new jn kernel driver forward porting, only had my hands on mtk cam ISP from 4.19 to 5.10.
porting a driver from 4.4 to 5.10 is a hard thing as many things may changed...also without android parts...imho the wakelock part was the buggest part i had till now...i simply make step by step on compiler messages and look when the missing function gets replaced by a new one
Since the code is not in kernel style but mostly in vendor style, it should be a bit easier than regular linux kernel driver porting right since we need to change the standard kernel specific fumctions right? Because many parts are not standard linux kernel implementations, so they might not require changes. Basically I need a view on the android specific things on drivers in an android linux kernel. Also, how to be good at kernel forward porting? I mean you even used headers and then port the code in the BPi forum. Can you give me some quick teachings?
i do not have this android specific view :) i only fix compiler errors...and googling which function was replaced by which and look for porting changes in kernel-patches of other drivers
I was having struct timeval issues which I fixed by structtimespec64 and do_gettimeofday to ktime_get_real_ts64. Now there are more and more kernel errors. Some are beyond my understanding. Can you have a look into those errors now? Just guide me through all the complex issues. For example I am geting show_stack error: implicit definition of show_stack etc etc.
Show_stack and timeval i had also in my portings... First one was easy afair (include missing and/or parameter issue)
Second one was a bit more tricky,but solution is in my source, just look through my branches (e.g. -wifi and -main): https://github.com/frank-w/BPI-R2-4.14/commits/5.8-main/drivers/misc/mediatek
Have you mt7623 parts running in 4.4? Imho all should work before do upporting to have clue if codebase is wrong or your porting
I am really sorry to disturb with a bit of off topic issue. But I want to know how compatible is the mainline mediatek bluetooth driver a.k.a BTIF and btmtkuart/btmtksdio with the Banana Pi R2? is it usable at all? And what about the mainline WiFi support? The MT6625L is the RF frontend of the WiFi and bluetooth features right? Then there is an internal IP block for the BT/WiFi/ and whatnot on the board. How to get them working with mainline? Can you please point me to the right direction?