diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 93 | ||||
-rw-r--r-- | drivers/gpu/drm/omapdrm/dss/omapdss.h | 4 |
2 files changed, 0 insertions, 97 deletions
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c index e4e86e70e333..870271fc0498 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c @@ -930,97 +930,6 @@ static int dsicm_get_te(struct omap_dss_device *dssdev) return r; } -static int dsicm_set_max_rx_packet_size(struct omap_dss_device *dssdev, - u16 size) -{ - struct panel_drv_data *ddata = to_panel_data(dssdev); - struct mipi_dsi_device *dsi = ddata->dsi; - - return mipi_dsi_set_maximum_return_packet_size(dsi, size); -} - -static int dsicm_memory_read(struct omap_dss_device *dssdev, - void *buf, size_t size, - u16 x, u16 y, u16 w, u16 h) -{ - struct panel_drv_data *ddata = to_panel_data(dssdev); - struct mipi_dsi_device *dsi = ddata->dsi; - struct omap_dss_device *src = ddata->src; - int r; - int first = 1; - int plen; - unsigned int buf_used = 0; - - if (size < w * h * 3) - return -ENOMEM; - - mutex_lock(&ddata->lock); - - if (!ddata->enabled) { - r = -ENODEV; - goto err1; - } - - size = min((u32)w * h * 3, - ddata->vm.hactive * ddata->vm.vactive * 3); - - src->ops->dsi.bus_lock(src); - - r = dsicm_wake_up(ddata); - if (r) - goto err2; - - /* plen 1 or 2 goes into short packet. until checksum error is fixed, - * use short packets. plen 32 works, but bigger packets seem to cause - * an error. */ - if (size % 2) - plen = 1; - else - plen = 2; - - dsicm_set_update_window(ddata, x, y, w, h); - - r = dsicm_set_max_rx_packet_size(dssdev, plen); - if (r) - goto err2; - - while (buf_used < size) { - u8 dcs_cmd = first ? 0x2e : 0x3e; - first = 0; - - r = mipi_dsi_dcs_read(dsi, dcs_cmd, - buf + buf_used, size - buf_used); - if (r < 0) { - dev_err(dssdev->dev, "read error\n"); - goto err3; - } - - buf_used += r; - - if (r < plen) { - dev_err(&ddata->dsi->dev, "short read\n"); - break; - } - - if (signal_pending(current)) { - dev_err(&ddata->dsi->dev, "signal pending, " - "aborting memory read\n"); - r = -ERESTARTSYS; - goto err3; - } - } - - r = buf_used; - -err3: - dsicm_set_max_rx_packet_size(dssdev, 1); -err2: - src->ops->dsi.bus_unlock(src); -err1: - mutex_unlock(&ddata->lock); - return r; -} - static void dsicm_ulps_work(struct work_struct *work) { struct panel_drv_data *ddata = container_of(work, struct panel_drv_data, @@ -1093,8 +1002,6 @@ static const struct omap_dss_driver dsicm_dss_driver = { .enable_te = dsicm_enable_te, .get_te = dsicm_get_te, - - .memory_read = dsicm_memory_read, }; static int dsicm_probe_of(struct mipi_dsi_device *dsi) diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h index 9a7322f4774e..1bc2d5e31041 100644 --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h @@ -392,10 +392,6 @@ struct omap_dss_driver { int (*enable_te)(struct omap_dss_device *dssdev, bool enable); int (*get_te)(struct omap_dss_device *dssdev); - - int (*memory_read)(struct omap_dss_device *dssdev, - void *buf, size_t size, - u16 x, u16 y, u16 w, u16 h); }; struct dss_device *omapdss_get_dss(void); |