Re: Platform device id

From: Henrique de Moraes Holschuh
Date: Tue Sep 11 2007 - 09:44:43 EST


On Tue, 11 Sep 2007, Jean Delvare wrote:
> >I will see what I can do about breaking it up in various modules. But this
> >can be unoptimal. If I took it too seriously, thinkpad-acpi would break into
> >at least five different modules, if not more, and at least one or two
> >modules would need to be there for the common code. There has to be a
> >middle ground somewhere, I think.
>
> I don't know your code and I don't really have the time to look at it
> in depth, but I'm a bit surprised. Presumably your driver is
> implementing a number of interfaces (e.g. hwmon) and you create a class
> device for each one. You can have as many class devices hanging of a
> (physical) device, so I fail to see why you would need to register
> several (physical) devices.

Namespace clashes. Now that class attributes are gone (or going, whatever),
everything lives in one namespace: the device. I dread the day I find out
one class I need has attribute name clashes with another, or (more likely)
one of my driver-specific attributes clash with one from a generic class.

Even if clashes never happen, it can make quite a mess when you have four or
more classes in the same device. And you can have semanthic clashes, if one
looks at various attributes (from different classes or driver-specific) and
think they are related in some obvious way (only, it is not obvious at all,
and the user didn't read the docs to know it).

It is nothing too serious, but something to keep in mind when deciding what
to do with a big driver.

--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
-
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/