Re: [PATCH 6/10] ACPI: register ACPI Video LCD as generic thermalcooling device

From: Zhang Rui
Date: Thu Jan 17 2008 - 20:26:37 EST


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