Re: [PATCH V23 00/16] Add support UHS-II for GL9755 and GL9767

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 24, 2024 at 8:57 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:
>
> On Fri, 18 Oct 2024 at 12:53, Victor Shih <victorshihgli@xxxxxxxxx> wrote:
> >
> > From: Victor Shih <victor.shih@xxxxxxxxxxxxxxxxxxx>
> >
> > Summary
> > =======
> > These patches[1] support UHS-II and fix GL9755 and GL9767
> > UHS-II compatibility.
> >
> > About UHS-II, roughly deal with the following three parts:
> > 1) A UHS-II detection and initialization:
> > - Host setup to support UHS-II (Section 3.13.1 Host Controller Setup
> >   Sequence[2]).
> > - Detect a UHS-II I/F (Section 3.13.2 Card Interface Detection Sequence
> >   [2]).
> > - In step(9) of Section 3.13.2 in [2], UHS-II initialization is include
> >   Section 3.13.3 UHS-II Card Initialization and Section 3.13.4 UHS-II
> >   Setting Register Setup Sequence.
> >
> > 2) Send Legacy SD command through SD-TRAN
> > - Encapsulated SD packets are defined in SD-TRAN in order to ensure Legacy
> >   SD compatibility and preserve Legacy SD infrastructures (Section 7.1.1
> >   Packet Types and Format Overview[3]).
> > - Host issue a UHS-II CCMD packet or a UHS-II DCMD (Section 3.13.5 UHS-II
> >   CCMD Packet issuing and Section 3.13.6 UHS-II DCMD Packet issuing[2]).
> >
> > 3) UHS-II Interrupt
> > - Except for UHS-II error interrupts, most interrupts share the original
> >   interrupt registers.
> >
> > Patch structure
> > ===============
> > patch#1:     for core
> > patch#2-#14: for sdhci
> > patch#15:    for GL9755
> > patch#16:    for GL9767
> >
> > Tests
> > =====
> > Ran 'dd' command to evaluate the performance 3 times:
> > (SanDisk UHS-II card on GL9755 controller)
> >                              Read    Write
> > UHS-II disabled (UHS-I): 81.9MB/s 51.4MB/s
> > UHS-II enabled         :  206MB/s 80.5MB/s
> >                              Read    Write
> > UHS-II disabled (UHS-I): 82.3MB/s 49.7MB/s
> > UHS-II enabled         :  208MB/s 80.8MB/s
> >                              Read    Write
> > UHS-II disabled (UHS-I): 82.9MB/s 50.8MB/s
> > UHS-II enabled         :  205MB/s 90.0MB/s
> > (SanDisk UHS-II card on GL9767 controller)
> >                              Read    Write
> > UHS-II disabled (UHS-I): 83.5MB/s 50.5MB/s
> > UHS-II enabled         :  200MB/s 75.3MB/s
> >                              Read    Write
> > UHS-II disabled (UHS-I): 85.2MB/s 56.3MB/s
> > UHS-II enabled         :  203MB/s 75.8MB/s
> >                              Read    Write
> > UHS-II disabled (UHS-I): 82.9MB/s 51.1MB/s
> > UHS-II enabled         :  196MB/s 77.8MB/s
> >
> > Test command
> > =====
> > Read: dd if=/dev/mmcxxx of=/dev/null bs=4096k count=2000 iflag=direct
> > Write:dd if=/dev/zero of=/dev/mmcxxx bs=4096k count=2000 oflag=direct
> >
> > Changes in v23 (October. 18, 2024)
> > * Rebase on latest mmc/next.
> > * Version 22 patch#1-patch#6 have already been applied to the mmc/next
> >   branch, so the patch order for version 23 has been shifted forward.
> > * Patch#1: Remove mmc_uhs2_card_prepare_cmd() function.
> >            Remove mmc_sd_can_poweroff_notify() function.
> >            Modify ios.timing setting in the sd_uhs2_power_off() function.
> >            Restore the position of assign the host->card to original
> >            position in the sd_uhs2_init_card() function.
> >            Remove unnecessary error handle in the sd_uhs2_init_card()
> >            function.
> >            Add oldcard judgment to skip some programs in the
> >            sd_uhs2_legacy_init() function.
> >            Remove unnecessary error handle in the sd_uhs2_legacy_init()
> >            function.
> >            Remove mmc_card_set_present() function in the
> >            sd_uhs2_reinit()function.
>
> I have queued this up for next, with a few amendments and added
> Adrian's acks to the SDHCI patches.
>
> When applying, I made a couple of cleanups and fixed
> sd_uhs2_power_off() to patch 1. I also took care of the checkpatch
> warnings for the SDHCI patches.
>
> That said, there are still some issues that remain to be fixed, but
> let's do that on top of the $subject series. See below:
>
> *) The error/re-init path of the card is broken, as also pointed out
> by Adrian. I will work on this shortly and send patches to fix this
> up, please help to review and test.
> *) We should read the card's ext registers, to for example enable the
> card's internal cache to be used.
> *) We should avoid unnecessary commands during re-init of the card, to
> decrease latency.
> *) During suspend, we should probably send the go-dormant command with
> the hibernate bit, rather than just doing a plain power-off.
>
> [...]
>
> Thanks and kind regards
> Uffe

Hi, Ulf and Adrian

I got it.
I will continue to discuss and implement the above issues with you and
offer any help I can.
Finally, thank you very much for your help and advice on this series of patches.

Thanks, Victor Shih





[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux