All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Balbi <felipe.balbi@nokia.com>
To: ext Ohad Ben-Cohen <ohad@wizery.com>
Cc: "Balbi Felipe (Nokia-MS/Helsinki)" <felipe.balbi@nokia.com>,
	"ext DebBarma, Tarun Kanti" <tarun.kanti@ti.com>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	Ido Yariv <ido@wizery.com>,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"Chikkature Rajashekar, Madhusudhan" <madhu.cr@ti.com>,
	"Coelho Luciano (Nokia-MS/Helsinki)" <Luciano.Coelho@nokia.com>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	San Mehat <san@google.com>,
	"Quadros Roger (Nokia-MS/Helsinki)" <roger.quadros@nokia.com>,
	Tony Lindgren <tony@atomide.com>,
	Nicolas Pitre <nico@fluxnic.net>,
	"Pandita, Vikram" <vikram.pandita@ti.com>,
	Kalle Valo <kalle.valo@iki.fi>
Subject: Re: [PATCH v4 3/8] wireless: wl1271: add platform driver to get board 	data
Date: Thu, 12 Aug 2010 08:27:33 +0300	[thread overview]
Message-ID: <20100812052733.GB23362@nokia.com> (raw)
In-Reply-To: <AANLkTikLbiJ8PsUbSnmYrfY6oNW4okejf-UdyQyfYbUz@mail.gmail.com>

Hi,

On Wed, Aug 11, 2010 at 10:10:38PM +0200, ext Ohad Ben-Cohen wrote:
>Think of several wl1271 devices, each of which is represented by two
>devices; an SDIO function, and a platform device. The SDIO function
>stands for a specific MMC controller the device is hardwired to, and
>the platform device stands for the external irq line that the device
>is hardwired to.
>
>We must couple the SDIO function with the correct platform device,
>otherwise it will start getting the wrong interrupts. So after the
>SDIO function is probed, it registers a platform driver with the
>unique name that represents the platform device that it is coupled
>with. When the platform device is probed, it needs to deliver its
>platform data info to the specific SDIO function that it is bound
>with.
>
>To avoid using some global data structure in that driver, we allocate
>a unique platform driver per each device, which makes it possible for
>the platform driver probe to find the SDIO function context by means
>of container_of.
>
>Alternatively, we can also use some global structure in that file,
>most probably idr, which would also make it possible to reach the SDIO
>function contexts without going through the driver structure. The idr
>indexes would then be the MMC controller index, which should match
>the platform device id.
>
>I'll try this out, it might actually look nicer.

you need no globals and you don't need to fiddle with driver structures 
either.

Just make an sdio driver that platform_device_alloc() and pass in a 
platform_data, builds struct resources etc for each device found on the 
sdio bus. Similarly for the SPI-connected wifi chip.

You should never fiddle with internal structures. If you want to look at 
an example implementation, take a look at drivers/mfd/twl-core.c, there 
we use an i2c driver to instantiate several platform_devices. Nobody 
fiddles with driver structures and all the drivers are logically 
separated into their own source files.

-- 
balbi

DefectiveByDesign.org

WARNING: multiple messages have this Message-ID (diff)
From: felipe.balbi@nokia.com (Felipe Balbi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 3/8] wireless: wl1271: add platform driver to get board 	data
Date: Thu, 12 Aug 2010 08:27:33 +0300	[thread overview]
Message-ID: <20100812052733.GB23362@nokia.com> (raw)
In-Reply-To: <AANLkTikLbiJ8PsUbSnmYrfY6oNW4okejf-UdyQyfYbUz@mail.gmail.com>

Hi,

On Wed, Aug 11, 2010 at 10:10:38PM +0200, ext Ohad Ben-Cohen wrote:
>Think of several wl1271 devices, each of which is represented by two
>devices; an SDIO function, and a platform device. The SDIO function
>stands for a specific MMC controller the device is hardwired to, and
>the platform device stands for the external irq line that the device
>is hardwired to.
>
>We must couple the SDIO function with the correct platform device,
>otherwise it will start getting the wrong interrupts. So after the
>SDIO function is probed, it registers a platform driver with the
>unique name that represents the platform device that it is coupled
>with. When the platform device is probed, it needs to deliver its
>platform data info to the specific SDIO function that it is bound
>with.
>
>To avoid using some global data structure in that driver, we allocate
>a unique platform driver per each device, which makes it possible for
>the platform driver probe to find the SDIO function context by means
>of container_of.
>
>Alternatively, we can also use some global structure in that file,
>most probably idr, which would also make it possible to reach the SDIO
>function contexts without going through the driver structure. The idr
>indexes would then be the MMC controller index, which should match
>the platform device id.
>
>I'll try this out, it might actually look nicer.

you need no globals and you don't need to fiddle with driver structures 
either.

Just make an sdio driver that platform_device_alloc() and pass in a 
platform_data, builds struct resources etc for each device found on the 
sdio bus. Similarly for the SPI-connected wifi chip.

You should never fiddle with internal structures. If you want to look at 
an example implementation, take a look at drivers/mfd/twl-core.c, there 
we use an i2c driver to instantiate several platform_devices. Nobody 
fiddles with driver structures and all the drivers are logically 
separated into their own source files.

-- 
balbi

DefectiveByDesign.org

  parent reply	other threads:[~2010-08-12  5:27 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-11 18:21 [PATCH v4 0/8] native support for wl1271 on ZOOM Ohad Ben-Cohen
2010-08-11 18:21 ` Ohad Ben-Cohen
2010-08-11 18:21 ` Ohad Ben-Cohen
2010-08-11 18:21 ` [PATCH v4 2/8] wireless: wl1271: support return value for the set power func Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen
2010-08-11 18:35   ` DebBarma, Tarun Kanti
2010-08-11 18:35   ` DebBarma, Tarun Kanti
2010-08-11 18:35     ` DebBarma, Tarun Kanti
2010-08-11 18:35     ` DebBarma, Tarun Kanti
2010-08-11 22:19     ` Ohad Ben-Cohen
2010-08-11 22:19       ` Ohad Ben-Cohen
2010-08-11 18:21 ` [PATCH v4 4/8] wireless: wl1271: take irq info from private board data Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen
     [not found] ` <1281550913-17633-1-git-send-email-ohad-Ix1uc/W3ht7QT0dZR+AlfA@public.gmane.org>
2010-08-11 18:21   ` [PATCH v4 1/8] wireless: wl1271: make wl12xx.h common to both spi and sdio Ohad Ben-Cohen
2010-08-11 18:21     ` Ohad Ben-Cohen
2010-08-11 18:21     ` Ohad Ben-Cohen
2010-08-11 18:21   ` [PATCH v4 3/8] wireless: wl1271: add platform driver to get board data Ohad Ben-Cohen
2010-08-11 18:21     ` Ohad Ben-Cohen
2010-08-11 18:21     ` Ohad Ben-Cohen
2010-08-11 18:42     ` DebBarma, Tarun Kanti
2010-08-11 18:42       ` DebBarma, Tarun Kanti
2010-08-11 18:42       ` DebBarma, Tarun Kanti
2010-08-11 18:47       ` Felipe Balbi
2010-08-11 18:47         ` Felipe Balbi
     [not found]         ` <20100811184742.GA21778-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>
2010-08-11 18:52           ` DebBarma, Tarun Kanti
2010-08-11 18:52             ` DebBarma, Tarun Kanti
2010-08-11 18:52             ` DebBarma, Tarun Kanti
     [not found]             ` <5A47E75E594F054BAF48C5E4FC4B92AB0324110AC1-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-08-11 18:57               ` Felipe Balbi
2010-08-11 18:57                 ` Felipe Balbi
2010-08-11 18:57                 ` Felipe Balbi
2010-08-11 19:27                 ` DebBarma, Tarun Kanti
2010-08-11 19:27                   ` DebBarma, Tarun Kanti
     [not found]                   ` <5A47E75E594F054BAF48C5E4FC4B92AB0324110AC7-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-08-11 21:25                     ` Russell King - ARM Linux
2010-08-11 21:25                       ` Russell King - ARM Linux
2010-08-11 21:25                       ` Russell King - ARM Linux
2010-08-11 22:15                       ` Ohad Ben-Cohen
2010-08-11 22:15                         ` Ohad Ben-Cohen
2010-08-12  6:40                       ` Ohad Ben-Cohen
2010-08-12  6:40                         ` Ohad Ben-Cohen
     [not found]                         ` <AANLkTikDhzGVFZhNJZic9xYX9bL_NhOW=4LS-cTFSG0i-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-12  9:55                           ` Russell King - ARM Linux
2010-08-12  9:55                             ` Russell King - ARM Linux
2010-08-12  9:55                             ` Russell King - ARM Linux
     [not found]                             ` <20100812095546.GA3354-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2010-08-13  0:01                               ` Ohad Ben-Cohen
2010-08-13  0:01                                 ` Ohad Ben-Cohen
2010-08-13  0:01                                 ` Ohad Ben-Cohen
2010-08-16  4:21                       ` DebBarma, Tarun Kanti
2010-08-16  4:21                         ` DebBarma, Tarun Kanti
2010-08-12  5:21                   ` Felipe Balbi
2010-08-12  5:21                     ` Felipe Balbi
2010-08-11 21:21               ` Russell King - ARM Linux
2010-08-11 21:21                 ` Russell King - ARM Linux
2010-08-11 21:21                 ` Russell King - ARM Linux
2010-08-11 20:10         ` Ohad Ben-Cohen
2010-08-11 20:10           ` Ohad Ben-Cohen
2010-08-11 20:10           ` Ohad Ben-Cohen
2010-08-11 21:34           ` Vitaly Wool
2010-08-11 21:34             ` Vitaly Wool
2010-08-11 21:34             ` Vitaly Wool
2010-08-11 22:18             ` Ohad Ben-Cohen
2010-08-11 22:18               ` Ohad Ben-Cohen
2010-08-11 22:18               ` Ohad Ben-Cohen
2010-08-12  5:27           ` Felipe Balbi [this message]
2010-08-12  5:27             ` Felipe Balbi
2010-08-11 18:21   ` [PATCH v4 5/8] wireless: wl1271: make ref_clock configurable by board Ohad Ben-Cohen
2010-08-11 18:21     ` Ohad Ben-Cohen
2010-08-11 18:21     ` Ohad Ben-Cohen
2010-08-11 18:21 ` [PATCH v4 6/8] omap: hsmmc: remove unused variable Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen
2010-08-11 18:21 ` [PATCH v4 7/8] omap: zoom: add fixed regulator device for wlan Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen
2010-08-11 18:21 ` [PATCH v4 8/8] omap: zoom: add mmc3/wl1271 device support Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen
2010-08-11 18:21   ` Ohad Ben-Cohen

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=20100812052733.GB23362@nokia.com \
    --to=felipe.balbi@nokia.com \
    --cc=Luciano.Coelho@nokia.com \
    --cc=akpm@linux-foundation.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=ido@wizery.com \
    --cc=kalle.valo@iki.fi \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=madhu.cr@ti.com \
    --cc=nico@fluxnic.net \
    --cc=ohad@wizery.com \
    --cc=roger.quadros@nokia.com \
    --cc=san@google.com \
    --cc=tarun.kanti@ti.com \
    --cc=tony@atomide.com \
    --cc=vikram.pandita@ti.com \
    /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.