Commit e94793ee authored by Sebastian Reichel's avatar Sebastian Reichel Committed by Tomi Valkeinen
Browse files

drm/omap: dsi: drop unused memory_read()

parent 7c5662ba
Loading
Loading
Loading
Loading
+0 −93
Original line number Diff line number Diff line
@@ -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)
+0 −4
Original line number Diff line number Diff line
@@ -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);