drm/i915: Report the failure to write to the punit
The write to the punit may fail, so propagate the error code back to its callers. Of particular interest are the RPS writes, so add appropriate user error codes and logging. v2: Add DEBUG for failed frequency changes during RPS. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170126101919.13211-1-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
This commit is contained in:
@@ -93,14 +93,18 @@ u32 vlv_punit_read(struct drm_i915_private *dev_priv, u32 addr)
|
||||
return val;
|
||||
}
|
||||
|
||||
void vlv_punit_write(struct drm_i915_private *dev_priv, u32 addr, u32 val)
|
||||
int vlv_punit_write(struct drm_i915_private *dev_priv, u32 addr, u32 val)
|
||||
{
|
||||
int err;
|
||||
|
||||
WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
||||
|
||||
mutex_lock(&dev_priv->sb_lock);
|
||||
vlv_sideband_rw(dev_priv, PCI_DEVFN(0, 0), IOSF_PORT_PUNIT,
|
||||
SB_CRWRDA_NP, addr, &val);
|
||||
err = vlv_sideband_rw(dev_priv, PCI_DEVFN(0, 0), IOSF_PORT_PUNIT,
|
||||
SB_CRWRDA_NP, addr, &val);
|
||||
mutex_unlock(&dev_priv->sb_lock);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
u32 vlv_bunit_read(struct drm_i915_private *dev_priv, u32 reg)
|
||||
|
||||
Reference in New Issue
Block a user