Re: [Question: Drivers/base/core.c] Why dev->init_name = NULL in device_add function ?

From: Greg KH
Date: Sun Aug 03 2014 - 13:04:40 EST


On Sat, Aug 02, 2014 at 05:14:44AM +0530, Aniroop Mathur wrote:
> >> So, overall output will be
> >> /dev/input/event<x> --> /dev/input/event_accelerometer
> >> sys/class/input/input<x> --> sys/class/input/accelerometer
> >>
> >> In short, input and event node names are set just by
> >> adding one line, which i found quite efficient.
> >> There is other way also to set name of event node but
> >> it involves using extra variable and little more code,
> >> So I am looking for best solution possible. :)
> >
> > Only use init_name for static struct devices, for a dynamic one, jsut
> > set the name like everyone else does, how is that "more" code than
> > anything else?
> >
>
> Can you please elaborate what do you mean by static struct devices ?

Exactly what you wrote there, 'static' is a C thing, right?

> Can I consider embedded accelerometer, proximity, gyro sensor,
> touch panel in android mobile devices as static devices ?

Nope, because in my Android phone, I can yank out those and add new ones
on the fly while the phone is running. The kernel is fully dynamic that
way.

> Input subsystem is setting default name of input and event node.

As it should.

> This is the normal method everyone uses.

And so should you :)

> I do not want to use default name like event0, event4, input2, etc

Yes, you really do.

> My aim is to set name of input and event node through driver as desired.

Nope, that's userspace's job, just use udev to rename the device node,
or even better yet, create a symlink like /dev/input/by-id/ has if you
really need more than that.

Don't mess with kernel device names, we can't do that without breaking
tons of things, there's a reason that we standardized on something,
please use it.

good luck,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/