From: "Kumar, Shobhit" <shobhit.kumar@intel.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Jani Nikula <jani.nikula@intel.com>,
Daniel Vetter <daniel.vetter@intel.com>,
intel-gfx <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915: Detect if MIPI panel based on VBT and initialize only if present
Date: Tue, 27 May 2014 17:13:41 +0530 [thread overview]
Message-ID: <53847A6D.4000503@intel.com> (raw)
In-Reply-To: <20140527114057.GH14357@phenom.ffwll.local>
On 5/27/2014 5:10 PM, Daniel Vetter wrote:
> On Fri, May 23, 2014 at 09:39:28PM +0530, Shobhit Kumar wrote:
>> It seems by default the VBT has MIPI configuration block as well. The
>> Generic driver will assume always MIPI if MIPI configuration block is found.
>> This is causing probelm when actually there is eDP. Fix this by looking
>> into general definition block which will have device configurations. From here
>> we can figure out what is the LFP type and initialize MIPI only if MIPI
>> is found.
>>
>> Signed-off-by: Shobhit Kumar <shobhit.kumar@intel.com>
>
> Will the mipi patch I've just merged without this one here break machines?
> If so we need to get this one here into shape asap, for otherwise I need
> to kick out the mipi patch again. Which we really don't want.
Yes it will break. I am working on this patch right now
Regards
Shobhit
> -Daniel
>
>> ---
>> drivers/gpu/drm/i915/i915_drv.h | 2 ++
>> drivers/gpu/drm/i915/intel_bios.c | 20 +++++++++++++++++++-
>> drivers/gpu/drm/i915/intel_display.c | 4 +++-
>> 3 files changed, 24 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 8e78703..5a5225b 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -1229,7 +1229,9 @@ struct intel_vbt_data {
>> } backlight;
>>
>> /* MIPI DSI */
>> + int is_mipi;
>> struct {
>> + u16 port;
>> u16 panel_id;
>> struct mipi_config *config;
>> struct mipi_pps_data *pps;
>> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
>> index 6b65096..b825c80 100644
>> --- a/drivers/gpu/drm/i915/intel_bios.c
>> +++ b/drivers/gpu/drm/i915/intel_bios.c
>> @@ -1059,6 +1059,20 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
>> /* skip the device block if device type is invalid */
>> continue;
>> }
>> +
>> +#define MIPI_PORT_A 0x15
>> +#define MIPI_PORT_B 0x16
>> +#define MIPI_PORT_C 0x17
>> +#define MIPI_PORT_D 0x18
>> + if (p_child->common.dvo_port >= MIPI_PORT_A && p_child->common.dvo_port <= MIPI_PORT_D) {
>> + /* check the device type and confirm its MIPI */
>> + if (p_child->common.device_type & DEVICE_TYPE_MIPI_OUTPUT) {
>> + DRM_DEBUG_KMS("Found MIPI as LFP\n");
>> + dev_priv->vbt.is_mipi = 1;
>> + dev_priv->vbt.dsi.port = p_child->common.dvo_port;
>> + }
>> + }
>> +
>> child_dev_ptr = dev_priv->vbt.child_dev + count;
>> count++;
>> memcpy((void *)child_dev_ptr, (void *)p_child,
>> @@ -1230,7 +1244,11 @@ intel_parse_bios(struct drm_device *dev)
>> parse_device_mapping(dev_priv, bdb);
>> parse_driver_features(dev_priv, bdb);
>> parse_edp(dev_priv, bdb);
>> - parse_mipi(dev_priv, bdb);
>> +
>> + /* parse MIPI blocks only if LFP type is MIPI */
>> + if (dev_priv->vbt.is_mipi)
>> + parse_mipi(dev_priv, bdb);
>> +
>> parse_ddi_ports(dev_priv, bdb);
>>
>> if (bios)
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index 3da73ef..a55fa41 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -11151,7 +11151,9 @@ static void intel_setup_outputs(struct drm_device *dev)
>> }
>> }
>>
>> - intel_dsi_init(dev);
>> + /* There is no detection method for MIPI so rely on VBT */
>> + if (dev_priv->vbt.is_mipi)
>> + intel_dsi_init(dev);
>> } else if (SUPPORTS_DIGITAL_OUTPUTS(dev)) {
>> bool found = false;
>>
>> --
>> 1.8.3.2
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
next prev parent reply other threads:[~2014-05-27 11:43 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-23 16:09 [PATCH] drm/i915: Detect if MIPI panel based on VBT and initialize only if present Shobhit Kumar
2014-05-27 11:32 ` Damien Lespiau
2014-05-27 12:10 ` Kumar, Shobhit
2014-05-27 12:27 ` Damien Lespiau
2014-05-27 11:40 ` Daniel Vetter
2014-05-27 11:43 ` Kumar, Shobhit [this message]
2014-05-27 12:56 ` [v2] " Shobhit Kumar
2014-05-27 13:18 ` Damien Lespiau
2014-05-27 14:03 ` [v3] " Shobhit Kumar
2014-05-27 14:17 ` Damien Lespiau
2014-05-27 14:31 ` Ville Syrjälä
2014-05-27 14:35 ` Damien Lespiau
2014-05-27 17:05 ` Daniel Vetter
2014-05-27 14:31 ` Kumar, Shobhit
2014-05-27 17:10 ` Daniel Vetter
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=53847A6D.4000503@intel.com \
--to=shobhit.kumar@intel.com \
--cc=daniel.vetter@intel.com \
--cc=daniel@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@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.