All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Thumshirn <johannes.thumshirn@men.de>
To: Guenter Roeck <linux@roeck-us.net>
Cc: Johannes Thumshirn <johannes.thumshirn@men.de>,
	<linux-kernel@vger.kernel.org>,
	Samuel Ortiz <sameo@linux.intel.com>,
	Lee Jones <lee.jones@linaro.org>, Michael Buesch <m@bues.ch>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Re: Driver Design Question
Date: Wed, 23 Oct 2013 09:29:01 +0200	[thread overview]
Message-ID: <20131023072901.GB24193@jtlinux> (raw)
In-Reply-To: <52673E08.4070707@roeck-us.net>

On Tue, Oct 22, 2013 at 08:10:00PM -0700, Guenter Roeck wrote:
> On 10/22/2013 12:02 AM, Johannes Thumshirn wrote:
> >Hi List,
> >
> >I have a design question concerning a device driver. The device in question is
> >somewhere in between drivers/mfd/timberdale and drivers/ssb. It is mapped
> >connected via PCI and on PCI Bar 0 there is a table describing which
> >"sub-devices" are contained in the FPGA as well as where their Memory and IRQ
> >resources are.
> >
> >Unlike the timberdale driver, there is no static configuration of the FPGA's
> >sub-devices, but their number and kind is variable. But luckily we have unique
> >device-ids for every sub-device, so it is possible to do a PCI/USB like
> >enumeration.
> >
> >In my understanding the MFD API, which timberdale uses, isn't tailored to this
> >Plug'n'Play like behavior. Whereas the I think (virtual) bus concept used by
>
> Not sure if that is true. There is no requirement to declare mfd cells
> statically. As long as the devices don't change after mfd probe, an mfd based
> solution would at least be implementable.

Yes it would be implementable, but would it be a good idea to do so?

>
> However, adding support for new sub-devices might be an issue, as you would
> have to update the mfd driver to add support for each new device (to create its
> mfd cell and platform data), in addition to writing the actual driver.
>

Adding sub-devices could probably be done without changing th mfd driver, as I
have a device-id, which is part o the article number, so I could generate the
string for the modalias in a generic way.

> >SSB is much more suited for this kind of devices. But would it be wise to add a
> >bus only suited to devices manufactured by one vendor, when there is already a
> >API for such kinds of multi function devices?
> >
> Assuming you refer to mfd, isn't that a contradiction ? You just stated that mfd
> doesn't exactly meet your requirements. There is also an API for adding a new bus,
> and it is used quite widely.

Well my requirements probably can be met using the mfd framework, but I'm not
shure if it would be a good design decission then. Or maybe adding a bus would
be a better decission. The thing is, I don't want to make me a maintainence
hell, but have something I ideally don't need to touch a 2nd time once it is
done right.

>
> Question for me would be if the additional overhead for adding a bus outweighs its
> benefits.
>
> >Long story short, which would be the preferred way to implement such a driver? At
> >the point I currently reached I could go in both directions.
> >
> >I'd appreciate any advice I can get on this topic.
> >
>
> I'm adding Greg KH to the thread. Maybe he has some useful advice as the driver core
> maintainer. I have struggled with the question if to add a bus myself, so maybe I can
> get something useful out of it ;).

This really would be great. If you can get an answer as well, we'd have a win
win situation ;).

Thanks a lot for your comments.

       Johannes

  reply	other threads:[~2013-10-23  7:29 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-22  7:02 Driver Design Question Johannes Thumshirn
2013-10-23  3:10 ` Guenter Roeck
2013-10-23  7:29   ` Johannes Thumshirn [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-09-14 11:29 Driver design question Takashi Iwai
2006-09-15 14:47 ` Lee Revell
2006-09-19 15:15   ` Takashi Iwai
2006-09-25 19:54     ` Lee Revell
2006-09-27 17:18       ` Takashi Iwai
2006-09-27 17:38         ` Lee Revell
2006-09-30  2:03         ` Lee Revell
2006-10-03 15:35           ` Lee Revell
2006-10-04  9:17             ` Takashi Iwai
2006-10-19 22:12               ` Lee Revell
2006-10-20 12:55                 ` Takashi Iwai
2006-10-20 20:12                   ` Lee Revell
2006-10-23 13:09                     ` Takashi Iwai
2006-10-23 17:46                       ` Lee Revell
2006-10-24 15:01                         ` Takashi Iwai
2006-10-24 15:30                           ` Lee Revell
2006-10-24 23:54                           ` Lee Revell
2006-10-04  9:07           ` Takashi Iwai
2006-09-27 13:58     ` Lee Revell
2006-09-27 16:52       ` Takashi Iwai
2006-09-12 20:27 Lee Revell
2005-05-19  6:24 driver " Jean Delvare
2005-05-19  6:24 ` Jean Delvare
2005-05-19  6:24 ` Philip Edelbrock
2005-05-19  6:24 ` Philip Edelbrock
2005-05-19  6:24 ` Jean Delvare
2005-05-19  6:24 ` Philip Edelbrock
2005-05-19  6:24 ` Mark M. Hoffman
2005-05-19  6:24 ` Philip Pokorny
2005-05-19  6:24 ` Jean Delvare
2005-05-19  6:24 ` Mark D. Studebaker 
2005-05-19  6:24 ` Philip Pokorny

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=20131023072901.GB24193@jtlinux \
    --to=johannes.thumshirn@men.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=m@bues.ch \
    --cc=sameo@linux.intel.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.