From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E5EC8C11F67 for ; Thu, 1 Jul 2021 07:56:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CFF2861492 for ; Thu, 1 Jul 2021 07:56:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235036AbhGAH7X (ORCPT ); Thu, 1 Jul 2021 03:59:23 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:35840 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234576AbhGAH7W (ORCPT ); Thu, 1 Jul 2021 03:59:22 -0400 Received: from [192.168.1.111] (91-158-153-130.elisa-laajakaista.fi [91.158.153.130]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 934C5268; Thu, 1 Jul 2021 09:56:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1625126210; bh=OUq9GBiPDtjNM+swD089evHPI06hAwe6Nt9Ejeorm30=; h=To:Cc:References:From:Subject:Date:In-Reply-To:From; b=YjRwa97Z3iLVpB+4HmRq0pA6EfqwdhKWIHaER8wTcRt9SIC3F1HZbdGVo8x46aZuq M8PSU1CDj2KaWbW+BPJYi1kyehbJxWKhRp1Vb9Gxv7Q4A+3GpGLjf43Gh7CpDL1WzB nUk3K5HTKIBh6+aHtg9duHm527JISCJv++hWQCyY= To: Pratyush Yadav , Mauro Carvalho Chehab Cc: Laurent Pinchart , Vignesh Raghavendra , Nikhil Devshatwar , Alexandre Courbot , Arnd Bergmann , Benoit Parrot , Bert Vermeulen , Dikshita Agarwal , Dongchun Zhu , Eugen Hristev , Ezequiel Garcia , Fabio Estevam , Georgi Djakov , Hans Verkuil , Helen Koike , Jacopo Mondi , Jiapeng Chong , Kieran Bingham , Kieran Bingham , Lad Prabhakar , Martina Krasteva , Maxime Ripard , Michael Tretter , Mirela Rabulea , Neil Armstrong , =?UTF-8?Q?Niklas_S=c3=b6derlund?= , Paul Kocialkowski , Qiushi Wu , Raag Jadav , Ricardo Ribalda , Rob Herring , Sakari Ailus , Stanimir Varbanov , Steve Longerbeam , Thomas Bogendoerfer , Tianshu Qiu , Yang Yingliang , Zou Wei , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org References: <20210624192200.22559-1-p.yadav@ti.com> From: Tomi Valkeinen Subject: Re: [PATCH v3 00/11] CSI2RX support on J721E Message-ID: Date: Thu, 1 Jul 2021 10:56:44 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210624192200.22559-1-p.yadav@ti.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Pratyush, On 24/06/2021 22:21, Pratyush Yadav wrote: > Hi, > > This series adds support for CSI2 capture on J721E. It includes some > fixes to the Cadence CSI2RX driver, adds runtime PM support to OV5640 > driver, and finally adds the TI CSI2RX wrapper driver. > > This series used to include the DPHY and DMA engine patches as well, but > they have been split off to facilitate easier merging. Patch 3 is > build-dependent on the DPHY series [0]. > > The DMA engine patch [1] can go in any order since that is only a run > time dependency. Things probably won't work without it but it will still > build fine. > > Tested on TI's J721E with OV5640 sensor. I applied these (csi-2 rx, phy, dma-engine) to linux-media/master, and added dts changes to add the csi2-rx. When sending the series, can you also push the branch you use for testing, as the posted patches do not include everything needed? Here are some notes from quick tests: Capture works, but the fps is ~28.98. I would expect it to be closer to 30. Are the clocks configured correctly? When I load the modules, I get: [ 237.322258] platform 4504000.csi-bridge: Fixing up cyclic dependency with 9-003c I get a warning from DMA-API debug: [ 298.774236] ------------[ cut here ]------------ [ 298.779109] DMA-API: ti-udma 31150000.dma-controller: mapping sg segment longer than device claims to support [len=1900544] [max=65536] [ 298.791331] WARNING: CPU: 1 PID: 605 at kernel/dma/debug.c:1172 debug_dma_map_sg+0x304/0x390 [ 298.799764] Modules linked in: ov5640 j721e_csi2rx cdns_csi2rx cdns_dphy v4l2_fwnode v4l2_async tidss ti_tfp410 tc358767 display_connector cdns_mhdp8546 panel_simple drm_kms_helper drm drm_panel_orientation_quirks cfbfillrect cfbimgblt cfbcopyarea phy_j721e_wiz phy_cadence_torrent [ 298.824656] CPU: 1 PID: 605 Comm: cam-mplex.py Not tainted 5.13.0-rc4-00417-g3331992006e9 #3 [ 298.833079] Hardware name: Texas Instruments K3 J721E SoC (DT) [ 298.838900] pstate: 60000005 (nZCv daif -PAN -UAO -TCO BTYPE=--) [ 298.844895] pc : debug_dma_map_sg+0x304/0x390 [ 298.849245] lr : debug_dma_map_sg+0x304/0x390 [ 298.853593] sp : ffff800014dcf730 [ 298.856899] x29: ffff800014dcf730 x28: ffff00080154a880 x27: ffffffffffffffff [ 298.864032] x26: 0000000000000000 x25: 0000000000000002 x24: 0000000000000001 [ 298.871164] x23: ffff80001163abe0 x22: 0000000000000000 x21: 0000000000000001 [ 298.878295] x20: ffff000801fa3010 x19: ffff000807585300 x18: 0000000000000000 [ 298.885426] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000030 [ 298.892558] x14: 6e61687420726567 x13: 6e6f6c20746e656d x12: ffff800011a91578 [ 298.899689] x11: 00000000000c0000 x10: ffff8000116b18f8 x9 : ffff8000100eabe0 [ 298.906820] x8 : ffff8000116598f8 x7 : ffff8000116b18f8 x6 : 0000000000000001 [ 298.913951] x5 : 0000000000000001 x4 : 0000000000000001 x3 : ffff800011260000 [ 298.921082] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff00080673b000 [ 298.928214] Call trace: [ 298.930653] debug_dma_map_sg+0x304/0x390 [ 298.934655] dma_map_sg_attrs+0x70/0xb0 [ 298.938487] drm_gem_map_dma_buf+0x6c/0xf0 [drm] [ 298.943185] __map_dma_buf+0x28/0x80 [ 298.946756] dma_buf_map_attachment+0xe4/0x220 [ 298.951191] vb2_dc_map_dmabuf+0x3c/0x150 [ 298.955194] __prepare_dmabuf+0x1dc/0x514 [ 298.959197] __buf_prepare+0x1a0/0x25c [ 298.962938] vb2_core_qbuf+0x3d4/0x72c [ 298.966679] vb2_qbuf+0x9c/0xf4 [ 298.969814] vb2_ioctl_qbuf+0x68/0x7c [ 298.973468] v4l_qbuf+0x54/0x70 [ 298.976603] __video_do_ioctl+0x194/0x400 [ 298.980603] video_usercopy+0x374/0xa14 [ 298.984431] video_ioctl2+0x24/0x4c [ 298.987912] v4l2_ioctl+0x4c/0x70 [ 298.991222] __arm64_sys_ioctl+0xb4/0xfc [ 298.995138] invoke_syscall+0x50/0x120 [ 298.998885] el0_svc_common.constprop.0+0x68/0x104 [ 299.003667] do_el0_svc+0x30/0x9c [ 299.006976] el0_svc+0x2c/0x54 [ 299.010025] el0_sync_handler+0x1a8/0x1ac [ 299.014025] el0_sync+0x198/0x1c0 [ 299.017333] irq event stamp: 98582 [ 299.020727] hardirqs last enabled at (98581): [] console_unlock+0x53c/0x6b4 [ 299.029325] hardirqs last disabled at (98582): [] el1_dbg+0x24/0xa0 [ 299.037144] softirqs last enabled at (98568): [] __do_softirq+0x500/0x6bc [ 299.045565] softirqs last disabled at (98413): [] __irq_exit_rcu+0x1d4/0x1e0 [ 299.054164] ---[ end trace bfe019acb2a9a04f ]--- I get a warning from media graph walk: [ 299.066357] WARNING: CPU: 1 PID: 605 at drivers/media/mc/mc-entity.c:343 media_graph_walk_next+0x268/0x2cc [ 299.076005] Modules linked in: ov5640 j721e_csi2rx cdns_csi2rx cdns_dphy v4l2_fwnode v4l2_async tidss ti_tfp410 tc358767 display_connector cdns_mhdp8546 panel_simple drm_kms_helper drm drm_panel_orientation_quirks cfbfillrect cfbimgblt cfbcopyarea phy_j721e_wiz phy_cadence_torrent [ 299.100889] CPU: 1 PID: 605 Comm: cam-mplex.py Tainted: G W 5.13.0-rc4-00417-g3331992006e9 #3 [ 299.110698] Hardware name: Texas Instruments K3 J721E SoC (DT) [ 299.116518] pstate: 60000005 (nZCv daif -PAN -UAO -TCO BTYPE=--) [ 299.122513] pc : media_graph_walk_next+0x268/0x2cc [ 299.127295] lr : media_graph_walk_next+0x264/0x2cc [ 299.132076] sp : ffff800014dcfa40 [ 299.135382] x29: ffff800014dcfa40 x28: 0000000000000000 x27: 0000000040045612 [ 299.142514] x26: 0000000000000001 x25: ffff800010d890f0 x24: ffff0008055c8148 [ 299.149645] x23: ffff0008055c8148 x22: ffff80001182bc40 x21: ffff80001163e2e8 [ 299.156776] x20: ffff80001182bbd0 x19: ffff0008055c8cb8 x18: 0000000000000000 [ 299.163907] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000028 [ 299.171037] x14: 0000000000000002 x13: 0000000000007e6f x12: 0000000000000002 [ 299.178169] x11: 0000000000040464 x10: 00000000916d3a5c x9 : ffff8000093110c0 [ 299.185301] x8 : ffff000807583d88 x7 : 0000000000000000 x6 : ffff00080673b900 [ 299.192431] x5 : 000000000000000a x4 : ffff000807583d80 x3 : ffff800011260000 [ 299.199562] x2 : 00000000000000c0 x1 : 00000000000000c0 x0 : 0000000000000000 [ 299.206693] Call trace: [ 299.209133] media_graph_walk_next+0x268/0x2cc [ 299.213568] ti_csi2rx_start_streaming+0xe0/0x5c8 [j721e_csi2rx] [ 299.219569] vb2_start_streaming+0x70/0x160 [ 299.223745] vb2_core_streamon+0x9c/0x1a0 [ 299.227745] vb2_ioctl_streamon+0x68/0xbc [ 299.231747] v4l_streamon+0x30/0x40 [ 299.235230] __video_do_ioctl+0x194/0x400 [ 299.239230] video_usercopy+0x374/0xa14 [ 299.243058] video_ioctl2+0x24/0x4c [ 299.246539] v4l2_ioctl+0x4c/0x70 [ 299.249847] __arm64_sys_ioctl+0xb4/0xfc [ 299.253764] invoke_syscall+0x50/0x120 [ 299.257508] el0_svc_common.constprop.0+0x68/0x104 [ 299.262291] do_el0_svc+0x30/0x9c [ 299.265599] el0_svc+0x2c/0x54 [ 299.268648] el0_sync_handler+0x1a8/0x1ac [ 299.272647] el0_sync+0x198/0x1c0 [ 299.275956] irq event stamp: 98754 [ 299.279349] hardirqs last enabled at (98753): [] _raw_spin_unlock_irqrestore+0x9c/0xc0 [ 299.288900] hardirqs last disabled at (98754): [] el1_dbg+0x24/0xa0 [ 299.296716] softirqs last enabled at (98606): [] __do_softirq+0x500/0x6bc [ 299.305138] softirqs last disabled at (98585): [] __irq_exit_rcu+0x1d4/0x1e0 Unloading the modules gives me: ERROR: Unhandled External Abort received on 0x80000001 from S-EL1 ERROR: exception reason=0 syndrome=0xbf000000 Unhandled Exception from EL1 x0 = 0x0000000000000000 x1 = 0xffff00080564c000 x2 = 0xffff800014314000 x3 = 0xffff800011260000 x4 = 0x0000000000000001 x5 = 0x0000000000000001 x6 = 0x0000000000000001 x7 = 0x0000000000000000 x8 = 0xffff8000118870c0 x9 = 0xffff800010bf2140 x10 = 0x000000008260a2b7 x11 = 0x00000000000c821c x12 = 0xffff800011a91578 x13 = 0x0000000000008b8e x14 = 0x0000000000000006 x15 = 0x0000000000000028 x16 = 0x0000000000000000 x17 = 0x0000000000000000 x18 = 0x00000000fffffffb x19 = 0xffff00080634cc00 x20 = 0x0000000000000000 x21 = 0xffff0008051eed00 x22 = 0xffff00080555f010 x23 = 0xffff00080555f000 x24 = 0xffff8000092e0058 x25 = 0x0000000000000047 x26 = 0xffff8000116d71d8 x27 = 0xffff8000092e0350 x28 = 0xffff8000092e0148 x29 = 0xffff800014d2f850 x30 = 0xffff8000092b0430 scr_el3 = 0x000000000000073d sctlr_el3 = 0x0000000030cd183f cptr_el3 = 0x0000000000000000 tcr_el3 = 0x0000000080803520 daif = 0x00000000000002c0 mair_el3 = 0x00000000004404ff spsr_el3 = 0x0000000000000005 elr_el3 = 0xffff8000092b0440 ttbr0_el3 = 0x0000000070010b00 esr_el3 = 0x00000000bf000000 far_el3 = 0x0000000000000000 spsr_el1 = 0x0000000060000005 elr_el1 = 0xffff800010be5e10 spsr_abt = 0x0000000000000000 spsr_und = 0x0000000000000000 spsr_irq = 0x0000000000000000 spsr_fiq = 0x0000000000000000 sctlr_el1 = 0x0000000034d4d91d actlr_el1 = 0x0000000000000000 cpacr_el1 = 0x0000000000300000 csselr_el1 = 0x0000000000000000 sp_el1 = 0xffff800014d2f850 esr_el1 = 0x0000000056000000 ttbr0_el1 = 0x00000008826e4a00 ttbr1_el1 = 0x076a000083180000 mair_el1 = 0x000c0400bb44ffff amair_el1 = 0x0000000000000000 tcr_el1 = 0x00000034f5d07590 tpidr_el1 = 0xffff80086e790000 tpidr_el0 = 0x0000ffff980d6920 tpidrro_el0 = 0x0000000000000000 par_el1 = 0x0000000000000000 mpidr_el1 = 0x0000000080000001 afsr0_el1 = 0x0000000000000000 afsr1_el1 = 0x0000000000000000 contextidr_el1 = 0x0000000000000000 vbar_el1 = 0xffff800010011000 cntp_ctl_el0 = 0x0000000000000005 cntp_cval_el0 = 0x000000294b786efd cntv_ctl_el0 = 0x0000000000000000 cntv_cval_el0 = 0x0000000000000000 cntkctl_el1 = 0x00000000000000d6 sp_el0 = 0x000000007000abd0 isr_el1 = 0x0000000000000040 dacr32_el2 = 0x0000000000000000 ifsr32_el2 = 0x0000000000000000 cpuectlr_el1 = 0x0000001b00000040 cpumerrsr_el1 = 0x0000000000000000 l2merrsr_el1 = 0x0000000000000000 Tomi