linux-amlogic.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] mmc: meson-gx: chained descriptor fixup and improvements
@ 2018-12-06 15:18 Jerome Brunet
  2018-12-06 15:18 ` [PATCH 1/4] mmc: meson-gx: make sure the descriptor is stopped on errors Jerome Brunet
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Jerome Brunet @ 2018-12-06 15:18 UTC (permalink / raw)
  To: Ulf Hansson, Carlo Caione, Kevin Hilman
  Cc: linux-amlogic, linux-mmc, linux-kernel, Jerome Brunet

The goal of the patchset was mainly to address the following warning:

WARNING: CPU: 0 PID: 0 at /usr/src/kernel/drivers/mmc/host/meson-gx-mmc.c:1025 meson_mmc_irq+0xc0/0x1e0
Modules linked in: crc32_ce crct10dif_ce ipv6 overlay
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W         4.19.1 #1
Hardware name: Some A113 Board (DT)
pstate: 40000085 (nZcv daIf -PAN -UAO)
pc : meson_mmc_irq+0xc0/0x1e0
lr : __handle_irq_event_percpu+0x70/0x180
sp : ffff000008003980
x29: ffff000008003980 x28: 0000000000000000
[...]
x1 : ffff80001a71bd40 x0 : 0000000000000000
Call trace:
 meson_mmc_irq+0xc0/0x1e0
 __handle_irq_event_percpu+0x70/0x180
 handle_irq_event_percpu+0x34/0x88
 handle_irq_event+0x48/0x78
 handle_fasteoi_irq+0xa0/0x180
 generic_handle_irq+0x24/0x38
 __handle_domain_irq+0x5c/0xb8
 gic_handle_irq+0x58/0xa8

This happens when using the chained descriptor mode. If there is an
error, we call mmc_request_done(), loosing any reference to the cmd. It
turns out that the chained descriptor does really stops when we do so, at
least not completly. Most of the time, it can be seen with this harmless
warning because the descriptor will raise another unexpected IRQ. On rare
occasion, it will completly break the MMC.

This is mostly adressed by patch #1.
With this fixed, I took (yet) another look at the ultra-high speed modes
and the tuning.

I came up with new settings in patch 3 and 4. I've tested them on eMMC,
sdcard and sdio on the following platforms:
 * gxbb p200
 * gxl p230, libretech (eMMC only), kvim.
 * axg s400

So far, these new settings seems to be working great but I think it
would be nice if others could test this and provide their feedback.
This why  patch 3 and 4 are RFT tagged.

Jerome Brunet (4):
  mmc: meson-gx: make sure the descriptor is stopped on errors
  mmc: meson-gx: remove useless lock
  mmc: meson-gx: align default phase on soc vendor tree
  mmc: meson-gx: add signal resampling

 drivers/mmc/host/meson-gx-mmc.c | 100 ++++++++++++++++++++++++--------
 1 file changed, 75 insertions(+), 25 deletions(-)

-- 
2.19.2


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-01-08 22:00 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-06 15:18 [PATCH 0/4] mmc: meson-gx: chained descriptor fixup and improvements Jerome Brunet
2018-12-06 15:18 ` [PATCH 1/4] mmc: meson-gx: make sure the descriptor is stopped on errors Jerome Brunet
2018-12-06 15:18 ` [PATCH 2/4] mmc: meson-gx: remove useless lock Jerome Brunet
2018-12-06 15:18 ` [RFT PATCH 3/4] mmc: meson-gx: align default phase on soc vendor tree Jerome Brunet
2018-12-06 15:18 ` [RFT PATCH 4/4] mmc: meson-gx: add signal resampling Jerome Brunet
2018-12-07  4:14 ` [PATCH 0/4] mmc: meson-gx: chained descriptor fixup and improvements Kevin Hilman
2018-12-07 11:34   ` Jerome Brunet
2018-12-11  9:32 ` Ulf Hansson
2018-12-22 17:28 ` Martin Blumenstingl
2019-01-02 12:46   ` Jerome Brunet
2019-01-08 22:00     ` Martin Blumenstingl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).