i915 SNB: hotplug events when charging causing poor interactivity

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 16, 2012 at 11:44:46AM +0000, Daniel J Blueman wrote:
> When charging Dell E5420 laptops, I see the Sandy Bridge South Display
> Engine port C hotplug interrupt fire consistently at around 20Hz. Each
> scan on the connectors results in ~100ms hold time for the mode_config
> mutex which blocks eg the cursor set ioctl (due to the I2C read
> timeouts across the connectors), resulting in terrible GUI
> interactivity.

We know about this locking issue - it's much worse on platforms where we
need to do load-detect hotplug detection or if for whatever reasons it
takes ages to grab the edid from your screen. The Great Plan (tm) is to
add a per-crtc mutex so that cursor updates and pageflips can continue
while someone else is holding the config_mutex to do background stuff like
hotplug handling. Unfortunately there's tons of other important stuff on
my todo :(

> Notably, when only using battery or only using AC, the port C
> interrupts don't fire. It feels like the platform is using South
> Display Port C for GPIO/I2C; setting the port C pulse duration from
> 2ms to 100ms doesn't change the behaviour. I'll dump off the GPIO
> settings, but what else is good to debug this?

Yep, dumping the register state (intel_reg_dumper from intel-gpu-tools is
handy for that) in the different situations sounds useful.

> Also, have you come across this kind of pattern before, eg a platform
> using these GPIO ports for the something (in this case, feels like the
> EC/battery)? Judging by the lack of a quirks, I'd say not. Perhaps
> also I should dump off the SDE port C IIR mask register before we
> reset it, in case the BIOS intentionally masks out port C hotplug
> events.

If this is indeed the bios we need to quirk this away. But I think we
should check first whether we don't butcher something else accidently.
-Daniel
-- 
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux