Lines Matching defs:field

95                 for (j = 0; j < report->field[i]->maxusage; j++) {

96 usage = report->field[i]->usage + j;
179 * @field: the HID report field to calculate resolution for
192 __s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code)
194 __s32 unit_exponent = field->unit_exponent;
195 __s32 logical_extents = field->logical_maximum - field->logical_minimum;
196 __s32 physical_extents = field->physical_maximum - field->physical_minimum;
218 if (field->unit == HID_FIELD_UNIT_CENTIMETERS) { /* If centimeters */
221 } else if (field->unit == HID_FIELD_UNIT_INCHES) { /* If inches */
240 if (field->unit == HID_FIELD_UNIT_DEGREES) { /* If degrees */
248 } else if (field->unit != HID_FIELD_UNIT_RADIANS) { /* If not radians */
411 static int hidinput_setup_battery(struct hid_device *dev, unsigned report_type, struct hid_field *field)
450 min = field->logical_minimum;
451 max = field->logical_maximum;
465 dev->battery_report_id = field->report->id;
472 dev->battery_avoid_query = report_type == HID_INPUT_REPORT && field->physical == HID_DG_STYLUS;
524 static int hidinput_setup_battery(struct hid_device *dev, unsigned report_type, struct hid_field *field)
538 static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_field *field, struct hid_usage *usage)
545 field->hidinput = hidinput;
547 if (field->flags & HID_MAIN_ITEM_CONSTANT) {
552 if (field->report_count < 1) {
557 if (field->report_type == HID_OUTPUT_REPORT && (usage->hid & HID_USAGE_PAGE) != HID_UP_LED) {
562 int ret = device->driver->input_mapping(device, hidinput, field, usage, &bit, &max);
592 switch (field->application) {
612 switch (field->physical) {
724 if (field->application == HID_GD_SYSTEM_CONTROL) {
745 if (field->dpad) {
746 map_abs(field->dpad);
761 if (field->flags & HID_MAIN_ITEM_RELATIVE) {
769 if (field->flags & HID_MAIN_ITEM_RELATIVE) {
778 if (field->flags & HID_MAIN_ITEM_RELATIVE) {
786 usage->hat_min = field->logical_minimum;
787 usage->hat_max = field->logical_maximum;
800 if (field->application == HID_GD_WIRELESS_RADIO_CTLS) {
803 field->flags |= HID_MAIN_ITEM_RELATIVE;
855 if ((field->application & 0xff) == 0x01) { /* Digitizer */
857 } else if ((field->application & 0xff) == 0x02) { /* Pen */
875 switch (field->physical & 0xff) {
889 hidinput_setup_battery(device, HID_INPUT_REPORT, field);
1513 hidinput_setup_battery(device, HID_INPUT_REPORT, field);
1608 if (field->report_size == 1) {
1609 if (field->report->type == HID_OUTPUT_REPORT) {
1616 if (field->flags & HID_MAIN_ITEM_RELATIVE) {
1630 if (device->driver->input_mapped && device->driver->input_mapped(device, hidinput, field, usage, &bit, &max) < 0) {
1669 int a = field->logical_minimum;
1670 int b = field->logical_maximum;
1673 a = field->logical_minimum = 0;
1674 b = field->logical_maximum = 0xFF;
1677 if (field->application == HID_GD_GAMEPAD || field->application == HID_GD_JOYSTICK) {
1683 input_abs_set_res(input, usage->code, hidinput_calc_abs_res(field, usage->code));
1697 if (usage->hat_dir && !field->dpad) {
1698 field->dpad = usage->code;
1706 if ((usage->type == EV_ABS) && (field->flags & HID_MAIN_ITEM_RELATIVE) && (usage->code == ABS_VOLUME)) {
1756 void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value)
1770 if (!field->hidinput) {
1774 input = field->hidinput->input;
1779 value = field->logical_maximum - value;
1811 int a = field->logical_minimum;
1812 int b = field->logical_maximum;
1835 if ((usage->type == EV_ABS) && (field->flags & HID_MAIN_ITEM_RELATIVE) && (usage->code == ABS_VOLUME)) {
1860 if ((field->flags & HID_MAIN_ITEM_VARIABLE) && (field->logical_minimum < field->logical_maximum)) {
1861 if (field->flags & HID_MAIN_ITEM_NULL_STATE &&
1862 (value < field->logical_minimum || value > field->logical_maximum)) {
1866 value = clamp(value, field->logical_minimum, field->logical_maximum);
1879 if (!(field->flags & (HID_MAIN_ITEM_RELATIVE | HID_MAIN_ITEM_BUFFERED_BYTE)) &&
1880 (field->flags & HID_MAIN_ITEM_VARIABLE) && usage->usage_index < field->maxusage &&
1881 value == field->value[usage->usage_index]) {
1892 if ((field->flags & HID_MAIN_ITEM_RELATIVE) && usage->type == EV_KEY && value) {
1910 int hidinput_find_field(struct hid_device *hid, unsigned int type, unsigned int code, struct hid_field **field)
1918 *field = report->field[i];
1919 for (j = 0; j < (*field)->maxusage; j++) {
1920 if ((*field)->usage[j].type == type && (*field)->usage[j].code == code) {
1933 struct hid_field *field;
1939 field = report->field[i];
1940 for (j = 0; j < field->maxusage; j++) {
1941 if (field->usage[j].type == EV_LED) {
1942 return field;
1954 struct hid_field *field;
1961 field = report->field[i];
1962 for (j = 0; j < field->maxusage; j++) {
1963 if (field->usage[j].type == EV_LED && field->value[j]) {
1976 struct hid_field *field;
1982 field = hidinput_get_led_field(hid);
1983 if (!field) {
1988 * field->report is accessed unlocked regarding HID core. So there might
1993 * field (even garbage). So the remote device will always get a valid
2000 report = field->report;
2026 struct hid_field *field;
2037 if ((offset = hidinput_find_field(hid, type, code, &field)) == -1) {
2038 hid_warn(dev, "event field not found\n");
2042 hid_set_field(field, offset, value);
2075 __s32 value = use_logical_max ? report->field[i]->logical_maximum : report->field[i]->logical_minimum;
2081 if (report->field[i]->report_count != 1) {
2085 for (j = 0; j < report->field[i]->maxusage; j++) {
2086 usage = &report->field[i]->usage[j];
2112 report->field[i]->value[j] = value;
2154 if (rep->field[i]->report_count < 1) {
2158 for (j = 0; j < rep->field[i]->maxusage; j++) {
2159 usage = &rep->field[i]->usage[j];
2163 hidinput_setup_battery(hid, HID_FEATURE_REPORT, rep->field[i]);
2167 drv->feature_mapping(hid, rep->field[i], usage);
2325 if (report->field[i]->hidinput == hidinput) {
2326 report->field[i]->hidinput = NULL;
2370 for (j = 0; j < report->field[i]->maxusage; j++) {
2371 hidinput_configure_usage(hidinput, report->field[i], report->field[i]->usage + j);
2379 * Read all reports and initialize the absolute field values.