From: Anton Vorontsov <avorontsov@ru.mvista.com>
To: David Brownell <david-b@pacbell.net>
Cc: David Brownell <dbrownell@users.sourceforge.net>,
Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
Bill Gatliff <bgat@billgatliff.com>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 2/4] of/gpio: Add support for two-stage registration for the of_gpio_chips
Date: Tue, 26 Jan 2010 20:43:47 +0300 [thread overview]
Message-ID: <20100126174347.GB20319@oksana.dev.rtsoft.ru> (raw)
In-Reply-To: <201001252236.16141.david-b@pacbell.net>
On Mon, Jan 25, 2010 at 10:36:15PM -0800, David Brownell wrote:
> On Monday 25 January 2010, Anton Vorontsov wrote:
> > With this patch there are two ways to register OF GPIO controllers:
> >
> > 1. Allocating the of_gpio_chip structure and passing the
> > &of_gc->gc pointer to the gpiochip_add. (Can use container_of
> > to convert the gpio_chip to the of_gpio_chip.)
> >
> > 2. Allocating and registering the gpio_chip structure separately
> > from the of_gpio_chip. (Since two allocations are separate,
> > container_of won't work.)
> >
> > As time goes by we'll kill the first option.
>
> Why have two options, instead of just the first/simpler one??
Because I2C/SPI drivers allocate (and register) gpio_chip structures
by themselves, so the first option is a no-go.
You can see the first option in use in
arch/powerpc/sysdev/qe_lib/gpio.c:
struct qe_gpio_chip {
struct of_mm_gpio_chip mm_gc;
....
};
Now include/linux/of_gpio.h:
struct of_mm_gpio_chip {
struct of_gpio_chip of_gc;
...
};
struct of_gpio_chip {
struct gpio_chip gc; <- here, I'm going to get rid of it
...
};
I2C/SPI drivers allocate gpio_chip structure already, so we don't
need to store 'struct gpio_chip gc', instead we need to store just
a pointer, and then attach the already allocated gpio_chip to the
of_gpio_chip stuff.
Having two ways to store gpio_chip isn't good, that's why
I stated that the first option will have to go, i.e. I'm going to
convert arch/powerpc/sysdev/qe_lib/gpio.c and few other of_mm
gpio chips to the new registration scheme soon.
Thanks,
--
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2
WARNING: multiple messages have this Message-ID (diff)
From: Anton Vorontsov <avorontsov@ru.mvista.com>
To: David Brownell <david-b@pacbell.net>
Cc: Grant Likely <grant.likely@secretlab.ca>,
David Brownell <dbrownell@users.sourceforge.net>,
Andrew Morton <akpm@linux-foundation.org>,
Bill Gatliff <bgat@billgatliff.com>,
Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/4] of/gpio: Add support for two-stage registration for the of_gpio_chips
Date: Tue, 26 Jan 2010 20:43:47 +0300 [thread overview]
Message-ID: <20100126174347.GB20319@oksana.dev.rtsoft.ru> (raw)
In-Reply-To: <201001252236.16141.david-b@pacbell.net>
On Mon, Jan 25, 2010 at 10:36:15PM -0800, David Brownell wrote:
> On Monday 25 January 2010, Anton Vorontsov wrote:
> > With this patch there are two ways to register OF GPIO controllers:
> >
> > 1. Allocating the of_gpio_chip structure and passing the
> > &of_gc->gc pointer to the gpiochip_add. (Can use container_of
> > to convert the gpio_chip to the of_gpio_chip.)
> >
> > 2. Allocating and registering the gpio_chip structure separately
> > from the of_gpio_chip. (Since two allocations are separate,
> > container_of won't work.)
> >
> > As time goes by we'll kill the first option.
>
> Why have two options, instead of just the first/simpler one??
Because I2C/SPI drivers allocate (and register) gpio_chip structures
by themselves, so the first option is a no-go.
You can see the first option in use in
arch/powerpc/sysdev/qe_lib/gpio.c:
struct qe_gpio_chip {
struct of_mm_gpio_chip mm_gc;
....
};
Now include/linux/of_gpio.h:
struct of_mm_gpio_chip {
struct of_gpio_chip of_gc;
...
};
struct of_gpio_chip {
struct gpio_chip gc; <- here, I'm going to get rid of it
...
};
I2C/SPI drivers allocate gpio_chip structure already, so we don't
need to store 'struct gpio_chip gc', instead we need to store just
a pointer, and then attach the already allocated gpio_chip to the
of_gpio_chip stuff.
Having two ways to store gpio_chip isn't good, that's why
I stated that the first option will have to go, i.e. I'm going to
convert arch/powerpc/sysdev/qe_lib/gpio.c and few other of_mm
gpio chips to the new registration scheme soon.
Thanks,
--
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2
next prev parent reply other threads:[~2010-01-26 17:43 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-25 18:09 [PATCH 0/4] OF GPIO integration for I2C/SPI GPIO chips Anton Vorontsov
2010-01-25 18:09 ` Anton Vorontsov
2010-01-25 18:11 ` [PATCH 1/4] gpiolib: Introduce chip addition/removal notifier Anton Vorontsov
2010-01-25 18:11 ` Anton Vorontsov
2010-01-26 6:34 ` David Brownell
2010-01-26 6:34 ` David Brownell
2010-01-26 17:28 ` Anton Vorontsov
2010-01-26 17:28 ` Anton Vorontsov
2010-01-26 21:01 ` David Brownell
2010-01-26 21:01 ` David Brownell
2010-01-25 18:11 ` [PATCH 2/4] of/gpio: Add support for two-stage registration for the of_gpio_chips Anton Vorontsov
2010-01-25 18:11 ` Anton Vorontsov
2010-01-26 6:36 ` David Brownell
2010-01-26 6:36 ` David Brownell
2010-01-26 17:43 ` Anton Vorontsov [this message]
2010-01-26 17:43 ` Anton Vorontsov
2010-01-26 21:02 ` David Brownell
2010-01-26 21:02 ` David Brownell
2010-01-25 18:11 ` [PATCH 3/4] of/gpio: Implement GPIOLIB notifier hooks Anton Vorontsov
2010-01-25 18:11 ` Anton Vorontsov
2010-01-25 18:11 ` [PATCH 4/4] powerpc/mcu_mpc8349emitx: Remove OF GPIO handling stuff Anton Vorontsov
2010-01-25 18:11 ` Anton Vorontsov
2010-01-26 6:43 ` David Brownell
2010-01-26 6:43 ` David Brownell
-- strict thread matches above, loose matches on Subject: below --
2010-02-05 20:32 [PATCH v2 0/4] OF GPIO integration for I2C/SPI GPIO chips Anton Vorontsov
2010-02-05 20:32 ` [PATCH 2/4] of/gpio: Add support for two-stage registration for the of_gpio_chips Anton Vorontsov
2010-02-05 20:32 ` Anton Vorontsov
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=20100126174347.GB20319@oksana.dev.rtsoft.ru \
--to=avorontsov@ru.mvista.com \
--cc=akpm@linux-foundation.org \
--cc=bgat@billgatliff.com \
--cc=david-b@pacbell.net \
--cc=dbaryshkov@gmail.com \
--cc=dbrownell@users.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.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 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.