From: Jani Nikula <jani.nikula@linux.intel.com>
To: Gaurav K Singh <gaurav.k.singh@intel.com>,
intel-gfx <intel-gfx@lists.freedesktop.org>
Cc: Shobhit Kumar <shobhit.kumar@intel.com>
Subject: Re: [PATCH 02/10] drm/i915: Added port as parameter to the functions which does read/write of DSI Controller
Date: Thu, 04 Dec 2014 11:14:01 +0200 [thread overview]
Message-ID: <87egsfn5eu.fsf@intel.com> (raw)
In-Reply-To: <1417670936-31032-3-git-send-email-gaurav.k.singh@intel.com>
On Thu, 04 Dec 2014, Gaurav K Singh <gaurav.k.singh@intel.com> wrote:
> This patch is in preparation of DSI dual link panels. For dual link
> panels, few packets needs to be sent to Port A or Port C or both. Based
> on the portno from MIPI Sequence Block#53, these sequences needs to be
> sent accordingly.
>
> v2: Addressed review comments by Jani
> - port variables named properly
>
> Signed-off-by: Gaurav K Singh <gaurav.k.singh@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/intel_dsi_cmd.c | 75 ++++++++++++----------------
> drivers/gpu/drm/i915/intel_dsi_cmd.h | 46 +++++++++--------
> drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 25 ++++++----
> 3 files changed, 74 insertions(+), 72 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dsi_cmd.c b/drivers/gpu/drm/i915/intel_dsi_cmd.c
> index 004fa91..8e30684 100644
> --- a/drivers/gpu/drm/i915/intel_dsi_cmd.c
> +++ b/drivers/gpu/drm/i915/intel_dsi_cmd.c
> @@ -48,13 +48,11 @@
> * For memory writes, these should probably be used for performance.
> */
>
> -static void print_stat(struct intel_dsi *intel_dsi)
> +static void print_stat(struct intel_dsi *intel_dsi, enum port port)
> {
> struct drm_encoder *encoder = &intel_dsi->base.base;
> struct drm_device *dev = encoder->dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> - struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
> - enum port port = intel_dsi_pipe_to_port(intel_crtc->pipe);
> u32 val;
>
> val = I915_READ(MIPI_INTR_STAT(port));
> @@ -104,13 +102,12 @@ enum dsi_type {
> };
>
> /* enable or disable command mode hs transmissions */
> -void dsi_hs_mode_enable(struct intel_dsi *intel_dsi, bool enable)
> +void dsi_hs_mode_enable(struct intel_dsi *intel_dsi, bool enable,
> + enum port port)
> {
> struct drm_encoder *encoder = &intel_dsi->base.base;
> struct drm_device *dev = encoder->dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> - struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
> - enum port port = intel_dsi_pipe_to_port(intel_crtc->pipe);
> u32 temp;
> u32 mask = DBI_FIFO_EMPTY;
>
> @@ -125,13 +122,11 @@ void dsi_hs_mode_enable(struct intel_dsi *intel_dsi, bool enable)
> }
>
> static int dsi_vc_send_short(struct intel_dsi *intel_dsi, int channel,
> - u8 data_type, u16 data)
> + u8 data_type, u16 data, enum port port)
> {
> struct drm_encoder *encoder = &intel_dsi->base.base;
> struct drm_device *dev = encoder->dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> - struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
> - enum port port = intel_dsi_pipe_to_port(intel_crtc->pipe);
> u32 ctrl_reg;
> u32 ctrl;
> u32 mask;
> @@ -149,7 +144,7 @@ static int dsi_vc_send_short(struct intel_dsi *intel_dsi, int channel,
>
> if (wait_for((I915_READ(MIPI_GEN_FIFO_STAT(port)) & mask) == 0, 50)) {
> DRM_ERROR("Timeout waiting for HS/LP CTRL FIFO !full\n");
> - print_stat(intel_dsi);
> + print_stat(intel_dsi, port);
> }
>
> /*
> @@ -167,13 +162,11 @@ static int dsi_vc_send_short(struct intel_dsi *intel_dsi, int channel,
> }
>
> static int dsi_vc_send_long(struct intel_dsi *intel_dsi, int channel,
> - u8 data_type, const u8 *data, int len)
> + u8 data_type, const u8 *data, int len, enum port port)
> {
> struct drm_encoder *encoder = &intel_dsi->base.base;
> struct drm_device *dev = encoder->dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> - struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
> - enum port port = intel_dsi_pipe_to_port(intel_crtc->pipe);
> u32 data_reg;
> int i, j, n;
> u32 mask;
> @@ -204,12 +197,12 @@ static int dsi_vc_send_long(struct intel_dsi *intel_dsi, int channel,
> * dwords, then wait for not set, then continue. */
> }
>
> - return dsi_vc_send_short(intel_dsi, channel, data_type, len);
> + return dsi_vc_send_short(intel_dsi, channel, data_type, len, port);
> }
>
> static int dsi_vc_write_common(struct intel_dsi *intel_dsi,
> int channel, const u8 *data, int len,
> - enum dsi_type type)
> + enum dsi_type type, enum port port)
> {
> int ret;
>
> @@ -217,50 +210,54 @@ static int dsi_vc_write_common(struct intel_dsi *intel_dsi,
> BUG_ON(type == DSI_GENERIC);
> ret = dsi_vc_send_short(intel_dsi, channel,
> MIPI_DSI_GENERIC_SHORT_WRITE_0_PARAM,
> - 0);
> + 0, port);
> } else if (len == 1) {
> ret = dsi_vc_send_short(intel_dsi, channel,
> type == DSI_GENERIC ?
> MIPI_DSI_GENERIC_SHORT_WRITE_1_PARAM :
> - MIPI_DSI_DCS_SHORT_WRITE, data[0]);
> + MIPI_DSI_DCS_SHORT_WRITE, data[0],
> + port);
> } else if (len == 2) {
> ret = dsi_vc_send_short(intel_dsi, channel,
> type == DSI_GENERIC ?
> MIPI_DSI_GENERIC_SHORT_WRITE_2_PARAM :
> MIPI_DSI_DCS_SHORT_WRITE_PARAM,
> - (data[1] << 8) | data[0]);
> + (data[1] << 8) | data[0], port);
> } else {
> ret = dsi_vc_send_long(intel_dsi, channel,
> - type == DSI_GENERIC ?
> - MIPI_DSI_GENERIC_LONG_WRITE :
> - MIPI_DSI_DCS_LONG_WRITE, data, len);
> + type == DSI_GENERIC ?
> + MIPI_DSI_GENERIC_LONG_WRITE :
> + MIPI_DSI_DCS_LONG_WRITE, data, len,
> + port);
> }
>
> return ret;
> }
>
> int dsi_vc_dcs_write(struct intel_dsi *intel_dsi, int channel,
> - const u8 *data, int len)
> + const u8 *data, int len, enum port port)
> {
> - return dsi_vc_write_common(intel_dsi, channel, data, len, DSI_DCS);
> + return dsi_vc_write_common(intel_dsi, channel, data, len, DSI_DCS,
> + port);
> }
>
> int dsi_vc_generic_write(struct intel_dsi *intel_dsi, int channel,
> - const u8 *data, int len)
> + const u8 *data, int len, enum port port)
> {
> - return dsi_vc_write_common(intel_dsi, channel, data, len, DSI_GENERIC);
> + return dsi_vc_write_common(intel_dsi, channel, data, len, DSI_GENERIC,
> + port);
> }
>
> static int dsi_vc_dcs_send_read_request(struct intel_dsi *intel_dsi,
> - int channel, u8 dcs_cmd)
> + int channel, u8 dcs_cmd, enum port port)
> {
> return dsi_vc_send_short(intel_dsi, channel, MIPI_DSI_DCS_READ,
> - dcs_cmd);
> + dcs_cmd, port);
> }
>
> static int dsi_vc_generic_send_read_request(struct intel_dsi *intel_dsi,
> int channel, u8 *reqdata,
> - int reqlen)
> + int reqlen, enum port port)
> {
> u16 data;
> u8 data_type;
> @@ -282,17 +279,15 @@ static int dsi_vc_generic_send_read_request(struct intel_dsi *intel_dsi,
> BUG();
> }
>
> - return dsi_vc_send_short(intel_dsi, channel, data_type, data);
> + return dsi_vc_send_short(intel_dsi, channel, data_type, data, port);
> }
>
> static int dsi_read_data_return(struct intel_dsi *intel_dsi,
> - u8 *buf, int buflen)
> + u8 *buf, int buflen, enum port port)
> {
> struct drm_encoder *encoder = &intel_dsi->base.base;
> struct drm_device *dev = encoder->dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> - struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
> - enum port port = intel_dsi_pipe_to_port(intel_crtc->pipe);
> int i, len = 0;
> u32 data_reg, val;
>
> @@ -312,13 +307,11 @@ static int dsi_read_data_return(struct intel_dsi *intel_dsi,
> }
>
> int dsi_vc_dcs_read(struct intel_dsi *intel_dsi, int channel, u8 dcs_cmd,
> - u8 *buf, int buflen)
> + u8 *buf, int buflen, enum port port)
> {
> struct drm_encoder *encoder = &intel_dsi->base.base;
> struct drm_device *dev = encoder->dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> - struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
> - enum port port = intel_dsi_pipe_to_port(intel_crtc->pipe);
> u32 mask;
> int ret;
>
> @@ -329,7 +322,7 @@ int dsi_vc_dcs_read(struct intel_dsi *intel_dsi, int channel, u8 dcs_cmd,
>
> I915_WRITE(MIPI_INTR_STAT(port), GEN_READ_DATA_AVAIL);
>
> - ret = dsi_vc_dcs_send_read_request(intel_dsi, channel, dcs_cmd);
> + ret = dsi_vc_dcs_send_read_request(intel_dsi, channel, dcs_cmd, port);
> if (ret)
> return ret;
>
> @@ -337,7 +330,7 @@ int dsi_vc_dcs_read(struct intel_dsi *intel_dsi, int channel, u8 dcs_cmd,
> if (wait_for((I915_READ(MIPI_INTR_STAT(port)) & mask) == mask, 50))
> DRM_ERROR("Timeout waiting for read data.\n");
>
> - ret = dsi_read_data_return(intel_dsi, buf, buflen);
> + ret = dsi_read_data_return(intel_dsi, buf, buflen, port);
> if (ret < 0)
> return ret;
>
> @@ -348,13 +341,11 @@ int dsi_vc_dcs_read(struct intel_dsi *intel_dsi, int channel, u8 dcs_cmd,
> }
>
> int dsi_vc_generic_read(struct intel_dsi *intel_dsi, int channel,
> - u8 *reqdata, int reqlen, u8 *buf, int buflen)
> + u8 *reqdata, int reqlen, u8 *buf, int buflen, enum port port)
> {
> struct drm_encoder *encoder = &intel_dsi->base.base;
> struct drm_device *dev = encoder->dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> - struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
> - enum port port = intel_dsi_pipe_to_port(intel_crtc->pipe);
> u32 mask;
> int ret;
>
> @@ -366,7 +357,7 @@ int dsi_vc_generic_read(struct intel_dsi *intel_dsi, int channel,
> I915_WRITE(MIPI_INTR_STAT(port), GEN_READ_DATA_AVAIL);
>
> ret = dsi_vc_generic_send_read_request(intel_dsi, channel, reqdata,
> - reqlen);
> + reqlen, port);
> if (ret)
> return ret;
>
> @@ -374,7 +365,7 @@ int dsi_vc_generic_read(struct intel_dsi *intel_dsi, int channel,
> if (wait_for((I915_READ(MIPI_INTR_STAT(port)) & mask) == mask, 50))
> DRM_ERROR("Timeout waiting for read data.\n");
>
> - ret = dsi_read_data_return(intel_dsi, buf, buflen);
> + ret = dsi_read_data_return(intel_dsi, buf, buflen, port);
> if (ret < 0)
> return ret;
>
> diff --git a/drivers/gpu/drm/i915/intel_dsi_cmd.h b/drivers/gpu/drm/i915/intel_dsi_cmd.h
> index 46aa1ac..326a5ac 100644
> --- a/drivers/gpu/drm/i915/intel_dsi_cmd.h
> +++ b/drivers/gpu/drm/i915/intel_dsi_cmd.h
> @@ -36,77 +36,81 @@
> #define DPI_LP_MODE_EN false
> #define DPI_HS_MODE_EN true
>
> -void dsi_hs_mode_enable(struct intel_dsi *intel_dsi, bool enable);
> +void dsi_hs_mode_enable(struct intel_dsi *intel_dsi, bool enable,
> + enum port port);
>
> int dsi_vc_dcs_write(struct intel_dsi *intel_dsi, int channel,
> - const u8 *data, int len);
> + const u8 *data, int len, enum port port);
>
> int dsi_vc_generic_write(struct intel_dsi *intel_dsi, int channel,
> - const u8 *data, int len);
> + const u8 *data, int len, enum port port);
>
> int dsi_vc_dcs_read(struct intel_dsi *intel_dsi, int channel, u8 dcs_cmd,
> - u8 *buf, int buflen);
> + u8 *buf, int buflen, enum port port);
>
> int dsi_vc_generic_read(struct intel_dsi *intel_dsi, int channel,
> - u8 *reqdata, int reqlen, u8 *buf, int buflen);
> + u8 *reqdata, int reqlen, u8 *buf, int buflen, enum port port);
>
> int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs);
> void wait_for_dsi_fifo_empty(struct intel_dsi *intel_dsi);
>
> /* XXX: questionable write helpers */
> static inline int dsi_vc_dcs_write_0(struct intel_dsi *intel_dsi,
> - int channel, u8 dcs_cmd)
> + int channel, u8 dcs_cmd, enum port port)
> {
> - return dsi_vc_dcs_write(intel_dsi, channel, &dcs_cmd, 1);
> + return dsi_vc_dcs_write(intel_dsi, channel, &dcs_cmd, 1, port);
> }
>
> static inline int dsi_vc_dcs_write_1(struct intel_dsi *intel_dsi,
> - int channel, u8 dcs_cmd, u8 param)
> + int channel, u8 dcs_cmd, u8 param, enum port port)
> {
> u8 buf[2] = { dcs_cmd, param };
> - return dsi_vc_dcs_write(intel_dsi, channel, buf, 2);
> + return dsi_vc_dcs_write(intel_dsi, channel, buf, 2, port);
> }
>
> static inline int dsi_vc_generic_write_0(struct intel_dsi *intel_dsi,
> - int channel)
> + int channel, enum port port)
> {
> - return dsi_vc_generic_write(intel_dsi, channel, NULL, 0);
> + return dsi_vc_generic_write(intel_dsi, channel, NULL, 0, port);
> }
>
> static inline int dsi_vc_generic_write_1(struct intel_dsi *intel_dsi,
> - int channel, u8 param)
> + int channel, u8 param, enum port port)
> {
> - return dsi_vc_generic_write(intel_dsi, channel, ¶m, 1);
> + return dsi_vc_generic_write(intel_dsi, channel, ¶m, 1, port);
> }
>
> static inline int dsi_vc_generic_write_2(struct intel_dsi *intel_dsi,
> - int channel, u8 param1, u8 param2)
> + int channel, u8 param1, u8 param2, enum port port)
> {
> u8 buf[2] = { param1, param2 };
> - return dsi_vc_generic_write(intel_dsi, channel, buf, 2);
> + return dsi_vc_generic_write(intel_dsi, channel, buf, 2, port);
> }
>
> /* XXX: questionable read helpers */
> static inline int dsi_vc_generic_read_0(struct intel_dsi *intel_dsi,
> - int channel, u8 *buf, int buflen)
> + int channel, u8 *buf, int buflen, enum port port)
> {
> - return dsi_vc_generic_read(intel_dsi, channel, NULL, 0, buf, buflen);
> + return dsi_vc_generic_read(intel_dsi, channel, NULL, 0, buf, buflen,
> + port);
> }
>
> static inline int dsi_vc_generic_read_1(struct intel_dsi *intel_dsi,
> int channel, u8 param, u8 *buf,
> - int buflen)
> + int buflen, enum port port)
> {
> - return dsi_vc_generic_read(intel_dsi, channel, ¶m, 1, buf, buflen);
> + return dsi_vc_generic_read(intel_dsi, channel, ¶m, 1, buf, buflen,
> + port);
> }
>
> static inline int dsi_vc_generic_read_2(struct intel_dsi *intel_dsi,
> int channel, u8 param1, u8 param2,
> - u8 *buf, int buflen)
> + u8 *buf, int buflen, enum port port)
> {
> u8 req[2] = { param1, param2 };
>
> - return dsi_vc_generic_read(intel_dsi, channel, req, 2, buf, buflen);
> + return dsi_vc_generic_read(intel_dsi, channel, req, 2, buf, buflen,
> + port);
> }
>
>
> diff --git a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
> index f6bdd44..7766c42 100644
> --- a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
> +++ b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
> @@ -94,16 +94,23 @@ static struct gpio_table gtable[] = {
> { GPIO_NC_11_PCONF0, GPIO_NC_11_PAD, 0}
> };
>
> +static inline enum port intel_dsi_seq_port_to_port(u8 port)
> +{
> + return port ? PORT_C : PORT_A;
> +}
> +
> static u8 *mipi_exec_send_packet(struct intel_dsi *intel_dsi, u8 *data)
> {
> - u8 type, byte, mode, vc, port;
> + u8 type, byte, mode, vc, seq_port;
> u16 len;
> + enum port port;
>
> byte = *data++;
> mode = (byte >> MIPI_TRANSFER_MODE_SHIFT) & 0x1;
> vc = (byte >> MIPI_VIRTUAL_CHANNEL_SHIFT) & 0x3;
> - port = (byte >> MIPI_PORT_SHIFT) & 0x3;
> + seq_port = (byte >> MIPI_PORT_SHIFT) & 0x3;
>
> + port = intel_dsi_seq_port_to_port(seq_port);
> /* LP or HS mode */
> intel_dsi->hs = mode;
>
> @@ -115,13 +122,13 @@ static u8 *mipi_exec_send_packet(struct intel_dsi *intel_dsi, u8 *data)
>
> switch (type) {
> case MIPI_DSI_GENERIC_SHORT_WRITE_0_PARAM:
> - dsi_vc_generic_write_0(intel_dsi, vc);
> + dsi_vc_generic_write_0(intel_dsi, vc, port);
> break;
> case MIPI_DSI_GENERIC_SHORT_WRITE_1_PARAM:
> - dsi_vc_generic_write_1(intel_dsi, vc, *data);
> + dsi_vc_generic_write_1(intel_dsi, vc, *data, port);
> break;
> case MIPI_DSI_GENERIC_SHORT_WRITE_2_PARAM:
> - dsi_vc_generic_write_2(intel_dsi, vc, *data, *(data + 1));
> + dsi_vc_generic_write_2(intel_dsi, vc, *data, *(data + 1), port);
> break;
> case MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM:
> case MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM:
> @@ -129,19 +136,19 @@ static u8 *mipi_exec_send_packet(struct intel_dsi *intel_dsi, u8 *data)
> DRM_DEBUG_DRIVER("Generic Read not yet implemented or used\n");
> break;
> case MIPI_DSI_GENERIC_LONG_WRITE:
> - dsi_vc_generic_write(intel_dsi, vc, data, len);
> + dsi_vc_generic_write(intel_dsi, vc, data, len, port);
> break;
> case MIPI_DSI_DCS_SHORT_WRITE:
> - dsi_vc_dcs_write_0(intel_dsi, vc, *data);
> + dsi_vc_dcs_write_0(intel_dsi, vc, *data, port);
> break;
> case MIPI_DSI_DCS_SHORT_WRITE_PARAM:
> - dsi_vc_dcs_write_1(intel_dsi, vc, *data, *(data + 1));
> + dsi_vc_dcs_write_1(intel_dsi, vc, *data, *(data + 1), port);
> break;
> case MIPI_DSI_DCS_READ:
> DRM_DEBUG_DRIVER("DCS Read not yet implemented or used\n");
> break;
> case MIPI_DSI_DCS_LONG_WRITE:
> - dsi_vc_dcs_write(intel_dsi, vc, data, len);
> + dsi_vc_dcs_write(intel_dsi, vc, data, len, port);
> break;
> }
>
> --
> 1.7.9.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2014-12-04 9:14 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-04 5:28 [PATCH 00/10] BYT DSI Dual Link Support Gaurav K Singh
2014-12-04 5:28 ` [PATCH 01/10] drm/i915: New functions added for enabling & disabling MIPI Port Ctrl reg Gaurav K Singh
2014-12-04 9:13 ` Jani Nikula
2014-12-04 5:28 ` [PATCH 02/10] drm/i915: Added port as parameter to the functions which does read/write of DSI Controller Gaurav K Singh
2014-12-04 9:14 ` Jani Nikula [this message]
2014-12-04 11:22 ` Daniel Vetter
2014-12-05 12:50 ` Singh, Gaurav K
2014-12-05 14:38 ` Daniel Vetter
2014-12-05 20:35 ` Singh, Gaurav K
2014-12-04 5:28 ` [PATCH 03/10] drm/i915: Add support for port enable/disable for dual link configuration Gaurav K Singh
2014-12-04 9:17 ` Jani Nikula
2014-12-05 8:39 ` [PATCH v4 " Gaurav K Singh
2014-12-05 12:52 ` Jani Nikula
2014-12-04 5:28 ` [PATCH 04/10] drm/i915: Pixel Clock changes for DSI dual link Gaurav K Singh
2014-12-04 9:27 ` Jani Nikula
2014-12-05 8:43 ` [PATCH v3 " Gaurav K Singh
2014-12-05 16:33 ` [PATCH " Singh, Gaurav K
2014-12-05 16:54 ` Siluvery, Arun
2014-12-05 17:18 ` Singh, Gaurav K
2014-12-05 17:36 ` Jani Nikula
2014-12-05 17:48 ` Siluvery, Arun
2014-12-05 20:43 ` Singh, Gaurav K
2014-12-04 5:28 ` [PATCH 05/10] drm/i915: Dual link needs Shutdown and Turn on packet for both ports Gaurav K Singh
2014-12-04 10:41 ` Jani Nikula
2014-12-05 19:10 ` [PATCH 5/5] " Gaurav K Singh
2014-12-05 20:53 ` Daniel Vetter
2014-12-04 5:28 ` [PATCH 06/10] drm/i915: Enable DSI PLL for both DSI0 and DSI1 in case of dual link Gaurav K Singh
2014-12-04 11:17 ` Jani Nikula
2014-12-04 5:28 ` [PATCH 07/10] drm/i915: cck reg used for checking DSI Pll locked Gaurav K Singh
2014-12-04 11:22 ` Jani Nikula
2014-12-05 8:46 ` [PATCH v2 " Gaurav K Singh
2014-12-04 5:28 ` [PATCH 08/10] drm/i915: MIPI Timings related changes for dual link Gaurav K Singh
2014-12-04 11:24 ` Jani Nikula
2014-12-04 5:28 ` [PATCH 09/10] drm/i915: Update the DSI disable path to support dual link panel disabling Gaurav K Singh
2014-12-04 11:37 ` Jani Nikula
2014-12-05 8:52 ` [PATCH v4 " Gaurav K Singh
2014-12-04 5:28 ` [PATCH 10/10] drm/i915: Update the DSI enable path to support dual link panel enabling Gaurav K Singh
2014-12-04 11:49 ` Jani Nikula
2014-12-05 8:54 ` [PATCH v4 10/10] drm/i915: Update the DSI enable path to support dual Gaurav K Singh
2014-12-05 20:31 ` [PATCH " Gaurav K Singh
2014-12-05 4:04 ` [PATCH 10/10] drm/i915: Update the DSI enable path to support dual link panel enabling shuang.he
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=87egsfn5eu.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=gaurav.k.singh@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=shobhit.kumar@intel.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.