@@ -3,7 +3,7 @@ diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index d1a46ef..556fa80 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -603,6 +603,31 @@ i915_disable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe,
+@@ -603,6 +603,31 @@
__i915_disable_pipestat(dev_priv, pipe, enable_mask, status_mask);
}
@@ -35,15 +35,15 @@ index d1a46ef..556fa80 100644
/**
* i915_enable_asle_pipestat - enable ASLE pipestat for OpRegion
* @dev: drm device
-@@ -1649,6 +1674,7 @@ static void valleyview_pipestat_irq_handler(struct drm_device *dev, u32 iir)
+@@ -1649,6 +1674,7 @@
struct drm_i915_private *dev_priv = dev->dev_private;
u32 pipe_stats[I915_MAX_PIPES] = { };
int pipe;
+ int lpe_stream;
spin_lock(&dev_priv->irq_lock);
-
-@@ -1719,6 +1745,24 @@ static void valleyview_pipestat_irq_handler(struct drm_device *dev, u32 iir)
+ for_each_pipe(dev_priv, pipe) {
+@@ -1713,6 +1739,24 @@
intel_cpu_fifo_underrun_irq_handler(dev_priv, pipe);
}
@@ -68,7 +68,7 @@ index d1a46ef..556fa80 100644
if (pipe_stats[0] & PIPE_GMBUS_INTERRUPT_STATUS)
gmbus_irq_handler(dev);
}
-@@ -2804,6 +2848,43 @@ static void gen8_disable_vblank(struct drm_device *dev, unsigned int pipe)
+@@ -2790,6 +2834,43 @@
spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
}
@@ -135,7 +135,7 @@ diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi
index 1beb155..8b6c31a 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
-@@ -1391,6 +1391,124 @@ intel_hdmi_set_edid(struct drm_connector *connector, bool force)
+@@ -1386,6 +1386,124 @@
return connected;
}
@@ -260,7 +260,7 @@ index 1beb155..8b6c31a 100644
static enum drm_connector_status
intel_hdmi_detect(struct drm_connector *connector, bool force)
{
-@@ -1399,6 +1517,8 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
+@@ -1394,6 +1512,8 @@
struct drm_i915_private *dev_priv = to_i915(connector->dev);
bool live_status = false;
unsigned int try;
@@ -269,7 +269,7 @@ index 1beb155..8b6c31a 100644
DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
connector->base.id, connector->name);
-@@ -1427,6 +1547,26 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
+@@ -1422,6 +1542,26 @@
intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS);
@@ -296,7 +296,7 @@ index 1beb155..8b6c31a 100644
return status;
}
-@@ -1450,12 +1590,22 @@ intel_hdmi_force(struct drm_connector *connector)
+@@ -1445,12 +1585,22 @@
static int intel_hdmi_get_modes(struct drm_connector *connector)
{
struct edid *edid;
@@ -320,7 +320,7 @@ index 1beb155..8b6c31a 100644
}
static bool
-@@ -2159,6 +2309,20 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
+@@ -2149,6 +2299,20 @@
u32 temp = I915_READ(PEG_BAND_GAP_DATA);
I915_WRITE(PEG_BAND_GAP_DATA, (temp & ~0xf) | 0xd);
}
@@ -341,17 +341,18 @@ index 1beb155..8b6c31a 100644
}
void intel_hdmi_init(struct drm_device *dev,
-@@ -2168,6 +2332,8 @@ void intel_hdmi_init(struct drm_device *dev,
+@@ -2157,6 +2321,9 @@
struct intel_digital_port *intel_dig_port;
struct intel_encoder *intel_encoder;
struct intel_connector *intel_connector;
++ struct drm_i915_private *dev_priv = dev->dev_private;
+ /* Added for HDMI Audio */
+ struct hdmi_audio_priv *hdmi_priv;
intel_dig_port = kzalloc(sizeof(*intel_dig_port), GFP_KERNEL);
if (!intel_dig_port)
-@@ -2239,4 +2405,19 @@ void intel_hdmi_init(struct drm_device *dev,
- intel_dig_port->max_lanes = 4;
+@@ -2226,4 +2393,19 @@
+ intel_dig_port->dp.output_reg = INVALID_MMIO_REG;
intel_hdmi_init_connector(intel_dig_port, intel_connector);
+
@@ -501,9 +501,9 @@ index d33de95..dae77d1 100644
+#endif
+
/**
- * DOC: RC6
- *
-@@ -7098,6 +7109,7 @@ void intel_suspend_hw(struct drm_device *dev)
+ * RC6 is a special power stage which allows the GPU to enter an very
+ * low-voltage mode when idle, using down to 0V while at this stage. This
+@@ -6964,6 +6975,7 @@
void intel_init_pm(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
@@ -511,7 +511,7 @@ index d33de95..dae77d1 100644
intel_fbc_init(dev_priv);
-@@ -7398,3 +7410,44 @@ void intel_pm_setup(struct drm_device *dev)
+@@ -7257,3 +7269,44 @@
atomic_set(&dev_priv->pm.wakeref_count, 0);
atomic_set(&dev_priv->pm.atomic_seq, 0);
}
@@ -40,23 +40,22 @@ diff --git a/sound/Kconfig b/sound/Kconfig
index 5a240e0..75c679e 100644
--- a/sound/Kconfig
+++ b/sound/Kconfig
-@@ -134,3 +134,11 @@ config AC97_BUS
+@@ -134,3 +134,10 @@
sound subsystem and other function drivers completely unrelated to
sound although they're sharing the AC97 bus. Concerned drivers
should "select" this.
+
+config SUPPORT_HDMI
-+ bool "SUPPORT_HDMI"
-+ depends on DRM_I915
-+ default n
-+ help
-+ Choose this option to support HDMI.
-+
++ bool "SUPPORT_HDMI"
++ depends on DRM_I915
++ default n
++ help
++ Choose this option to support HDMI.
diff --git a/sound/Makefile b/sound/Makefile
index 7732070..f2c5e82 100644
--- a/sound/Makefile
+++ b/sound/Makefile
-@@ -8,6 +8,7 @@ obj-$(CONFIG_DMASOUND) += oss/
+@@ -8,6 +8,7 @@
obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ sh/ synth/ usb/ \
firewire/ sparc/ spi/ parisc/ pcmcia/ mips/ soc/ atmel/ hda/
obj-$(CONFIG_SND_AOA) += aoa/
@@ -21,11 +21,11 @@ diff --git a/sound/Kconfig b/sound/Kconfig
index 75c679e..b8b4fce 100644
--- a/sound/Kconfig
+++ b/sound/Kconfig
-@@ -138,6 +138,7 @@ config AC97_BUS
+@@ -138,6 +138,7 @@
config SUPPORT_HDMI
- bool "SUPPORT_HDMI"
- depends on DRM_I915
+ bool "SUPPORT_HDMI"
+ depends on DRM_I915
+ select PM_RUNTIME
- default n
- help
- Choose this option to support HDMI.
+ default n
+ help
+ Choose this option to support HDMI.
@@ -3895,6 +3895,7 @@ CONFIG_SND_FIREWIRE_TASCAM=m
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
+CONFIG_SUPPORT_HDMI=y
#
# USB support