From: Jani Nikula <jani.nikula@linux.intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>,
"Sonika Jindal" <sonika.jindal@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm/i915: Call encoder hotplug for init and resume cases
Date: Thu, 08 Oct 2015 17:38:58 +0300 [thread overview]
Message-ID: <87k2qx77ct.fsf@intel.com> (raw)
In-Reply-To: <20151008133548.GX26517@intel.com>
On Thu, 08 Oct 2015, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Mon, Oct 05, 2015 at 04:43:14PM +0530, Sonika Jindal wrote:
>> For all the encoders, call the hot_plug if it is registered.
>> This is required for connected boot and resume cases to generate
>> fake hpd resulting in reading of edid.
>> Removing the initial sdvo hot_plug call too so that it will be called
>> just once from this loop.
>>
>> Signed-off-by: Sonika Jindal <sonika.jindal@intel.com>
>> ---
>> drivers/gpu/drm/i915/intel_hotplug.c | 11 +++++++++++
>> drivers/gpu/drm/i915/intel_sdvo.c | 1 -
>> 2 files changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
>> index 53c0173..eac4757 100644
>> --- a/drivers/gpu/drm/i915/intel_hotplug.c
>> +++ b/drivers/gpu/drm/i915/intel_hotplug.c
>> @@ -458,6 +458,7 @@ void intel_hpd_init(struct drm_i915_private *dev_priv)
>> {
>> struct drm_device *dev = dev_priv->dev;
>> struct drm_mode_config *mode_config = &dev->mode_config;
>> + struct intel_encoder *encoder;
>> struct drm_connector *connector;
>> int i;
>>
>> @@ -482,6 +483,16 @@ void intel_hpd_init(struct drm_i915_private *dev_priv)
>> if (dev_priv->display.hpd_irq_setup)
>> dev_priv->display.hpd_irq_setup(dev);
>> spin_unlock_irq(&dev_priv->irq_lock);
>> +
>> + /*
>> + * Connected boot / resume scenarios can't generate new hot plug.
>> + * So, probe it manually.
>> + */
>> + list_for_each_entry(encoder, &dev->mode_config.encoder_list,
>> + base.head) {
>> + if (encoder->hot_plug)
>> + encoder->hot_plug(encoder);
>> + }
>
>
> This breaks the world on CHV
Also patch 2/2 breaks: https://bugs.freedesktop.org/show_bug.cgi?id=88081
BR,
Jani.
>
> [ 3187.575198] [drm:intel_hdmi_hot_plug] Live status not up!
> [ 3187.585154] =============================================
> [ 3187.595010] [ INFO: possible recursive locking detected ]
> [ 3187.604685] 4.3.0-rc4-bsw+ #2488 Tainted: G U W
> [ 3187.614366] ---------------------------------------------
> [ 3187.623892] Xorg/32212 is trying to acquire lock:
> [ 3187.632635] (&power_domains->lock){+.+...}, at: [<ffffffffa036aced>] intel_display_power_get+0x38/0xcb [i915]
> [ 3187.647492]
> [ 3187.647492] but task is already holding lock:
> [ 3187.661054] (&power_domains->lock){+.+...}, at: [<ffffffffa036aced>] intel_display_power_get+0x38/0xcb [i915]
> [ 3187.675960]
> [ 3187.675960] other info that might help us debug this:
> [ 3187.690459] Possible unsafe locking scenario:
> [ 3187.690459]
> [ 3187.704224] CPU0
> [ 3187.710485] ----
> [ 3187.716711] lock(&power_domains->lock);
> [ 3187.724718] lock(&power_domains->lock);
> [ 3187.732663]
> [ 3187.732663] *** DEADLOCK ***
> [ 3187.732663]
> [ 3187.749460] May be due to missing lock nesting notation
> [ 3187.749460]
> [ 3187.763833] 5 locks held by Xorg/32212:
> [ 3187.771523] #0: (drm_global_mutex){+.+.+.}, at: [<ffffffffa02ad5c8>] drm_release+0x3b/0x49b [drm]
> [ 3187.785216] #1: (&dev->mode_config.mutex){+.+.+.}, at: [<ffffffffa02c4d85>] drm_modeset_lock_all+0x54/0xcd [drm]
> [ 3187.800437] #2: (crtc_ww_class_acquire){+.+.+.}, at: [<ffffffffa02c4d8f>] drm_modeset_lock_all+0x5e/0xcd [drm]
> [ 3187.815488] #3: (crtc_ww_class_mutex){+.+.+.}, at: [<ffffffffa02c46b0>] drm_modeset_lock+0x75/0xfc [drm]
> [ 3187.830094] #4: (&power_domains->lock){+.+...}, at: [<ffffffffa036aced>] intel_display_power_get+0x38/0xcb [i915]
> [ 3187.845534]
> [ 3187.845534] stack backtrace:
> [ 3187.857685] CPU: 2 PID: 32212 Comm: Xorg Tainted: G U W 4.3.0-rc4-bsw+ #2488
> [ 3187.870331] Hardware name: Intel Corporation CHERRYVIEW C0 PLATFORM/Braswell CRB, BIOS BRAS.X64.B085.R00.1509110553 09/11/2015
> [ 3187.886827] 0000000000000000 ffff880175eff8e0 ffffffff8128d59e ffffffff823f5ee0
> [ 3187.898904] ffff880175eff958 ffffffff810a7a08 0000000000000000 ffff880179d1c5d0
> [ 3187.910954] 0000000000000004 0000000000000006 45422a91588a4c3e 0000000000000005
> [ 3187.923011] Call Trace:
> [ 3187.929451] [<ffffffff8128d59e>] dump_stack+0x4e/0x79
> [ 3187.938912] [<ffffffff810a7a08>] __lock_acquire+0x7ab/0x12af
> [ 3187.949027] [<ffffffff810a8d04>] lock_acquire+0x10e/0x1a9
> [ 3187.958859] [<ffffffffa036aced>] ? intel_display_power_get+0x38/0xcb [i915]
> [ 3187.970476] [<ffffffffa036aced>] ? intel_display_power_get+0x38/0xcb [i915]
> [ 3187.982011] [<ffffffff814df4a3>] mutex_lock_nested+0x71/0x346
> [ 3187.992167] [<ffffffffa036aced>] ? intel_display_power_get+0x38/0xcb [i915]
> [ 3188.003655] [<ffffffff814e20ee>] ? _raw_spin_unlock_irqrestore+0x4b/0x60
> [ 3188.014829] [<ffffffff81364565>] ? __pm_runtime_resume+0x71/0x7e
> [ 3188.025269] [<ffffffffa036aced>] intel_display_power_get+0x38/0xcb [i915]
> [ 3188.036544] [<ffffffffa036aced>] ? intel_display_power_get+0x38/0xcb [i915]
> [ 3188.047968] [<ffffffffa03e8cc4>] intel_hdmi_set_edid+0x3f/0xd6 [i915]
> [ 3188.058766] [<ffffffffa03e8e1a>] intel_hdmi_hot_plug+0xbf/0xfb [i915]
> [ 3188.069484] [<ffffffffa03c9e78>] intel_hpd_init+0xfa/0x10b [i915]
> [ 3188.079753] [<ffffffffa036968d>] vlv_display_power_well_init+0xdb/0xe8 [i915]
> [ 3188.091224] [<ffffffffa0369763>] chv_pipe_power_well_enable+0x62/0x67 [i915]
> [ 3188.102594] [<ffffffffa036ad55>] intel_display_power_get+0xa0/0xcb [i915]
> [ 3188.113657] [<ffffffffa03bdd7a>] modeset_get_crtc_power_domains+0x11d/0x13c [i915]
> [ 3188.125589] [<ffffffffa03bdfc1>] intel_atomic_commit+0x228/0xf1b [i915]
> [ 3188.136522] [<ffffffffa02c586c>] ? drm_atomic_check_only+0x37b/0x4da [drm]
> [ 3188.147676] [<ffffffffa02c5a18>] drm_atomic_commit+0x4d/0x52 [drm]
> [ 3188.158023] [<ffffffffa032fa25>] restore_fbdev_mode+0x11e/0x286 [drm_kms_helper]
> [ 3188.169734] [<ffffffffa0331443>] drm_fb_helper_restore_fbdev_mode_unlocked+0x36/0x6d [drm_kms_helper]
> [ 3188.183557] [<ffffffffa03d270f>] intel_fbdev_restore_mode+0x22/0x7a [i915]
> [ 3188.194701] [<ffffffffa03f70b8>] i915_driver_lastclose+0xe/0x15 [i915]
> [ 3188.205361] [<ffffffffa02ad4c2>] drm_lastclose+0x3f/0x10a [drm]
> [ 3188.215323] [<ffffffffa02ad9ee>] drm_release+0x461/0x49b [drm]
> [ 3188.225195] [<ffffffff8118577c>] __fput+0x100/0x1b3
> [ 3188.233956] [<ffffffff81185865>] ____fput+0xe/0x10
> [ 3188.242594] [<ffffffff81084540>] task_work_run+0x6a/0x93
> [ 3188.251816] [<ffffffff810015d6>] prepare_exit_to_usermode+0x9e/0xaf
> [ 3188.262111] [<ffffffff810017d6>] syscall_return_slowpath+0x1ef/0x264
> [ 3188.272486] [<ffffffff81084462>] ? task_work_add+0x44/0x53
> [ 3188.281885] [<ffffffff811858e3>] ? fput+0x7c/0x83
> [ 3188.290389] [<ffffffff810a6e52>] ? trace_hardirqs_on_caller+0x16/0x196
> [ 3188.300941] [<ffffffff81000c87>] ? trace_hardirqs_on_thunk+0x17/0x19
> [ 3188.311245] [<ffffffff814e2ab1>] int_ret_from_sys_call+0x25/0x9f
>
>
>> }
>>
>> void intel_hpd_init_work(struct drm_i915_private *dev_priv)
>> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
>> index 05521b5..55859e9 100644
>> --- a/drivers/gpu/drm/i915/intel_sdvo.c
>> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
>> @@ -2433,7 +2433,6 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, int device)
>> * Ensure that they get re-enabled when an interrupt happens.
>> */
>> intel_encoder->hot_plug = intel_sdvo_enable_hotplug;
>> - intel_sdvo_enable_hotplug(intel_encoder);
>> } else {
>> intel_connector->polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT;
>> }
>> --
>> 1.7.10.4
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Ville Syrjälä
> Intel OTC
> _______________________________________________
> 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:[~2015-10-08 14:35 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-04 13:26 [PATCH 0/6] HDMI optimization series Sonika Jindal
2015-09-04 13:26 ` [PATCH 1/6] drm/i915: add attached connector to hdmi container Sonika Jindal
2015-09-09 18:54 ` Rodrigo Vivi
2015-09-10 15:24 ` Daniel Vetter
2015-09-04 13:26 ` [PATCH 2/6] drm/i915: Add HDMI probe function Sonika Jindal
2015-09-04 14:48 ` Daniel Vetter
2015-09-09 18:55 ` Rodrigo Vivi
2015-09-11 10:45 ` Jindal, Sonika
2015-09-14 8:30 ` Daniel Vetter
2015-09-14 9:55 ` Sharma, Shashank
2015-09-14 13:07 ` Daniel Vetter
2015-09-14 13:45 ` Sharma, Shashank
2015-09-28 8:56 ` [PATCH] drm/i915: Add hot_plug hook for hdmi encoder Sonika Jindal
2015-09-28 13:34 ` Daniel Vetter
2015-09-29 4:13 ` Jindal, Sonika
2015-09-29 9:04 ` Daniel Vetter
2015-10-05 11:13 ` [PATCH 1/2] drm/i915: Call encoder hotplug for init and resume cases Sonika Jindal
2015-10-05 11:13 ` [PATCH 2/2] drm/i915: Add hot_plug hook for hdmi encoder Sonika Jindal
2015-10-06 8:28 ` Daniel Vetter
2015-12-10 4:30 ` Sonika Jindal
2015-12-10 4:45 ` [PATCH] " Sonika Jindal
2015-12-10 8:29 ` Daniel Vetter
2015-12-10 8:35 ` Jindal, Sonika
2015-12-10 8:53 ` Daniel Vetter
2015-12-10 9:04 ` Jindal, Sonika
2015-10-08 13:35 ` [PATCH 1/2] drm/i915: Call encoder hotplug for init and resume cases Ville Syrjälä
2015-10-08 14:38 ` Jani Nikula [this message]
2015-10-08 19:54 ` Daniel Vetter
2015-10-09 4:31 ` Jindal, Sonika
2015-12-10 4:27 ` Sonika Jindal
2015-10-12 12:24 ` Sharma, Shashank
2015-10-15 1:32 ` Jindal, Sonika
2015-09-04 13:26 ` [PATCH 3/6] drm/i915: Make intel_digital_port_connected global Sonika Jindal
2015-09-09 18:57 ` Rodrigo Vivi
2015-09-11 11:28 ` [PATCH] drm/i915/bxt: Use intel_encoder->hpd_pin to check live status Sonika Jindal
2015-09-11 18:00 ` Rodrigo Vivi
2015-09-12 12:02 ` Jindal, Sonika
2015-09-14 8:34 ` Daniel Vetter
2015-09-14 8:38 ` Jindal, Sonika
2015-09-14 9:15 ` Daniel Vetter
2015-09-04 13:26 ` [PATCH 4/6] drm/i915: drm/i915: Check live status before reading edid Sonika Jindal
2015-09-04 14:49 ` Daniel Vetter
2015-09-07 5:02 ` [PATCH] " Sonika Jindal
2015-09-08 11:21 ` Sonika Jindal
2015-09-09 19:11 ` [PATCH 4/6] drm/i915: " Rodrigo Vivi
2015-09-11 11:26 ` [PATCH] " Sonika Jindal
2015-09-11 17:56 ` Rodrigo Vivi
2015-09-14 8:42 ` Daniel Vetter
2015-09-14 9:14 ` Jindal, Sonika
2015-09-14 9:36 ` Daniel Vetter
2015-09-15 4:14 ` Sonika Jindal
2015-09-23 8:18 ` Daniel Vetter
2016-03-08 21:03 ` Chris Wilson
2016-03-09 5:52 ` Jindal, Sonika
2016-03-09 5:55 ` Sharma, Shashank
2016-03-10 11:37 ` Sharma, Shashank
2015-09-04 13:26 ` [PATCH 5/6] drm/i915: drm/i915: Process hpd only for hdmi inside hotplug_work_func Sonika Jindal
2015-09-04 14:47 ` Daniel Vetter
2015-09-06 4:31 ` Jindal, Sonika
2015-09-07 5:04 ` [PATCH] drm/i915: Call encoder hot_plug hook only for hdmi Sonika Jindal
2015-09-07 16:26 ` Daniel Vetter
2015-09-08 4:42 ` Jindal, Sonika
2015-09-08 11:38 ` Jindal, Sonika
2015-09-09 15:17 ` Daniel Vetter
2015-09-10 1:07 ` Jindal, Sonika
2015-09-10 14:47 ` Daniel Vetter
2015-09-09 19:20 ` [PATCH 5/6] drm/i915: drm/i915: Process hpd only for hdmi inside hotplug_work_func Rodrigo Vivi
2015-09-09 23:37 ` Jindal, Sonika
2015-09-04 13:26 ` [PATCH 6/6] drm/i915/bxt: Fix irq_port for eDP Sonika Jindal
2015-09-09 19:24 ` Rodrigo Vivi
2015-09-10 10:49 ` Jindal, Sonika
2015-09-10 13:07 ` R, Durgadoss
2015-09-10 13:35 ` Ville Syrjälä
2015-09-10 14:51 ` Daniel Vetter
-- strict thread matches above, loose matches on Subject: below --
2015-12-16 10:48 [PATCH 1/2] drm/i915: Call encoder hotplug for init and resume cases Sonika Jindal
2015-12-16 13:46 ` Daniel Vetter
2015-12-17 4:23 ` Jindal, Sonika
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=87k2qx77ct.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=sonika.jindal@intel.com \
--cc=ville.syrjala@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).