From: Lars-Peter Clausen <lars@metafoo.de>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Ralf Baechle <ralf@linux-mips.org>,
linux-mips@linux-mips.org, linux-kernel@vger.kernel.org,
Matt Fleming <matt@console-pimps.org>,
linux-mmc@vger.kernel.org
Subject: Re: [PATCH v3] MMC: Add JZ4740 mmc driver
Date: Thu, 01 Jul 2010 17:45:57 +0200 [thread overview]
Message-ID: <4C2CB835.5010106@metafoo.de> (raw)
In-Reply-To: <20100630135525.1f6a9704.akpm@linux-foundation.org>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi
Andrew Morton wrote:
> On Mon, 28 Jun 2010 03:20:41 +0200
> Lars-Peter Clausen <lars@metafoo.de> wrote:
>
>> This patch adds support for the mmc controller on JZ4740 SoCs.
>>
>> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Matt Fleming <matt@console-pimps.org>
>> Cc: linux-mmc@vger.kernel.org
>>
>> ...
>>
>> +#define JZ4740_MMC_MAX_TIMEOUT 10000000
>
> That was a really big timeout. How long do 1e7 readw's take? Oh well.
>
Hm, right. It doesn't hurt though. I'll do some tests and to try to come up with a
more realistic value.
>> ...
>>
>> +static void jz4740_mmc_clock_disable(struct jz4740_mmc_host *host)
>> +{
>> + uint32_t status;
>> +
>> + writew(JZ_MMC_STRPCL_CLOCK_STOP, host->base + JZ_REG_MMC_STRPCL);
>> + do {
>> + status = readl(host->base + JZ_REG_MMC_STATUS);
>> + } while (status & JZ_MMC_STATUS_CLK_EN);
>> +}
>> +
>> +static void jz4740_mmc_reset(struct jz4740_mmc_host *host)
>> +{
>> + uint32_t status;
>> +
>> + writew(JZ_MMC_STRPCL_RESET, host->base + JZ_REG_MMC_STRPCL);
>> + udelay(10);
>> + do {
>> + status = readl(host->base + JZ_REG_MMC_STATUS);
>> + } while (status & JZ_MMC_STATUS_IS_RESETTING);
>> +}
>
> Maybe these should have a timeout too?
Its very unlikely that these will ever timeout. But right, to be on the safe, there
should be a timeout as well.
>
>> ...
>>
>> +static inline unsigned int jz4740_mmc_wait_irq(struct jz4740_mmc_host *host,
>> + unsigned int irq)
>> +{
>> + unsigned int timeout = JZ4740_MMC_MAX_TIMEOUT;
>> + uint16_t status;
>> +
>> + do {
>> + status = readw(host->base + JZ_REG_MMC_IREG);
>> + } while (!(status & irq) && --timeout);
>> +
>> + return timeout;
>> +}
>
> This guy's too big to inline. Recent gcc's know that and they tend to
> uninline such things behind your back anwyay.
Actually, even without the inline attribute and compiling with -Os gcc will inline
this function by itself.
>
>> ...
>>
>> +struct jz4740_mmc_platform_data {
>> + int gpio_power;
>> + int gpio_card_detect;
>> + int gpio_read_only;
>> + unsigned card_detect_active_low:1;
>> + unsigned read_only_active_low:1;
>> + unsigned power_active_low:1;
>> +
>> + unsigned data_1bit:1;
>> +};
>
> The bitfields will all share the same word, so modification of one
> field can race against modification of another field. Hence some form
> of locking which covers *all* the bitfields is needed.
>
> Is that a problem in this driver?
>
They are all read-only in the driver.
Thanks for reviewing the patch
- - Lars
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkwsuDQACgkQBX4mSR26RiOiMACeMMNj4koCYFAUnxyM0LBr+wOZ
x6oAnizk5CaAvZjQ2doXrD6ZYgDeNjSr
=92D2
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2010-07-01 15:46 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-19 5:08 [PATCH v2 00/26] Add support for the Ingenic JZ4740 System-on-a-Chip Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 01/26] MIPS: Add base support for " Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 02/26] MIPS: jz4740: Add IRQ handler code Lars-Peter Clausen
2010-07-17 12:08 ` [PATCH v3] " Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 03/26] MIPS: JZ4740: Add clock API support Lars-Peter Clausen
2010-06-28 1:24 ` [PATCH v3 " Lars-Peter Clausen
2010-07-17 12:10 ` [PATCH v4] " Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 04/26] MIPS: JZ4740: Add timer support Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 05/26] MIPS: JZ4740: Add clocksource/clockevent support Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 06/26] MIPS: JZ4740: Add power-management and system reset support Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 07/26] MIPS: JZ4740: Add setup code Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 08/26] MIPS: JZ4740: Add gpio support Lars-Peter Clausen
2010-07-17 12:11 ` [PATCH v3] " Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 09/26] MIPS: JZ4740: Add DMA support Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 10/26] MIPS: JZ4740: Add PWM support Lars-Peter Clausen
2010-06-28 1:23 ` [PATCH v3 " Lars-Peter Clausen
2010-07-17 12:12 ` [PATCH v4] " Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 11/26] MIPS: JZ4740: Add serial support Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 12/26] MIPS: JZ4740: Add prom support Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 13/26] MIPS: JZ4740: Add platform devices Lars-Peter Clausen
2010-07-17 12:13 ` [PATCH v3] " Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 14/26] MIPS: JZ4740: Add Kbuild files Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 15/26] RTC: Add JZ4740 RTC driver Lars-Peter Clausen
2010-06-19 10:43 ` Marek Vasut
2010-06-19 13:05 ` Lars-Peter Clausen
2010-06-19 13:37 ` Wan ZongShun
2010-06-19 13:53 ` Lars-Peter Clausen
2010-06-19 14:36 ` Wan ZongShun
2010-06-19 14:04 ` Marek Vasut
2010-06-19 17:42 ` Lars-Peter Clausen
2010-06-19 17:53 ` Geert Uytterhoeven
2010-06-19 19:29 ` [PATCH v3] " Lars-Peter Clausen
2010-06-20 1:13 ` [rtc-linux] " Wan ZongShun
2010-06-20 1:23 ` Lars-Peter Clausen
2010-06-20 1:30 ` Wan ZongShun
2010-06-22 5:53 ` Alessandro Zummo
2010-06-19 5:08 ` [PATCH v2 16/26] fbdev: Add JZ4740 framebuffer driver Lars-Peter Clausen
2010-07-04 22:27 ` Lars-Peter Clausen
2010-07-07 23:41 ` Andrew Morton
2010-07-08 13:28 ` Lars-Peter Clausen
2010-07-08 16:46 ` Andrew Morton
2010-07-09 1:26 ` Jaya Kumar
2010-07-09 15:31 ` Lars-Peter Clausen
2010-07-17 12:14 ` [PATCH v3] " Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 17/26] MTD: Nand: Add JZ4740 NAND driver Lars-Peter Clausen
2010-07-04 22:35 ` [PATCH v2 17/26] MTD: Nand: Add JZ4740 NAND Lars-Peter Clausen
2010-07-08 6:06 ` [PATCH v2 17/26] MTD: Nand: Add JZ4740 NAND driver Artem Bityutskiy
2010-07-08 13:20 ` Lars-Peter Clausen
2010-07-08 13:19 ` Artem Bityutskiy
2010-07-08 14:02 ` Lars-Peter Clausen
2010-07-08 14:14 ` Artem Bityutskiy
2010-07-17 12:15 ` [PATCH v3] " Lars-Peter Clausen
2010-07-18 16:54 ` Artem Bityutskiy
2010-07-18 17:02 ` Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 18/26] MMC: Add JZ4740 mmc driver Lars-Peter Clausen
2010-06-19 14:46 ` Matt Fleming
2010-06-19 15:29 ` Lars-Peter Clausen
2010-06-28 1:20 ` [PATCH v3] " Lars-Peter Clausen
2010-06-29 20:17 ` Matt Fleming
2010-07-01 15:47 ` Lars-Peter Clausen
2010-06-30 20:55 ` Andrew Morton
2010-07-01 15:45 ` Lars-Peter Clausen [this message]
2010-07-12 21:33 ` [PATCH v4] " Lars-Peter Clausen
2010-07-12 21:41 ` Randy Dunlap
2010-07-12 22:07 ` Lars-Peter Clausen
2010-07-12 22:20 ` [PATCH v5] " Lars-Peter Clausen
2010-07-12 22:45 ` Joe Perches
2010-07-12 23:45 ` Lars-Peter Clausen
2010-07-15 21:06 ` [PATCH v6] " Lars-Peter Clausen
2010-07-15 21:16 ` Andrew Morton
2010-07-15 21:37 ` Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 19/26] USB: Add JZ4740 ohci support Lars-Peter Clausen
2010-06-19 17:17 ` Greg KH
2010-06-19 5:08 ` [PATCH v2 20/26] alsa: ASoC: Add JZ4740 codec driver Lars-Peter Clausen
2010-06-19 14:49 ` [PATCH v3] " Lars-Peter Clausen
2010-06-20 13:11 ` Mark Brown
2010-06-21 22:46 ` [PATCH v4] " Lars-Peter Clausen
2010-06-22 10:12 ` Liam Girdwood
2010-06-22 23:12 ` Mark Brown
2010-06-19 5:08 ` [PATCH v2 21/26] alsa: ASoC: Add JZ4740 ASoC support Lars-Peter Clausen
2010-06-19 14:50 ` [PATCH v3] " Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 22/26] MFD: Add JZ4740 ADC driver Lars-Peter Clausen
2010-07-04 22:47 ` Lars-Peter Clausen
2010-07-05 14:53 ` Samuel Ortiz
2010-07-05 15:43 ` Lars-Peter Clausen
2010-07-05 15:53 ` Samuel Ortiz
2010-07-12 1:48 ` [PATCH v3] " Lars-Peter Clausen
2010-07-14 9:19 ` Samuel Ortiz
2010-06-19 5:08 ` [PATCH v2 23/26] hwmon: " Lars-Peter Clausen
2010-06-19 8:36 ` [lm-sensors] " Jean Delvare
2010-06-19 12:58 ` Lars-Peter Clausen
2010-06-19 14:47 ` [PATCH v3] " Lars-Peter Clausen
2010-06-19 16:24 ` [lm-sensors] " Jean Delvare
2010-06-19 17:59 ` Lars-Peter Clausen
2010-06-19 19:32 ` [PATCH v4] " Lars-Peter Clausen
2010-06-20 6:32 ` [lm-sensors] " Jean Delvare
2010-06-19 5:08 ` [PATCH v2 24/26] power: Add JZ4740 battery driver Lars-Peter Clausen
2010-06-27 1:58 ` Lars-Peter Clausen
2010-06-28 11:43 ` Anton Vorontsov
2010-06-19 5:08 ` [PATCH v2 25/26] MIPS: JZ4740: Add qi_lb60 board support Lars-Peter Clausen
2010-07-17 12:16 ` [PATCH v3] " Lars-Peter Clausen
2010-06-19 5:08 ` [PATCH v2 26/26] alsa: ASoC: JZ4740: Add qi_lb60 board driver Lars-Peter Clausen
2010-06-19 14:52 ` [PATCH v3] " Lars-Peter Clausen
2010-06-20 9:26 ` [PATCH v2 00/26] Add support for the Ingenic JZ4740 System-on-a-Chip Thomas Bogendoerfer
2010-06-20 14:31 ` Lars-Peter Clausen
2010-06-20 16:34 ` Thomas Bogendoerfer
2010-06-20 16:49 ` Lars-Peter Clausen
2010-06-20 17:01 ` Thomas Bogendoerfer
2010-06-20 17:57 ` Florian Fainelli
2010-06-20 18:30 ` Lars-Peter Clausen
2010-06-21 2:56 ` Xiangfu Liu
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=4C2CB835.5010106@metafoo.de \
--to=lars@metafoo.de \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-mmc@vger.kernel.org \
--cc=matt@console-pimps.org \
--cc=ralf@linux-mips.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
Powered by JetHome