Submit #2749 ยป backlight0.patch
| sys/dev/drm/i915/intel_panel.c | ||
|---|---|---|
|
}
|
||
|
}
|
||
|
#else
|
||
|
/*
|
||
|
* Read max backlight level
|
||
|
*/
|
||
|
static int
|
||
|
sysctl_backlight_max(SYSCTL_HANDLER_ARGS)
|
||
|
{
|
||
|
int err, val;
|
||
|
val = intel_panel_get_max_backlight((struct drm_device *)arg1);
|
||
|
err = sysctl_handle_int(oidp, &val, 0, req);
|
||
|
return(err);
|
||
|
}
|
||
|
/*
|
||
|
* Read/write backlight level
|
||
|
*/
|
||
|
static int
|
||
|
sysctl_backlight_handler(SYSCTL_HANDLER_ARGS)
|
||
|
{
|
||
|
struct drm_i915_private *dev_priv;
|
||
|
int err, val;
|
||
|
dev_priv = ((struct drm_device *)arg1)->dev_private;
|
||
|
val = dev_priv->backlight_level;
|
||
|
err = sysctl_handle_int(oidp, &val, 0, req);
|
||
|
if (err != 0 || req->newptr == NULL) {
|
||
|
return(err);
|
||
|
}
|
||
|
if (val != dev_priv->backlight_level && val >=0 &&
|
||
|
val <= intel_panel_get_max_backlight((struct drm_device *)arg1)) {
|
||
|
intel_panel_set_backlight(arg1, val);
|
||
|
}
|
||
|
return(err);
|
||
|
}
|
||
|
struct drm_sysctl_info {
|
||
|
struct sysctl_ctx_list ctx;
|
||
|
char name[2];
|
||
|
};
|
||
|
int intel_panel_setup_backlight(struct drm_connector *connector)
|
||
|
{
|
||
|
intel_panel_init_backlight(connector->dev);
|
||
|
SYSCTL_ADD_PROC(&connector->dev->sysctl->ctx, &sysctl__hw_children,
|
||
|
OID_AUTO, "backlight_max",
|
||
|
CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_ANYBODY,
|
||
|
connector->dev, sizeof(int),
|
||
|
sysctl_backlight_max,
|
||
|
"I", "Max backlight level");
|
||
|
SYSCTL_ADD_PROC(&connector->dev->sysctl->ctx, &sysctl__hw_children,
|
||
|
OID_AUTO, "backlight_level",
|
||
|
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY,
|
||
|
connector->dev, sizeof(int),
|
||
|
sysctl_backlight_handler,
|
||
|
"I", "Backlight level");
|
||
|
return 0;
|
||
|
}
|
||
| ... | ... | |
|
{
|
||
|
return;
|
||
|
}
|
||
|
#endif
|
||
|
int intel_panel_init(struct intel_panel *panel,
|
||