Thread (5 messages) flat view 5 messages, 3 authors, 2006-07-25

Re: powermac: More powermac backlight fixes

From: Michael Hanselmann <hidden>
Date: 2006-07-25 18:44:22

Hello Andrew

On Mon, Jul 24, 2006 at 08:03:15PM -0700, Andrew Morton wrote:
I see schedule_work()s in there, but no flush_scheduled_work()s or anything
like that.  Generally, this means there are races against rmmod, close(),
etc.
I'll check that. Another patch is in the work already.
quoted
+void pmac_backlight_disable()
+{
+	atomic_inc(&kernel_backlight_disabled);
+}
+
+void pmac_backlight_enable()
+{
+	atomic_dec(&kernel_backlight_disabled);
+}
+
So if userspace calls ioctl(PMU_IOC_GRAB_BACKLIGHT) eleven times, eleven
enables are needed?  (Actually, eleven open()/close() sequences, I think).
Methinks you wanted just
	kernel_backlight_disabled = 1;
?
Aristeu already asked me that, and no, the disabling is meant to be
recursive. The old code did something like "spin_lock(...); disable++;
spin_unlock(...);". It then checked for "if (disable) return;". My code
basically moves the code from the via-pmu driver and removes the
spinlocks.

Thanks,
Michael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help