/* exchange txdummy for value */
ret = jornada_ssp_byte(TXDUMMY);
jornada_ssp_end();
return BL_MAX_BRIGHT - ret;
}
staticint jornada_bl_update_status(struct backlight_device *bd)
{ int ret = 0;
jornada_ssp_start();
/* If backlight is off then really turn it off */ if (backlight_is_blank(bd)) {
ret = jornada_ssp_byte(BRIGHTNESSOFF); if (ret != TXDUMMY) {
dev_info(&bd->dev, "brightness off timeout\n"); /* turn off backlight */
PPSR &= ~PPC_LDD1;
PPDR |= PPC_LDD1;
ret = -ETIMEDOUT;
}
} else/* turn on backlight */
PPSR |= PPC_LDD1;
/* send command to our mcu */ if (jornada_ssp_byte(SETBRIGHTNESS) != TXDUMMY) {
dev_info(&bd->dev, "failed to set brightness\n");
ret = -ETIMEDOUT; goto out;
}
/* * at this point we expect that the mcu has accepted * our command and is waiting for our new value * please note that maximum brightness is 255, * but due to physical layout it is equal to 0, so we simply * invert the value (MAX VALUE - NEW VALUE).
*/ if (jornada_ssp_byte(BL_MAX_BRIGHT - bd->props.brightness)
!= TXDUMMY) {
dev_err(&bd->dev, "set brightness failed\n");
ret = -ETIMEDOUT;
}
/* * If infact we get an TXDUMMY as output we are happy and dont * make any further comments about it
*/
out:
jornada_ssp_end();
bd = devm_backlight_device_register(&pdev->dev, S1D_DEVICENAME,
&pdev->dev, NULL, &jornada_bl_ops,
&props); if (IS_ERR(bd)) {
ret = PTR_ERR(bd);
dev_err(&pdev->dev, "failed to register device, err=%x\n", ret); return ret;
}
bd->props.power = BACKLIGHT_POWER_ON;
bd->props.brightness = BL_DEF_BRIGHT; /* * note. make sure max brightness is set otherwise * you will get seemingly non-related errors when * trying to change brightness
*/
jornada_bl_update_status(bd);
platform_set_drvdata(pdev, bd);
dev_info(&pdev->dev, "HP Jornada 700 series backlight driver\n");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.