Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3201446pxb; Mon, 9 Nov 2020 05:28:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJwXlBfC/okOdUqnhOjw7HgO8KKeL5v+jF61n/b7Er8lc2/vQubnkrgopvHIwQy2aOMAB7us X-Received: by 2002:a50:d751:: with SMTP id i17mr15416147edj.337.1604928519842; Mon, 09 Nov 2020 05:28:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604928519; cv=none; d=google.com; s=arc-20160816; b=Zn2EQU8qUkJ58AlkaKT8F5hpujtXcnU0dsYIpEzD7F5ZzOU0x+V0LAros6BWOCQWhR slkABMcRpw2nUkXubtdQ7IJ2k7txQasIB2S8Mhz7n+qUyNJEYNByA1GrFMIE3YU7sQAz POiR0l6994OOOXd0p0Tu3AQE8ZpGZnSHgCgSam5efbdDqWWttID+j5D+zqQW8KLjx/k6 spxexYNpVtr0IR1PuG4GLmGKKCPqvGpfNGBXa7bVxpHD/gIlsYBC4fqvITa0ORRgcMKP gGGlshUOETjtHysA+zwYCcfU3xok/q2rUKSGTHCcf+LIWNv/Uevv8jdB6GhiLk2GE/E/ boIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=AuVdTxNzmcUnvCDUzUnEczEJeDUTTnLttGkckw1xZp8=; b=G4jnP4kXEO/sD5WmB+M001ZF2M+OpLAAl6vnMJKeIwjrB8Vnr7bKsyzSn/HnyqB6j6 ABj9eynrLXS4KzvZlF4+L5NbTXE3pZsqDaynFutr0o/A6kmpTLrMFiKLgq2mIDcMnwRm d6XdVrp5wt2/xmFiuLMz8QBWKSV/drgUcyzj+8DfW9FWbuy1UOrpU8VhPwC4aJhAz2p2 h83fAcx9PzTF68jvSzSuP19eLd60KOcy+c0FfeNddC28WpgKz/V2FXRBgMMlBq7JdHUT zQZqgtDxf7CxVg3P5ynvOt9CwDV57aXEKyBaVOW8DpO1ge9dGg452sw2eqTjKpMeyctp MNJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Fbrktsd5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q16si3181513ejy.572.2020.11.09.05.28.16; Mon, 09 Nov 2020 05:28:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Fbrktsd5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733075AbgKIN0h (ORCPT + 99 others); Mon, 9 Nov 2020 08:26:37 -0500 Received: from mail.kernel.org ([198.145.29.99]:43018 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387435AbgKINQG (ORCPT ); Mon, 9 Nov 2020 08:16:06 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8330920789; Mon, 9 Nov 2020 13:16:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604927765; bh=nDWBTN3tydoQgWWr1p6c9vEgYdjvmncGkNVAie8d72M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Fbrktsd5SiYNwTGhLUi4acy+icZmdka/JXWk1HSIdlIzNoxJUtwG4BkXE34bzWhTk v1b7RMkNJqXUkKMfvyuZcZsqQasMOdJE5awaYYW1n7CJe1Lh7HRkWnEJfZQZRt9YAg KzCp23ck58AFIe9TJ51MgQGfx8hNVqFRZmR9b2zY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chris Wilson , Yan Zhao , Zhenyu Wang , Rodrigo Vivi Subject: [PATCH 5.9 014/133] drm/i915: Drop runtime-pm assert from vgpu io accessors Date: Mon, 9 Nov 2020 13:54:36 +0100 Message-Id: <20201109125031.408251352@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201109125030.706496283@linuxfoundation.org> References: <20201109125030.706496283@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Chris Wilson commit 5c6c13cd1102caf92d006a3cf4591c0229019daf upstream. The "mmio" writes into vgpu registers are simple memory traps from the guest into the host. We do not need to assert in the guest that the device is awake for the io as we do not write to the device itself. However, over time we have refactored all the mmio accessors with the result that the vgpu reuses the gen2 accessors and so inherits the assert for runtime-pm of the native device. The assert though has actually been there since commit 3be0bf5acca6 ("drm/i915: Create vGPU specific MMIO operations to reduce traps"). Signed-off-by: Chris Wilson Cc: Yan Zhao Cc: Zhenyu Wang Reviewed-by: Zhenyu Wang Cc: stable@vger.kernel.org Link: https://patchwork.freedesktop.org/patch/msgid/20200811092532.13753-1-chris@chris-wilson.co.uk (cherry picked from commit 0e65ce24a33c1d37da4bf43c34e080334ec6cb60) Signed-off-by: Rodrigo Vivi Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/i915/intel_uncore.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/i915/intel_uncore.c +++ b/drivers/gpu/drm/i915/intel_uncore.c @@ -1209,6 +1209,18 @@ unclaimed_reg_debug(struct intel_uncore spin_unlock(&uncore->debug->lock); } +#define __vgpu_read(x) \ +static u##x \ +vgpu_read##x(struct intel_uncore *uncore, i915_reg_t reg, bool trace) { \ + u##x val = __raw_uncore_read##x(uncore, reg); \ + trace_i915_reg_rw(false, reg, val, sizeof(val), trace); \ + return val; \ +} +__vgpu_read(8) +__vgpu_read(16) +__vgpu_read(32) +__vgpu_read(64) + #define GEN2_READ_HEADER(x) \ u##x val = 0; \ assert_rpm_wakelock_held(uncore->rpm); @@ -1414,6 +1426,16 @@ __gen_reg_write_funcs(gen8); #undef GEN6_WRITE_FOOTER #undef GEN6_WRITE_HEADER +#define __vgpu_write(x) \ +static void \ +vgpu_write##x(struct intel_uncore *uncore, i915_reg_t reg, u##x val, bool trace) { \ + trace_i915_reg_rw(true, reg, val, sizeof(val), trace); \ + __raw_uncore_write##x(uncore, reg, val); \ +} +__vgpu_write(8) +__vgpu_write(16) +__vgpu_write(32) + #define ASSIGN_RAW_WRITE_MMIO_VFUNCS(uncore, x) \ do { \ (uncore)->funcs.mmio_writeb = x##_write8; \ @@ -1735,7 +1757,10 @@ static void uncore_raw_init(struct intel { GEM_BUG_ON(intel_uncore_has_forcewake(uncore)); - if (IS_GEN(uncore->i915, 5)) { + if (intel_vgpu_active(uncore->i915)) { + ASSIGN_RAW_WRITE_MMIO_VFUNCS(uncore, vgpu); + ASSIGN_RAW_READ_MMIO_VFUNCS(uncore, vgpu); + } else if (IS_GEN(uncore->i915, 5)) { ASSIGN_RAW_WRITE_MMIO_VFUNCS(uncore, gen5); ASSIGN_RAW_READ_MMIO_VFUNCS(uncore, gen5); } else {