Hi, Mattew, thanks for your comments. On Thu, 2008-01-17 at 20:24 +0800, Matthew Garrett wrote: > On Thu, Jan 17, 2008 at 03:51:22PM +0800, Zhang Rui wrote: > > From: Zhang Rui <rui.zhang@xxxxxxxxx> > > > > Register ACPI video device as thermal cooling devices as they may be > listed > > in _TZD method and the backlight control can be used for throttling. > > I'm worried to some extent about how ungeneric this is. A thermal zone > may cover any devices, not just processor and video ones. > Perhaps this > should be added to the acpi_device struct instead, and then let > individual drivers implement whatever callbacks are appropriate? Yes, we can do this. But it's kinda early to add the thermal_cooling_device struct to the acpi_device struct now. I don't think any other individual drivers know whether they can or how to throttle the device except processor, fan and lcd currently. Just like I don't think lcd should be used for ACPI thermal management before I saw it is listed in _TZD and intel_menlow requires to throttle it when overheating, why not let the individual drivers implement the callbacks if there is clearly a request to do this. And we can add this to the generic acpi_device struct then if this is a common feature for all ACPI devices. > > > +static int > > +video_set_cur_state(struct thermal_cooling_device *cdev, unsigned > int state) > > +{ > > + struct acpi_device *device = cdev->devdata; > > + struct acpi_video_device *video = acpi_driver_data(device); > > + int level; > > + > > + if ( state >= video->brightness->count - 2) > > + return -EINVAL; > > + > > + state = video->brightness->count - state; > > + level = video->brightness->levels[state -1]; > > + return acpi_video_device_lcd_set_level(video, level); > > This all seems like duplication of the backlight interface? Well, you're right. But in order to throttle the lcd, this is reasonable, right? Thanks, Rui - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html