return 0;
default:
return -EINVAL;
- };
+ }
case FEATURE_IMU_BYPASS:
switch (cmd_rep->device_type) {
case LEFT_CONTROLLER:
return 0;
default:
return -EINVAL;
- };
+ }
break;
case FEATURE_LIGHT_ENABLE:
drvdata.rgb_en = cmd_rep->data[0];
return 0;
default:
return -EINVAL;
- };
+ }
break;
case FEATURE_TOUCHPAD_ENABLE:
drvdata.tp_en = cmd_rep->data[0];
return 0;
default:
return -EINVAL;
- };
+ }
break;
case RUMBLE_MODE:
switch (cmd_rep->device_type) {
return 0;
default:
return -EINVAL;
- };
+ }
case TP_VIBRATION_ENABLE:
drvdata.tp_vibration_en = cmd_rep->data[0];
return 0;
return 0;
default:
return -EINVAL;
- };
+ }
}
static int hid_go_set_event_return(struct command_report *cmd_rep)
default:
ret = -EINVAL;
break;
- };
+ }
break;
case OS_MODE_DATA:
ret = hid_go_os_mode_cfg_event(cmd_rep);
break;
default:
goto passthrough;
- };
+ }
dev_dbg(&hdev->dev, "Rx data as raw input report: [%*ph]\n",
GO_PACKET_SIZE, data);
break;
default:
return -EINVAL;
- };
+ }
if (ret < 0)
return ret;
break;
default:
return -EINVAL;
- };
+ }
count = sysfs_emit(buf, "%u\n", i);
break;
case FEATURE_FPS_SWITCH_STATUS:
break;
default:
return -EINVAL;
- };
+ }
return count;
}
break;
default:
return -EINVAL;
- };
+ }
if (count)
buf[count - 1] = '\n';
ret = sysfs_match_string(intensity_text, buf);
val = ret;
break;
- };
+ }
if (ret < 0)
return ret;
break;
default:
return -EINVAL;
- };
+ }
if (i >= ARRAY_SIZE(enabled_status_text))
return -EINVAL;
break;
default:
return -EINVAL;
- };
+ }
if (i >= ARRAY_SIZE(rumble_mode_text))
return -EINVAL;
count = sysfs_emit(buf, "%s\n", intensity_text[i]);
break;
- };
+ }
return count;
}
enabled_status_text[i]);
}
break;
- };
+ }
if (count)
buf[count - 1] = '\n';
break;
default:
return -EINVAL;
- };
+ }
if (i >= ARRAY_SIZE(cal_status_text))
return -EINVAL;
index = drvdata.rgb_profile + 3;
return rgb_cfg_call(drvdata.hdev, GET_RGB_CFG, index, NULL, 0);
-};
+}
static ssize_t rgb_effect_store(struct device *dev,
struct device_attribute *attr, const char *buf,
drvdata.rgb_effect = effect;
return count;
-};
+}
static ssize_t rgb_effect_show(struct device *dev,
struct device_attribute *attr, char *buf)
drvdata.rgb_speed = val;
return count;
-};
+}
static ssize_t rgb_speed_show(struct device *dev, struct device_attribute *attr,
char *buf)
drvdata.rgb_mode = val;
return count;
-};
+}
static ssize_t rgb_mode_show(struct device *dev, struct device_attribute *attr,
char *buf)
return -EINVAL;
return sysfs_emit(buf, "%s\n", rgb_mode_text[drvdata.rgb_mode]);
-};
+}
static ssize_t rgb_mode_index_show(struct device *dev,
struct device_attribute *attr, char *buf)
drvdata.rgb_profile = val;
return count;
-};
+}
static ssize_t rgb_profile_show(struct device *dev,
struct device_attribute *attr, char *buf)
return -EINVAL;
return sysfs_emit(buf, "%hhu\n", drvdata.rgb_profile);
-};
+}
static ssize_t rgb_profile_range_show(struct device *dev,
struct device_attribute *attr, char *buf)
break;
default:
dev_err(led_cdev->dev, "Failed to write RGB profile: %i\n", ret);
- };
+ }
}
#define LEGO_DEVICE_ATTR_RW(_name, _attrname, _dtype, _rtype, _group) \