forked from luck/tmp_suning_uos_patched
Merge tag 'drm-intel-fixes-2014-02-11' of ssh://git.freedesktop.org/git/drm-intel into drm-next
3 regression fixes in i915 * tag 'drm-intel-fixes-2014-02-11' of ssh://git.freedesktop.org/git/drm-intel: drm/i915: Pair va_copy with va_end in i915_error_vprintf drm/i915: Fix intel_pipe_to_cpu_transcoder for UMS drm/i915: Disable dp aux irq on g4x
This commit is contained in:
commit
da89486f03
@ -1831,6 +1831,14 @@ struct drm_i915_file_private {
|
||||
|
||||
/* Early gen2 have a totally busted CS tlb and require pinned batches. */
|
||||
#define HAS_BROKEN_CS_TLB(dev) (IS_I830(dev) || IS_845G(dev))
|
||||
/*
|
||||
* dp aux and gmbus irq on gen4 seems to be able to generate legacy interrupts
|
||||
* even when in MSI mode. This results in spurious interrupt warnings if the
|
||||
* legacy irq no. is shared with another device. The kernel then disables that
|
||||
* interrupt source and so prevents the other device from working properly.
|
||||
*/
|
||||
#define HAS_AUX_IRQ(dev) (INTEL_INFO(dev)->gen >= 5)
|
||||
#define HAS_GMBUS_IRQ(dev) (INTEL_INFO(dev)->gen >= 5)
|
||||
|
||||
/* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte
|
||||
* rows, which changed the alignment requirements and fence programming.
|
||||
|
@ -146,7 +146,10 @@ static void i915_error_vprintf(struct drm_i915_error_state_buf *e,
|
||||
va_list tmp;
|
||||
|
||||
va_copy(tmp, args);
|
||||
if (!__i915_error_seek(e, vsnprintf(NULL, 0, f, tmp)))
|
||||
len = vsnprintf(NULL, 0, f, tmp);
|
||||
va_end(tmp);
|
||||
|
||||
if (!__i915_error_seek(e, len))
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -567,8 +567,7 @@ static u32 i915_get_vblank_counter(struct drm_device *dev, int pipe)
|
||||
|
||||
vbl_start = mode->crtc_vblank_start * mode->crtc_htotal;
|
||||
} else {
|
||||
enum transcoder cpu_transcoder =
|
||||
intel_pipe_to_cpu_transcoder(dev_priv, pipe);
|
||||
enum transcoder cpu_transcoder = (enum transcoder) pipe;
|
||||
u32 htotal;
|
||||
|
||||
htotal = ((I915_READ(HTOTAL(cpu_transcoder)) >> 16) & 0x1fff) + 1;
|
||||
|
@ -404,7 +404,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
|
||||
int i, ret, recv_bytes;
|
||||
uint32_t status;
|
||||
int try, precharge, clock = 0;
|
||||
bool has_aux_irq = true;
|
||||
bool has_aux_irq = HAS_AUX_IRQ(dev);
|
||||
uint32_t timeout;
|
||||
|
||||
/* dp aux is extremely sensitive to irq latency, hence request the
|
||||
|
@ -258,13 +258,6 @@ intel_gpio_setup(struct intel_gmbus *bus, u32 pin)
|
||||
algo->data = bus;
|
||||
}
|
||||
|
||||
/*
|
||||
* gmbus on gen4 seems to be able to generate legacy interrupts even when in MSI
|
||||
* mode. This results in spurious interrupt warnings if the legacy irq no. is
|
||||
* shared with another device. The kernel then disables that interrupt source
|
||||
* and so prevents the other device from working properly.
|
||||
*/
|
||||
#define HAS_GMBUS_IRQ(dev) (INTEL_INFO(dev)->gen >= 5)
|
||||
static int
|
||||
gmbus_wait_hw_status(struct drm_i915_private *dev_priv,
|
||||
u32 gmbus2_status,
|
||||
|
Loading…
Reference in New Issue
Block a user