From: Lai Jason <jasonlai.genesyslogic@gmail.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: "AKASHI Takahiro" <takahiro.akashi@linaro.org>,
"Adrian Hunter" <adrian.hunter@intel.com>,
linux-mmc <linux-mmc@vger.kernel.org>,
"Ben Chuang" <ben.chuang@genesyslogic.com.tw>,
"GregTu[杜啟軒]" <greg.tu@genesyslogic.com.tw>,
"Jason Lai" <Jason.Lai@genesyslogic.com.tw>,
otis.wu@genesyslogic.com.tw, 莊智量 <benchuanggli@gmail.com>
Subject: Re: [PATCH 6/7] mmc: Implement content of UHS-II card initialization functions
Date: Fri, 14 Jan 2022 11:18:23 +0800 [thread overview]
Message-ID: <CAG0XXUFO-NC9DOFCag9A=VEs27ZP80kPf3eTkFoFtticQksKDg@mail.gmail.com> (raw)
In-Reply-To: <CAPDyKFoptpMeKS29qqMN1E-h_FMieHAKVvbAZ6vDAYPdSuvTqQ@mail.gmail.com>
On Wed, Dec 15, 2021 at 4:29 AM Ulf Hansson <ulf.hansson@linaro.org> wrote:
>
> On Fri, 3 Dec 2021 at 11:51, Jason Lai <jasonlai.genesyslogic@gmail.com> wrote:
> >
> > From: Jason Lai <jason.lai@genesyslogic.com.tw>
> >
> > UHS-II card initialization flow is divided into 2 categories: PHY & Card.
> > Part 1 - PHY Initialization:
> > Every host controller may need their own avtivation operation
> > to establish LINK between controller and card. So we add a new
> > member function(uhs2_detect_init) in struct mmc_host_ops for host
> > controller use.
> > Part 2 - Card Initialization:
> > This part can be divided into 6 substeps.
> > 1. Send UHS-II CCMD DEVICE_INIT to card.
> > 2. Send UHS-II CCMD ENUMERATE to card.
> > 3. Send UHS-II Native Read CCMD to obtain capabilities in CFG_REG
> > of card.
> > 4. Host compares capabilities of host controller and card,
> > then write the negotiated values to Setting field in CFG_REG
> > of card through UHS-II Native Write CCMD.
> > 5. Switch host controller's clock to Range B if it is supported
> > by both host controller and card.
> > 6. Execute legacy SD initialization flow.
> > Part 3 - Provide a function to tranaform legacy SD command packet into
> > UHS-II SD-TRAN DCMD packet.
> >
> > Most of the code added above came from Intel's original patch[1].
> >
> > [1]
> > https://patchwork.kernel.org/project/linux-mmc/patch/1419672479-30852-2-
> > git-send-email-yi.y.sun@intel.com/
> >
> > Signed-off-by: Jason Lai <jason.lai@genesyslogic.com.tw>
> > ---
> > drivers/mmc/core/sd_uhs2.c | 831 ++++++++++++++++++++++++++++++++++++-
> > 1 file changed, 810 insertions(+), 21 deletions(-)
> >
> > diff --git a/drivers/mmc/core/sd_uhs2.c b/drivers/mmc/core/sd_uhs2.c
> > index 24aa51a6d..d13283d54 100644
> > --- a/drivers/mmc/core/sd_uhs2.c
> > +++ b/drivers/mmc/core/sd_uhs2.c
> > @@ -3,6 +3,7 @@
[...]
> > +/**
> > + * sd_uhs2_cmd_assemble() - build up UHS-II command packet which is embeded in
> > + * mmc_command structure
> > + * @cmd: MMC command to executed
> > + * @uhs2_cmd: UHS2 command corresponded to MMC command
> > + * @header: Header field of UHS-II command cxpacket
> > + * @arg: Argument field of UHS-II command packet
> > + * @payload: Payload field of UHS-II command packet
> > + * @plen: Payload length
> > + * @resp: Response buffer is allocated by caller and it is used to keep
> > + * the response of CM-TRAN command. For SD-TRAN command, uhs2_resp
> > + * should be null and SD-TRAN command response should be stored in
> > + * resp of mmc_command.
> > + * @resp_len: Response buffer length
> > + *
> > + * Different from legacy SD command, there defined several types of packets
> > + * in UHS-II, which include CM-TRAN and SD-TRAN. These packets are then
> > + * transformed to differential signals and transmitted/received between
> > + * transceiver and receiver.
> > + *
> > + * The UHS-II packet structure(uhs2_cmd) are added in structure mmc_command
> > + * and be filled according to the inputed parameters provided by caller.
> > + *
> > + * For mmc requests, call this function before issuing command to SD card.
> > + * Host controller specific request function will send packet in uhs2_cmd
> > + * to UHS-II SD card.
> > + *
>
> I think we discussed the above functions description earlier. The
> above description is just way too overwhelming. What the function does
> is that fills out the uhs2_cmd data structure, that's it.
>
> As this is a static function, I wouldn't mind that you simply drop the
> entire function description above. Or try to make the description
> short and clear.
I try to make the function description more briefly:
/**
* sd_uhs2_cmd_assemble() - build up UHS-II command packet which is embeded in
* mmc_command structure
* @cmd: MMC command to executed
* @uhs2_cmd: UHS2 command corresponded to MMC command
* @header: Header field of UHS-II command cxpacket
* @arg: Argument field of UHS-II command packet
* @payload: Payload field of UHS-II command packet
* @plen: Payload length
* @resp: Response buffer is allocated by caller and it is used to keep
* the response of CM-TRAN command. For SD-TRAN command, uhs2_resp
* should be null and SD-TRAN command response should be stored in
* resp of mmc_command.
* @resp_len: Response buffer length
*
* The uhs2_command structure contains message packets which are transmited/
* received on UHS-II bus. This function fills in the contents of uhs2_command
* structure and embededs UHS2 command into mmc_command structure, which is used
* in legacy SD operation functions.
*
*/
What do you think?
kind regards,
Jason Lai
> [...]
>
> I have stopped the review at this point, let's see if we can conclude
> on the way forward around my comments on the parts above, to start
> with.
>
> Kind regards
> Uffe
next prev parent reply other threads:[~2022-01-14 3:18 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-03 10:50 [PATCH 0/7] Preparations to support SD UHS-II cards Jason Lai
2021-12-03 10:50 ` [PATCH 1/7] mmc: core: Cleanup printing of speed mode at card insertion Jason Lai
2021-12-03 10:50 ` [PATCH 2/7] mmc: core: Prepare to support SD UHS-II cards Jason Lai
2021-12-03 10:50 ` [PATCH 3/7] mmc: core: Announce successful insertion of an SD UHS-II card Jason Lai
2021-12-03 10:51 ` [PATCH 4/7] mmc: core: Extend support for mmc regulators with a vqmmc2 Jason Lai
2021-12-03 10:51 ` [PATCH 5/7] mmc: add UHS-II related definitions in headers Jason Lai
2021-12-14 13:37 ` Ulf Hansson
2022-01-06 8:37 ` Lai Jason
2022-01-07 16:49 ` Ulf Hansson
2022-01-14 3:01 ` Lai Jason
2021-12-03 10:51 ` [PATCH 6/7] mmc: Implement content of UHS-II card initialization functions Jason Lai
2021-12-14 20:28 ` Ulf Hansson
2022-01-06 10:31 ` Lai Jason
2022-01-07 17:08 ` Ulf Hansson
2022-01-14 3:18 ` Lai Jason [this message]
2021-12-03 10:51 ` [PATCH 7/7] mmc: core: Support UHS-II card access Jason Lai
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='CAG0XXUFO-NC9DOFCag9A=VEs27ZP80kPf3eTkFoFtticQksKDg@mail.gmail.com' \
--to=jasonlai.genesyslogic@gmail.com \
--cc=Jason.Lai@genesyslogic.com.tw \
--cc=adrian.hunter@intel.com \
--cc=ben.chuang@genesyslogic.com.tw \
--cc=benchuanggli@gmail.com \
--cc=greg.tu@genesyslogic.com.tw \
--cc=linux-mmc@vger.kernel.org \
--cc=otis.wu@genesyslogic.com.tw \
--cc=takahiro.akashi@linaro.org \
--cc=ulf.hansson@linaro.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).