msm8953-mainline / linux Goto Github PK
View Code? Open in Web Editor NEWThis project forked from msm8916-mainline/linux
Linux mainline kernel with WIP patches for msm8953 devices
License: Other
This project forked from msm8916-mainline/linux
Linux mainline kernel with WIP patches for msm8953 devices
License: Other
This is a collection of the patches for msm8953 support in linux-next (currently for linux-next-20230616, but rebasing them to newer version was without problems so far, I started at linux-next-20230609). It would be nicer if I could just push them to a tree, but unfortunately it seems I cannot fork torvalds/linux, because I already have forked msm8953-mainline/linux (which is itself a fork of msm8916-mainline/linux which is a fork of torvalds linux).
GPU patches:
0001-iommu-qcom-Use-the-asid-read-from-device-tree-if-spe.patch.txt
0002-iommu-qcom-Properly-reset-the-IOMMU-context.patch.txt
0003-iommu-qcom-Index-contexts-by-asid-number-to-allow-as.patch.txt
0004-iommu-qcom-Add-support-for-QSMMUv2-and-QSMMU-500-sec.patch.txt
0005-iommu-qcom-Add-support-for-AArch64-IOMMU-pagetables.patch.txt
0006-fixup-iommu-qcom-Add-support-for-AArch64-IOMMU-paget.patch.txt
0007-iommu-qcom-avoid-bouncing-power-domain.patch.txt
0008-iommu-qcom-implement-adreno_priv-interface.patch.txt
0009-iommu-qcom-emulate-IDENTITY-domain-for-display-durin.patch.txt
0010-iommu-qcom-restore-IOMMU-state-if-needed.patch.txt
0011-iommu-qcom-defer-probe-until-scm-is-available.patch.txt
0012-MSM8953-drm-panel-Generate-using-linux-mdss-dsi-pane.patch.txt
0013-squash-MSM8953-drm-panel-Generate-using-linux-mdss-d.patch.txt
0014-drm-panel-fairphone-fp3-hx83112b-Swab-brightness-val.patch.txt
0015-squash-MSM8953-drm-panel-Generate-using-linux-mdss-d.patch.txt
0016-arm64-dts-qcom-msm8953-add-IOMMUs.patch.txt
0017-arm64-dts-qcom-msm8953-add-GPU.patch.txt
0018-arm64-dts-qcom-sdm632-fairphone-fp3-add-display.patch.txt
0019-fixup-arm64-dts-qcom-sdm632-fairphone-fp3-add-displa.patch.txt
0020-interconnect-icc-rpm-Add-option-to-get-regmap-from-p.patch.txt
0021-dt-bindings-interconnect-Add-bindings-for-Qualcomm-M.patch.txt
0022-arm64-dts-qcom-msm8953-add-interconnect.patch.txt
0023-interconnect-qcom-Add-MSM8953-interconnect-provider-.patch.txt
0024-Revert-drm-msm-dsi-Stop-unconditionally-powering-up-.patch.txt
0025-arm64-dts-qcom-msm8953-add-GPU-operating-points.patch.txt
0026-clk-qcom-gcc-msm8953-don-t-cache-rate-for-dsi-clocks.patch.txt
0027-clk-qcom-rcg2-round-parent-rate-when-SET_RATE_PARENT.patch.txt
WLAN patches:
0028-arm64-dts-qcom-sdm632-fairphone-fp3-enable-wcnss-rem.patch.txt
0029-net-wireless-wcn36xx-fix-Bad-TX-complete-indication-.patch.txt
modem (named mpss in linux-next) patches:
0030-remoteproc-qcom_q6v5_mss-Support-alternate-msm8953-c.patch.txt
0031-arm64-dts-qcom-sdm632-fairphone-fp3-enable-mpss.patch.txt
IPA v2 patches:
0032-dmaengine-Add-support-for-immediate-commands-in-the-.patch.txt
0033-dmaengine-qcom-bam_dma-Add-support-for-immediate-com.patch.txt
0034-net-ipa-Define-2.-versions.patch.txt
0035-net-ipa-Rename-gsi_ee_id-to-dma_ee_id.patch.txt
0036-TODO-net-ipa-Add-IPA-v2.-register-definitions.patch.txt
0037-net-ipa-Move-GSI-specific-functions-to-an-ops-struct.patch.txt
0038-net-ipa-Move-gsi_channel_tre_max-definition-to-gsi_p.patch.txt
0039-net-ipa-gsi.h-Rename-gsi-to-ipa_dma.patch.txt
0040-net-ipa-gsi_private.h-Rename-gsi-to-ipa_dma.patch.txt
0041-net-ipa-gsi_trans-Rename-gsi-to-ipa_dma.patch.txt
0042-net-ipa-Add-timeout-for-ipa_cmd_pipeline_clear_wait.patch.txt
0043-net-ipa-Add-support-for-using-BAM-as-a-DMA-transport.patch.txt
0044-TODO-net-ipa-Add-support-for-IPA-v2.x-commands-and-t.patch.txt
0045-FIXME-net-ipa-Add-support-for-IPA-v2.x-endpoints.patch.txt
0046-net-ipa-Add-support-for-IPA-v2.x-memory-map.patch.txt
0047-FIXME-net-ipa-Add-support-for-IPA-v2.x-in-the-driver.patch.txt
0048-net-ipa-Add-support-for-IPA-v2-microcontroller.patch.txt
0049-net-ipa-Add-IPA-v2.6L-initialization-sequence-suppor.patch.txt
0050-net-ipa-Add-support-for-IPA-v2-validation.patch.txt
0051-net-ipa-Add-hw-config-describing-IPA-v2.x-hardware.patch.txt
0052-net-ipa-Set-invalid-regions-for-2.6L-as-not-required.patch.txt
0053-net-ipa-Enable-support-for-IPA-v2.patch.txt
0054-dt-bindings-net-qcom-ipa-Add-support-for-MSM8953-and.patch.txt
0055-arm64-dts-qcom-msm8996-Add-IPA.patch.txt
0056-arm64-dts-qcom-msm8996-xiaomi-common-Enable-IPA.patch.txt
0057-WIP-net-ipa-Add-IPA-v2.-opcodes.patch.txt
0058-WIP-net-ipa-Remove-pad_align-from-IPA-v2.-AP_LAN_RX-.patch.txt
0059-arm64-dts-qcom-msm8953-add-IPA-and-IPA_BAM-nodes.patch.txt
0060-net-ipa-extend-version-checks-in-ipa_interrupt.c-to-.patch.txt
0061-net-ipa-Fix-memory-initialisation.patch.txt
0062-net-ipa-Fix-NULL-pointer-dereference-which-caused-a-.patch.txt
0063-net-ipa-Adjust-the-validity-check-of-ipa-registers-t.patch.txt
0064-net-ipa-Check-interrupts-for-availability.patch.txt
0065-net-ipa-Add-support-for-IPA-v2.x-interrupts.patch.txt
Still missing are the cpufreq patches which are already in msm8953-mainline/linux.
FYI for devices with PMI632, USB role switching should work with the following patch series: https://lore.kernel.org/linux-arm-msm/[email protected]/
Tested on Fairphone 3 (SDM632+PMI632). Since the series depends on some more patches that are only in v6.8-rc1, I'm probably going to add the patches the repo here only a bit later to reduce conflicts.
I just pushed a WIP branch based on linux 6.0.10. Here I want to make something like a ToDo list to track the status of the update.
Also I'm thinking on squashing all the typo fixes to clean up the history.
Regarding the panel drivers, maybe we should do the same as on msm8916-mainline and automatically add all panel drivers with lmdpdg. What do you think?
Please tell me what else to add:
It can already be tested on phones although it's probably a bit slow because of the OPP stuff.
Tested on:
I prepared a branch based on linux-next with only MDSS support and some extra patches that are probably needed (some maybe could be removed, not sure): https://github.com/z3ntu/linux/commits/msm8953-5.17-next-dsi3
@vldly Could you please answer these questions?
drm/msm/mdp5: Add perf data for MDP v1.16
Looks clear, any objection to send?
drm/msm/dsi: Use single function for reset
Not 100% sure why this exists, "However this assumtion is not true mobile devices which have boot splash set up by boot-loader." this literally applies to all smartphones I believe, why is this a problem on 8953?
clk: qcom: rcg2: round parent rate when SET_RATE_PARENT is set
no description (what does this commit do?), missing sign-off
clk: qcom: Don't update rcg2 when configuration wasn't changed
no description (what does this commit do?), missing sign-off
iommu: qcom-iommu: avoid bouncing power domain
no description (what does this commit do?), missing sign-off
soc: qcom: rpmpd: add hack to speed up suspend/resume
what does this commit improve, can we remove it?
Revert "Revert "drm/msm/mdp5: provide dynamic bandwidth management""
can we remove this?
firmware: qcom_scm: add support for smmu_change_pt_format
dependency for "iommu: arm-smmu-qcom: Add MSM8953 impl", missing description and sign-off though
iommu: arm-smmu: add prepare implementation callback
dependency for "iommu: arm-smmu-qcom: Add MSM8953 impl", missing description and sign-off though
iommu: arm-smmu-qcom: Add MSM8953 impl
not too familiar with iommu but looks ok, missing description and sign-off though
arm64: dts: qcom: msm8953: add IOMMUs
clear, missing sign-off
arm64: dts: qcom: msm8953: add MDSS
clear, missing sign-off
it is same to mi a2 lite(daisy) ,i use daisy config but can not display
Hi,
I'm using a Xiaomi Redmi 6 pro device (Sakura), and getting very slow charging speed. It takes more than 3 hours for full charge. I verified that it isn't caused by bad battery or charger because on android based custom ROMs I'm getting much faster charging speeds.
Hope it will be resolved soon
Last but not least, Thank you for porting mainline kernel to msm8953 devices <3
In file included from drivers/gpu/drm/panel/panels-xiaomi-mido.c:8:
./include/linux/module.h:131:49: error: redefinition of '__inittest'
131 | static inline initcall_t __maybe_unused __inittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:506:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
506 | MIPI_DSI_PANEL_DRIVER(otm1911_fhd, "otm1911-fhd", "xiaomi,otm1911");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:131:49: note: previous definition of '__inittest' with type 'int ((void))(void)'
131 | static inline initcall_t __maybe_unused __inittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:133:13: error: redefinition of 'init_module'
133 | int init_module(void) __copy(initfn)
| ^~~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:506:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
506 | MIPI_DSI_PANEL_DRIVER(otm1911_fhd, "otm1911-fhd", "xiaomi,otm1911");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:133:13: note: previous definition of 'init_module' with type 'int(void)'
133 | int init_module(void) __copy(initfn)
| ^~~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:139:49: error: redefinition of '__exittest'
139 | static inline exitcall_t __maybe_unused __exittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:506:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
506 | MIPI_DSI_PANEL_DRIVER(otm1911_fhd, "otm1911-fhd", "xiaomi,otm1911");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:139:49: note: previous definition of '__exittest' with type 'void ((void))(void)'
139 | static inline exitcall_t __maybe_unused __exittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:141:14: error: redefinition of 'cleanup_module'
141 | void cleanup_module(void) __copy(exitfn)
| ^~~~~~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:506:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
506 | MIPI_DSI_PANEL_DRIVER(otm1911_fhd, "otm1911-fhd", "xiaomi,otm1911");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:141:14: note: previous definition of 'cleanup_module' with type 'void(void)'
141 | void cleanup_module(void) __copy(exitfn)
| ^~~~~~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:131:49: error: redefinition of '__inittest'
131 | static inline initcall_t __maybe_unused __inittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:507:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
507 | MIPI_DSI_PANEL_DRIVER(nt35596_tianma_fhd, "nt35596-tianma-fhd", "xiaomi,tianma-nt35596");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:131:49: note: previous definition of '__inittest' with type 'int ((void))(void)'
131 | static inline initcall_t __maybe_unused __inittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:506:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
506 | MIPI_DSI_PANEL_DRIVER(otm1911_fhd, "otm1911-fhd", "xiaomi,otm1911");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:133:13: error: redefinition of 'init_module'
133 | int init_module(void) __copy(initfn)
| ^~~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:507:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
507 | MIPI_DSI_PANEL_DRIVER(nt35596_tianma_fhd, "nt35596-tianma-fhd", "xiaomi,tianma-nt35596");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:133:13: note: previous definition of 'init_module' with type 'int(void)'
133 | int init_module(void) __copy(initfn)
| ^~~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:139:49: error: redefinition of '__exittest'
139 | static inline exitcall_t __maybe_unused __exittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:507:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
507 | MIPI_DSI_PANEL_DRIVER(nt35596_tianma_fhd, "nt35596-tianma-fhd", "xiaomi,tianma-nt35596");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:139:49: note: previous definition of '__exittest' with type 'void ((void))(void)'
139 | static inline exitcall_t __maybe_unused __exittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:506:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
506 | MIPI_DSI_PANEL_DRIVER(otm1911_fhd, "otm1911-fhd", "xiaomi,otm1911");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:141:14: error: redefinition of 'cleanup_module'
141 | void cleanup_module(void) __copy(exitfn)
| ^~~~~~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:507:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
507 | MIPI_DSI_PANEL_DRIVER(nt35596_tianma_fhd, "nt35596-tianma-fhd", "xiaomi,tianma-nt35596");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:141:14: note: previous definition of 'cleanup_module' with type 'void(void)'
141 | void cleanup_module(void) __copy(exitfn)
| ^~~~~~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:131:49: error: redefinition of '__inittest'
131 | static inline initcall_t __maybe_unused __inittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:508:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
508 | MIPI_DSI_PANEL_DRIVER(nt35532_fhd, "nt35532-fhd", "xiaomi,nt35532");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:131:49: note: previous definition of '__inittest' with type 'int ((void))(void)'
131 | static inline initcall_t __maybe_unused __inittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:507:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
507 | MIPI_DSI_PANEL_DRIVER(nt35596_tianma_fhd, "nt35596-tianma-fhd", "xiaomi,tianma-nt35596");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:133:13: error: redefinition of 'init_module'
133 | int init_module(void) __copy(initfn)
| ^~~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:508:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
508 | MIPI_DSI_PANEL_DRIVER(nt35532_fhd, "nt35532-fhd", "xiaomi,nt35532");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:133:13: note: previous definition of 'init_module' with type 'int(void)'
133 | int init_module(void) __copy(initfn)
| ^~~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:139:49: error: redefinition of '__exittest'
139 | static inline exitcall_t __maybe_unused __exittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:508:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
508 | MIPI_DSI_PANEL_DRIVER(nt35532_fhd, "nt35532-fhd", "xiaomi,nt35532");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:139:49: note: previous definition of '__exittest' with type 'void ((void))(void)'
139 | static inline exitcall_t __maybe_unused __exittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:507:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
507 | MIPI_DSI_PANEL_DRIVER(nt35596_tianma_fhd, "nt35596-tianma-fhd", "xiaomi,tianma-nt35596");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:141:14: error: redefinition of 'cleanup_module'
141 | void cleanup_module(void) __copy(exitfn)
| ^~~~~~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:508:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
508 | MIPI_DSI_PANEL_DRIVER(nt35532_fhd, "nt35532-fhd", "xiaomi,nt35532");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:141:14: note: previous definition of 'cleanup_module' with type 'void(void)'
141 | void cleanup_module(void) __copy(exitfn)
| ^~~~~~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:131:49: error: redefinition of '__inittest'
131 | static inline initcall_t __maybe_unused __inittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:509:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
509 | MIPI_DSI_PANEL_DRIVER(ili9885_boe_fhd, "ili9885-boe-fhd", "xiaomi,boe-ili9885");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:131:49: note: previous definition of '__inittest' with type 'int ((void))(void)'
131 | static inline initcall_t __maybe_unused __inittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:508:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
508 | MIPI_DSI_PANEL_DRIVER(nt35532_fhd, "nt35532-fhd", "xiaomi,nt35532");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:133:13: error: redefinition of 'init_module'
133 | int init_module(void) __copy(initfn)
| ^~~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:509:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
509 | MIPI_DSI_PANEL_DRIVER(ili9885_boe_fhd, "ili9885-boe-fhd", "xiaomi,boe-ili9885");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:133:13: note: previous definition of 'init_module' with type 'int(void)'
133 | int init_module(void) __copy(initfn)
| ^~~~~~~~~~~
./include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:139:49: error: redefinition of '__exittest'
139 | static inline exitcall_t __maybe_unused __exittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:509:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
509 | MIPI_DSI_PANEL_DRIVER(ili9885_boe_fhd, "ili9885-boe-fhd", "xiaomi,boe-ili9885");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:139:49: note: previous definition of '__exittest' with type 'void ((void))(void)'
139 | static inline exitcall_t __maybe_unused __exittest(void)
| ^~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:508:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
508 | MIPI_DSI_PANEL_DRIVER(nt35532_fhd, "nt35532-fhd", "xiaomi,nt35532");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:141:14: error: redefinition of 'cleanup_module'
141 | void cleanup_module(void) __copy(exitfn)
| ^~~~~~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:509:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
509 | MIPI_DSI_PANEL_DRIVER(ili9885_boe_fhd, "ili9885-boe-fhd", "xiaomi,boe-ili9885");
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/module.h:141:14: note: previous definition of 'cleanup_module' with type 'void(void)'
141 | void cleanup_module(void) __copy(exitfn)
| ^~~~~~~~~~~~~~
./include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
./include/drm/drm_mipi_dsi.h:330:9: note: in expansion of macro 'module_driver'
330 | module_driver(__mipi_dsi_driver, mipi_dsi_driver_register,
| ^~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-mipi-dsi-common.h:24:9: note: in expansion of macro 'module_mipi_dsi_driver'
24 | module_mipi_dsi_driver(_prefix##_driver)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panels-xiaomi-mido.c:505:1: note: in expansion of macro 'MIPI_DSI_PANEL_DRIVER'
505 | MIPI_DSI_PANEL_DRIVER(r63350_ebbg_fhd, "r63350-ebbg-fhd", "xiaomi,ebbg-r63350");
A port of the leds-qpnp-vibrator-ldo.c
driver from downstream exists at https://github.com/mtvec/msm8953-mainline-linux/tree/fp3-vibrator (HEAD: 86d0a91)
@mtvec Since the driver looks pretty clean, do you have a plan of upstreaming this?
This prevents the driver from being built as a module.
From https://www.kernel.org/doc/html/latest/process/license-rules.html on MODULE_LICENSE usage:
“GPL”: Module is licensed under GPL version 2. This does not express any distinction between GPL-2.0-only or GPL-2.0-or-later. The exact license information can only be determined via the license information in the corresponding source files.
“GPL v2” Same as “GPL”. It exists for historic reasons.
With yesterday built kernel from here the ili7807-fhdplus display on my Xiaomi Mi A2 Lite (daisy) doesn’t come up (except for some blue artefacts). I’m using lk2nd and am able to ssh into the device (I’ll add the dmesg log after boot). Some time ago I already tested out the patches of #21 with the same outcome. Without the patches, it is not booting until ssh.
Am I missing something or is this still WIP?
Xiaomi-tissot,
Display can't work.
[ 50.685537] ------------[ cut here ]------------
[ 50.685626] gcc_venus0_core0_vcodec0_clk status stuck at 'off'
[ 50.685886] WARNING: CPU: 0 PID: 684 at drivers/clk/qcom/clk-branch.c:86 clk_branch_wait+0x144/0x15c
[ 50.685998] Modules linked in: apr(+) pdr_interface nf_nat(+) wcnss_ctrl venus_dec nf_conntrack nf_defrag_ipv6 venus_enc snd_soc_apq8016_sbc nf_defrag_ipv4 libcrc32c qrtr_smd videobuf2_dma_contig videobuf2_memops crct10dif_ce qcom_q6v5_pas qcom_rng snd_soc_max98927 snd_soc_msm8916_digital qcom_wcnss_pil snd_soc_qcom_common leds_aw2013 edt_ft5x06 snd_soc_msm8916_analog qcom_pon qcom_spmi_vadc qcom_wled qcom_spmi_temp_alarm qcom_vadc_common bmi160_i2c qcom_q6v5_mss ak8975 bmi160_core industrialio_triggered_buffer venus_core qcom_pil_info v4l2_mem2mem videobuf2_v4l2 kfifo_buf qcom_q6v5 videodev qcom_sysmon videobuf2_common rpmsg_ctrl qcom_common qcom_glink_smem qmi_helpers rpmsg_char mc snd_soc_simple_amplifier rmtfs_mem socinfo rfkill usb_f_ecm u_ether libcomposite qrtr fuse ip_tables x_tables ipv6 msm mdt_loader llcc_qcom ocmem gpu_sched drm_dp_aux_bus rtc_pm8xxx drm_display_helper drm_kms_helper drm backlight i2c_gpio
[ 50.686410] CPU: 0 PID: 684 Comm: v4l_id Tainted: G W 6.6.0-ga5adadd131b0 #3
[ 50.686425] Hardware name: Xiaomi Mi A1 (DT)
[ 50.686439] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 50.686449] pc : clk_branch_wait+0x144/0x15c
[ 50.686459] lr : clk_branch_wait+0x144/0x15c
[ 50.686469] sp : ffff8000833aba30
[ 50.686476] x29: ffff8000833aba30 x28: ffff000011cbbb00 x27: 0000000000000000
[ 50.686488] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000
[ 50.686499] x23: ffff800081a20a10 x22: 0000000000000001 x21: ffff8000807c0270
[ 50.686508] x20: 0000000000000000 x19: ffff8000826954a8 x18: 0000000000000040
[ 50.686517] x17: 0000000000000000 x16: 0000000000000000 x15: fffffffffffe8ff0
[ 50.686527] x14: ffff8000824dff58 x13: 00000000000005e5 x12: 00000000000001f7
[ 50.686537] x11: fffffffffffe8ff0 x10: fffffffffffe8fb0 x9 : 00000000fffff1f7
[ 50.686548] x8 : ffff8000824dff58 x7 : ffff800082537f58 x6 : 0000000000001794
[ 50.686560] x5 : ffff0000f9b52c88 x4 : 0000000000000000 x3 : 0000000000000027
[ 50.686569] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000011cbbb00
[ 50.686586] Call trace:
[ 50.686601] clk_branch_wait+0x144/0x15c
[ 50.686614] clk_branch2_enable+0x30/0x40
[ 50.686627] clk_core_enable+0x6c/0xbc
[ 50.686648] clk_enable+0x2c/0x4c
[ 50.686660] vcodec_clks_enable.isra.0+0x94/0xd8 [venus_core]
[ 50.686869] venc_power_v3+0x9c/0xa0 [venus_core]
[ 50.686894] venc_runtime_resume+0x24/0x38 [venus_enc]
[ 50.686929] pm_generic_runtime_resume+0x2c/0x44
[ 50.686956] __genpd_runtime_resume+0x30/0xa8
[ 50.686976] genpd_runtime_resume+0xb4/0x29c
[ 50.686993] __rpm_callback+0x48/0x198
[ 50.687010] rpm_callback+0x6c/0x78
[ 50.687018] rpm_resume+0x3ac/0x654
[ 50.687025] __pm_runtime_resume+0x4c/0x90
[ 50.687036] venc_pm_get.isra.0+0x38/0xb8 [venus_enc]
[ 50.687048] venc_close+0x28/0xa4 [venus_enc]
[ 50.687057] v4l2_release+0xe4/0xec [videodev]
[ 50.687455] __fput+0xb4/0x274
[ 50.687485] __fput_sync+0x50/0x5c
[ 50.687491] __arm64_sys_close+0x38/0x7c
[ 50.687505] invoke_syscall+0x48/0x114
[ 50.687538] el0_svc_common.constprop.0+0xc0/0xe0
[ 50.687549] do_el0_svc+0x1c/0x28
[ 50.687556] el0_svc+0x40/0xf4
[ 50.687592] el0t_64_sync_handler+0xc0/0xc4
[ 50.687598] el0t_64_sync+0x190/0x194
[ 50.687625] ---[ end trace 0000000000000000 ]---
[ 50.688774] qcom-venus-encoder 1d00000.venus:video-encoder: Runtime PM usage count underflow!
[ 1.258101] adreno 1c00000.gpu: Adding to iommu group 0 [ 1.258761] i2c_qup 78b6000.i2c: using default clock-frequency 100000 [ 1.258793] i2c_qup 78b6000.i2c: tx channel not available [ 1.259163] i2c_qup 78b7000.i2c: using default clock-frequency 100000 [ 1.259184] i2c_qup 78b7000.i2c: tx channel not available [ 1.288999] platform 1a94000.dsi: Fixed dependency cycle(s) with /soc@0/display-subsystem@1a00000/dsi@1a94000/panel@0/port/endpoint [ 1.289067] platform 1a94000.dsi: Fixed dependency cycle(s) with /soc@0/display-subsystem@1a00000/display-controller@1a01000/ports/port@0/endpoint [ 1.293871] i2c_qup 78b6000.i2c: using default clock-frequency 100000 [ 1.293914] i2c_qup 78b6000.i2c: tx channel not available [ 1.294423] i2c_qup 78b7000.i2c: using default clock-frequency 100000 [ 1.294468] i2c_qup 78b7000.i2c: tx channel not available [ 1.295607] msm_mdp 1a01000.display-controller: Adding to iommu group 1 [ 1.305731] mipi-dsi 1a94000.dsi.0: Fixed dependency cycle(s) with /soc@0/display-subsystem@1a00000/dsi@1a94000/ports/port@1/endpoint [ 1.307376] i2c_qup 78b6000.i2c: using default clock-frequency 100000 [ 1.307418] i2c_qup 78b6000.i2c: tx channel not available [ 1.307822] i2c_qup 78b7000.i2c: using default clock-frequency 100000 [ 1.307844] i2c_qup 78b7000.i2c: tx channel not available [ 1.308619] msm_mdp 1a01000.display-controller: bound 1a94000.dsi (ops dsi_ops [msm]) [ 1.310060] adreno 1c00000.gpu: supply vdd not found, using dummy regulator [ 1.310208] adreno 1c00000.gpu: supply vddcx not found, using dummy regulator [ 1.315708] msm_mdp 1a01000.display-controller: bound 1c00000.gpu (ops a3xx_ops [msm]) [ 1.316031] msm_mdp 1a01000.display-controller: [drm:mdp5_kms_init [msm]] MDP5 version v1.16 [ 1.335166] [drm] Initialized msm 1.10.0 20130625 for 1a01000.display-controller on minor 0 [ 1.335640] msm_mdp 1a01000.display-controller: Direct firmware load for qcom/a530_pm4.fw failed with error -2 [ 1.335678] msm_mdp 1a01000.display-controller: [drm:adreno_request_fw [msm]] ERROR failed to load a530_pm4.fw [ 1.420083] [drm:mdp5_irq_error_handler [msm]] ERROR errors: 04000000 [ 1.732228] Console: switching to colour frame buffer device 135x120 [ 1.764915] msm_mdp 1a01000.display-controller: [drm] fb0: msmdrmfb frame buffer device
device not charge and don't show percentage
is that problem of kernel?
or config?
The sim card can be recognized.
xiaomi-vince:~# qmicli -d qrtr://0 --uim-get-card-status
[qrtr://0] Successfully got card status Provisioning applications: Primary GW:
slot '1', application '1' Primary 1X: session doesn't exist Secondary GW: session doesn't exist Secondary 1X: session doesn't exist Slot [1]: Card state: 'present' UPIN state: 'not-initialized' UPIN retries: '0' UPUK retries: '0' Application [1]: Application type: 'usim (2)' Application state: 'ready' Application ID: A0:00:00:00:87:10:02:FF:86:FF:FF:89:FF:FF:FF:FF Personalization state: 'ready' UPIN replaces PIN1: 'no' PIN1 state: 'disabled' PIN1 retries: '1' PUK1 retries: '10' PIN2 state: 'enabled-not-verified' PIN2 retries: '3' PUK2 retries: '10'
sot [2]: Card state: 'error: no-atr-received (3)' UPIN state: 'not-initialized' UPIN retries: '0' UPUK retries: '0'
xiaomi-vince:~# ModemManager --debug
[5572]: [000519809.909721] ModemManager (version 1.20.6) starting in system bus...
[5572]: [000519809.909880] [charsets] detecting platform iconv() support...
[5572]: [000519809.909935] [charsets] UTF-8: iconv conversion to/from charset is supported
[5572]: [000519809.909970] [charsets] UCS-2BE: iconv conversion to/from charset is supported
[5572]: [000519809.910007] [charsets] ASCII: iconv conversion to/from charset is supported
[5572]: [000519809.910044] [charsets] ISO8859-1: iconv conversion to/from charset is supported
[5572]: [000519809.910088] [charsets] CP437: iconv conversion to/from charset is supported
[5572]: [000519809.910132] [charsets] CP850: iconv conversion to/from charset is supported
[5572]: [000519809.910165] [charsets] UTF-16BE: iconv conversion to/from charset is supported
[5572]: [000519809.912440] Full suspend/resume hooks enabled
[5572]: [000519809.913205] [sleep-monitor-systemd] singleton created
[5572]: [000519809.917858] bus acquired, creating manager...
[5572]: [000519809.923192] [auth-provider] singleton created
[5572]: [000519809.923406] [filter] created
[5572]: [000519809.923440] [filter] explicit allowlist: yes
[5572]: [000519809.923464] [filter] explicit blocklist: yes
[5572]: [000519809.923491] [filter] plugin allowlist: yes
[5572]: [000519809.923514] [filter] qrtr devices allowed: yes
[5572]: [000519809.923540] [filter] virtual devices forbidden: yes
[5572]: [000519809.923567] [filter] net devices allowed: yes
[5572]: [000519809.923590] [filter] usbmisc devices allowed: yes
[5572]: [000519809.923613] [filter] rpmsg devices allowed: yes
[5572]: [000519809.923638] [filter] wwan devices allowed: yes
[5572]: [000519809.923663] [filter] tty devices:
[5572]: [000519809.923688] [filter] platform driver check: yes
[5572]: [000519809.923715] [filter] driver check: yes
[5572]: [000519809.923743] [filter] cdc-acm interface check: yes
[5572]: [000519809.923770] [filter] with net check: yes
[5572]: [000519809.923796] [filter] default: forbidden
[5572]: [000519809.923906] [plugin-manager] looking for plugins in '/usr/lib/ModemManager'
[5572]: [000519809.924575] [plugin-manager] loaded shared 'Sierra' utils from '/usr/lib/ModemManager/libmm-shared-sierra.so'
[5572]: [000519809.924913] [plugin-manager] loaded shared 'Telit' utils from '/usr/lib/ModemManager/libmm-shared-telit.so'
[5572]: [000519809.925115] [plugin-manager] loaded shared 'Novatel' utils from '/usr/lib/ModemManager/libmm-shared-novatel.so'
[5572]: [000519809.925408] [plugin-manager] loaded shared 'Xmm' utils from '/usr/lib/ModemManager/libmm-shared-xmm.so'
[5572]: [000519809.925647] [plugin-manager] loaded shared 'Foxconn' utils from '/usr/lib/ModemManager/libmm-shared-foxconn.so'
[5572]: [000519809.925855] [plugin-manager] loaded shared 'Option' utils from '/usr/lib/ModemManager/libmm-shared-option.so'
[5572]: [000519809.926152] [plugin-manager] loaded shared 'Icera' utils from '/usr/lib/ModemManager/libmm-shared-icera.so'
[5572]: [000519809.926315] [plugin-manager] loaded shared 'Intel' utils from '/usr/lib/ModemManager/libmm-shared-fibocom.so'
[5572]: [000519809.926886] [plugin-manager] loaded plugin 'nokia-icera' from '/usr/lib/ModemManager/libmm-plugin-nokia-icera.so'
[5572]: [000519809.926930] [filter] registered plugin allowlist vendor id: 0421
[5572]: [000519809.927172] [plugin-manager] loaded plugin 'x22x' from '/usr/lib/ModemManager/libmm-plugin-x22x.so'
[5572]: [000519809.927209] [filter] registered plugin allowlist tag: ID_MM_X22X_TAGGED
[5572]: [000519809.927240] [filter] registered plugin allowlist vendor id: 1bbb
[5572]: [000519809.927267] [filter] registered plugin allowlist vendor id: 0b3c
[5572]: [000519809.927473] [plugin-manager] loaded plugin 'telit' from '/usr/lib/ModemManager/libmm-plugin-telit.so'
[5572]: [000519809.927509] [filter] registered plugin allowlist vendor id: 1bc7
[5572]: [000519809.927539] [filter] registered plugin allowlist subsystem vendor id: 17cb:1c5d
[5572]: [000519809.927731] [plugin-manager] loaded plugin 'gosuncn' from '/usr/lib/ModemManager/libmm-plugin-gosuncn.so'
[5572]: [000519809.927767] [filter] registered plugin allowlist vendor id: 305a [5572]: [000519809.928017] [plugin-manager] loaded plugin 'quectel' from '/usr/lib/ModemManager/libmm-plugin-quectel.so'
[5572]: [000519809.928052] [filter] registered plugin allowlist vendor id: 2c7c
[5572]: [000519809.928082] [filter] registered plugin allowlist vendor id: 1eac
[5572]: [000519809.928362] [plugin-manager] loaded plugin 'generic' from '/usr/lib/ModemManager/libmm-plugin-generic.so'
[5572]: [000519809.928599] [plugin-manager] loaded plugin 'thuraya' from '/usr/lib/ModemManager/libmm-plugin-thuraya.so'
[5572]: [000519809.928635] [filter] registered plugin allowlist vendor id: 1a26
[5572]: [000519809.928894] [plugin-manager] loaded plugin 'simtech' from '/usr/lib/ModemManager/libmm-plugin-simtech.so'
[5572]: [000519809.928937] [filter] registered plugin allowlist vendor id: 1e0e
[5572]: [000519809.929187] [plugin-manager] loaded plugin 'motorola' from '/usr/lib/ModemManager/libmm-plugin-mtk.so'
[5572]: [000519809.929225] [filter] registered plugin allowlist tag: ID_MM_MTK_TAGGED
[5572]: [000519809.929429] [plugin-manager] loaded plugin 'sierra' from '/usr/lib/ModemManager/libmm-plugin-sierra.so'
[5572]: [000519809.929468] [filter] registered plugin allowlist vendor id: 1199
[5572]: [000519809.929690] [plugin-manager] loaded plugin 'Intel' from '/usr/lib/ModemManager/libmm-plugin-intel.so'
[5572]: [000519809.929727] [filter] registered plugin allowlist vendor id: 8086
[5572]: [000519809.929927] [plugin-manager] loaded plugin 'broadmobi' from '/usr/lib/ModemManager/libmm-plugin-broadmobi.so'
[5572]: [000519809.929964] [filter] registered plugin allowlist vendor id: 2020
[5572]: [000519809.930249] [plugin-manager] loaded plugin 'fibocom' from '/usr/lib/ModemManager/libmm-plugin-fibocom.so'
[5572]: [000519809.930286] [filter] registered plugin allowlist vendor id: 2cb7
[5572]: [000519809.930317] [filter] registered plugin allowlist vendor id: 1782
[5572]: [000519809.930570] [plugin-manager] loaded plugin 'novatel-lte' from '/usr/lib/ModemManager/libmm-plugin-novatel-lte.so'
[5572]: [000519809.930607] [filter] registered plugin allowlist product id: 1410:9010
[5572]: [000519809.930851] [plugin-manager] loaded plugin 'wavecom' from '/usr/lib/ModemManager/libmm-plugin-wavecom.so'
[5572]: [000519809.930888] [filter] registered plugin allowlist vendor id: 114f
[5572]: [000519809.931074] [plugin-manager] loaded plugin 'd-link' from '/usr/lib/ModemManager/libmm-plugin-dlink.so'
[5572]: [000519809.931112] [filter] registered plugin allowlist vendor id: 2001
[5572]: [000519809.931524] [plugin-manager] loaded plugin 'huawei' from '/usr/lib/ModemManager/libmm-plugin-huawei.so'
[5572]: [000519809.931561] [filter] registered plugin allowlist vendor id: 12d1
[5572]: [000519809.931808] [plugin-manager] loaded plugin 'zte' from '/usr/lib/ModemManager/libmm-plugin-zte.so'
[5572]: [000519809.931846] [filter] registered plugin allowlist vendor id: 19d2
[5572]: [000519809.932132] [plugin-manager] loaded plugin 'altair-lte' from '/usr/lib/ModemManager/libmm-plugin-altair-lte.so'
[5572]: [000519809.932170] [filter] registered plugin allowlist product id: 216f:0047
[5572]: [000519809.932496] [plugin-manager] loaded plugin 'ericsson-mbm' from '/usr/lib/ModemManager/libmm-plugin-ericsson-mbm.so'
[5572]: [000519809.932534] [filter] registered plugin allowlist tag: ID_MM_ERICSSON_MBM
[5572]: [000519809.932819] [plugin-manager] loaded plugin 'pantech' from '/usr/lib/ModemManager/libmm-plugin-pantech.so'
[5572]: [000519809.932857] [filter] registered plugin allowlist vendor id: 106c
[5572]: [000519809.933082] [plugin-manager] loaded plugin 'foxconn' from '/usr/lib/ModemManager/libmm-plugin-foxconn.so'
[5572]: [000519809.933119] [filter] registered plugin allowlist vendor id: 0489
[5572]: [000519809.933150] [filter] registered plugin allowlist vendor id: 105b
[5572]: [000519809.933343] [plugin-manager] loaded plugin 'samsung' from '/usr/lib/ModemManager/libmm-plugin-samsung.so'
[5572]: [000519809.933381] [filter] registered plugin allowlist product id: 04e8:6872
[5572]: [000519809.933413] [filter] registered plugin allowlist product id: 04e8:6906
[5572]: [000519809.933635] [plugin-manager] loaded plugin 'linktop' from '/usr/lib/ModemManager/libmm-plugin-linktop.so'
[5572]: [000519809.933672] [filter] registered plugin allowlist vendor id: 230d
[5572]: [000519809.933882] [plugin-manager] loaded plugin 'motorola' from '/usr/lib/ModemManager/libmm-plugin-motorola.so'
[5572]: [000519809.933919] [filter] registered plugin allowlist product id: 22b8:3802
[5572]: [000519809.933951] [filter] registered plugin allowlist product id: 22b8:4902
[5572]: [000519809.934222] [plugin-manager] loaded plugin 'dell' from '/usr/lib/ModemManager/libmm-plugin-dell.so'
[5572]: [000519809.934259] [filter] registered plugin allowlist vendor id: 413c
[5572]: [000519809.934464] [plugin-manager] loaded plugin 'tp-link' from '/usr/lib/ModemManager/libmm-plugin-tplink.so'
[5572]: [000519809.934500] [filter] registered plugin allowlist vendor id: 2357
[5572]: [000519809.934718] [plugin-manager] loaded plugin 'anydata' from '/usr/lib/ModemManager/libmm-plugin-anydata.so'
[5572]: [000519809.934755] [filter] registered plugin allowlist vendor id: 16d5
[5572]: [000519809.934953] [plugin-manager] loaded plugin 'option' from '/usr/lib/ModemManager/libmm-plugin-option.so'
[5572]: [000519809.934990] [filter] registered plugin allowlist vendor id: 0af0
[5572]: [000519809.935020] [filter] registered plugin allowlist vendor id: 1931
[5572]: [000519809.935229] [plugin-manager] loaded plugin 'qcom-soc' from '/usr/lib/ModemManager/libmm-plugin-qcom-soc.so'
[5572]: [000519809.935272] [filter] registered plugin allowlist tag: ID_MM_QCOM_SOC
[5572]: [000519809.935505] [plugin-manager] loaded plugin 'via' from '/usr/lib/ModemManager/libmm-plugin-via.so'
[5572]: [000519809.935864] [plugin-manager] loaded plugin 'u-blox' from '/usr/lib/ModemManager/libmm-plugin-ublox.so'
[5572]: [000519809.935902] [filter] registered plugin allowlist vendor id: 1546
[5572]: [000519809.936163] [plugin-manager] loaded plugin 'longcheer' from '/usr/lib/ModemManager/libmm-plugin-longcheer.so'
[5572]: [000519809.936202] [filter] registered plugin allowlist tag: ID_MM_LONGCHEER_TAGGED
[5572]: [000519809.936234] [filter] registered plugin allowlist vendor id: 1c9e
[5572]: [000519809.936605] [plugin-manager] loaded plugin 'cinterion' from '/usr/lib/ModemManager/libmm-plugin-cinterion.so'
[5572]: [000519809.936643] [filter] registered plugin allowlist vendor id: 1e2d
[5572]: [000519809.936674] [filter] registered plugin allowlist vendor id: 0681
[5572]: [000519809.936704] [filter] registered plugin allowlist vendor id: 1269
[5572]: [000519809.936914] [plugin-manager] loaded plugin 'novatel' from '/usr/lib/ModemManager/libmm-plugin-novatel.so'
[5572]: [000519809.936952] [filter] registered plugin allowlist vendor id: 1410
[5572]: [000519809.937238] [plugin-manager] loaded plugin 'option-hso' from '/usr/lib/ModemManager/libmm-plugin-option-hso.so'
[5572]: [000519809.937433] [plugin-manager] loaded plugin 'haier' from '/usr/lib/ModemManager/libmm-plugin-haier.so'
[5572]: [000519809.937471] [filter] registered plugin allowlist vendor id: 201e
[5572]: [000519809.937738] [plugin-manager] loaded plugin 'sierra-legacy' from '/usr/lib/ModemManager/libmm-plugin-sierra-legacy.so'
[5572]: [000519809.937987] [plugin-manager] loaded plugin 'nokia' from '/usr/lib/ModemManager/libmm-plugin-nokia.so'
[5572]: [000519809.938254] [plugin-manager] loaded plugin 'iridium' from '/usr/lib/ModemManager/libmm-plugin-iridium.so'
[5572]: [000519809.938292] [filter] registered plugin allowlist vendor id: 1edd
[5572]: [000519809.938329] [plugin-manager] successfully loaded 40 plugins registering 6 subsystems: tty, net, usbmisc, wwan, rpmsg, qrtr
[5572]: [000519809.939532] [qrtr] socket lookup from 1:0
[5572]: [000519809.940407] [qrtr] added server on 0:1 -> service 43, version 2, instance 18
[5572]: [000519809.940552] [qrtr] created new node 0 [5572]: [000519809.940643] [qrtr] added server on 0:14 -> service 15, version 1, instance 0
[5572]: [000519809.940702] [qrtr] added server on 0:16 -> service 24, version 1, instance 0
[5572]: [000519809.940761] [qrtr] added server on 0:17 -> service 23, version 1, instance 0
[5572]: [000519809.940810] [qrtr] added server on 0:18 -> service 22, version 1, instance 0
[5572]: [000519809.940865] [qrtr] added server on 0:20 -> service 36, version 1, instance 0
[5572]: [000519809.940916] [qrtr] added server on 0:21 -> service 49, version 1, instance 2
[5572]: [000519809.940970] [qrtr] added server on 0:23 -> service 70, version 1, instance 1
[5572]: [000519809.941029] [qrtr] added server on 0:24 -> service 54, version 1, instance 0
[5572]: [000519809.941083] [qrtr] added server on 0:25 -> service 41, version 1, instance 1
[5572]: [000519809.941136] [qrtr] added server on 0:26 -> service 17, version 1, instance 0
[5572]: [000519809.941190] [qrtr] added server on 0:27 -> service 34, version 1, instance 0
[5572]: [000519809.941245] [qrtr] added server on 0:36 -> service 55, version 1, instance 2
[5572]: [000519809.941302] [qrtr] added server on 0:37 -> service 50, version 1, instance 0
[5572]: [000519809.941358] [qrtr] added server on 0:38 -> service 9, version 2, instance 0
[5572]: [000519809.941414] [qrtr] added server on 0:40 -> service 3, version 1, instance 0
[5572]: [000519809.941477] [qrtr] added server on 0:41 -> service 12, version 1, instance 0
[5572]: [000519809.941535] [qrtr] added server on 0:42 -> service 10, version 2, instance 0
[5572]: [000519809.941613] [qrtr] added server on 0:43 -> service 1, version 1, instance 0
[5572]: [000519809.941662] could not acquire the 'org.freedesktop.ModemManager1' service name
[5572]: [000519809.941705] [base-manager] stopping connection in object manager server
[5572]: [000519809.943183] ModemManager is shut down
[5572]: [000519809.943662] [auth-provider] singleton disposed
[5572]: [000519809.943749] [sleep-monitor-systemd] singleton disposed
xiaomi-vince:~# ModemManager staus
[2238]: [1686455444.168399] [qrtr0/qmi] QMI port open operation finished successfully
[2238]: [1686455444.168587] [qrtr0/probe] port is QMI-capable
[2238]: [1686455444.169100] [plugin-manager] task 0,qrtr0: found best plugin for port (qcom-soc)
[2238]: [1686455444.169226] [plugin-manager] task 0,qrtr0: finished in '2.411706' seconds
[2238]: [1686455444.169389] [plugin-manager] task 0,qrtr0: found best plugin: qcom-soc
[2238]: [1686455444.169509] [plugin-manager] task 0: no more ports to probe
[2238]: [1686455444.169645] [plugin-manager] task 0: all port probings completed, but not reached min probing time yet
[2238]: [1686455444.258216] [plugin-manager] task 0: min probing time elapsed
[2238]: [1686455444.258363] [plugin-manager] task 0: no more ports to probe
[2238]: [1686455444.258472] [plugin-manager] task 0: finished in '2.501421' seconds
[2238]: [1686455444.258685] [device qcom-soc] creating modem with plugin 'qcom-soc' and '1' ports
[2238]: [1686455444.258816] [plugin/qcom-soc] (qcom-soc) Qualcomm SoC modem found...
[2238]: [1686455444.269901] [qrtr0/qmi] port monitoring enabled in QMI port
[2238]: [1686455444.270120] [modem0] port 'qrtr/qrtr0' grabbed
[2238]: [1686455444.270323] [modem0] cleaning up port 'qrtr/qrtr0'...
[2238]: [1686455444.270613] [modem0] completely disposed
[2238]: [1686455444.270745] [base-manager] couldn't create modem for device 'qcom-soc': Failed to find a net port in the QMI modem
I tried the ofono branch ./list-modem can see the modem, but ./enable-modem reported an error.Invalid apn setting.
https://github.com/msm8953-mainline/ofono
How can I use the modem?
With kernel 5.18.3 kernel with "CONFIG_DRM_PANELS_XIAOMI_MIDO" panel doen't works
Hi,
I am using postmarket OS edge (phosh) with the msm8953-mainline kernel of the linux-6.7.2/main
branch.
The issues I am facing are:
In some situations after wildly enabling/disabling or plugging/unplugging headphones and starting/stopping playback, the static noise is gone.
I assume the noise stems from some output not being turned off properly. Longnoserob suggested it could be an erroneously configured power-saving feature or option.
After investigating a bit further, I found out that almost always error messages appear in dmesg that look like this:
[70807.344061] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10dac] not expecting rsp
[70807.344107] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10dac] not expecting rsp
[70807.344123] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10dac] not expecting rsp
[70807.344313] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10dac] not expecting rsp
[70812.881674] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10bdb] not expecting rsp
[70843.282577] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10bdb] not expecting rsp
[70896.027385] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10dac] not expecting rsp
[70896.027432] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10dac] not expecting rsp
[70896.027449] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10dac] not expecting rsp
[70896.027464] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10dac] not expecting rsp
[70901.294569] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10bdb] not expecting rsp
Again when pushing buttons randomly, sometimes these messages stop appearing (while the problem persists).
I wondered whether the alsa ucm configuration could be the culprit, but I have just started investigating and the current configuration looked very similar to what xml2ucm
produces from an Android mixer_paths.xml file.
Does anyone have an idea what could cause these problems?
Regards,
spongy
EDIT:
There seem to exist specialized audio chips which suppress "clicks and pops".
For example analog devices says the following on their website:
Click-Pop Suppressors
Analog Devices provides integrated audio click-and-pop suppressors for devices, such as codecs that have integrated headphone amplifiers but lack a clickless and/or popless startup or shutdown.
That sounds pretty much like the cure to my problem and the Xiaomi Vince uses a wcd_codec
which is compatible to qcom,pm8916-wcd-analog-codec
.
The datasheet of the msm-8953 recommends three audio configurations:
The datasheet of the WCD9335 features two protection mechanisms: click-and-pop
and overcurrent
.
The device tree features interrupts(?) for both protection mechanisms:
<0x1 0xf1 0x1 IRQ_TYPE_NONE>
<0x1 0xf1 0x2 IRQ_TYPE_NONE>
<0x1 0xf1 0x4 IRQ_TYPE_NONE>
<0x1 0xf1 0x5 IRQ_TYPE_NONE>
So perhaps the click-and-pop protection mechanism is not enabled on my device.
On Xiaomi vince several kernel modules are loaded, so that I believe that the audio chip is controlled via these:
q6asm_dai 24576 1
q6routing 385024 2 q6asm_dai
q6voice_dai 20480 1
q6afe_clocks 12288 1
q6afe_dai 77824 1
q6voice 16384 1 q6voice_dai
q6adm 16384 1 q6routing
q6asm 32768 1 q6asm_dai
q6afe 20480 4 q6voice,q6afe_dai,q6afe_clocks,q6adm
q6cvp 12288 1 q6voice
q6cvs 12288 0
q6mvm 12288 1 q6voice
snd_q6dsp_common 45056 4 q6asm,q6afe_dai,q6afe_clocks,q6adm
q6voice_common 16384 4 q6cvp,q6voice,q6mvm,q6cvs
q6core 12288 3 q6asm,q6afe,q6adm
apr 20480 8 q6asm,q6cvp,q6core,q6mvm,q6afe,q6cvs,q6voice_common,q6adm
pdr_interface 24576 1 apr
qrtr_smd 16384 0
venus_dec 32768 0
venus_enc 28672 0
snd_soc_apq8016_sbc 12288 0
snd_soc_qcom_common 12288 1 snd_soc_apq8016_sbc
qrtr 28672 47 qrtr_smd
qcom_camss 245760 16
snd_soc_msm8916_analog 49152 1
snd_soc_msm8916_analog is the real audio driver which is used for the pm8953 power management chip. This chip also provides the audio dac.
References:
Further references:
this should be the offending commit 25f6279
drivers/media/i2c/sr556.c:1042:19: error: initialization of 'void (*)(struct i2c_client *)' from incompatible pointer type 'int (*)(struct i2c_client *)' [-Werror=incompatible-pointer-types]
1042 | .remove = sr556_remove,
| ^~~~~~~~~~~~
drivers/media/i2c/sr556.c:1042:19: note: (near initialization for 'sr556_i2c_driver.remove')
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:250: drivers/media/i2c/sr556.o] Error 1
On my phone display, which has display ILITEK ili7807-fdhplus 1080x2280 video and probably touchpad gt917d is not working.
This is my personal issue for tracking the status , but everyone is of course free and welcome to help. Inspiration here: https://github.com/goodix/goodix_gt9xx_public
Daisy config here:
https://github.com/qwertyuiopzxcvbnmlkjhgfdsa1/xiaomi-daisy-touchpad-config
UPDATE2: Configuration is correctly applied, remaining issue is with IRQ. There is a function which tries to find description in devices radix tree structure by irq 0, but there is no description, thus it fails. Debugging why it happend.
UPDATE3:IRQ=0 it could be parent irq, nobody knows much
ARCHIVE
###Old Open questions:
1, Is my touchpad really goodix gt917d?
2, Is gt917s, which is base of this work actually working for anyone? I doubt that those two original lines work, there should be surely different values:
reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
irq-gpios = <&tlmm 65 GPIO_ACTIVE_HIGH>;
3, How to get know what value holds magic strings like "IRQ_TYPE_EDGE_FALLING"?
4, Some debuging - howto get more debug on boot?
5, Why AVDD28 is uppercase? And how original author know what names to use?
6, Datasheet for gt917d are not to be found. There are only for gt917s. Strange.
Hi all! I have a question, every update of the kernel version I have to build my own kernel, to add an external usb wifi adapter mt7601u driver, will there ever be usb_wifi.config or full.config, for example, to make a full-fledged PC (or PDA, whatever you like) . In the kernel, almost everything is disabled, supposedly superfluous, more like the android kernel. I would like pmos to be, like other linux distributions in which almost everything is included in the kernel. And not to build the kernel on my own for the equipment I need, but what would such a kernel be publicly available to everyone in the main update repository.
I want to boot without lk2nd
Hello, I installed pmos using pmbootstrap on Redmi 5 Plus (Synaptics touchscreen which should work) and have no working touch. Tried plasma and phosh, another got me read-only error.
In dmesg I have
[ 3.646048] rmi4_i2c 2-0020: rmi_set_page: set page failed: -6.
[ 3.646067] rmi4_i2c 2-0020: Failed to set page select to 0
Hi, devs
I just Installed pmOS on tissot. But I got new issue here. Touchscreen doesn't worked at all. I think this error log below related with touchscreen issue
[ 15.840533] edt_ft5x06 3-0038: touchscreen probe failed
[ 15.841581] edt_ft5x06: probe of 3-0038 failed with error -110
And here is full dmesg error log
log.txt
Let me know if this error log is still lack and need more info for further fix
Anyway, thank you for your hard work.
I've pushed an early version of a driver for the fuel gauge on the fairphone3 (earlier hardware version) to the branch msm8953_v6.4_gpu_wlan_modem_ipa_cpufreq_qg of https://github.com/spasswolf/msm8953-linux.git.
commit a46ef5194c8f424bc6a337d203fc10978021896c (HEAD -> msm8953_v6.4_gpu_wlan_modem_ipa_cpufreq_qg, msm8953-linux/msm8953_v6.4_gpu_wlan_modem_ipa_cpufreq_qg)
Author: Bert Karwatzki <[email protected]>
Date: Sun Jul 16 14:38:55 2023 +0200
power: suppyly: qcom_qg: Initial qpnp-qg fuel gauge support.
This commit adds initial support for the qpnp-qg fuel gauge based
partly on the downstream driver[1]. So far voltage and current measurement
work and the capacity is estimated using lookup tables adapted from
the downstream kernel[1]. Interrupt support has not yet been added.
[1]: https://code.fairphone.com/projects/fairphone-3/gpl.html
Signed-off-by: Bert Karwatzki <[email protected]>
commit 8396191d3bf2267549e5fb3965366e1ef5e31dae
Author: Bert Karwatzki <[email protected]>
Date: Sun Jul 16 15:18:06 2023 +0200
drivers: iio: adc: qcom-spmi-adc5: Add bat_therm channel.
The qpnp-qg fuel gauge driver in the downstream kernel [1] for the
fairphone-fp3 uses this channel to read the battery temperature.
[1] https://code.fairphone.com/projects/fairphone-3/gpl.html
Signed-off-by: Bert Karwatzki <[email protected]>
What works is current and voltage measuring and capacity estimation:
$ cat /sys/class/power_supply/qcom-battery/uevent
POWER_SUPPLY_NAME=qcom-battery
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CAPACITY=94
POWER_SUPPLY_CURRENT_NOW=-344848
POWER_SUPPLY_VOLTAGE_NOW=4300504
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=3400000
POWER_SUPPLY_VOLTAGE_MAX_DESIGN=4390000
POWER_SUPPLY_CHARGE_FULL_DESIGN=3056000
POWER_SUPPLY_TEMP=33186
Voltage is in µV and current in µA, negative current seems to show that we're charging (which seems to work even without charger support in kernel).
Edit: Capacity estimation seems to be off by about 3 percentage points when charging, perhaps because the measured voltage is used directly without correcting for internal resistance and because the lookup table used are those for the non-charging case.
Need to check if blsp dma works with something like the following diff:
diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi b/arch/arm64/boot/dts/qcom/msm8953.dtsi
index 32349174c4bd..75850ce460a2 100644
--- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
@@ -1155,6 +1155,16 @@ opp-200000000 {
};
};
+ blsp1_dma: dma-controller@7884000 {
+ compatible = "qcom,bam-v1.7.0";
+ reg = <0x07884000 0x1f000>;
+ interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&gcc GCC_BLSP1_AHB_CLK>;
+ clock-names = "bam_clk";
+ #dma-cells = <1>;
+ qcom,ee = <0>;
+ };
+
uart_0: serial@78af000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0x78af000 0x200>;
@@ -1173,6 +1183,8 @@ i2c_1: i2c@78b5000 {
clock-names = "core", "iface";
clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
+ dmas = <&blsp1_dma 4>, <&blsp1_dma 5>;
+ dma-names = "tx", "rx";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c_1_default>;
@@ -1191,6 +1203,8 @@ i2c_2: i2c@78b6000 {
clock-names = "core", "iface";
clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
+ dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
+ dma-names = "tx", "rx";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c_2_default>;
@@ -1209,6 +1223,9 @@ i2c_3: i2c@78b7000 {
clock-names = "core", "iface";
clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
+ dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
+ dma-names = "tx", "rx";
+
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c_3_default>;
pinctrl-1 = <&i2c_3_sleep>;
@@ -1226,6 +1243,9 @@ i2c_4: i2c@78b8000 {
clock-names = "core", "iface";
clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
+ dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
+ dma-names = "tx", "rx";
+
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c_4_default>;
pinctrl-1 = <&i2c_4_sleep>;
@@ -1236,6 +1256,16 @@ i2c_4: i2c@78b8000 {
status = "disabled";
};
+ blsp2_dma: dma-controller@7ac4000 {
+ compatible = "qcom,bam-v1.7.0";
+ reg = <0x07ac4000 0x1f000>;
+ interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&gcc GCC_BLSP2_AHB_CLK>;
+ clock-names = "bam_clk";
+ #dma-cells = <1>;
+ qcom,ee = <0>;
+ };
+
i2c_5: i2c@7af5000 {
compatible = "qcom,i2c-qup-v2.2.1";
reg = <0x7af5000 0x600>;
@@ -1243,6 +1273,9 @@ i2c_5: i2c@7af5000 {
clock-names = "core", "iface";
clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
<&gcc GCC_BLSP2_AHB_CLK>;
+ dmas = <&blsp2_dma 4>, <&blsp2_dma 5>;
+ dma-names = "tx", "rx";
+
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c_5_default>;
pinctrl-1 = <&i2c_5_sleep>;
@@ -1260,6 +1293,9 @@ i2c_6: i2c@7af6000 {
clock-names = "core", "iface";
clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
<&gcc GCC_BLSP2_AHB_CLK>;
+ dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
+ dma-names = "tx", "rx";
+
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c_6_default>;
pinctrl-1 = <&i2c_6_sleep>;
@@ -1277,6 +1313,9 @@ i2c_7: i2c@7af7000 {
clock-names = "core", "iface";
clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>,
<&gcc GCC_BLSP2_AHB_CLK>;
+ dmas = <&blsp2_dma 8>, <&blsp2_dma 9>;
+ dma-names = "tx", "rx";
+
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c_7_default>;
pinctrl-1 = <&i2c_7_sleep>;
@@ -1294,6 +1333,9 @@ i2c_8: i2c@7af8000 {
clock-names = "core", "iface";
clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>,
<&gcc GCC_BLSP2_AHB_CLK>;
+ dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
+ dma-names = "tx", "rx";
+
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c_8_default>;
pinctrl-1 = <&i2c_8_sleep>;
edit: doesn't seem relevant for now but spi uses qcom,bam-consumer-pipe-index
& qcom,bam-producer-pipe-index
; and for uart qcom,bam-tx-ep-pipe-index
& qcom,bam-rx-ep-pipe-index
for the indexes, not dmas
property like i2c downstream
offending commit 257fb45
drivers/media/i2c/s5k2xx.c:1464:19: error: initialization of 'void (*)(struct i2c_client *)' from incompatible pointer type 'int (*)(struct i2c_client *)' [-Werror=incompatible-pointer-types]
1464 | .remove = s5k2xx_remove,
| ^~~~~~~~~~~~~
drivers/media/i2c/s5k2xx.c:1464:19: note: (near initialization for 's5k2xx_i2c_driver.remove')
cc1: some warnings being treated as errors
Hi,
currently I am experiencing issues with postmarket OS on my Xiaomi Redmi 5 Plus. I am using a dual-boot configuration with lk2nd flashed to recovery and postmarket OS flashed on an external SD card.
The issues are most likely power management related. When they set in, the phone turns the screen on, shows the lockscreen and then turns off again after a while. The dmesg output (obtained via ssh) shows [ 8324.012680] ltrf216a 0-0053: failed to resume runtime PM: -22
repeatedly (with a frequency of 3 to 5 times per second). Finally the touchscreen becomes unresponsive and cannot be used anymore - hardware buttons still work.
I assume these issues occur because some problems with the power management. At first I suspected the bit banging of the I2C bus might be responsible but idk.
I have tested the kernels 6.6.10 and 6.7.0 (head) both yield the same behavior.
(I am not sure but the issue often occurred after I unplugged the phone from my computer's USB. Yet the issue also occurs after just setting the phone to standby.)
Do you have any clues what the underlying issue might be?
EDIT-1: Added dmesg log on linux 6.7.0. Pattern repeats at regular intervals. Only CPU failure differs.
postmarketos-xiaomi-vince-linux-6.7.0-86d576e1465a5216cb2f1bb420fa39d5f85cf52c.txt
EDIT-2: Added dmesg log on linux 6.7.0. Pattern occurs when standby button is pressed for a short time.
EDIT-3: I have verified that the problems persist in version 6.7.2-r0 (with modification CONFIG_RT_GROUP_SCHED=n).
The line [ 8324.012680] ltrf216a 0-0053: failed to resume runtime PM: -22
now only shows when the device is woken up. Pressing hardware buttons does not seem to result in errors anymore.
There is still the wake up behavior where the display randomly turns on and runs down the battery.
postmarketos-xiaomi-vince-linux-6.7.2-r0__standby_button_on_and_off.txt
EDIT-4: The issues usually start when the phone tries to go into power saving mode (as set up in the energy settings, for me after approx. 15 minutes on battery or connected to mains).
EDIT-5: In the following log the above described issue start [ 1752.862237] PM: suspend entry (s2idle)
.
xiaomi-6.7.2-r0_dmesg_when_auto_standby_kicks_in_after_15min.txt
The most important lines (before the suspend is stopped and then retried again):
[ 1752.899606] wcn36xx: ERROR SMD_EVENT (312) not supported
[ 1753.049071] rmi4_f01 rmi4-00.fn01: Failed to write sleep mode: -6.
[ 1753.049095] rmi4_f01 rmi4-00.fn01: Suspend failed with code -6.
[ 1753.049106] rmi4_physical rmi4-00: Failed to suspend functions: -6
[ 1753.049128] rmi4_i2c 2-0020: Failed to resume device: -6
[ 1753.049147] rmi4_i2c 2-0020: PM: dpm_run_callback(): rmi_i2c_suspend+0x0/0x6c [rmi_i2c] returns -6
[ 1753.049192] rmi4_i2c 2-0020: PM: failed to suspend async: error -6
[ 1753.049494] PM: Some devices failed to suspend, or early wake event detected
Related:
EDIT-6: Okay, after digging through the kernel mailing list, this seems to be a long standing issue of the RMI4 driver. It seems not to model parent child relations properly, so that the power management suspends certain parts of the platform that are still needed (as far as I understood the child relationship to the I2C device is modeled properly but there are other undiscovered dependencies).
Related discussions:
Kernel discussion
Issue related commits:
Collection of magical workarounds (mostly hiding the issues with some likelihood):
psmouse.synaptics_intertouch=0
to kernel boot cmdlinefw_devlink=on
to kernel boot cmdlineWorkaround for pmos:
with latest 6.1.0 branch
drivers/gpu/drm/panel/msm8953-generated/panel-fairphone-fp3-hx83112b.c:435:19: error: initialization of 'void (*)(struct mipi_dsi_device *)' from incompatible pointer type 'int (*)(struct mipi_dsi_device *)' [-Werror=incompatible-pointer-types]
435 | .remove = djn_hx83112b_remove,
| ^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/msm8953-generated/panel-fairphone-fp3-hx83112b.c:435:19: note: (near initialization for 'djn_hx83112b_driver.remove')
cc1: some warnings being treated as errors
After panel goes to sleep it cannot be waken up only the backlights works.
Hi, can we get the kernel tested on all devices so we can update the aport package?
Tested on:
(tell me if i'm missing any)
I have a huawei msm8953 device and I tried to port the mainline kernel on it.I built it and booted it,but I weit about 10 second and it reboot into a QUALCOMM mode,and it is not the 9008/9006 mode.I do not know that what mode it is : ( .The UART has been disabled in bootloader and it cannot enable,I do not know that where I can find the log.......
We should aim to get at least basic parts of msm8953.dtsi upstream as it's quite well working but the file isn't upstream at all.
@SirSireesh Can I help with this, or do you already have a plan for this?
Hi @junak ,
hereby I want to propose support for another device powered by the msm8953 SoC. I'm talking about the Xiaomi Redmi Note 5 / Plus (codename vince). I am currently maintaining the downstream kernel for PostmarketOS and would be more than happy to test your efforts.
The most popular and fully working kernel repo for vince is here
and another great kernel (with some cherry-picks from 4.14) is here
Best regards and thanks for all your hard work done until now
Between branches msm8953-5.18.3 and msm8953-6.0.10 the Tianma panel driver name changed from tianma-tl052vdxp02 to tianma-tl052vdpx02. I am pretty sure that the original "xp" name is correct and the new "px" name is incorrect. I believe this issue came from the lk2nd motorola-potter device tree where the panel has the exact same spelling mistake
Using this kernel with PostmarketOS v23.12. Graphics is very slow. The driver seems to be loaded:
OpenGL vendor string: freedreno
OpenGL renderer string: FD506
OpenGL core profile version string: 3.1 Mesa 23.3.1
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 23.3.1
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 23.3.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
Slow interface and web graphics:
(Not really sure if it's the right place for posting this)
../drivers/power/supply/sm5708_fuelgauge.c:769:23: error: initialization of 'int (*)(struct i2c_client *)' from incompatible pointer type 'int (*)(struct i2c_client *, const struct i2c_device_id *)' [-Werror=incompatible-pointer-types]
769 | .probe = sm5708_battery_probe,
| ^~~~~~~~~~~~~~~~~~~~
../drivers/power/supply/sm5708_fuelgauge.c:769:23: note: (near initialization for 'sm5708_fuelgauge_driver.<anonymous>.probe')
Is msm8953 soc fully supported?
Add S6E8AA5X01_AMS604RM01_hd_octa_video Panel Support
[ 39.455604] wcn36xx: ERROR SMD_EVENT (312) not supported
[ 41.279358] q6asm-dai c200000.remoteproc:smd-edge:apr:service@7:dais: command[0x10bdb] not expecting rsp
[ 71.856710] wlan0: authenticate with 9c:9d:7e:64:0c:65
[ 71.905212] wlan0: send auth to 9c:9d:7e:64:0c:65 (try 1/3)
[ 71.943385] wlan0: authenticated
[ 71.946826] wlan0: associate with 9c:9d:7e:64:0c:65 (try 1/3)
[ 71.970867] wlan0: RX AssocResp from 9c:9d:7e:64:0c:65 (capab=0xc11 status=0 aid=4)
[ 72.006011] wlan0: associated
[ 78.092067] wlan0: deauthenticated from 9c:9d:7e:64:0c:65 (Reason: 15=4WAY_HANDSHAKE_TIMEOUT)
[ 78.119923] wcn36xx: ERROR SMD_EVENT (312) not supported
[ 1425.822255] [drm:mdp5_irq_error_handler [msm]] *ERROR* errors: 04000000
[ 1588.133062] wlan0: authenticate with 9c:9d:7e:64:0c:65
[ 1588.187599] wlan0: send auth to 9c:9d:7e:64:0c:65 (try 1/3)
[ 1588.224597] wlan0: authenticated
[ 1588.226837] wlan0: associate with 9c:9d:7e:64:0c:65 (try 1/3)
[ 1588.251002] wlan0: RX AssocResp from 9c:9d:7e:64:0c:65 (capab=0xc11 status=0 aid=4)
[ 1588.285477] wlan0: associated
[ 1594.374641] wlan0: deauthenticated from 9c:9d:7e:64:0c:65 (Reason: 15=4WAY_HANDSHAKE_TIMEOUT)
[ 1594.415926] wcn36xx: ERROR SMD_EVENT (312) not supported
[ 1650.775880] wlan0: authenticate with 9c:9d:7e:64:0c:65
[ 1650.826507] wlan0: send auth to 9c:9d:7e:64:0c:65 (try 1/3)
[ 1650.873112] wlan0: authenticated
[ 1650.878979] wlan0: associate with 9c:9d:7e:64:0c:65 (try 1/3)
[ 1650.903031] wlan0: RX AssocResp from 9c:9d:7e:64:0c:65 (capab=0xc11 status=0 aid=4)
[ 1650.938080] wlan0: associated
[ 1657.026323] wlan0: deauthenticated from 9c:9d:7e:64:0c:65 (Reason: 15=4WAY_HANDSHAKE_TIMEOUT)
[ 1657.056196] wcn36xx: ERROR SMD_EVENT (312) not supported
Just like the title, under the mainline kernel and the downstream kernel, it is not displayed
So @z3ntu and I noticed 5.18 didn't work on our sdm632 devices. We went and compared logs and we found that we had these lines in common in our stack traces:
4>[^@ 0.482967] Call trace:
<4>[ 0.482973] of_get_next_available_child+0x98/0xc0
<4>[ 0&482984] _of_add_table_indexed+0x5f0/0x8e4
<4>[ 0.482995] dev_pm_opp_of_add_table_in$exed+0p14/0x20
However z3ntu at first got that from dsi and adreno drivers, while I did with rpmpd. However eventually we find out that disabling CPU OPPs seemed to get us to initramfs(although very slowly) at least. I change match_data in cpufreq_nvmem to kryo because of an oversight from my side that thought it would fix it. And it kinda did: cpufreq-nvmem didn't probe successfully but otherwise my ocean was usable in weston. However I noticed an error about "Not Snapdragon 820/821!" on my log so I reverted and decided to look deeper.
I noticed a line <3>[ 0.196112] cpu cpu0: Failed to add OPP name speed6-pvs0-v0
. I later find out it's erroring out with -EPROBE_DEFER. A dependency with rpmpd perhaps? Would explain why it fails just before rpmpd panics. And yep, making rpmpd to sleep for 10 seconds made nvmem to probe deferral timeout, confirming my theory.
I went and look from the rpmpd side, and it seems the problem starts here. I did some printk debugging and it eventually led to here. But after that I can't get to figure it out. It doesn't help that that function is used quite a lot so I can't just pr_err
away because my log gets filled out and slows the phone down.
Anyway, I also can't get the phone to boot fine again without nvmem(it hangs on initfs). I may have modified something else when I tried the kryo_match_table in nvmem and now I can't figure out what. I also think it's possible disabling CPU OPP works because the phone is too slow to get to rpmpd in the first place.
EDIT: @alikates Said on Matrix that this affects his sdm625 too. Maybe it isn't sdm632 exclusive?
Full ramoops:
ramoops.txt
Since linux-6.3 booting linux on the fairphone-fp3 gives the following error messages:
[ 4.682114] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 4.682158] CPU0: Booted secondary processor 0x0000000000 [0x51af8014]
[ 4.700324] Detected VIPT I-cache on CPU1
[ 4.700373] cacheinfo: Unable to detect cache hierarchy for CPU 1
[ 4.700414] CPU1: Booted secondary processor 0x0000000001 [0x51af8014]
[ 4.719364] Detected VIPT I-cache on CPU2
[ 4.719402] cacheinfo: Unable to detect cache hierarchy for CPU 2
[ 4.719436] CPU2: Booted secondary processor 0x0000000002 [0x51af8014]
[ 4.737968] Detected VIPT I-cache on CPU3
[ 4.738006] cacheinfo: Unable to detect cache hierarchy for CPU 3
[ 4.738042] CPU3: Booted secondary processor 0x0000000003 [0x51af8014]
[ 4.756919] Detected VIPT I-cache on CPU4
[ 4.756970] cacheinfo: Unable to detect cache hierarchy for CPU 4
[ 4.757009] CPU4: Booted secondary processor 0x0000000100 [0x51af8002]
[ 4.773856] Detected VIPT I-cache on CPU5
[ 4.773892] cacheinfo: Unable to detect cache hierarchy for CPU 5
[ 4.773922] CPU5: Booted secondary processor 0x0000000101 [0x51af8002]
[ 4.791914] Detected VIPT I-cache on CPU6
[ 4.791951] cacheinfo: Unable to detect cache hierarchy for CPU 6
[ 4.791981] CPU6: Booted secondary processor 0x0000000102 [0x51af8002]
This patch fixes this on the fairphone-fp3, but similar patches will be needed for other devices:
commit 46d99d083306e88af47c5943b8229551fd63d720
Author: Bert Karwatzki <[email protected]>
Date: Sat May 13 13:04:10 2023 +0200
Add {i,d}-cache-size properties to the CPU nodes, cache-size
and unified-cache properties to the L2 nodes.
diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi b/arch/arm64/boot/dts/qcom/msm8953.dtsi
index 8328bac9f690..a88df4f14299 100644
--- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
@@ -284,11 +284,13 @@ CLUSTER_PC: cluster-power-collapse {
L2_0: l2-cache-0 {
compatible = "cache";
cache-level = <2>;
+ cache-unified;
};
L2_1: l2-cache-1 {
compatible = "cache";
cache-level = <2>;
+ cache-unified;
};
};
diff --git a/arch/arm64/boot/dts/qcom/sdm632.dtsi b/arch/arm64/boot/dts/qcom/sdm632.dtsi
index 8f0c8e686733..ff9f943bf2ef 100644
--- a/arch/arm64/boot/dts/qcom/sdm632.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm632.dtsi
@@ -148,29 +148,43 @@ cpu7-thermal {
/*
* SDM632 uses Kryo 250 instead of Cortex A53
* CPU0-3 are efficiency cores, CPU4-7 are performance cores
+ * cache sizes taken from
+ * https://en.wikipedia.org/wiki/Kryo#Kryo_250
*/
&CPU0 {
compatible = "qcom,kryo250";
clocks = <&apcc_c0_mux>;
clock-names = "cpu";
+ i-cache-size = <0x8000>;
+ d-cache-size = <0x8000>;
};
&CPU1 {
compatible = "qcom,kryo250";
clocks = <&apcc_c0_mux>;
clock-names = "cpu";
+ i-cache-size = <0x8000>;
+ d-cache-size = <0x8000>;
};
&CPU2 {
compatible = "qcom,kryo250";
clocks = <&apcc_c0_mux>;
clock-names = "cpu";
+ i-cache-size = <0x8000>;
+ d-cache-size = <0x8000>;
};
&CPU3 {
compatible = "qcom,kryo250";
clocks = <&apcc_c0_mux>;
clock-names = "cpu";
+ i-cache-size = <0x8000>;
+ d-cache-size = <0x8000>;
+};
+
+&L2_0 {
+ cache-size = <0x80000>;
};
&apcc_pll {
@@ -225,6 +239,8 @@ &CPU4 {
clocks = <&apcc_c1_mux>;
clock-names = "cpu";
power-domains = <&cpr 1>;
+ i-cache-size = <0x8000>;
+ d-cache-size = <0x8000>;
};
&CPU5 {
@@ -233,6 +249,8 @@ &CPU5 {
clocks = <&apcc_c1_mux>;
clock-names = "cpu";
power-domains = <&cpr 1>;
+ i-cache-size = <0x8000>;
+ d-cache-size = <0x8000>;
};
&CPU6 {
@@ -241,6 +259,8 @@ &CPU6 {
clocks = <&apcc_c1_mux>;
clock-names = "cpu";
power-domains = <&cpr 1>;
+ i-cache-size = <0x8000>;
+ d-cache-size = <0x8000>;
};
&CPU7 {
@@ -249,6 +269,12 @@ &CPU7 {
clocks = <&apcc_c1_mux>;
clock-names = "cpu";
power-domains = <&cpr 1>;
+ i-cache-size = <0x8000>;
+ d-cache-size = <0x8000>;
+};
+
+&L2_1 {
+ cache-size = <0x100000>;
};
&cpr {
I'm quite sure our sdhc_1 supports some crypto stuff (ICE). Need to check at runtime if that's actually the case and if that works correctly.
diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi b/arch/arm64/boot/dts/qcom/msm8953.dtsi
index 32349174c4bd..025684357f9a 100644
--- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
@@ -1042,8 +1042,11 @@ usb3_dwc3: usb@7000000 {
sdhc_1: mmc@7824900 {
compatible = "qcom,msm8953-sdhci", "qcom,sdhci-msm-v4";
- reg = <0x7824900 0x500>, <0x7824000 0x800>;
- reg-names = "hc", "core";
+ reg = <0x7824900 0x500>,
+ <0x7824000 0x800>,
+ <0x7824e00 0x200>,
+ <0x7803000 0x8000>;
+ reg-names = "hc", "core", "cqhci", "ice";
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
@@ -1051,8 +1054,9 @@ sdhc_1: mmc@7824900 {
clocks = <&gcc GCC_SDCC1_AHB_CLK>,
<&gcc GCC_SDCC1_APPS_CLK>,
- <&xo_board>;
- clock-names = "iface", "core", "xo";
+ <&xo_board>,
+ <&gcc GCC_SDCC1_ICE_CORE_CLK>;
+ clock-names = "iface", "core", "xo", "ice";
power-domains = <&rpmpd MSM8953_VDDCX>;
operating-points-v2 = <&sdhc1_opp_table>;
@@ -1066,6 +1070,7 @@ sdhc_1: mmc@7824900 {
mmc-ddr-1_8v;
bus-width = <8>;
non-removable;
+ supports-cqe;
status = "disabled";
Some message like [ 0.391950] sdhci_msm 4744000.mmc: mmc0: CQE init: success
for the supports-cqe property should pop up. Not sure how to validate ICE really.
edit: test commands from Konrad:
mkfs.ext4 -O encrypt part
mount -o inlinecrypt ...
fscrypt setup
mkdir secret/
fscrypt encrypt secret/
~ add some files to secret/ ~
~ you should/could get some spam in dmesg ~
umount
mount without inlinecrypt
you should have garbage (encrypted) data
fscrypt status private/ # Unlocked: No
fscrypt unlock private/
fscrypt status private/ # Unlocked: Yes
check that the files are still in there
fscrypt lock private/
fscrypt status private/ # Unlocked: No
Check that you have the same sort of garbage (encrypted) files as before
extra edit: more something like this
# CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
fallocate -l 1G part
mkfs.ext4 -O encrypt part
mkdir mount/
sudo mount -o inlinecrypt part mount/
sudo fscrypt setup # do this once
sudo fscrypt setup mount/
sudo mkdir mount/secret/
sudo fscrypt encrypt mount/secret/
# ~ add some files to secret/ ~
echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." | sudo tee mount/secret/lorem.txt
sudo f3write -e 1 mount/secret/
# ~ you should/could get some spam in dmesg ~
sudo umount mount/
sudo mount part mount/ # mount without inlinecrypt
# you should have garbage (encrypted) data
sudo fscrypt status mount/ # Unlocked: No
sudo fscrypt unlock mount/secret/
sudo fscrypt status mount/ # Unlocked: Yes
# check that the files are still in there
sudo fscrypt lock mount/secret/
sudo fscrypt status mount/ # Unlocked: No
Check that you have the same sort of garbage (encrypted) files as before
Initial work in #58
Last time I rebased IPA patches was with kernel version 6.1 and it was half-working.
Let's try tu update them to kernel-next/6.3 with the objective of upstreaming.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.