On Thu, 07 Jan 2016, Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: > On Thu, Jan 7, 2016 at 1:52 PM, Ville Syrjälä > <ville.syrjala@xxxxxxxxxxxxxxx> wrote: >> On Thu, Jan 07, 2016 at 12:44:21PM +0100, Daniel Vetter wrote: >>> Since >>> >>> commit ac9b8236551d1177fd07b56aef9b565d1864420d >>> Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> >>> Date: Fri Nov 27 18:55:26 2015 +0200 >>> >>> drm/i915: Introduce a gmbus power domain >>> >>> gmbus also needs the power domain infrastructure right from the start, >>> since as soon as we register the i2c controllers someone can use them. >>> >>> v2: Adjust cleanup paths too (Chris). >>> >>> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> >>> Cc: Patrik Jakobsson <patrik.jakobsson@xxxxxxxxxxxxxxx> >>> Cc: Imre Deak <imre.deak@xxxxxxxxx> >>> Cc: Jani Nikula <jani.nikula@xxxxxxxxx> >>> Cc: Meelis Roos <mroos@xxxxxxxx> >>> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> >>> Fixes: ac9b8236551d ("drm/i915: Introduce a gmbus power domain") >>> Cc: stable@xxxxxxxxxxxxxxx >>> References: http://www.spinics.net/lists/intel-gfx/msg83075.html >>> Tested-by: Meelis Roos <mroos@xxxxxxxx> >>> Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> >>> --- >>> drivers/gpu/drm/i915/i915_dma.c | 11 +++++------ >>> 1 file changed, 5 insertions(+), 6 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c >>> index 988a3806512a..490d8b0d931e 100644 >>> --- a/drivers/gpu/drm/i915/i915_dma.c >>> +++ b/drivers/gpu/drm/i915/i915_dma.c >>> @@ -398,7 +398,6 @@ static int i915_load_modeset_init(struct drm_device *dev) >>> if (ret) >>> goto cleanup_vga_switcheroo; >>> >>> - intel_power_domains_init_hw(dev_priv, false); >>> >>> intel_csr_ucode_init(dev_priv); >>> >>> @@ -1025,6 +1024,8 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) >>> >>> intel_irq_init(dev_priv); >>> intel_uncore_sanitize(dev); >>> + intel_power_domains_init(dev_priv); >>> + intel_power_domains_init_hw(dev_priv); >> >> I think intel_init_dpio() needs to be moved too. We need to know the >> DPIO IOSF ports before attempting to talk to the PHY (which can happen >> from intel_power_domains_init_hw()). > > Ugh, will change. > >> I'm also wondering why we're doing gmbus init this early. We shouldn't >> need it until modeset init. > > Anyone can access the gmbus controller once we register it. Userspace > can (like what seems to happen on Meelis' box), but also the i2c core > has some auto-probed stuff in some configs afaik. Ville's question was why we register the i2c adapters this early. As I explained in [1], the auto-probing happens when there's an i2c driver with matching class (I2C_CLASS_DDC). That's what happens on Meelis' box. But yes, we need to take userspace into account as well. In short, when we call intel_gmbus_setup(), we need to be ready for i2c communication. BR, Jani. [1] http://mid.gmane.org/87vb75znpz.fsf@xxxxxxxxx -- Jani Nikula, Intel Open Source Technology Center -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html