static ssize_t dcm_state_store(struct kobject *kobj, struct kobj_attribute *attr,const char *buf, size_t n) { char cmd[10]; unsigned int mask; if (sscanf(buf, "%s %x", cmd, &mask) == 2) { mask &= ALL_DCM; /* Need to enable MM clock before setting Smi_secure register to avoid system crash while screen is off(screen off with USB cable) */ enable_mux(MT_MUX_MM, "DCM"); if (!strcmp(cmd, "enable")) { dcm_dump_regs(mask); dcm_enable(mask); dcm_dump_regs(mask); } else if (!strcmp(cmd, "disable")) { dcm_dump_regs(mask); dcm_disable(mask); dcm_dump_regs(mask); } else if (!strcmp(cmd, "dump")) { dcm_dump_regs(mask); } disable_mux(MT_MUX_MM, "DCM"); return n; } return -EINVAL; }
static ssize_t dcm_state_store(struct kobject *kobj, struct kobj_attribute *attr,const char *buf, size_t n) { char cmd[16]; unsigned int mask; if (sscanf(buf, "%15s %x", cmd, &mask) == 2) { mask &= ALL_DCM; if (!strcmp(cmd, "enable")) { dcm_dump_regs(mask); dcm_enable(mask); dcm_dump_regs(mask); } else if (!strcmp(cmd, "disable")) { dcm_dump_regs(mask); dcm_disable(mask); dcm_dump_regs(mask); } else if (!strcmp(cmd, "dump")) { dcm_dump_regs(mask); } return n; } return -EINVAL; }
void dcm_disable_all(void) { dcm_disable(ALL_DCM); }