From: Baruch Siach <baruch@tkos.co.il>
To: Greg KH <greg@kroah.com>
Cc: linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Alex Gershgorin <agersh@rambler.ru>
Subject: Re: [PATCH] drivers/misc: Altera Cyclone active serial implementation
Date: Tue, 9 Nov 2010 09:22:00 +0200 [thread overview]
Message-ID: <20101109072200.GB29441@jasper.tkos.co.il> (raw)
In-Reply-To: <20101108155851.GE10092@kroah.com>
Hi Greg,
On Mon, Nov 08, 2010 at 07:58:51AM -0800, Greg KH wrote:
> On Mon, Nov 08, 2010 at 08:57:37AM +0200, Baruch Siach wrote:
> > On Sat, Nov 06, 2010 at 11:19:30AM -0700, Greg KH wrote:
> > > On Wed, Nov 03, 2010 at 04:21:35PM +0200, Baruch Siach wrote:
> > > > From: Alex Gershgorin <agersh@rambler.ru>
> > > >
> > > > The active serial protocol can be used to program Altera Cyclone FPGA devices.
> > > > This driver uses the kernel gpio interface to implement the active serial
> > > > protocol.
> > > >
> > > > Signed-off-by: Alex Gershgorin <agersh@rambler.ru>
> > > > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> > > > ---
> >
> > [snip]
> >
> > > > +static struct class *cyclone_as_class;
> > >
> > > Please don't create your own class just for a single driver. Just use
> > > the misc class interface instead, as all you really want/need here is a
> > > character device node, right?
> >
> > Searching for 'mist' under include/linux/ I couldn't find this "misc class
> > interface". Can you enlighten me?
> >
> > I did find the "miscdevices" interface in include/linux/miscdevice.h.
>
> Yes, that is the one.
>
> > I also tried this one before going on to create a class of my own.
> > However, this interface seems to be limited to singleton devices. Can
> > I use MISC_DYNAMIC_MINOR to create multiple device nodes?
>
> I didn't see where your code was handling multiple device nodes, is it
> really doing that?
Of course. Quoting a .probe snippet from the original patch:
+ minor = find_first_zero_bit(cyclone_as_devs, AS_MAX_DEVS);
+ if (minor >= AS_MAX_DEVS)
+ return -EBUSY;
+ ret = cdev_add(&drvdata->cdev, MKDEV(cyclone_as_major, minor), 1);
+ if (ret < 0)
+ return ret;
+ set_bit(minor, cyclone_as_devs);
+
+ dev = device_create(cyclone_as_class, &pdev->dev,
+ MKDEV(cyclone_as_major, minor), drvdata,
+ "%s%d", "cyclone_as", minor);
> > Is there any example for this?
>
> You can just increment the name for the miscdevice to do this based on a
> driver-supplied unique number.
OK. Will do.
> > > And as discussed at the Plumbers conference this past week, we don't
> > > want to add any new 'struct class' implementations to the kernel from
> > > now on, as it's the overall wrong thing to do.
> > >
> > > > --- /dev/null
> > > > +++ b/include/linux/cyclone_as.h
> > >
> > > Why do you need a .h file at all?
> >
> > Look at the content of this file. I need to pass GPIO numbers from the
> > platform code under arch/ to the driver. For this I use a platform_data
> > struct, which must be visible to the platform code. Is there a better way to
> > do this?
>
> {sigh}
>
> I'm getting really tired of these kinds of .h files cluttering up the
> kernel for an interface that should be easier to handle some other way.
Which easier way? Extending IORESOURCE in include/linux/ioport.h to include
GPIOs (say, IORESOURCE_GPIO) may have solved the problem for me. Is it
reasonable?
> I'm really tempted to create something like:
> include/platform_crap/
> to put all of these into.
>
> Ok, that probably will not make people all that happy, so how about:
> include/platform_drivers/
>
> instead?
OK. I'll create include/platform_drivers/ in my next patch. Quite a few header
from include/ could move there.
baruch
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
next prev parent reply other threads:[~2010-11-09 7:22 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-03 14:21 Baruch Siach
[not found] ` <879a6320efee16c04f0732a6887b95c1b4c6d10f.1288793522.git.baruch@tkos.c o.il>
2010-11-03 17:13 ` Indan Zupancic
2010-11-04 6:46 ` Baruch Siach
2010-11-04 11:57 ` Indan Zupancic
2010-11-04 12:20 ` Baruch Siach
2010-11-04 13:09 ` Indan Zupancic
2010-11-04 13:37 ` Baruch Siach
2010-11-06 18:19 ` Greg KH
2010-11-08 6:57 ` Baruch Siach
2010-11-08 15:58 ` Greg KH
2010-11-09 7:22 ` Baruch Siach [this message]
2010-11-10 17:11 ` H. Peter Anvin
2010-11-11 5:10 ` Baruch Siach
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=20101109072200.GB29441@jasper.tkos.co.il \
--to=baruch@tkos.co.il \
--cc=agersh@rambler.ru \
--cc=akpm@linux-foundation.org \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®