From: Robin Gong <yibin.gong@nxp.com> To: Fabio Estevam <festevam@gmail.com>, Russell King - ARM Linux admin <linux@armlinux.org.uk> Cc: Michael Olbrich <m.olbrich@pengutronix.de>, Lucas Stach <l.stach@pengutronix.de>, Vinod Koul <vkoul@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de>, dl-linux-imx <linux-imx@nxp.com>, Pengutronix Kernel Team <kernel@pengutronix.de>, "dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>, Dan Williams <dan.j.williams@intel.com>, Shawn Guo <shawnguo@kernel.org>, "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" <linux-arm-kernel@lists.infradead.org> Subject: RE: [PATCH v2] dmaengine: imx-sdma: fix incorrect conversion to readl_relaxed_poll_timeout_atomic() Date: Tue, 25 Jun 2019 09:00:03 +0000 [thread overview] Message-ID: <VE1PR04MB663808AF44F01F064C96125089E30@VE1PR04MB6638.eurprd04.prod.outlook.com> (raw) In-Reply-To: <CAOMZO5CdHXXP1X_71SVL4nrV=009xNugPFjbjP8s7NZ3byyP2w@mail.gmail.com> On Sun, Jun 23, 2019 at 21:30 Fabio Estevam <festevam@gmail.com> wrote: > Hi Russell, > > On Sat, Jun 22, 2019 at 5:27 PM Russell King - ARM Linux admin > <linux@armlinux.org.uk> wrote: > > > > On Sat, Jun 22, 2019 at 08:26:53PM +0100, Russell King - ARM Linux admin > wrote: > > > Well, this doesn't appear to completely solve the problem either - > > > one out of four of my platforms still spat out the error (because > > > the SDMA initialisation can run on a different CPU to that which > > > receives the interrupt.) > > > > > > I've thought about using a completion, but that doesn't work either, > > > because in the case of a single CPU, the interrupts will be masked, > > > so we can't wait for completion. I think we need to eliminate that > > > spinlock around this code. > > > > It looks like iMX6 Dual does not initialise DMA properly using the 1.1 > > firmware - md5sum is: > > > > 5d4584134cc4cba62e1be2f382cd6f3a > > /lib/firmware/imx/sdma/sdma-imx6q.bin > > > > I've tried extending the timeout to 5ms, checking HI[0] (both from the > > interrupt handler and from sdma_run_channel0() to cover the case of a > > single-core setup). > > > > After boot: > > > > 60: 0 0 GPC 2 Level sdma > > > > So no interrupt was received. Looking at the registers: > > > > # /shared/bin32/devmem2 0x20ec02c > > Value at address 0x020ec02c: 0x00000000 <= H_INTRMASK # > > /shared/bin32/devmem2 0x20ec004 Value at address 0x020ec004: > > 0x00000000 <= H_INTR # /shared/bin32/devmem2 0x20ec00c Value at > > address 0x020ec00c: 0x00000000 <= H_START # /shared/bin32/devmem2 > > 0x20ec008 Value at address 0x020ec008: 0x00000001 <= H_STATSTOP > > > > Any ideas? Seems sdma script not run as expected, thus no DONE instruction involved to clear 'HE' of H_STATSTOP and notify ARM by interrupt. So this timeout happened during the first ' sdma_load_script()' phase ? > Could you please try this patch from Robin? > https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.infra > dead.org%2Fpipermail%2Flinux-arm-kernel%2F2019-June%2F661914.html&a > mp;data=02%7C01%7Cyibin.gong%40nxp.com%7C7faa18517626429780d908 > d6f7ded3b6%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636968 > 933747699843&sdata=BIipoIgBc5sMahJkz33L5ucqeuHwyYnqg09ornpeLE > 4%3D&reserved=0 This should be the different case, since in Russell King's case, no any interrupt while my patch fix the potential interrupt storm. > > Thanks
WARNING: multiple messages have this Message-ID (diff)
From: Robin Gong <yibin.gong@nxp.com> To: Fabio Estevam <festevam@gmail.com>, Russell King - ARM Linux admin <linux@armlinux.org.uk> Cc: Sascha Hauer <s.hauer@pengutronix.de>, Vinod Koul <vkoul@kernel.org>, dl-linux-imx <linux-imx@nxp.com>, Pengutronix Kernel Team <kernel@pengutronix.de>, "dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>, Michael Olbrich <m.olbrich@pengutronix.de>, Shawn Guo <shawnguo@kernel.org>, Dan Williams <dan.j.williams@intel.com>, "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" <linux-arm-kernel@lists.infradead.org>, Lucas Stach <l.stach@pengutronix.de> Subject: RE: [PATCH v2] dmaengine: imx-sdma: fix incorrect conversion to readl_relaxed_poll_timeout_atomic() Date: Tue, 25 Jun 2019 09:00:03 +0000 [thread overview] Message-ID: <VE1PR04MB663808AF44F01F064C96125089E30@VE1PR04MB6638.eurprd04.prod.outlook.com> (raw) In-Reply-To: <CAOMZO5CdHXXP1X_71SVL4nrV=009xNugPFjbjP8s7NZ3byyP2w@mail.gmail.com> On Sun, Jun 23, 2019 at 21:30 Fabio Estevam <festevam@gmail.com> wrote: > Hi Russell, > > On Sat, Jun 22, 2019 at 5:27 PM Russell King - ARM Linux admin > <linux@armlinux.org.uk> wrote: > > > > On Sat, Jun 22, 2019 at 08:26:53PM +0100, Russell King - ARM Linux admin > wrote: > > > Well, this doesn't appear to completely solve the problem either - > > > one out of four of my platforms still spat out the error (because > > > the SDMA initialisation can run on a different CPU to that which > > > receives the interrupt.) > > > > > > I've thought about using a completion, but that doesn't work either, > > > because in the case of a single CPU, the interrupts will be masked, > > > so we can't wait for completion. I think we need to eliminate that > > > spinlock around this code. > > > > It looks like iMX6 Dual does not initialise DMA properly using the 1.1 > > firmware - md5sum is: > > > > 5d4584134cc4cba62e1be2f382cd6f3a > > /lib/firmware/imx/sdma/sdma-imx6q.bin > > > > I've tried extending the timeout to 5ms, checking HI[0] (both from the > > interrupt handler and from sdma_run_channel0() to cover the case of a > > single-core setup). > > > > After boot: > > > > 60: 0 0 GPC 2 Level sdma > > > > So no interrupt was received. Looking at the registers: > > > > # /shared/bin32/devmem2 0x20ec02c > > Value at address 0x020ec02c: 0x00000000 <= H_INTRMASK # > > /shared/bin32/devmem2 0x20ec004 Value at address 0x020ec004: > > 0x00000000 <= H_INTR # /shared/bin32/devmem2 0x20ec00c Value at > > address 0x020ec00c: 0x00000000 <= H_START # /shared/bin32/devmem2 > > 0x20ec008 Value at address 0x020ec008: 0x00000001 <= H_STATSTOP > > > > Any ideas? Seems sdma script not run as expected, thus no DONE instruction involved to clear 'HE' of H_STATSTOP and notify ARM by interrupt. So this timeout happened during the first ' sdma_load_script()' phase ? > Could you please try this patch from Robin? > https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.infra > dead.org%2Fpipermail%2Flinux-arm-kernel%2F2019-June%2F661914.html&a > mp;data=02%7C01%7Cyibin.gong%40nxp.com%7C7faa18517626429780d908 > d6f7ded3b6%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636968 > 933747699843&sdata=BIipoIgBc5sMahJkz33L5ucqeuHwyYnqg09ornpeLE > 4%3D&reserved=0 This should be the different case, since in Russell King's case, no any interrupt while my patch fix the potential interrupt storm. > > Thanks _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-06-25 9:00 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-22 16:53 [BUG] imx-sdma: readl_relaxed_poll_timeout_atomic() conversion Russell King - ARM Linux admin 2019-06-22 16:53 ` Russell King - ARM Linux admin 2019-06-22 18:02 ` [PATCH] dmaengine: imx-sdma: fix incorrect conversion to readl_relaxed_poll_timeout_atomic() Russell King 2019-06-22 18:02 ` Russell King 2019-06-22 18:10 ` [BUG] imx-sdma: readl_relaxed_poll_timeout_atomic() conversion Michael Olbrich 2019-06-22 18:10 ` Michael Olbrich 2019-06-22 18:42 ` Russell King - ARM Linux admin 2019-06-22 18:42 ` Russell King - ARM Linux admin 2019-06-22 18:51 ` Russell King - ARM Linux admin 2019-06-22 18:51 ` Russell King - ARM Linux admin 2019-06-24 12:14 ` Lucas Stach 2019-06-24 12:14 ` Lucas Stach 2019-06-24 12:15 ` Russell King - ARM Linux admin 2019-06-24 12:15 ` Russell King - ARM Linux admin 2019-06-24 12:52 ` Lucas Stach 2019-06-24 12:52 ` Lucas Stach 2019-06-22 18:55 ` [PATCH v2] dmaengine: imx-sdma: fix incorrect conversion to readl_relaxed_poll_timeout_atomic() Russell King 2019-06-22 18:55 ` Russell King 2019-06-22 19:26 ` Russell King - ARM Linux admin 2019-06-22 19:26 ` Russell King - ARM Linux admin 2019-06-22 20:26 ` Russell King - ARM Linux admin 2019-06-22 20:26 ` Russell King - ARM Linux admin 2019-06-23 13:29 ` Fabio Estevam 2019-06-23 13:29 ` Fabio Estevam 2019-06-25 9:00 ` Robin Gong [this message] 2019-06-25 9:00 ` Robin Gong
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=VE1PR04MB663808AF44F01F064C96125089E30@VE1PR04MB6638.eurprd04.prod.outlook.com \ --to=yibin.gong@nxp.com \ --cc=dan.j.williams@intel.com \ --cc=dmaengine@vger.kernel.org \ --cc=festevam@gmail.com \ --cc=kernel@pengutronix.de \ --cc=l.stach@pengutronix.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-imx@nxp.com \ --cc=linux@armlinux.org.uk \ --cc=m.olbrich@pengutronix.de \ --cc=s.hauer@pengutronix.de \ --cc=shawnguo@kernel.org \ --cc=vkoul@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.