From: Gabor Juhos <juhosg@openwrt.org>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: Ralf Baechle <ralf@linux-mips.org>,
linux-mips@linux-mips.org, "Luis R. Rodriguez" <mcgrof@gmail.com>,
Cliff Holden <Cliff.Holden@Atheros.com>,
David Brownell <dbrownell@users.sourceforge.net>,
spi-devel-general@lists.sourceforge.net,
Imre Kaloz <kaloz@openwrt.org>
Subject: Re: [RFC 11/18] spi: add SPI controller driver for the Atheros AR71XX/AR724X/AR913X SoCs
Date: Sun, 14 Nov 2010 22:03:56 +0100 [thread overview]
Message-ID: <4CE04EBC.4080701@openwrt.org> (raw)
In-Reply-To: <20101114082242.GA3137@angua.secretlab.ca>
Hi Grant,
>> <...>
>> +#include <asm/mach-ath79/ath79_spi_platform.h>
>> +
>> +#define DRV_DESC "SPI controller driver for Atheros AR71XX/AR724X/AR91X"
>
> Used exactly once. Don't bother with a #define
Ok.
>> +#define DRV_NAME "ath79-spi"
>> +
>> +struct ath79_spi {
>> + struct spi_bitbang bitbang;
>> + u32 ioc_base;
>> + u32 reg_ctrl;
>> +
>> + void __iomem *base;
>> +
>> + struct platform_device *pdev;
>> +};
>> +
>> +static inline u32 ath79_spi_rr(struct ath79_spi *sp, unsigned reg)
>> +{
>> + return __raw_readl(sp->base + reg);
>> +}
>> +
>> +static inline void ath79_spi_wr(struct ath79_spi *sp, unsigned reg, u32 val)
>> +{
>> + __raw_writel(val, sp->base + reg);
>> +}
>
> This is suspect. Why is __raw_{readl,writel} being used instead of
> ioread32/iowrite32? The __raw versions don't provide any kind of
> ordering barriers.
Mainly because the resulting code is smaller, and the performance is a bit
better with the use of the __raw versions. The controller is embedded into the
SoC and the registers are memory mapped, so i think it is safe to access them
with __raw_{readl,writel}. However I can change it if that is the preferred method.
>> <...>
>> +static int ath79_spi_probe(struct platform_device *pdev)
>
> __devinit
I will add this.
>
>> +{
>> + struct spi_master *master;
>> + struct ath79_spi *sp;
>> + struct ath79_spi_platform_data *pdata;
>> + struct resource *r;
>> + int ret;
>> +
>> + master = spi_alloc_master(&pdev->dev, sizeof(*sp));
>> + if (master == NULL) {
>> + dev_err(&pdev->dev, "failed to allocate spi master\n");
>> + return -ENOMEM;
>> + }
>> +
>> + sp = spi_master_get_devdata(master);
>> + platform_set_drvdata(pdev, sp);
>> +
>> + pdata = pdev->dev.platform_data;
>> +
>> + master->setup = ath79_spi_setup;
>> + master->cleanup = ath79_spi_cleanup;
>> + if (pdata) {
>> + master->bus_num = pdata->bus_num;
>> + master->num_chipselect = pdata->num_chipselect;
>> + } else {
>> + master->bus_num = 0;
>
> Use -1 so that a bus number can be dynamically assigned
All right.
>> <...>
>> +static int ath79_spi_remove(struct platform_device *pdev)
>
> __devexit
>
>> +{
>> + struct ath79_spi *sp = platform_get_drvdata(pdev);
>> +
>> + spi_bitbang_stop(&sp->bitbang);
>> + iounmap(sp->base);
>> + platform_set_drvdata(pdev, NULL);
>> + spi_master_put(sp->bitbang.master);
>> +
>> + return 0;
>> +}
>> +
>> +static struct platform_driver ath79_spi_drv = {
>> + .probe = ath79_spi_probe,
>> + .remove = ath79_spi_remove,
>
> __devexit_p(ath79_spi_remove),
>
I will add these annotations as well.
Thank you,
Gabor
next prev parent reply other threads:[~2010-11-14 21:04 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-12 21:51 [RFC 00/18] MIPS: initial support for the Atheros AR71XX/AR724X/AR913X SoCs Gabor Juhos
2010-11-12 21:51 ` [RFC 01/18] MIPS: add initial support for the Atheros AR71XX/AR724X/AR931X SoCs Gabor Juhos
2010-11-12 21:51 ` [RFC 02/18] MIPS: ath79: add GPIOLIB support Gabor Juhos
2010-11-12 21:51 ` [RFC 03/18] MIPS: add generic support for multiple machines within a single kernel Gabor Juhos
2010-11-12 21:51 ` [RFC 04/18] MIPS: ath79: utilize the MIPS multi-machine support Gabor Juhos
2010-11-12 21:51 ` [RFC 05/18] MIPS: ath79: add initial support for the Atheros PB44 reference board Gabor Juhos
2010-11-13 11:46 ` Sergei Shtylyov
2010-11-14 17:41 ` Gabor Juhos
2010-11-12 21:51 ` [RFC 06/18] MIPS: ath79: add common GPIO LEDs device Gabor Juhos
2010-11-12 21:51 ` [RFC 07/18] watchdog: add driver for the Atheros AR71XX/AR724X/AR913X SoCs Gabor Juhos
2010-11-15 10:13 ` Wim Van Sebroeck
2010-11-15 10:30 ` Gabor Juhos
2010-11-12 21:51 ` [RFC 08/18] MIPS: ath79: add common watchdog device Gabor Juhos
2010-11-13 11:53 ` Sergei Shtylyov
2010-11-14 17:41 ` Gabor Juhos
2010-11-12 21:51 ` [RFC 09/18] input: add input driver for polled GPIO buttons Gabor Juhos
2010-11-12 21:51 ` [RFC 10/18] MIPS: ath79: add common GPIO buttons device Gabor Juhos
2010-11-12 21:51 ` [RFC 11/18] spi: add SPI controller driver for the Atheros AR71XX/AR724X/AR913X SoCs Gabor Juhos
2010-11-14 8:22 ` Grant Likely
2010-11-14 21:03 ` Gabor Juhos [this message]
2010-11-15 4:04 ` Grant Likely
2010-11-15 9:09 ` Gabor Juhos
2010-11-15 16:28 ` Grant Likely
2010-11-12 21:51 ` [RFC 12/18] MIPS: ath79: add common SPI controller device Gabor Juhos
2010-11-12 21:51 ` [RFC 13/18] USB: ehci: add workaround for Synopsys HC bug Gabor Juhos
2010-11-12 21:51 ` [RFC 14/18] USB: ehci: add bus glue for the Atheros AR71XX/AR724X/AR913X SoCs Gabor Juhos
2010-11-12 21:51 ` [RFC 15/18] USB: ohci: add bus glue for the Atheros AR71XX/AR7240 SoCs Gabor Juhos
2010-11-12 21:51 ` [RFC 16/18] MIPS: ath79: add common USB Host Controller device Gabor Juhos
2010-11-12 21:51 ` [RFC 17/18] MIPS: ath79: add initial support for the Atheros AP81 reference board Gabor Juhos
2010-11-12 21:51 ` [RFC 18/18] MIPS: ath79: add common WMAC device for AR913X based boards Gabor Juhos
2010-11-12 22:00 ` [RFC 00/18] MIPS: initial support for the Atheros AR71XX/AR724X/AR913X SoCs Luis R. Rodriguez
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=4CE04EBC.4080701@openwrt.org \
--to=juhosg@openwrt.org \
--cc=Cliff.Holden@Atheros.com \
--cc=dbrownell@users.sourceforge.net \
--cc=grant.likely@secretlab.ca \
--cc=kaloz@openwrt.org \
--cc=linux-mips@linux-mips.org \
--cc=mcgrof@gmail.com \
--cc=ralf@linux-mips.org \
--cc=spi-devel-general@lists.sourceforge.net \
/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