mirror of https://gitee.com/openkylin/linux.git
drm/i915/gvt: let force_to_nonpriv cmd handler only valid for LRI cmd
the cmd_reg_handler() is called by cmds LRM, PIPE_CTRL, SRM... for LRM, SRM, we cannot get write data in a simple way. On other side, the force_to_nonpriv reigsters will only be written in LRI in current drivers. so we don't want to bother the handler to handle those memory access cmds, just leave a print message here. Signed-off-by: Zhao Yan <yan.y.zhao@intel.com> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
This commit is contained in:
parent
0438a10598
commit
cb8ba171ae
|
@ -813,14 +813,22 @@ static inline bool is_force_nonpriv_mmio(unsigned int offset)
|
|||
}
|
||||
|
||||
static int force_nonpriv_reg_handler(struct parser_exec_state *s,
|
||||
unsigned int offset, unsigned int index)
|
||||
unsigned int offset, unsigned int index, char *cmd)
|
||||
{
|
||||
struct intel_gvt *gvt = s->vgpu->gvt;
|
||||
unsigned int data = cmd_val(s, index + 1);
|
||||
unsigned int data;
|
||||
u32 ring_base;
|
||||
u32 nopid;
|
||||
struct drm_i915_private *dev_priv = s->vgpu->gvt->dev_priv;
|
||||
|
||||
if (!strcmp(cmd, "lri"))
|
||||
data = cmd_val(s, index + 1);
|
||||
else {
|
||||
gvt_err("Unexpected forcenonpriv 0x%x write from cmd %s\n",
|
||||
offset, cmd);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ring_base = dev_priv->engine[s->ring_id]->mmio_base;
|
||||
nopid = i915_mmio_reg_offset(RING_NOPID(ring_base));
|
||||
|
||||
|
@ -877,7 +885,7 @@ static int cmd_reg_handler(struct parser_exec_state *s,
|
|||
return -EINVAL;
|
||||
|
||||
if (is_force_nonpriv_mmio(offset) &&
|
||||
force_nonpriv_reg_handler(s, offset, index))
|
||||
force_nonpriv_reg_handler(s, offset, index, cmd))
|
||||
return -EPERM;
|
||||
|
||||
if (offset == i915_mmio_reg_offset(DERRMR) ||
|
||||
|
|
Loading…
Reference in New Issue