mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-16 23:45:31 +08:00
drm/i915: Program MBUS with rmw during initialization
It wasn't terribly clear from the bspec's wording, but after discussion with the hardware folks, it turns out that we need to preserve the pre-existing contents of the MBUS ABOX control register when initializing a few specific bits. Bspec: 49213 Bspec: 50096 Fixes:4cb4585e5a
("drm/i915/icl: initialize MBus during display init") Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200204011032.582737-1-matthew.d.roper@intel.com Reviewed-by: Matt Atwood <matthew.s.atwood@intel.com> (cherry picked from commit837b63e608
) Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200228004320.127142-1-matthew.d.roper@intel.com
This commit is contained in:
parent
33e059a2e4
commit
c725161924
@ -4466,13 +4466,19 @@ static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
|
||||
|
||||
static void icl_mbus_init(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
u32 val;
|
||||
u32 mask, val;
|
||||
|
||||
val = MBUS_ABOX_BT_CREDIT_POOL1(16) |
|
||||
MBUS_ABOX_BT_CREDIT_POOL2(16) |
|
||||
MBUS_ABOX_B_CREDIT(1) |
|
||||
MBUS_ABOX_BW_CREDIT(1);
|
||||
mask = MBUS_ABOX_BT_CREDIT_POOL1_MASK |
|
||||
MBUS_ABOX_BT_CREDIT_POOL2_MASK |
|
||||
MBUS_ABOX_B_CREDIT_MASK |
|
||||
MBUS_ABOX_BW_CREDIT_MASK;
|
||||
|
||||
val = I915_READ(MBUS_ABOX_CTL);
|
||||
val &= ~mask;
|
||||
val |= MBUS_ABOX_BT_CREDIT_POOL1(16) |
|
||||
MBUS_ABOX_BT_CREDIT_POOL2(16) |
|
||||
MBUS_ABOX_B_CREDIT(1) |
|
||||
MBUS_ABOX_BW_CREDIT(1);
|
||||
I915_WRITE(MBUS_ABOX_CTL, val);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user