/* * prepare cmd buffer to be txed */ int mdss_dsi_cmd_dma_add(struct dsi_buf *dp, struct dsi_cmd_desc *cm) { int len = 0; switch (cm->dtype) { case DTYPE_GEN_WRITE: case DTYPE_GEN_WRITE1: case DTYPE_GEN_WRITE2: len = mdss_dsi_generic_swrite(dp, cm); break; case DTYPE_GEN_LWRITE: len = mdss_dsi_generic_lwrite(dp, cm); break; case DTYPE_GEN_READ: case DTYPE_GEN_READ1: case DTYPE_GEN_READ2: len = mdss_dsi_generic_read(dp, cm); break; case DTYPE_DCS_LWRITE: len = mdss_dsi_dcs_lwrite(dp, cm); break; case DTYPE_DCS_WRITE: len = mdss_dsi_dcs_swrite(dp, cm); break; case DTYPE_DCS_WRITE1: len = mdss_dsi_dcs_swrite1(dp, cm); break; case DTYPE_DCS_READ: len = mdss_dsi_dcs_read(dp, cm); break; case DTYPE_MAX_PKTSIZE: len = mdss_dsi_set_max_pktsize(dp, cm); break; case DTYPE_NULL_PKT: len = mdss_dsi_null_pkt(dp, cm); break; case DTYPE_BLANK_PKT: len = mdss_dsi_blank_pkt(dp, cm); break; case DTYPE_CM_ON: len = mdss_dsi_cm_on(dp, cm); break; case DTYPE_CM_OFF: len = mdss_dsi_cm_off(dp, cm); break; case DTYPE_PERIPHERAL_ON: len = mdss_dsi_peripheral_on(dp, cm); break; case DTYPE_PERIPHERAL_OFF: len = mdss_dsi_peripheral_off(dp, cm); break; default: pr_debug("%s: dtype=%x NOT supported\n", __func__, cm->dtype); break; } return len; }
static ssize_t mipi_dsi_read_set(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { unsigned int reg_addr; ssize_t ret = strnlen(buf, PAGE_SIZE); struct mdss_dsi_ctrl_pdata *ctrl = NULL; if (pdata_base == NULL) { pr_err("%s: Invalid input data\n", __func__); return -EINVAL; } ctrl = container_of(pdata_base, struct mdss_dsi_ctrl_pdata, panel_data); sscanf(buf, "%x", ®_addr); mdss_dsi_dcs_read(ctrl, (char)reg_addr, 0x00); return ret; }