// SPDX-License-Identifier: GPL-2.0-only /*************************************************************************** * Copyright (C) 2010-2012 by Bruno Prémont <bonbons@linux-vserver.org> * * * * Based on Logitech G13 driver (v0.4) * * Copyright (C) 2009 by Rick L. Vinyard, Jr. <rvinyard@cs.nmsu.edu> * * *
***************************************************************************/
staticvoid picolcd_led_set_brightness(struct led_classdev *led_cdev, enum led_brightness value)
{ struct device *dev; struct hid_device *hdev; struct picolcd_data *data; int i, state = 0;
dev = led_cdev->dev->parent;
hdev = to_hid_device(dev);
data = hid_get_drvdata(hdev); if (!data) return; for (i = 0; i < 8; i++) { if (led_cdev != data->led[i]) continue;
state = (data->led_state >> i) & 1; if (value == LED_OFF && state) {
data->led_state &= ~(1 << i);
picolcd_leds_set(data);
} elseif (value != LED_OFF && !state) {
data->led_state |= 1 << i;
picolcd_leds_set(data);
} break;
}
}
staticenum led_brightness picolcd_led_get_brightness(struct led_classdev *led_cdev)
{ struct device *dev; struct hid_device *hdev; struct picolcd_data *data; int i, value = 0;
dev = led_cdev->dev->parent;
hdev = to_hid_device(dev);
data = hid_get_drvdata(hdev); for (i = 0; i < 8; i++) if (led_cdev == data->led[i]) {
value = (data->led_state >> i) & 1; break;
} return value ? LED_FULL : LED_OFF;
}
int picolcd_init_leds(struct picolcd_data *data, struct hid_report *report)
{ struct device *dev = &data->hdev->dev; struct led_classdev *led;
size_t name_sz = strlen(dev_name(dev)) + 8; char *name; int i, ret = 0;
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.