Re: [PATCH 1/2] UIO: add device clock support

From: Magnus Damm
Date: Thu Jun 25 2009 - 11:17:20 EST


On Thu, Jun 25, 2009 at 3:41 AM, Paul Mundt<lethal@xxxxxxxxxxxx> wrote:
> On Wed, Jun 24, 2009 at 09:34:14AM -0700, Greg KH wrote:
>> On Wed, Jun 24, 2009 at 05:30:24PM +0200, Daniel Mack wrote:
>> > Add a pointer to a 'struct clk' to uio_info. Drivers can set
>> > this pointer if a clock is needed, and the UIO core will care
>> > to enable and disable it upon device open and release.
>>
>> Do you have a UIO driver that needs this?
>>
>> If so, please submit it at the same time, otherwise adding
>> infrastructure for no driver that needs it, is pretty pointless.
>>
> We can use this for the uio_pdrv_genirq case on sh, but open/release is a
> bit coarse grained. Presently we default-enable clocks for devices that
> are handled through uio, so doing it at open/release is at least better
> than that. The other thing to consider is if we really want to add a
> HAVE_CLK depdendency outright, or just ifdef around it..

Yeah, we export quite a few UIO devices on SuperH, and
stopping/starting clocks is on my TODO list.

Like Paul says, open/release only is a bit coarse grained. I'd like to
be able to keep the device open in user space, having a bunch of
memory windows mmap()ed but still being able to power down the
hardware block somehow.

The patch seems to be about enabling and disabling clocks, the actual
clock frequency is not really exposed to user space what I can tell. I
was more thinking along the lines of having an array of clocks per uio
device - pretty much like the memory windows - and just expose the
clocks and their frequencies to user space and letting user space
enable and disable using sysfs.

I wonder if it would be possible to enable the clock in open() and
stop the clock automatically from the ISR and use writenotify and/or
some kind of trapping mechanism to restart the clock when page faults
are received. If this works or not will probably vary from device to
device so it's probably not a good idea either.

Also, there may be some overlap with the Runtime PM code since this
seems more to be about stopping clocks than exposing frequencies to
user space.

Cheers,

/ magnus
--
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/