Merge branch 'drm-intel-next-fixes' into drm-intel-next
So I've sent the first pull request to Dave and I expect his request for a merge tree any second now ;-) More seriously I have some pending patches for 3.19 that depend upon both trees, hence backmerge. Conflicts are all trivial. Conflicts: drivers/gpu/drm/i915/i915_irq.c drivers/gpu/drm/i915/intel_display.c v2: Of course I've forgotten the fixup script for the silent conflict. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
This commit is contained in:
@@ -1716,7 +1716,7 @@ static irqreturn_t gen8_gt_irq_handler(struct drm_device *dev,
|
||||
#define HPD_STORM_DETECT_PERIOD 1000
|
||||
#define HPD_STORM_THRESHOLD 5
|
||||
|
||||
static int ilk_port_to_hotplug_shift(enum port port)
|
||||
static int pch_port_to_hotplug_shift(enum port port)
|
||||
{
|
||||
switch (port) {
|
||||
case PORT_A:
|
||||
@@ -1732,7 +1732,7 @@ static int ilk_port_to_hotplug_shift(enum port port)
|
||||
}
|
||||
}
|
||||
|
||||
static int g4x_port_to_hotplug_shift(enum port port)
|
||||
static int i915_port_to_hotplug_shift(enum port port)
|
||||
{
|
||||
switch (port) {
|
||||
case PORT_A:
|
||||
@@ -1790,12 +1790,12 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev,
|
||||
if (port && dev_priv->hpd_irq_port[port]) {
|
||||
bool long_hpd;
|
||||
|
||||
if (IS_G4X(dev)) {
|
||||
dig_shift = g4x_port_to_hotplug_shift(port);
|
||||
long_hpd = (hotplug_trigger >> dig_shift) & PORTB_HOTPLUG_LONG_DETECT;
|
||||
} else {
|
||||
dig_shift = ilk_port_to_hotplug_shift(port);
|
||||
if (HAS_PCH_SPLIT(dev)) {
|
||||
dig_shift = pch_port_to_hotplug_shift(port);
|
||||
long_hpd = (dig_hotplug_reg >> dig_shift) & PORTB_HOTPLUG_LONG_DETECT;
|
||||
} else {
|
||||
dig_shift = i915_port_to_hotplug_shift(port);
|
||||
long_hpd = (hotplug_trigger >> dig_shift) & PORTB_HOTPLUG_LONG_DETECT;
|
||||
}
|
||||
|
||||
DRM_DEBUG_DRIVER("digital hpd port %c - %s\n",
|
||||
@@ -1984,27 +1984,6 @@ static void i9xx_pipe_crc_irq_handler(struct drm_device *dev, enum pipe pipe)
|
||||
res1, res2);
|
||||
}
|
||||
|
||||
void gen8_flip_interrupt(struct drm_device *dev)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||
|
||||
if (!dev_priv->rps.is_bdw_sw_turbo)
|
||||
return;
|
||||
|
||||
if(atomic_read(&dev_priv->rps.sw_turbo.flip_received)) {
|
||||
mod_timer(&dev_priv->rps.sw_turbo.flip_timer,
|
||||
usecs_to_jiffies(dev_priv->rps.sw_turbo.timeout) + jiffies);
|
||||
}
|
||||
else {
|
||||
dev_priv->rps.sw_turbo.flip_timer.expires =
|
||||
usecs_to_jiffies(dev_priv->rps.sw_turbo.timeout) + jiffies;
|
||||
add_timer(&dev_priv->rps.sw_turbo.flip_timer);
|
||||
atomic_set(&dev_priv->rps.sw_turbo.flip_received, true);
|
||||
}
|
||||
|
||||
bdw_software_turbo(dev);
|
||||
}
|
||||
|
||||
/* The RPS events need forcewake, so we add them to a work queue and mask their
|
||||
* IMR bits until the work is done. Other interrupts can be processed without
|
||||
* the work queue. */
|
||||
@@ -3494,11 +3473,13 @@ static void gen8_irq_reset(struct drm_device *dev)
|
||||
|
||||
void gen8_irq_power_well_post_enable(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
uint32_t extra_ier = GEN8_PIPE_VBLANK | GEN8_PIPE_FIFO_UNDERRUN;
|
||||
|
||||
spin_lock_irq(&dev_priv->irq_lock);
|
||||
GEN8_IRQ_INIT_NDX(DE_PIPE, PIPE_B, dev_priv->de_irq_mask[PIPE_B],
|
||||
~dev_priv->de_irq_mask[PIPE_B]);
|
||||
~dev_priv->de_irq_mask[PIPE_B] | extra_ier);
|
||||
GEN8_IRQ_INIT_NDX(DE_PIPE, PIPE_C, dev_priv->de_irq_mask[PIPE_C],
|
||||
~dev_priv->de_irq_mask[PIPE_C]);
|
||||
~dev_priv->de_irq_mask[PIPE_C] | extra_ier);
|
||||
spin_unlock_irq(&dev_priv->irq_lock);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user