Message ID | 1605839346-10648-1-git-send-email-daoyuan.huang@mediatek.com |
---|---|
Headers | show |
Series | media: mediatek: support mdp3 on mt8183 platform | expand |
Hi Daoyuan, > Depend on: > [1] https://lore.kernel.org/patchwork/patch/1164746/ > [2] https://patchwork.kernel.org/patch/11703299/ > [3] https://patchwork.kernel.org/patch/11283773/ Can you provide an updated list of dependencies because it seems this patch depends on more than the patch aboves. I applied the related patch series above but there is still missing node ERROR (phandle_references): /soc/mdp-rdma0@14001000: Reference to non-existent node or label "scp" ERROR (phandle_references): /soc/mdp-rdma0@14001000: Reference to non-existent node or label "mutex" It would be even better if you could provide a branch with all the dependencies included. > mmsys: syscon@14000000 { > compatible = "mediatek,mt8183-mmsys", "syscon"; > + mdp-comps = "mediatek,mt8183-mdp-dl", > + "mediatek,mt8183-mdp-dl"; > + mdp-comp-ids = <0 1>; > reg = <0 0x14000000 0 0x1000>; > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>; > #clock-cells = <1>; > + clocks = <&mmsys CLK_MM_MDP_DL_TXCK>, > + <&mmsys CLK_MM_MDP_DL_RX>, > + <&mmsys CLK_MM_IPU_DL_TXCK>, > + <&mmsys CLK_MM_IPU_DL_RX>; > + }; The kernel is not booting anymore when the 4 clocks above are added, if I remove them I can boot again. See the following log: [ 0.401314] Unable to handle kernel paging request at virtual address fffffffffffffffe [ 0.402320] Mem abort info: [ 0.402674] ESR = 0x96000004 [ 0.403062] EC = 0x25: DABT (current EL), IL = 32 bits [ 0.403741] SET = 0, FnV = 0 [ 0.404128] EA = 0, S1PTW = 0 [ 0.404526] Data abort info: [ 0.404890] ISV = 0, ISS = 0x00000004 [ 0.405374] CM = 0, WnR = 0 [ 0.405751] swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000415ee000 [ 0.406595] [fffffffffffffffe] pgd=0000000000000000, p4d=0000000000000000 [ 0.407457] Internal error: Oops: 96000004 [#1] PREEMPT SMP [ 0.408160] Modules linked in: [ 0.408551] CPU: 4 PID: 51 Comm: kworker/4:1 Not tainted 5.9.0-mtk-00010-g121ba830623e-dirty #2 [ 0.409646] Hardware name: MediaTek MT8183 evaluation board (DT) [ 0.410416] Workqueue: events deferred_probe_work_func [ 0.411067] pstate: 20000005 (nzCv daif -PAN -UAO BTYPE=--) [ 0.411772] pc : clk_prepare+0x18/0x44 [ 0.412252] lr : scpsys_power_on+0x1e8/0x470 [ 0.412791] sp : ffff800011fa3a20 [ 0.413209] x29: ffff800011fa3a20 x28: 0000000000000000 [ 0.413881] x27: 0000000000000000 x26: 0000000000000000 [ 0.414551] x25: ffff00007a23ade0 x24: ffff00007a223b80 [ 0.415222] x23: ffff800011f5d30c x22: ffff00007a23a888 [ 0.415892] x21: fffffffffffffffe x20: 0000000000000000 [ 0.416563] x19: 0000000000000000 x18: 0000000000000020 [ 0.417233] x17: 0000000000000020 x16: 0000000052d9c4c7 [ 0.417904] x15: 0000000000000059 x14: ffff00007a23a640 [ 0.418575] x13: ffff00007a23a5c0 x12: 0000000000000000 [ 0.419245] x11: ffff8000108331c0 x10: ffff800010833030 [ 0.419916] x9 : 0000000000000000 x8 : ffff00007a751c00 [ 0.420587] x7 : ffff800011fa3a70 x6 : 00000000130f968d [ 0.421257] x5 : ffff8000110043f0 x4 : 0000000000000184 [ 0.421927] x3 : 0000000000000000 x2 : 0000000000000008 [ 0.422598] x1 : 000000000000000d x0 : fffffffffffffffe [ 0.423268] Call trace: [ 0.423581] clk_prepare+0x18/0x44 [ 0.424014] scpsys_power_on+0x1e8/0x470 [ 0.424511] scpsys_probe+0x3f4/0x66c [ 0.424975] platform_drv_probe+0x54/0xb0 [ 0.425483] really_probe+0xe4/0x490 [ 0.425937] driver_probe_device+0x58/0xc0 [ 0.426456] __device_attach_driver+0xa8/0x10c [ 0.427019] bus_for_each_drv+0x78/0xcc [ 0.427504] __device_attach+0xdc/0x180 [ 0.427990] device_initial_probe+0x14/0x20 [ 0.428521] bus_probe_device+0x9c/0xa4 [ 0.429007] deferred_probe_work_func+0x74/0xb0 [ 0.429582] process_one_work+0x1cc/0x350 [ 0.430090] worker_thread+0x2c0/0x470 [ 0.430565] kthread+0x154/0x160 [ 0.430976] ret_from_fork+0x10/0x30 [ 0.431431] Code: 910003fd f9000bf3 52800013 b40000e0 (f9400013) [ 0.432200] ---[ end trace d3ecf925b254a559 ]---
From: daoyuan huang <daoyuan.huang@mediatek.com> Changes since v3: - Rebase on v5.9-rc1. - modify code for review comment from Rob Herring, cancel multiple nodes using same register base situation. - control IOMMU port through pm runtime get/put to DMA components' device. - SCP(VPU) driver revision. - stop queuing jobs(remove flush_workqueue()) after mdp_m2m_release(). - add computation of plane address with data_offset. - fix scale ratio check issue. - add default v4l2_format setting. Changes since v2: - modify code for review comment from Tomasz Figa & Alexandre Courbot - review comment from Rob Herring will offer code revision in v4, due to it's related to device node modification, will need to modify code architecture Changes since v1: - modify code for CMDQ v3 API support - EC ipi cmd migration - fix compliance test fail item (m2m cmd with -f) due to there is two problem in runing all format(-f) cmd: 1. out of memory before test complete Due to capture buffer mmap (refcount + 1) after reqbuf but seems no corresponding munmap called before device close. There are total 12XX items(formats) in format test and each format alloc 8 capture/output buffers. 2. unceasingly captureBufs() (randomly) Seems the break statement didn't catch the count == 0 situation: In v4l2-test-buffers.cpp, function: captureBufs() ... count--; if (!node->is_m2m && !count) break; Log is as attachment I will paste the test result with problem part in another e-mail Hi, This is the first version of RFC patch for Media Data Path 3 (MDP3), MDP3 is used for scaling and color format conversion. support using GCE to write register in critical time limitation. support V4L2 m2m device control. daoyuan huang (4): [v4,1/4] dt-binding: mt8183: Add Mediatek MDP3 dt-bindings [v4,2/4] dts: arm64: mt8183: Add Mediatek MDP3 nodes [v4,3/4] media: platform: Add Mediatek MDP3 driver KConfig [v4,4/4] media: platform: mtk-mdp3: Add Mediatek MDP3 driver .../bindings/media/mediatek,mt8183-mdp3.txt | 208 +++ arch/arm64/boot/dts/mediatek/mt8183.dtsi | 116 ++ drivers/media/platform/Kconfig | 17 + drivers/media/platform/Makefile | 2 + drivers/media/platform/mtk-mdp3/Makefile | 7 + drivers/media/platform/mtk-mdp3/isp_reg.h | 37 + .../media/platform/mtk-mdp3/mdp-platform.h | 58 + .../media/platform/mtk-mdp3/mdp_reg_ccorr.h | 75 + .../media/platform/mtk-mdp3/mdp_reg_rdma.h | 206 +++ drivers/media/platform/mtk-mdp3/mdp_reg_rsz.h | 109 ++ .../media/platform/mtk-mdp3/mdp_reg_wdma.h | 125 ++ .../media/platform/mtk-mdp3/mdp_reg_wrot.h | 115 ++ .../media/platform/mtk-mdp3/mmsys_config.h | 188 +++ drivers/media/platform/mtk-mdp3/mmsys_mutex.h | 35 + .../media/platform/mtk-mdp3/mmsys_reg_base.h | 38 + drivers/media/platform/mtk-mdp3/mtk-img-ipi.h | 281 ++++ .../media/platform/mtk-mdp3/mtk-mdp3-cmdq.c | 504 ++++++ .../media/platform/mtk-mdp3/mtk-mdp3-cmdq.h | 54 + .../media/platform/mtk-mdp3/mtk-mdp3-comp.c | 1420 +++++++++++++++++ .../media/platform/mtk-mdp3/mtk-mdp3-comp.h | 155 ++ .../media/platform/mtk-mdp3/mtk-mdp3-core.c | 269 ++++ .../media/platform/mtk-mdp3/mtk-mdp3-core.h | 86 + .../media/platform/mtk-mdp3/mtk-mdp3-m2m.c | 795 +++++++++ .../media/platform/mtk-mdp3/mtk-mdp3-m2m.h | 42 + .../media/platform/mtk-mdp3/mtk-mdp3-regs.c | 748 +++++++++ .../media/platform/mtk-mdp3/mtk-mdp3-regs.h | 373 +++++ .../media/platform/mtk-mdp3/mtk-mdp3-vpu.c | 313 ++++ .../media/platform/mtk-mdp3/mtk-mdp3-vpu.h | 79 + 28 files changed, 6455 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8183-mdp3.txt create mode 100644 drivers/media/platform/mtk-mdp3/Makefile create mode 100644 drivers/media/platform/mtk-mdp3/isp_reg.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp-platform.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_ccorr.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_rdma.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_rsz.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_wdma.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_wrot.h create mode 100644 drivers/media/platform/mtk-mdp3/mmsys_config.h create mode 100644 drivers/media/platform/mtk-mdp3/mmsys_mutex.h create mode 100644 drivers/media/platform/mtk-mdp3/mmsys_reg_base.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-img-ipi.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-core.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-m2m.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-m2m.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-regs.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-regs.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-vpu.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-vpu.h