/* * prepare cmd buffer to be txed */ int mipi_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 = mipi_dsi_generic_swrite(dp, cm); break; case DTYPE_GEN_LWRITE: len = mipi_dsi_generic_lwrite(dp, cm); break; case DTYPE_GEN_READ: case DTYPE_GEN_READ1: case DTYPE_GEN_READ2: len = mipi_dsi_generic_read(dp, cm); break; case DTYPE_DCS_LWRITE: len = mipi_dsi_dcs_lwrite(dp, cm); break; case DTYPE_DCS_WRITE: len = mipi_dsi_dcs_swrite(dp, cm); break; case DTYPE_DCS_WRITE1: len = mipi_dsi_dcs_swrite1(dp, cm); break; case DTYPE_DCS_READ: len = mipi_dsi_dcs_read(dp, cm); break; case DTYPE_MAX_PKTSIZE: len = mipi_dsi_set_max_pktsize(dp, cm); break; case DTYPE_NULL_PKT: len = mipi_dsi_null_pkt(dp, cm); break; case DTYPE_BLANK_PKT: len = mipi_dsi_blank_pkt(dp, cm); break; case DTYPE_CM_ON: len = mipi_dsi_cm_on(dp, cm); break; case DTYPE_CM_OFF: len = mipi_dsi_cm_off(dp, cm); break; case DTYPE_PERIPHERAL_ON: len = mipi_dsi_peripheral_on(dp, cm); break; case DTYPE_PERIPHERAL_OFF: len = mipi_dsi_peripheral_off(dp, cm); break; default: printk("%s: dtype=%x NOT supported\n", __func__, cm->dtype); break; } return len; }
static int s6e8aa0_dcs_read(struct s6e8aa0 *ctx, u8 cmd, void *data, size_t len) { struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); int ret; if (ctx->error < 0) return ctx->error; ret = mipi_dsi_dcs_read(dsi, dsi->channel, cmd, data, len); if (ret < 0) { dev_err(ctx->dev, "error %d reading dcs seq(%#x)\n", ret, cmd); ctx->error = ret; } return ret; }