/* * Read in the new attribute value. */ static ssize_t msm_pm_mode_attr_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { int ret = -EINVAL; int i; KDEBUG_FUNC(); for (i = 0; i < MSM_PM_SLEEP_MODE_NR; i++) { struct kernel_param kp; if (strcmp(kobj->name, msm_pm_sleep_mode_labels[i])) continue; if (!strcmp(attr->attr.name, MSM_PM_MODE_ATTR_SUSPEND_ENABLED)) { kp.arg = &msm_pm_modes[i].suspend_enabled; ret = param_set_byte(buf, &kp); } else if (!strcmp(attr->attr.name, MSM_PM_MODE_ATTR_IDLE_ENABLED)) { kp.arg = &msm_pm_modes[i].idle_enabled; ret = param_set_byte(buf, &kp); } else if (!strcmp(attr->attr.name, MSM_PM_MODE_ATTR_LATENCY)) { kp.arg = &msm_pm_modes[i].latency; ret = param_set_ulong(buf, &kp); } else if (!strcmp(attr->attr.name, MSM_PM_MODE_ATTR_RESIDENCY)) { kp.arg = &msm_pm_modes[i].residency; ret = param_set_ulong(buf, &kp); } break; } return ret ? ret : count; }
/* * Read in the new attribute value. */ static ssize_t msm_pm_mode_attr_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { int ret = -EINVAL; int i; for (i = 0; i < MSM_PM_SLEEP_MODE_NR; i++) { struct kernel_param kp; unsigned int cpu; struct msm_pm_platform_data *mode; if (msm_pm_sleep_mode_labels[i] == NULL) continue; if (strcmp(kobj->name, msm_pm_sleep_mode_labels[i])) continue; cpu = GET_CPU_OF_ATTR(attr); mode = &msm_pm_modes[MSM_PM_MODE(cpu, i)]; if (!strcmp(attr->attr.name, msm_pm_mode_attr_labels[MSM_PM_MODE_ATTR_SUSPEND])) { kp.arg = &mode->suspend_enabled; ret = param_set_byte(buf, &kp); } else if (!strcmp(attr->attr.name, msm_pm_mode_attr_labels[MSM_PM_MODE_ATTR_IDLE])) { kp.arg = &mode->idle_enabled; ret = param_set_byte(buf, &kp); } else if (!strcmp(attr->attr.name, msm_pm_mode_attr_labels[MSM_PM_MODE_ATTR_LATENCY])) { kp.arg = &mode->latency; ret = param_set_ulong(buf, &kp); } else if (!strcmp(attr->attr.name, msm_pm_mode_attr_labels[MSM_PM_MODE_ATTR_RESIDENCY])) { kp.arg = &mode->residency; ret = param_set_ulong(buf, &kp); } break; } return ret ? ret : count; }
static int param_set_kb_brightness(const char *val, const struct kernel_param *kp) { int ret; ret = param_set_byte(val, kp); if (!ret && *((unsigned char *) kp->arg) > KB_BRIGHTNESS_MAX) return -EINVAL; return ret; }
static int param_set_poll_freq(const char *val, const struct kernel_param *kp) { int ret; ret = param_set_byte(val, kp); if (!ret) *((unsigned char *) kp->arg) = clamp_t(unsigned char, *((unsigned char *) kp->arg), POLL_FREQ_MIN, POLL_FREQ_MAX); return ret; }