Hi Clément, On 24.10.20 at 15:00, Clément Péron wrote: > Hi Philip > > <snip> > >>> >>> I catched a slight difference between the mainline and vendor driver >>> in DDR mode. >>> >>> the phase is set to 1 >>> case MMC_TIMING_UHS_DDR50: >>> case MMC_TIMING_MMC_DDR52: >>> dat_drv_ph = 1; >>> speed_mod = SM2_HSDDR52_DDR50; >>> break; >>> >>> Could you add a hack in DDR mode and see if it's working better ? >>> >>> Maybe line 738: >>> >>> #define SDXC_REG_DRV_DL (0x0140) >>> #define SDXC_DAT_DRV_PH_SEL BIT(17) >>> >>> rval = mmc_readl(host, REG_DRV_DL); >>> rval |= SDXC_DAT_DRV_PH_SEL; >>> mmc_writel(host, REG_DRV_DL, rval); >> >> I tried with this patch but no luck, see log below <snip> > Sorry this will not work, as H6 uses new timing mode the function will > return before setting the DRV_PHASE. I'm actually testing on an A64 - but that shouldn't matter, right? > Could you retry with a patch like this : > https://github.com/clementperon/linux/commit/287a62a6e9ccda3ade9b407ce12ee7db0865b41b.patch Unfortunately that didn't work either: [...] [ 3.755418] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB, uses new timings mode [ 3.755432] sunxi-mmc 1c0f000.mmc: MMC version: 0.0.0 [ 3.758685] sunxi-mmc 1c10000.mmc: allocated mmc-pwrseq [ 3.783369] sunxi-mmc 1c10000.mmc: initialized, max. request size: 16384 KB, uses new timings mode [ 3.783382] sunxi-mmc 1c10000.mmc: MMC version: 0.0.0 [ 3.798267] mmc0: new high speed SDHC card at address aaaa [ 3.799776] mmcblk0: mmc0:aaaa SC16G 14.8 GiB [ 3.804248] mmcblk0: p1 [ 3.811371] sunxi-mmc 1c11000.mmc: initialized, max. request size: 2048 KB, uses new timings mode [ 3.811385] sunxi-mmc 1c11000.mmc: MMC version: 0.0.0 [...] [ 3.936574] sunxi-mmc 1c11000.mmc: Setting Phase delay [ 3.936890] mmc2: new DDR MMC card at address 0001 [ 3.938617] mmcblk2: mmc2:0001 Q2J55L 7.09 GiB [ 3.939692] mmcblk2boot0: mmc2:0001 Q2J55L partition 1 16.0 MiB [ 3.940519] mmcblk2boot1: mmc2:0001 Q2J55L partition 2 16.0 MiB [ 3.943067] sunxi-mmc 1c11000.mmc: data error, sending stop command [ 3.943083] sunxi-mmc 1c11000.mmc: send stop command failed [...] [ 4.009680] blk_update_request: I/O error, dev mmcblk2, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 4.009692] Buffer I/O error on dev mmcblk2, logical block 0, async page read [ 4.009817] sunxi-mmc 1c11000.mmc: data error, sending stop command [ 4.009899] blk_update_request: I/O error, dev mmcblk2, sector 2 op 0x0:(READ) flags 0x0 phys_seg 6 prio class 0 [ 4.009906] Buffer I/O error on dev mmcblk2, logical block 2, async page read [ 4.009914] Buffer I/O error on dev mmcblk2, logical block 3, async page read [ 4.009920] Buffer I/O error on dev mmcblk2, logical block 4, async page read [ 4.009926] Buffer I/O error on dev mmcblk2, logical block 5, async page read [ 4.009931] Buffer I/O error on dev mmcblk2, logical block 6, async page read [ 4.009937] Buffer I/O error on dev mmcblk2, logical block 7, async page read [...] > Thanks for your test, > Clement Thanks for trying to fix that :-) Philip