All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anton Vorontsov <cbouatmailru@gmail.com>
To: Jamie Iles <jamie@jamieiles.com>
Cc: linux-kernel@vger.kernel.org, linux@arm.linux.org.uk,
	tglx@linutronix.de, grant.likely@secretlab.ca, arnd@arndb.de,
	nico@fluxnic.net
Subject: Re: [RFC PATCH 1/7] basic_mmio_gpio: remove runtime width/endianness evaluation
Date: Wed, 6 Apr 2011 16:12:58 +0400	[thread overview]
Message-ID: <20110406121258.GA9530@oksana.dev.rtsoft.ru> (raw)
In-Reply-To: <1302088263-12714-2-git-send-email-jamie@jamieiles.com>

On Wed, Apr 06, 2011 at 12:10:57PM +0100, Jamie Iles wrote:
> Remove endianness/width calculations at runtime by installing function
> pointers for bit-to-mask conversion and register accessors.
> 
> Signed-off-by: Jamie Iles <jamie@jamieiles.com>
> Cc: Anton Vorontsov <cbouatmailru@gmail.com>
> Cc: Grant Likely <grant.likely@secretlab.ca>

I guess there should be Suggested-by: Thomas Gleixner <tglx@linutronix.de>

:-)

[...]
> @@ -74,7 +78,8 @@ struct bgpio_chip {
>        * Some GPIO controllers work with the big-endian bits notation,
>        * e.g. in a 8-bits register, GPIO7 is the least significant bit.
>        */
> -     int big_endian_bits;
> +     unsigned long (*pin2mask)(struct bgpio_chip *bgc, unsigned int pin);
> +
>
>       /*

No need for this new empty line, I think.

[...]
> +static unsigned long bgpio_write64(void __iomem *reg, unsigned long data)
> +{
> +	return __raw_writeq(data, reg);
> +}

I was getting this on a 64 bit machine:

  CHECK   drivers/gpio/basic_mmio_gpio.c
drivers/gpio/basic_mmio_gpio.c:138:16: warning: incorrect type in return expression (different base types)
drivers/gpio/basic_mmio_gpio.c:138:16:    expected unsigned long
drivers/gpio/basic_mmio_gpio.c:138:16:    got void
drivers/gpio/basic_mmio_gpio.c:302:33: warning: incorrect type in assignment (different base types)
drivers/gpio/basic_mmio_gpio.c:302:33:    expected void ( *write_reg )( ... )
drivers/gpio/basic_mmio_gpio.c:302:33:    got unsigned long ( static [toplevel] *<noident> )( ... )
  CC      drivers/gpio/basic_mmio_gpio.o
drivers/gpio/basic_mmio_gpio.c: In function ‘bgpio_write64’:
drivers/gpio/basic_mmio_gpio.c:138: error: void value not ignored as it ought to be
drivers/gpio/basic_mmio_gpio.c: In function ‘bgpio_setup_accessors’:
drivers/gpio/basic_mmio_gpio.c:302: warning: assignment from incompatible pointer type
make[1]: *** [drivers/gpio/basic_mmio_gpio.o] Error 1

And I fixed it with this:

diff --git a/drivers/gpio/basic_mmio_gpio.c b/drivers/gpio/basic_mmio_gpio.c
index 9dad485..3ddc4b2 100644
--- a/drivers/gpio/basic_mmio_gpio.c
+++ b/drivers/gpio/basic_mmio_gpio.c
@@ -133,9 +133,9 @@ static unsigned long bgpio_read32(void __iomem *reg)
 }
 
 #if BITS_PER_LONG >= 64
-static unsigned long bgpio_write64(void __iomem *reg, unsigned long data)
+static void bgpio_write64(void __iomem *reg, unsigned long data)
 {
-	return __raw_writeq(data, reg);
+	__raw_writeq(data, reg);
 }
 
 static unsigned long bgpio_read64(void __iomem *reg)


Otherwise, the patch looks perfect.

Acked-by: Anton Vorontsov <cbouatmailru@gmail.com>

Thanks!

-- 
Anton Vorontsov
Email: cbouatmailru@gmail.com


  reply	other threads:[~2011-04-06 12:13 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-06 11:10 [RFC PATCH 0/7] gpio: extend basic_mmio_gpio for different controllers Jamie Iles
2011-04-06 11:10 ` [RFC PATCH 1/7] basic_mmio_gpio: remove runtime width/endianness evaluation Jamie Iles
2011-04-06 12:12   ` Anton Vorontsov [this message]
2011-04-06 11:10 ` [RFC PATCH 2/7] basic_mmio_gpio: convert to platform_{get,set}_drvdata() Jamie Iles
2011-04-06 12:16   ` Anton Vorontsov
2011-04-06 11:10 ` [RFC PATCH 3/7] basic_mmio_gpio: allow overriding number of gpio Jamie Iles
2011-04-06 12:18   ` Anton Vorontsov
2011-04-06 11:11 ` [RFC PATCH 4/7] basic_mmio_gpio: request register regions Jamie Iles
2011-04-06 12:32   ` Anton Vorontsov
2011-04-06 11:11 ` [RFC PATCH 5/7] basic_mmio_gpio: detect output method at probe time Jamie Iles
2011-04-06 12:33   ` Anton Vorontsov
2011-04-06 11:11 ` [RFC PATCH 6/7] basic_mmio_gpio: support different input/output registers Jamie Iles
2011-04-06 12:16   ` Anton Vorontsov
2011-04-06 11:11 ` [RFC PATCH 7/7] basic_mmio_gpio: support direction registers Jamie Iles
2011-04-06 12:12   ` Anton Vorontsov
2011-04-08  0:14     ` Jamie Iles

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=20110406121258.GA9530@oksana.dev.rtsoft.ru \
    --to=cbouatmailru@gmail.com \
    --cc=arnd@arndb.de \
    --cc=grant.likely@secretlab.ca \
    --cc=jamie@jamieiles.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=nico@fluxnic.net \
    --cc=tglx@linutronix.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.