- 2 display fixes: audio av_enc_map overflow check, and Cannonlake PLL related register offset.
- 3 gem fixes: Clear for in-fence out-fence, fix for clearing exec_flags on execbuf failure, and add back global seqno to tracepoints that had been removed recently by other fence related patch. -----BEGIN PGP SIGNATURE----- iQEcBAABAgAGBQJal1J8AAoJEPpiX2QO6xPKQyIH/2rk42oWKjLJboCErj8WkY6B 0Pdt3WghQ8VJPBnAeCvXx+QHf1sKKYEKGNhTTuR2Gfd8V8L7CcK3XUYWkt3zhDS3 b2KW3bpQm3k+lMS55uH7dqXpzustNoslKEWkyT/TGcubDIzWGeKujFxdfkf131+R /iG5h5eU8ryPaJ8Jv2DwPsWdnT+DGC01e+jtTdcAfWwyPC/glDKWpNTQTaUz0WZM 7lK8o5ta5/CSDFgmzK50amL0gAbHg4g8IhcRFlRf6lupTMJm0GypIrDKM5HmPRuw RQZA2k8cLsSbFjBc0Mg6ykwyA6T2Jf1T+ymKFAIz8tbBQVeIL6+1y2PE3JDgA7Y= =axz/ -----END PGP SIGNATURE----- Merge tag 'drm-intel-fixes-2018-02-28' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes - 2 display fixes: audio av_enc_map overflow check, and Cannonlake PLL related register offset. - 3 gem fixes: Clear for in-fence out-fence, fix for clearing exec_flags on execbuf failure, and add back global seqno to tracepoints that had been removed recently by other fence related patch. * tag 'drm-intel-fixes-2018-02-28' of git://anongit.freedesktop.org/drm/drm-intel: drm/i915: Make global seqno known in i915_gem_request_execute tracepoint drm/i915: Clear the in-use marker on execbuf failure drm/i915/cnl: Fix PORT_TX_DW5/7 register address drm/i915/audio: fix check for av_enc_map overflow drm/i915: Fix rsvd2 mask when out-fence is returned
This commit is contained in:
commit
4757d972d9
|
@ -505,6 +505,8 @@ eb_add_vma(struct i915_execbuffer *eb, unsigned int i, struct i915_vma *vma)
|
||||||
list_add_tail(&vma->exec_link, &eb->unbound);
|
list_add_tail(&vma->exec_link, &eb->unbound);
|
||||||
if (drm_mm_node_allocated(&vma->node))
|
if (drm_mm_node_allocated(&vma->node))
|
||||||
err = i915_vma_unbind(vma);
|
err = i915_vma_unbind(vma);
|
||||||
|
if (unlikely(err))
|
||||||
|
vma->exec_flags = NULL;
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -2410,7 +2412,7 @@ err_request:
|
||||||
if (out_fence) {
|
if (out_fence) {
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
fd_install(out_fence_fd, out_fence->file);
|
fd_install(out_fence_fd, out_fence->file);
|
||||||
args->rsvd2 &= GENMASK_ULL(0, 31); /* keep in-fence */
|
args->rsvd2 &= GENMASK_ULL(31, 0); /* keep in-fence */
|
||||||
args->rsvd2 |= (u64)out_fence_fd << 32;
|
args->rsvd2 |= (u64)out_fence_fd << 32;
|
||||||
out_fence_fd = -1;
|
out_fence_fd = -1;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -476,8 +476,6 @@ void __i915_gem_request_submit(struct drm_i915_gem_request *request)
|
||||||
GEM_BUG_ON(!irqs_disabled());
|
GEM_BUG_ON(!irqs_disabled());
|
||||||
lockdep_assert_held(&engine->timeline->lock);
|
lockdep_assert_held(&engine->timeline->lock);
|
||||||
|
|
||||||
trace_i915_gem_request_execute(request);
|
|
||||||
|
|
||||||
/* Transfer from per-context onto the global per-engine timeline */
|
/* Transfer from per-context onto the global per-engine timeline */
|
||||||
timeline = engine->timeline;
|
timeline = engine->timeline;
|
||||||
GEM_BUG_ON(timeline == request->timeline);
|
GEM_BUG_ON(timeline == request->timeline);
|
||||||
|
@ -501,6 +499,8 @@ void __i915_gem_request_submit(struct drm_i915_gem_request *request)
|
||||||
list_move_tail(&request->link, &timeline->requests);
|
list_move_tail(&request->link, &timeline->requests);
|
||||||
spin_unlock(&request->timeline->lock);
|
spin_unlock(&request->timeline->lock);
|
||||||
|
|
||||||
|
trace_i915_gem_request_execute(request);
|
||||||
|
|
||||||
wake_up_all(&request->execute);
|
wake_up_all(&request->execute);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2027,7 +2027,7 @@ enum i915_power_well_id {
|
||||||
#define _CNL_PORT_TX_DW5_LN0_AE 0x162454
|
#define _CNL_PORT_TX_DW5_LN0_AE 0x162454
|
||||||
#define _CNL_PORT_TX_DW5_LN0_B 0x162654
|
#define _CNL_PORT_TX_DW5_LN0_B 0x162654
|
||||||
#define _CNL_PORT_TX_DW5_LN0_C 0x162C54
|
#define _CNL_PORT_TX_DW5_LN0_C 0x162C54
|
||||||
#define _CNL_PORT_TX_DW5_LN0_D 0x162ED4
|
#define _CNL_PORT_TX_DW5_LN0_D 0x162E54
|
||||||
#define _CNL_PORT_TX_DW5_LN0_F 0x162854
|
#define _CNL_PORT_TX_DW5_LN0_F 0x162854
|
||||||
#define CNL_PORT_TX_DW5_GRP(port) _MMIO_PORT6(port, \
|
#define CNL_PORT_TX_DW5_GRP(port) _MMIO_PORT6(port, \
|
||||||
_CNL_PORT_TX_DW5_GRP_AE, \
|
_CNL_PORT_TX_DW5_GRP_AE, \
|
||||||
|
@ -2058,7 +2058,7 @@ enum i915_power_well_id {
|
||||||
#define _CNL_PORT_TX_DW7_LN0_AE 0x16245C
|
#define _CNL_PORT_TX_DW7_LN0_AE 0x16245C
|
||||||
#define _CNL_PORT_TX_DW7_LN0_B 0x16265C
|
#define _CNL_PORT_TX_DW7_LN0_B 0x16265C
|
||||||
#define _CNL_PORT_TX_DW7_LN0_C 0x162C5C
|
#define _CNL_PORT_TX_DW7_LN0_C 0x162C5C
|
||||||
#define _CNL_PORT_TX_DW7_LN0_D 0x162EDC
|
#define _CNL_PORT_TX_DW7_LN0_D 0x162E5C
|
||||||
#define _CNL_PORT_TX_DW7_LN0_F 0x16285C
|
#define _CNL_PORT_TX_DW7_LN0_F 0x16285C
|
||||||
#define CNL_PORT_TX_DW7_GRP(port) _MMIO_PORT6(port, \
|
#define CNL_PORT_TX_DW7_GRP(port) _MMIO_PORT6(port, \
|
||||||
_CNL_PORT_TX_DW7_GRP_AE, \
|
_CNL_PORT_TX_DW7_GRP_AE, \
|
||||||
|
|
|
@ -779,11 +779,11 @@ static struct intel_encoder *get_saved_enc(struct drm_i915_private *dev_priv,
|
||||||
{
|
{
|
||||||
struct intel_encoder *encoder;
|
struct intel_encoder *encoder;
|
||||||
|
|
||||||
if (WARN_ON(pipe >= ARRAY_SIZE(dev_priv->av_enc_map)))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
/* MST */
|
/* MST */
|
||||||
if (pipe >= 0) {
|
if (pipe >= 0) {
|
||||||
|
if (WARN_ON(pipe >= ARRAY_SIZE(dev_priv->av_enc_map)))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
encoder = dev_priv->av_enc_map[pipe];
|
encoder = dev_priv->av_enc_map[pipe];
|
||||||
/*
|
/*
|
||||||
* when bootup, audio driver may not know it is
|
* when bootup, audio driver may not know it is
|
||||||
|
|
Loading…
Reference in New Issue