From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Russell King <linux@arm.linux.org.uk>,
"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
Chris Ball <chris@printf.net>,
Ulf Hansson <ulf.hansson@linaro.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
agross@quicinc.com,
"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>
Subject: Re: [PATCH v1 11/11] mmc: mmci: Add Qcom specific pio_read function.
Date: Tue, 13 May 2014 10:42:55 +0100 [thread overview]
Message-ID: <5371E91F.7000807@linaro.org> (raw)
In-Reply-To: <CACRpkdY_NzRaz5fiWJDF=rZY6WizmwbDZG6c_+FR+L9Aix8peQ@mail.gmail.com>
On 13/05/14 09:34, Linus Walleij wrote:
> On Tue, Apr 29, 2014 at 10:21 AM, <srinivas.kandagatla@linaro.org> wrote:
>
>> From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>>
>> MCIFIFOCNT register behaviour on Qcom chips is very different than the other
>> pl180 integrations. MCIFIFOCNT register contains the number of
>> words that are still waiting to be transferred through the FIFO. It keeps
>> decrementing once the host CPU reads the MCIFIFO. With the existing logic and
>> the MCIFIFOCNT behaviour, mmci_pio_read will loop forever, as the FIFOCNT
>> register will always return transfer size before reading the FIFO.
>>
>> Also the data sheet states that "This register is only useful for debug
>> purposes and should not be used for normal operation since it does not reflect
>> data which may or may not be in the pipeline".
>>
>> This patch implements qcom_pio_read function so as existing mmci_pio_read is
>> not suitable for Qcom SOCs.
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> (...)
>
>> +static int mmci_qcom_pio_read(struct mmci_host *host, char *buffer,
>> + unsigned int remain)
>> +{
>> + uint32_t *ptr = (uint32_t *) buffer;
>
> Just use u32 for this.
>
>> + int count = 0;
>> + struct variant_data *variant = host->variant;
>> + int fifo_size = variant->fifosize;
>> +
>> + if (remain % 4)
>> + remain = ((remain >> 2) + 1) << 2;
>
> Explain in a comment exactly what is happening here or noone will
> understand the code.
Ok, I will add more comments here.
>
>> + while (readl(host->base + MMCISTATUS) & MCI_RXDATAAVLBL) {
>> + *ptr = readl(host->base + MMCIFIFO + (count % fifo_size));
>> + ptr++;
>> + count += sizeof(uint32_t);
>> + remain -= sizeof(uint32_t);
>
>
> sizeof(u32) or just 4 works for these...
>
Yes, Will fix it in next version.
> count += 4;
> remain -= 4;
>
> Is easier to parse and understand I think.
>
>> + if (remain == 0)
>> + break;
>
> if (!remain)
> break;
>
yep.
>> + }
>> + return count;
>> +}
>
>> - if (status & MCI_RXACTIVE)
>> - len = mmci_pio_read(host, buffer, remain);
>> + if (status & MCI_RXACTIVE) {
>> + if (host->hw_designer == AMBA_VENDOR_QCOM)
>> + len = mmci_qcom_pio_read(host, buffer, remain);
>> + else
>> + len = mmci_pio_read(host, buffer, remain);
>> + }
>
> Use something like bool qcom_fifo; in vendor data instead.
>
Ok, make sense, I will fix this in next version.
--srini
> Yours,
> Linus Walleij
>
next prev parent reply other threads:[~2014-05-13 9:42 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-21 21:43 [PATCH RFC 00/12] Add Qualcomm SD Card Controller support srinivas.kandagatla
2014-04-21 21:47 ` [PATCH RFC 01/12] ARM: amba: Add Qualcomm vendor ID srinivas.kandagatla
2014-04-21 21:47 ` [PATCH RFC 02/12] mmc: mmci: Add Qualcomm Id to amba id table srinivas.kandagatla
2014-04-21 21:47 ` [PATCH RFC 03/12] mmc: mmci: Add Qcom datactrl register variant srinivas.kandagatla
2014-04-21 21:47 ` [PATCH RFC 04/12] mmc: mmci: Add register read/write wrappers srinivas.kandagatla
2014-04-21 21:47 ` [PATCH RFC 05/12] mmc: mmci: use NSEC_PER_SEC macro srinivas.kandagatla
2014-04-21 21:48 ` [PATCH RFC 06/12] mmc: mmci: Add write delay to variant structure srinivas.kandagatla
2014-04-21 22:08 ` Felipe Balbi
2014-04-22 8:15 ` Srinivas Kandagatla
2014-04-21 21:48 ` [PATCH RFC 07/12] mmc: mmci: Qcomm: Add 3 clock cycle delay after each register write srinivas.kandagatla
2014-04-21 21:48 ` [PATCH RFC 08/12] mmc: mmci: move ST specific register extensions access under condition srinivas.kandagatla
2014-04-21 21:48 ` [PATCH RFC 09/12] mmc: mmci: Qcom fix MCICLK register settings srinivas.kandagatla
2014-04-21 21:49 ` [PATCH RFC 10/12] mmc: mmci: Add clock support for Qualcomm srinivas.kandagatla
2014-04-21 22:20 ` Stephen Boyd
2014-04-22 10:03 ` Srinivas Kandagatla
2014-04-21 21:49 ` [PATCH RFC 11/12] mmc: mmci: Add Qcom variations to MCICommand register srinivas.kandagatla
2014-04-21 21:49 ` [PATCH RFC 12/12] mmc: mmci: Add Qcom specific pio_read function srinivas.kandagatla
2014-04-22 12:58 ` [PATCH RFC 00/12] Add Qualcomm SD Card Controller support Christopher Covington
2014-04-22 14:16 ` Srinivas Kandagatla
2014-04-29 8:18 ` [PATCH v1 00/11] " srinivas.kandagatla
2014-04-29 8:19 ` [PATCH v1 01/11] ARM: amba: Add Qualcomm vendor ID srinivas.kandagatla
2014-05-13 7:16 ` Linus Walleij
2014-05-13 9:41 ` Srinivas Kandagatla
2014-05-13 22:13 ` Stephen Boyd
2014-05-14 6:45 ` Srinivas Kandagatla
2014-05-16 16:24 ` Linus Walleij
2014-05-16 16:43 ` Stephen Boyd
2014-05-22 21:54 ` Linus Walleij
2014-04-29 8:19 ` [PATCH v1 02/11] mmc: mmci: Add Qualcomm Id to amba id table srinivas.kandagatla
2014-05-13 7:17 ` Linus Walleij
2014-05-13 9:00 ` Srinivas Kandagatla
2014-04-29 8:19 ` [PATCH v1 03/11] mmc: mmci: Add Qcom datactrl register variant srinivas.kandagatla
2014-05-13 7:19 ` Linus Walleij
2014-04-29 8:19 ` [PATCH v1 04/11] mmc: mmci: Add register read/write wrappers srinivas.kandagatla
2014-04-29 8:20 ` [PATCH v1 05/11] mmc: mmci: use NSEC_PER_SEC macro srinivas.kandagatla
2014-05-13 7:20 ` Linus Walleij
2014-05-13 9:02 ` Srinivas Kandagatla
2014-04-29 8:20 ` [PATCH v1 06/11] mmc: mmci: Qcomm: Add 3 clock cycle delay after register write srinivas.kandagatla
2014-05-13 7:29 ` Linus Walleij
2014-05-13 9:14 ` Srinivas Kandagatla
2014-04-29 8:20 ` [PATCH v1 07/11] mmc: mmci: move ST specific register extensions access under condition srinivas.kandagatla
2014-05-13 8:08 ` Linus Walleij
2014-05-13 9:33 ` Srinivas Kandagatla
2014-04-29 8:20 ` [PATCH v1 08/11] mmc: mmci: Qcom fix MCICLK register settings srinivas.kandagatla
2014-05-13 8:19 ` Linus Walleij
2014-05-13 9:36 ` Srinivas Kandagatla
2014-04-29 8:20 ` [PATCH v1 09/11] mmc: mmci: Add clock support for Qualcomm srinivas.kandagatla
2014-05-13 8:28 ` Linus Walleij
2014-05-13 9:39 ` Srinivas Kandagatla
2014-04-29 8:21 ` [PATCH v1 10/11] mmc: mmci: Add Qcom variations to MCICommand register srinivas.kandagatla
2014-05-13 8:29 ` Linus Walleij
2014-04-29 8:21 ` [PATCH v1 11/11] mmc: mmci: Add Qcom specific pio_read function srinivas.kandagatla
2014-05-13 8:34 ` Linus Walleij
2014-05-13 9:42 ` Srinivas Kandagatla [this message]
2014-05-09 17:56 ` [PATCH v1 00/11] Add Qualcomm SD Card Controller support Bjorn Andersson
2014-05-09 18:32 ` Srinivas Kandagatla
2014-05-13 10:04 ` Ulf Hansson
2014-05-13 10:21 ` Srinivas Kandagatla
[not found] ` <1400146447-29803-1-git-send-email-srinivas.kandagatla@linaro.org>
2014-05-15 9:36 ` [PATCH v2 01/14] mmc: mmci: use NSEC_PER_SEC macro srinivas.kandagatla
2014-05-15 9:36 ` [PATCH v2 02/14] mmc: mmci: convert register bits to use BIT() macro srinivas.kandagatla
2014-05-15 9:36 ` [PATCH v2 03/14] mmc: mmci: Add Qualcomm Id to amba id table srinivas.kandagatla
2014-05-15 9:36 ` [PATCH v2 04/14] mmc: mmci: Add Qcom datactrl register variant srinivas.kandagatla
2014-05-15 9:36 ` [PATCH v2 05/14] mmc: mmci: Add register read/write wrappers srinivas.kandagatla
2014-05-23 9:04 ` Linus Walleij
2014-05-15 9:37 ` [PATCH v2 06/14] mmc: mmci: Qcomm: Add 3 clock cycle delay after register write srinivas.kandagatla
2014-05-23 9:03 ` Linus Walleij
2014-05-15 9:37 ` [PATCH v2 07/14] mmc: mmci: add ddrmode mask to variant data srinivas.kandagatla
2014-05-23 9:05 ` Linus Walleij
2014-05-15 9:37 ` [PATCH v2 08/14] mmc: mmci: add 8bit bus support in " srinivas.kandagatla
2014-05-23 9:05 ` Linus Walleij
2014-05-15 9:37 ` [PATCH v2 09/14] mmc: mmci: add edge support to data and command out " srinivas.kandagatla
2014-05-23 9:06 ` Linus Walleij
2014-05-15 9:37 ` [PATCH v2 10/14] mmc: mmci: add Qcom specifics of clk and datactrl registers srinivas.kandagatla
2014-05-23 9:08 ` Linus Walleij
2014-05-15 9:37 ` [PATCH v2 11/14] mmc: mmci: Add support to data commands via variant structure srinivas.kandagatla
2014-05-23 9:09 ` Linus Walleij
2014-05-23 9:10 ` Srinivas Kandagatla
2014-05-15 9:37 ` [PATCH v2 12/14] mmc: mmci: add support for fbclk to latch data and cmd srinivas.kandagatla
2014-05-23 9:12 ` Linus Walleij
2014-05-23 9:20 ` Srinivas Kandagatla
2014-05-15 9:37 ` [PATCH v2 13/14] mmc: mmci: add qcom specific clk control srinivas.kandagatla
2014-05-23 9:14 ` Linus Walleij
2014-05-15 9:38 ` [PATCH v2 14/14] mmc: mmci: Add Qcom specific pio_read function srinivas.kandagatla
2014-05-23 9:31 ` Linus Walleij
2014-05-23 9:42 ` Srinivas Kandagatla
2014-05-23 11:53 ` Srinivas Kandagatla
[not found] ` <537EF50B.2010101@linaro.org>
[not found] ` <CAPDyKFpTXrURM8OzNjO-RRfCFWGct4+_M4D8COdEurUhY46GWg@mail.gmail.com>
2014-05-23 8:11 ` [PATCH v2 00/14] Add Qualcomm SD Card Controller support Srinivas Kandagatla
2014-05-19 22:08 ` [PATCH RFC 00/12] " Bjorn Andersson
2014-05-20 8:10 ` Srinivas Kandagatla
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=5371E91F.7000807@linaro.org \
--to=srinivas.kandagatla@linaro.org \
--cc=agross@quicinc.com \
--cc=chris@printf.net \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--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).