From: Greg KH <greg@kroah.com>
To: "Artem B. Bityutskiy" <dedekind@yandex.ru>
Cc: linux-kernel@vger.kernel.org
Subject: Re: device model and character devices
Date: Tue, 4 Apr 2006 09:48:23 -0700 [thread overview]
Message-ID: <20060404164823.GA31398@kroah.com> (raw)
In-Reply-To: <44322A6F.4000402@yandex.ru>
On Tue, Apr 04, 2006 at 12:12:31PM +0400, Artem B. Bityutskiy wrote:
> Hello Greg,
>
> at the moment the device model and the character devices subsystem are
> distinct and different things. I mean, if I have a device xdev, I do the
> following:
>
> struct xdev_device {
> struct cdev cdev;
> struct device dev;
> /* xdev-specific stuff */
> ...
> } xdev;
>
> I use xdev.cdev to register character device:
>
> cdev_add(&xdev.cdev, ...);
> ...
>
> I use xdev.dev functions to include my device to the device-model:
>
> device_register(&xdev.dev, ...);
> ...
>
> But why not to merge the character device stuff and the device model?
> Roughly speaking, why not to embed 'struct cdev' to 'struct device'? Why
> do driver writers have to distinguish between these things?
Because "struct device" generally is not related to a major:minor pair
at all. That is what a struct class_device is for. Lots of struct
device users have nothing to do with a char device, and some have
multiple char devices associated with a single struct device.
You need to create a struct class_device in order to export the proper
information to userspace so that udev and other tools can pick up the
fact that your device is present and it needs to create a device for it.
All that being said, yes, there is a disconnect between the driver model
parts and the char subsystem. It's been something that I've wanted to
fix for a number of years, but never had the time to do so. If you want
to work toward doing this, I'd be glad to review any patches.
thanks,
greg k-h
next prev parent reply other threads:[~2006-04-04 19:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-04 8:12 device model and character devices Artem B. Bityutskiy
2006-04-04 16:48 ` Greg KH [this message]
2006-04-05 7:52 ` Artem B. Bityutskiy
2006-04-05 18:31 ` Greg KH
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=20060404164823.GA31398@kroah.com \
--to=greg@kroah.com \
--cc=dedekind@yandex.ru \
--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