static ssize_t tuning_show(struct device *dev, struct device_attribute *attr, char *buf) { struct mdnie_info *mdnie = dev_get_drvdata(dev); char *pos = buf; struct mdnie_table *table = NULL; int i, idx; pos += sprintf(pos, "++ %s: %s\n", __func__, mdnie->path); if (!mdnie->tuning) { pos += sprintf(pos, "tunning mode is off\n"); goto exit; } if (strncmp(mdnie->path, MDNIE_SYSFS_PREFIX, sizeof(MDNIE_SYSFS_PREFIX) - 1)) { pos += sprintf(pos, "file path is invalid, %s\n", mdnie->path); goto exit; } table = mdnie_find_table(mdnie); if (!IS_ERR_OR_NULL(table) && !IS_ERR_OR_NULL(table->name)) { mdnie_request_table(mdnie->path, table); for (idx = 0; table->seq[idx].len; idx++) { for (i = 0; i < table->seq[idx].len; i++) pos += sprintf(pos, "0x%02x ", table->seq[idx].cmd[i]); } pos += sprintf(pos, "\n"); } exit: pos += sprintf(pos, "-- %s\n", __func__); return pos - buf; }
static void mdnie_update_sequence(struct mdnie_info *mdnie, struct mdnie_table *table) { if (mdnie->tuning) mdnie_request_table(mdnie->path, table); mdnie_write_table(mdnie, table); return; }
static void mdnie_update_sequence(struct mdnie_info *mdnie, struct mdnie_table *table) { struct mdnie_table *t = NULL; if (mdnie->tuning) { t = mdnie_request_table(mdnie->path, table); if (!IS_ERR_OR_NULL(t) && !IS_ERR_OR_NULL(t->name)) mdnie_write_table(mdnie, t); else mdnie_write_table(mdnie, table); } else mdnie_write_table(mdnie, table); return; }
void mdnie_update(struct mdnie_info *mdnie) { struct mdnie_tuning_info *table = NULL; if (!mdnie->enable) { dev_err(mdnie->dev, "mdnie state is off\n"); return; } table = mdnie_request_table(mdnie); if (!IS_ERR_OR_NULL(table) && !IS_ERR_OR_NULL(table->sequence)) { mdnie_update_sequence(mdnie, table); dev_info(mdnie->dev, "%s\n", table->name); } return; }
static ssize_t tuning_show(struct device *dev, struct device_attribute *attr, char *buf) { struct mdnie_info *mdnie = dev_get_drvdata(dev); char *pos = buf; struct mdnie_tuning_info *table; int ret, i; unsigned short *wbuf; pos += sprintf(pos, "++ %s: %s\n", __func__, mdnie->path); if (!mdnie->tuning) { pos += sprintf(pos, "tunning mode is off\n"); goto exit; } if (strncmp(mdnie->path, MDNIE_SYSFS_PREFIX, sizeof(MDNIE_SYSFS_PREFIX) - 1)) { pos += sprintf(pos, "file path is invalid, %s\n", mdnie->path); goto exit; } table = mdnie_request_table(mdnie); if (!IS_ERR_OR_NULL(table)) { ret = mdnie_request_firmware(mdnie->path, &wbuf, table->name); i = 0; while (wbuf[i] != END_SEQ) { pos += sprintf(pos, "0x%04x, 0x%04x\n", wbuf[i], wbuf[i+1]); i += 2; } if (!IS_ERR_OR_NULL(wbuf)) kfree(wbuf); pos += sprintf(pos, "%s\n", table->name); } exit: pos += sprintf(pos, "-- %s\n", __func__); return pos - buf; }