All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Reichel <sre@kernel.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Tony Lindgren <tony@atomide.com>,
	Merlijn Wajer <merlijn@wizzup.org>,
	"H. Nikolaus Schaller" <hns@goldelico.com>,
	Rob Herring <robh@kernel.org>,
	linux-omap@vger.kernel.org, dri-devel@lists.freedesktop.org,
	kernel@collabora.com
Subject: Re: [PATCHv2 13/56] drm/omap: dsi: switch dsi_vc_send_long/short to mipi_dsi_msg
Date: Thu, 27 Feb 2020 00:34:31 +0100	[thread overview]
Message-ID: <20200226233431.c7spyx6kem4tr7xw@earth.universe> (raw)
In-Reply-To: <20200225163001.GN4764@pendragon.ideasonboard.com>

[-- Attachment #1: Type: text/plain, Size: 7510 bytes --]

Hi Laurent,

On Tue, Feb 25, 2020 at 06:30:01PM +0200, Laurent Pinchart wrote:
> On Tue, Feb 25, 2020 at 12:20:43AM +0100, Sebastian Reichel wrote:
> > Simplify the DSI encoder by using mipi_dsi_msg for
> > dsi_vc_send_long and dsi_vc_send_short. Further improvements
> > require cleaning up the channel allocation code first.
> > 
> > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> > ---
> >  drivers/gpu/drm/omapdrm/dss/dsi.c | 92 +++++++++++++++----------------
> >  1 file changed, 45 insertions(+), 47 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
> > index 9b5b078beb6d..4899bfa2d76f 100644
> > --- a/drivers/gpu/drm/omapdrm/dss/dsi.c
> > +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
> > @@ -2599,30 +2599,36 @@ static inline void dsi_vc_write_long_payload(struct dsi_data *dsi, int channel,
> >  	dsi_write_reg(dsi, DSI_VC_LONG_PACKET_PAYLOAD(channel), val);
> >  }
> >  
> > -static int dsi_vc_send_long(struct dsi_data *dsi, int channel, u8 data_type,
> > -			    const u8 *data, u16 len, u8 ecc)
> > +static int dsi_vc_send_long(struct dsi_data *dsi,
> > +			    const struct mipi_dsi_msg *msg)
> >  {
> > +	struct mipi_dsi_packet pkg;
> >  	/*u32 val; */
> >  	int i;
> >  	const u8 *p;
> >  	int r = 0;
> >  	u8 b1, b2, b3, b4;
> >  
> > +	r = mipi_dsi_create_packet(&pkg, msg);
> > +	if (r < 0)
> > +		return r;
> > +
> >  	if (dsi->debug_write)
> > -		DSSDBG("dsi_vc_send_long, %d bytes\n", len);
> > +		DSSDBG("dsi_vc_send_long, %d bytes\n", msg->tx_len);
> >  
> >  	/* len + header */
> > -	if (dsi->vc[channel].tx_fifo_size * 32 * 4 < len + 4) {
> > +	if (dsi->vc[msg->channel].tx_fifo_size * 32 * 4 < msg->tx_len + 4) {
> >  		DSSERR("unable to send long packet: packet too long.\n");
> >  		return -EINVAL;
> >  	}
> >  
> > -	dsi_vc_config_source(dsi, channel, DSI_VC_SOURCE_L4);
> > +	dsi_vc_config_source(dsi, msg->channel, DSI_VC_SOURCE_L4);
> >  
> > -	dsi_vc_write_long_header(dsi, channel, data_type, len, ecc);
> > +	dsi_vc_write_long_header(dsi, msg->channel, msg->type, msg->tx_len,
> > +				 pkg.header[3]);
> 
> mipi_dsi_create_packet() never sets header[3]. I suppose that's not an
> issue as we were always passing ecc as 0 to this function, but you may
> want to drop mipi_dsi_create_packet() above and just hardcode 0 here.

sure.

> >  
> > -	p = data;
> > -	for (i = 0; i < len >> 2; i++) {
> > +	p = msg->tx_buf;
> > +	for (i = 0; i < msg->tx_len >> 2; i++) {
> >  		if (dsi->debug_write)
> >  			DSSDBG("\tsending full packet %d\n", i);
> >  
> > @@ -2631,10 +2637,10 @@ static int dsi_vc_send_long(struct dsi_data *dsi, int channel, u8 data_type,
> >  		b3 = *p++;
> >  		b4 = *p++;
> >  
> > -		dsi_vc_write_long_payload(dsi, channel, b1, b2, b3, b4);
> > +		dsi_vc_write_long_payload(dsi, msg->channel, b1, b2, b3, b4);
> >  	}
> >  
> > -	i = len % 4;
> > +	i = msg->tx_len % 4;
> >  	if (i) {
> >  		b1 = 0; b2 = 0; b3 = 0;
> >  
> > @@ -2656,64 +2662,64 @@ static int dsi_vc_send_long(struct dsi_data *dsi, int channel, u8 data_type,
> >  			break;
> >  		}
> >  
> > -		dsi_vc_write_long_payload(dsi, channel, b1, b2, b3, 0);
> > +		dsi_vc_write_long_payload(dsi, msg->channel, b1, b2, b3, 0);
> >  	}
> >  
> >  	return r;
> >  }
> >  
> > -static int dsi_vc_send_short(struct dsi_data *dsi, int channel, u8 data_type,
> > -			     u16 data, u8 ecc)
> > +static int dsi_vc_send_short(struct dsi_data *dsi,
> > +			     const struct mipi_dsi_msg *msg)
> >  {
> > +	struct mipi_dsi_packet pkg;
> 
> s/pkg/pkt/ (or packet)

Ack.

-- Sebastian

> >  	u32 r;
> > -	u8 data_id;
> > +
> > +	r = mipi_dsi_create_packet(&pkg, msg);
> > +	if (r < 0)
> > +		return r;
> >  
> >  	WARN_ON(!dsi_bus_is_locked(dsi));
> >  
> >  	if (dsi->debug_write)
> >  		DSSDBG("dsi_vc_send_short(ch%d, dt %#x, b1 %#x, b2 %#x)\n",
> > -				channel,
> > -				data_type, data & 0xff, (data >> 8) & 0xff);
> > +				msg->channel,
> > +				msg->type, pkg.header[1], pkg.header[2]);
> >  
> > -	dsi_vc_config_source(dsi, channel, DSI_VC_SOURCE_L4);
> > +	dsi_vc_config_source(dsi, msg->channel, DSI_VC_SOURCE_L4);
> >  
> > -	if (FLD_GET(dsi_read_reg(dsi, DSI_VC_CTRL(channel)), 16, 16)) {
> > +	if (FLD_GET(dsi_read_reg(dsi, DSI_VC_CTRL(msg->channel)), 16, 16)) {
> >  		DSSERR("ERROR FIFO FULL, aborting transfer\n");
> >  		return -EINVAL;
> >  	}
> >  
> > -	data_id = data_type | channel << 6;
> > -
> > -	r = (data_id << 0) | (data << 8) | (ecc << 24);
> > +	r = pkg.header[3] << 24 | pkg.header[2] << 16 | pkg.header[1] << 8 |
> > +	    pkg.header[0];
> 
> OK, this justifies using mipi_dsi_create_packet(), so you can skip the
> related comments in earlier patches.
> 
> > -	dsi_write_reg(dsi, DSI_VC_SHORT_PACKET_HEADER(channel), r);
> > +	dsi_write_reg(dsi, DSI_VC_SHORT_PACKET_HEADER(msg->channel), r);
> >  
> >  	return 0;
> >  }
> >  
> >  static int dsi_vc_send_null(struct dsi_data *dsi, int channel)
> >  {
> > -	return dsi_vc_send_long(dsi, channel, MIPI_DSI_NULL_PACKET, NULL, 0, 0);
> > +	const struct mipi_dsi_msg msg = {
> > +		.channel = channel,
> > +		.type = MIPI_DSI_NULL_PACKET,
> > +	};
> > +
> > +	return dsi_vc_send_long(dsi, &msg);
> >  }
> >  
> >  static int dsi_vc_write_common(struct omap_dss_device *dssdev,
> >  			       const struct mipi_dsi_msg *msg)
> >  {
> >  	struct dsi_data *dsi = to_dsi_data(dssdev);
> > -	struct mipi_dsi_packet packet;
> >  	int r;
> >  
> > -	r = mipi_dsi_create_packet(&packet, msg);
> > -	if (r < 0)
> > -		return r;
> > -
> > -	if (mipi_dsi_packet_format_is_short(msg->type)) {
> > -		u16 data = packet.header[1] | (packet.header[2] << 8);
> > -		r = dsi_vc_send_short(dsi, msg->channel, msg->type, data, 0);
> > -	} else {
> > -		r = dsi_vc_send_long(dsi, msg->channel, msg->type,
> > -						   msg->tx_buf, msg->tx_len, 0);
> > -	}
> > +	if (mipi_dsi_packet_format_is_short(msg->type))
> > +		r = dsi_vc_send_short(dsi, msg);
> > +	else
> > +		r = dsi_vc_send_long(dsi, msg);
> >  
> >  	if (r < 0)
> >  		return r;
> > @@ -2853,10 +2859,10 @@ static int dsi_vc_dcs_read(struct omap_dss_device *dssdev,
> >  			   const struct mipi_dsi_msg *msg)
> >  {
> >  	struct dsi_data *dsi = to_dsi_data(dssdev);
> > +	u8 cmd = ((u8*) msg->tx_buf)[0];
> >  	int r;
> > -	u8 dcs_cmd = ((u8*) msg->tx_buf)[0];
> >  
> > -	r = dsi_vc_send_short(dsi, msg->channel, MIPI_DSI_DCS_READ, dcs_cmd, 0);
> > +	r = dsi_vc_send_short(dsi, msg);
> >  	if (r)
> >  		goto err;
> >  
> > @@ -2877,7 +2883,7 @@ static int dsi_vc_dcs_read(struct omap_dss_device *dssdev,
> >  	return 0;
> >  err:
> >  	DSSERR("dsi_vc_dcs_read(ch %d, cmd 0x%02x) failed\n",
> > -		msg->channel, dcs_cmd);
> > +		msg->channel, cmd);
> >  	return r;
> >  }
> >  
> > @@ -2885,17 +2891,9 @@ static int dsi_vc_generic_read(struct omap_dss_device *dssdev,
> >  			       const struct mipi_dsi_msg *msg)
> >  {
> >  	struct dsi_data *dsi = to_dsi_data(dssdev);
> > -	struct mipi_dsi_packet packet;
> > -	u16 data;
> >  	int r;
> >  
> > -	r = mipi_dsi_create_packet(&packet, msg);
> > -	if (r < 0)
> > -		goto err;
> > -
> > -	data = packet.header[1] | (packet.header[2] << 8);
> > -
> > -	r = dsi_vc_send_short(dsi, msg->channel, msg->type, data, 0);
> > +	r = dsi_vc_send_short(dsi, msg);
> >  	if (r)
> >  		goto err;
> >  
> 
> -- 
> Regards,
> 
> Laurent Pinchart

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Reichel <sre@kernel.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: kernel@collabora.com, Tony Lindgren <tony@atomide.com>,
	"H. Nikolaus Schaller" <hns@goldelico.com>,
	Merlijn Wajer <merlijn@wizzup.org>,
	dri-devel@lists.freedesktop.org,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	linux-omap@vger.kernel.org
Subject: Re: [PATCHv2 13/56] drm/omap: dsi: switch dsi_vc_send_long/short to mipi_dsi_msg
Date: Thu, 27 Feb 2020 00:34:31 +0100	[thread overview]
Message-ID: <20200226233431.c7spyx6kem4tr7xw@earth.universe> (raw)
In-Reply-To: <20200225163001.GN4764@pendragon.ideasonboard.com>


[-- Attachment #1.1: Type: text/plain, Size: 7510 bytes --]

Hi Laurent,

On Tue, Feb 25, 2020 at 06:30:01PM +0200, Laurent Pinchart wrote:
> On Tue, Feb 25, 2020 at 12:20:43AM +0100, Sebastian Reichel wrote:
> > Simplify the DSI encoder by using mipi_dsi_msg for
> > dsi_vc_send_long and dsi_vc_send_short. Further improvements
> > require cleaning up the channel allocation code first.
> > 
> > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> > ---
> >  drivers/gpu/drm/omapdrm/dss/dsi.c | 92 +++++++++++++++----------------
> >  1 file changed, 45 insertions(+), 47 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
> > index 9b5b078beb6d..4899bfa2d76f 100644
> > --- a/drivers/gpu/drm/omapdrm/dss/dsi.c
> > +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
> > @@ -2599,30 +2599,36 @@ static inline void dsi_vc_write_long_payload(struct dsi_data *dsi, int channel,
> >  	dsi_write_reg(dsi, DSI_VC_LONG_PACKET_PAYLOAD(channel), val);
> >  }
> >  
> > -static int dsi_vc_send_long(struct dsi_data *dsi, int channel, u8 data_type,
> > -			    const u8 *data, u16 len, u8 ecc)
> > +static int dsi_vc_send_long(struct dsi_data *dsi,
> > +			    const struct mipi_dsi_msg *msg)
> >  {
> > +	struct mipi_dsi_packet pkg;
> >  	/*u32 val; */
> >  	int i;
> >  	const u8 *p;
> >  	int r = 0;
> >  	u8 b1, b2, b3, b4;
> >  
> > +	r = mipi_dsi_create_packet(&pkg, msg);
> > +	if (r < 0)
> > +		return r;
> > +
> >  	if (dsi->debug_write)
> > -		DSSDBG("dsi_vc_send_long, %d bytes\n", len);
> > +		DSSDBG("dsi_vc_send_long, %d bytes\n", msg->tx_len);
> >  
> >  	/* len + header */
> > -	if (dsi->vc[channel].tx_fifo_size * 32 * 4 < len + 4) {
> > +	if (dsi->vc[msg->channel].tx_fifo_size * 32 * 4 < msg->tx_len + 4) {
> >  		DSSERR("unable to send long packet: packet too long.\n");
> >  		return -EINVAL;
> >  	}
> >  
> > -	dsi_vc_config_source(dsi, channel, DSI_VC_SOURCE_L4);
> > +	dsi_vc_config_source(dsi, msg->channel, DSI_VC_SOURCE_L4);
> >  
> > -	dsi_vc_write_long_header(dsi, channel, data_type, len, ecc);
> > +	dsi_vc_write_long_header(dsi, msg->channel, msg->type, msg->tx_len,
> > +				 pkg.header[3]);
> 
> mipi_dsi_create_packet() never sets header[3]. I suppose that's not an
> issue as we were always passing ecc as 0 to this function, but you may
> want to drop mipi_dsi_create_packet() above and just hardcode 0 here.

sure.

> >  
> > -	p = data;
> > -	for (i = 0; i < len >> 2; i++) {
> > +	p = msg->tx_buf;
> > +	for (i = 0; i < msg->tx_len >> 2; i++) {
> >  		if (dsi->debug_write)
> >  			DSSDBG("\tsending full packet %d\n", i);
> >  
> > @@ -2631,10 +2637,10 @@ static int dsi_vc_send_long(struct dsi_data *dsi, int channel, u8 data_type,
> >  		b3 = *p++;
> >  		b4 = *p++;
> >  
> > -		dsi_vc_write_long_payload(dsi, channel, b1, b2, b3, b4);
> > +		dsi_vc_write_long_payload(dsi, msg->channel, b1, b2, b3, b4);
> >  	}
> >  
> > -	i = len % 4;
> > +	i = msg->tx_len % 4;
> >  	if (i) {
> >  		b1 = 0; b2 = 0; b3 = 0;
> >  
> > @@ -2656,64 +2662,64 @@ static int dsi_vc_send_long(struct dsi_data *dsi, int channel, u8 data_type,
> >  			break;
> >  		}
> >  
> > -		dsi_vc_write_long_payload(dsi, channel, b1, b2, b3, 0);
> > +		dsi_vc_write_long_payload(dsi, msg->channel, b1, b2, b3, 0);
> >  	}
> >  
> >  	return r;
> >  }
> >  
> > -static int dsi_vc_send_short(struct dsi_data *dsi, int channel, u8 data_type,
> > -			     u16 data, u8 ecc)
> > +static int dsi_vc_send_short(struct dsi_data *dsi,
> > +			     const struct mipi_dsi_msg *msg)
> >  {
> > +	struct mipi_dsi_packet pkg;
> 
> s/pkg/pkt/ (or packet)

Ack.

-- Sebastian

> >  	u32 r;
> > -	u8 data_id;
> > +
> > +	r = mipi_dsi_create_packet(&pkg, msg);
> > +	if (r < 0)
> > +		return r;
> >  
> >  	WARN_ON(!dsi_bus_is_locked(dsi));
> >  
> >  	if (dsi->debug_write)
> >  		DSSDBG("dsi_vc_send_short(ch%d, dt %#x, b1 %#x, b2 %#x)\n",
> > -				channel,
> > -				data_type, data & 0xff, (data >> 8) & 0xff);
> > +				msg->channel,
> > +				msg->type, pkg.header[1], pkg.header[2]);
> >  
> > -	dsi_vc_config_source(dsi, channel, DSI_VC_SOURCE_L4);
> > +	dsi_vc_config_source(dsi, msg->channel, DSI_VC_SOURCE_L4);
> >  
> > -	if (FLD_GET(dsi_read_reg(dsi, DSI_VC_CTRL(channel)), 16, 16)) {
> > +	if (FLD_GET(dsi_read_reg(dsi, DSI_VC_CTRL(msg->channel)), 16, 16)) {
> >  		DSSERR("ERROR FIFO FULL, aborting transfer\n");
> >  		return -EINVAL;
> >  	}
> >  
> > -	data_id = data_type | channel << 6;
> > -
> > -	r = (data_id << 0) | (data << 8) | (ecc << 24);
> > +	r = pkg.header[3] << 24 | pkg.header[2] << 16 | pkg.header[1] << 8 |
> > +	    pkg.header[0];
> 
> OK, this justifies using mipi_dsi_create_packet(), so you can skip the
> related comments in earlier patches.
> 
> > -	dsi_write_reg(dsi, DSI_VC_SHORT_PACKET_HEADER(channel), r);
> > +	dsi_write_reg(dsi, DSI_VC_SHORT_PACKET_HEADER(msg->channel), r);
> >  
> >  	return 0;
> >  }
> >  
> >  static int dsi_vc_send_null(struct dsi_data *dsi, int channel)
> >  {
> > -	return dsi_vc_send_long(dsi, channel, MIPI_DSI_NULL_PACKET, NULL, 0, 0);
> > +	const struct mipi_dsi_msg msg = {
> > +		.channel = channel,
> > +		.type = MIPI_DSI_NULL_PACKET,
> > +	};
> > +
> > +	return dsi_vc_send_long(dsi, &msg);
> >  }
> >  
> >  static int dsi_vc_write_common(struct omap_dss_device *dssdev,
> >  			       const struct mipi_dsi_msg *msg)
> >  {
> >  	struct dsi_data *dsi = to_dsi_data(dssdev);
> > -	struct mipi_dsi_packet packet;
> >  	int r;
> >  
> > -	r = mipi_dsi_create_packet(&packet, msg);
> > -	if (r < 0)
> > -		return r;
> > -
> > -	if (mipi_dsi_packet_format_is_short(msg->type)) {
> > -		u16 data = packet.header[1] | (packet.header[2] << 8);
> > -		r = dsi_vc_send_short(dsi, msg->channel, msg->type, data, 0);
> > -	} else {
> > -		r = dsi_vc_send_long(dsi, msg->channel, msg->type,
> > -						   msg->tx_buf, msg->tx_len, 0);
> > -	}
> > +	if (mipi_dsi_packet_format_is_short(msg->type))
> > +		r = dsi_vc_send_short(dsi, msg);
> > +	else
> > +		r = dsi_vc_send_long(dsi, msg);
> >  
> >  	if (r < 0)
> >  		return r;
> > @@ -2853,10 +2859,10 @@ static int dsi_vc_dcs_read(struct omap_dss_device *dssdev,
> >  			   const struct mipi_dsi_msg *msg)
> >  {
> >  	struct dsi_data *dsi = to_dsi_data(dssdev);
> > +	u8 cmd = ((u8*) msg->tx_buf)[0];
> >  	int r;
> > -	u8 dcs_cmd = ((u8*) msg->tx_buf)[0];
> >  
> > -	r = dsi_vc_send_short(dsi, msg->channel, MIPI_DSI_DCS_READ, dcs_cmd, 0);
> > +	r = dsi_vc_send_short(dsi, msg);
> >  	if (r)
> >  		goto err;
> >  
> > @@ -2877,7 +2883,7 @@ static int dsi_vc_dcs_read(struct omap_dss_device *dssdev,
> >  	return 0;
> >  err:
> >  	DSSERR("dsi_vc_dcs_read(ch %d, cmd 0x%02x) failed\n",
> > -		msg->channel, dcs_cmd);
> > +		msg->channel, cmd);
> >  	return r;
> >  }
> >  
> > @@ -2885,17 +2891,9 @@ static int dsi_vc_generic_read(struct omap_dss_device *dssdev,
> >  			       const struct mipi_dsi_msg *msg)
> >  {
> >  	struct dsi_data *dsi = to_dsi_data(dssdev);
> > -	struct mipi_dsi_packet packet;
> > -	u16 data;
> >  	int r;
> >  
> > -	r = mipi_dsi_create_packet(&packet, msg);
> > -	if (r < 0)
> > -		goto err;
> > -
> > -	data = packet.header[1] | (packet.header[2] << 8);
> > -
> > -	r = dsi_vc_send_short(dsi, msg->channel, msg->type, data, 0);
> > +	r = dsi_vc_send_short(dsi, msg);
> >  	if (r)
> >  		goto err;
> >  
> 
> -- 
> Regards,
> 
> Laurent Pinchart

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-02-26 23:34 UTC|newest]

Thread overview: 226+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-24 23:20 [PATCHv2 00/56] drm/omap: Convert DSI code to use drm_mipi_dsi and drm_panel Sebastian Reichel
2020-02-24 23:20 ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 01/56] ARM: dts: omap: add channel to DSI panels Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:38   ` Laurent Pinchart
2020-02-24 23:38     ` Laurent Pinchart
2020-02-25  0:01     ` Sebastian Reichel
2020-02-25  0:01       ` Sebastian Reichel
2020-02-27 20:09   ` Sam Ravnborg
2020-02-27 20:09     ` Sam Ravnborg
2020-02-24 23:20 ` [PATCHv2 02/56] ARM: dts: omap4-droid4: add panel compatible Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:37   ` Laurent Pinchart
2020-02-24 23:37     ` Laurent Pinchart
2020-02-24 23:47     ` Tony Lindgren
2020-02-24 23:47       ` Tony Lindgren
2020-02-27 22:10       ` Laurent Pinchart
2020-02-27 22:10         ` Laurent Pinchart
2020-02-28 15:34         ` Tony Lindgren
2020-02-28 15:34           ` Tony Lindgren
2020-02-24 23:57     ` Sebastian Reichel
2020-02-24 23:57       ` Sebastian Reichel
2020-02-27 20:10   ` Sam Ravnborg
2020-02-27 20:10     ` Sam Ravnborg
2020-02-24 23:20 ` [PATCHv2 03/56] Revert "drm/omap: dss: Remove unused omap_dss_device operations" Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-03-25 12:42   ` Tomi Valkeinen
2020-03-25 12:42     ` Tomi Valkeinen
2020-02-24 23:20 ` [PATCHv2 04/56] omap/drm: drop unused dsi.configure_pins Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:42   ` Laurent Pinchart
2020-02-24 23:42     ` Laurent Pinchart
2020-02-26 21:28     ` Sebastian Reichel
2020-02-26 21:28       ` Sebastian Reichel
2020-02-26 21:36       ` Laurent Pinchart
2020-02-26 21:36         ` Laurent Pinchart
2020-02-26 22:25         ` Sebastian Reichel
2020-02-26 22:25           ` Sebastian Reichel
2020-03-25 12:45   ` Tomi Valkeinen
2020-03-25 12:45     ` Tomi Valkeinen
2020-02-24 23:20 ` [PATCHv2 05/56] drm/omap: dsi: use MIPI_DSI_FMT_* instead of OMAP_DSS_DSI_FMT_* Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-25 13:58   ` Laurent Pinchart
2020-02-25 13:58     ` Laurent Pinchart
2020-02-26 21:25     ` Sebastian Reichel
2020-02-26 21:25       ` Sebastian Reichel
2020-03-25 12:52   ` Tomi Valkeinen
2020-03-25 12:52     ` Tomi Valkeinen
2020-02-24 23:20 ` [PATCHv2 06/56] drm/omap: constify write buffers Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-25 14:13   ` Laurent Pinchart
2020-02-25 14:13     ` Laurent Pinchart
2020-03-25 12:53   ` Tomi Valkeinen
2020-03-25 12:53     ` Tomi Valkeinen
2020-02-24 23:20 ` [PATCHv2 07/56] drm/omap: dsi: add generic transfer function Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-25 14:16   ` Laurent Pinchart
2020-02-25 14:16     ` Laurent Pinchart
2020-03-25 13:05   ` Tomi Valkeinen
2020-03-25 13:05     ` Tomi Valkeinen
2020-02-24 23:20 ` [PATCHv2 08/56] drm/omap: panel-dsi-cm: convert to transfer API Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-25 14:52   ` Laurent Pinchart
2020-02-25 14:52     ` Laurent Pinchart
2020-02-26 22:12     ` Sebastian Reichel
2020-02-26 22:12       ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 09/56] drm/omap: dsi: unexport specific data transfer functions Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-25 14:53   ` Laurent Pinchart
2020-02-25 14:53     ` Laurent Pinchart
2020-02-24 23:20 ` [PATCHv2 10/56] drm/omap: dsi: drop virtual channel logic Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-25 15:01   ` Laurent Pinchart
2020-02-25 15:01     ` Laurent Pinchart
2020-04-01 11:30     ` Tomi Valkeinen
2020-04-01 11:30       ` Tomi Valkeinen
2020-04-01 11:33       ` Laurent Pinchart
2020-04-01 11:33         ` Laurent Pinchart
2020-04-01 11:43         ` Tomi Valkeinen
2020-04-01 11:43           ` Tomi Valkeinen
2020-02-24 23:20 ` [PATCHv2 11/56] drm/omap: dsi: simplify write function Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-25 15:31   ` Laurent Pinchart
2020-02-25 15:31     ` Laurent Pinchart
2020-02-26 22:46     ` Sebastian Reichel
2020-02-26 22:46       ` Sebastian Reichel
2020-02-26 22:48       ` Laurent Pinchart
2020-02-26 22:48         ` Laurent Pinchart
2020-02-24 23:20 ` [PATCHv2 12/56] drm/omap: dsi: simplify read functions Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-25 16:20   ` Laurent Pinchart
2020-02-25 16:20     ` Laurent Pinchart
2020-02-24 23:20 ` [PATCHv2 13/56] drm/omap: dsi: switch dsi_vc_send_long/short to mipi_dsi_msg Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-25 16:30   ` Laurent Pinchart
2020-02-25 16:30     ` Laurent Pinchart
2020-02-26 23:34     ` Sebastian Reichel [this message]
2020-02-26 23:34       ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 14/56] drm/omap: dsi: introduce mipi_dsi_host Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 15/56] drm/omap: panel-dsi-cm: use DSI helpers Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 16/56] drm/omap: dsi: request VC via mipi_dsi_attach Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 17/56] drm/omap: panel-dsi-cm: drop hardcoded VC Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 18/56] drm/omap: panel-dsi-cm: use common MIPI DCS 1.3 defines Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-04-01 12:09   ` Tomi Valkeinen
2020-04-01 12:09     ` Tomi Valkeinen
2020-02-24 23:20 ` [PATCHv2 19/56] drm/omap: dsi: drop unused memory_read() Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 20/56] drm/omap: dsi: drop unused get_te() Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 21/56] drm/omap: dsi: drop unused enable_te() Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 22/56] drm/omap: dsi: drop useless sync() Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 23/56] drm/omap: dsi: use pixel-format and mode from attach Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 24/56] drm/omap: panel-dsi-cm: use bulk regulator API Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 25/56] drm/omap: dsi: lp/hs switching support for transfer() Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 26/56] drm/omap: dsi: move TE GPIO handling into core Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 27/56] drm/omap: dsi: drop custom enable_te() API Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 28/56] drm/omap: dsi: do bus locking in host driver Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:20 ` [PATCHv2 29/56] drm/omap: dsi: untangle ulps ops from enable/disable Sebastian Reichel
2020-02-24 23:20   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 30/56] drm/dsi: add MIPI_DSI_MODE_ULPS_IDLE Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 31/56] drm/omap: dsi: do ULPS in host driver Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 32/56] drm/omap: dsi: move panel refresh function to host Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 33/56] drm/omap: dsi: Reverse direction of the DSS device enable/disable operations Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 34/56] drm/omap: dsi: drop custom panel capability support Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 35/56] drm/omap: dsi: convert to drm_panel Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 36/56] drm/omap: drop omapdss-boot-init Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 37/56] drm/omap: dsi: implement check timings Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 38/56] drm/omap: panel-dsi-cm: use DEVICE_ATTR_RO Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 39/56] drm/omap: panel-dsi-cm: support unbinding Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 40/56] drm/omap: panel-dsi-cm: fix remove() Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 41/56] drm/omap: dsi: return proper error code from dsi_update_all() Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-04-01 12:23   ` Tomi Valkeinen
2020-04-01 12:23     ` Tomi Valkeinen
2020-02-24 23:21 ` [PATCHv2 42/56] drm/omap: remove global dss_device variable Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 43/56] drm/omap: bind components with drm_device argument Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-27  0:32   ` Sebastian Reichel
2020-02-27  0:32     ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 44/56] drm/panel: Move OMAP's DSI command mode panel driver Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 45/56] drm/omap: dsi: Register a drm_bridge Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-25 11:50   ` [PATCHv2.1 " Sebastian Reichel
2020-02-25 11:50     ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 46/56] drm/omap: remove legacy DSS device operations Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 47/56] drm/omap: remove unused omap_connector Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 48/56] drm/omap: simplify omap_display_id Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 49/56] drm/omap: drop unused DSS next pointer Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 50/56] drm/omap: drop empty omap_encoder helper functions Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 51/56] drm/omap: drop DSS ops_flags Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 52/56] drm/omap: drop dssdev display field Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 53/56] drm/omap: simplify DSI manual update code Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 54/56] ARM: omap2plus_defconfig: Update for moved DSI command mode panel Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 55/56] drm/panel/panel-dsi-cm: support rotation property Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-24 23:21 ` [PATCHv2 56/56] ARM: dts: omap4-droid4: add panel orientation Sebastian Reichel
2020-02-24 23:21   ` Sebastian Reichel
2020-02-25  0:10 ` [PATCHv2 00/56] drm/omap: Convert DSI code to use drm_mipi_dsi and drm_panel Tony Lindgren
2020-02-25  0:10   ` Tony Lindgren
2020-02-25  2:28   ` Sebastian Reichel
2020-02-25  2:28     ` Sebastian Reichel
2020-02-25 15:42     ` Tony Lindgren
2020-02-25 15:42       ` Tony Lindgren
2020-02-25 23:01       ` Sebastian Reichel
2020-02-25 23:01         ` Sebastian Reichel
2020-02-25 23:06         ` Laurent Pinchart
2020-02-25 23:06           ` Laurent Pinchart
2020-02-25 23:09         ` Tony Lindgren
2020-02-25 23:09           ` Tony Lindgren
2020-02-25 23:52           ` Sebastian Reichel
2020-02-25 23:52             ` Sebastian Reichel
2020-02-26 12:20             ` Tomi Valkeinen
2020-02-26 12:20               ` Tomi Valkeinen
2020-02-25 11:53 ` [PATCHv2 57/56] dt-bindings: display: panel-dsi-cm: convert to YAML Sebastian Reichel
2020-02-25 11:53   ` Sebastian Reichel
2020-02-27 20:35   ` Sam Ravnborg
2020-02-27 20:35     ` Sam Ravnborg
2020-02-27 22:08     ` Laurent Pinchart
2020-02-27 22:08       ` Laurent Pinchart
2020-02-26 12:28 ` [PATCHv2 00/56] drm/omap: Convert DSI code to use drm_mipi_dsi and drm_panel Tomi Valkeinen
2020-02-26 12:28   ` Tomi Valkeinen
2020-02-27  0:28   ` Sebastian Reichel
2020-02-27  0:28     ` Sebastian Reichel
2020-03-25 12:47 ` Tomi Valkeinen
2020-03-25 12:47   ` Tomi Valkeinen
2020-03-25 13:03   ` Laurent Pinchart
2020-03-25 13:03     ` Laurent Pinchart
2020-04-01 12:43     ` Tomi Valkeinen
2020-04-01 12:43       ` Tomi Valkeinen
2020-06-25 13:07 ` H. Nikolaus Schaller
2020-06-25 13:07   ` H. Nikolaus Schaller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200226233431.c7spyx6kem4tr7xw@earth.universe \
    --to=sre@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hns@goldelico.com \
    --cc=kernel@collabora.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=merlijn@wizzup.org \
    --cc=robh@kernel.org \
    --cc=tomi.valkeinen@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.