Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp1863686ybc; Wed, 20 Nov 2019 05:23:53 -0800 (PST) X-Google-Smtp-Source: APXvYqxVqL/i7/t5+oQC8nSl9bsJ/FPK8LlxUbS2rEFcx4R/e/9RvJP6JJUaN6hGDIbgKU0zgJpN X-Received: by 2002:a1c:bc56:: with SMTP id m83mr3124448wmf.11.1574256233529; Wed, 20 Nov 2019 05:23:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574256233; cv=none; d=google.com; s=arc-20160816; b=AvkgCAewJxhdSAMTdfBsQ4083nQJNTCgv/szIdbqghtkVNdRc+wEbvYf8Y94sRfiT/ 5ZDtsCRYVtj6uOzKy6djlPk+pT4ka6Y+aJWZYmkK8A3XaEFrZA4P2LXrrJBH0GgMH6Vm m9w7v/vkdABOkQWsMaO7Azw1/bNzXAZ8YsMZwGV9JjMX7Z2VYpDpQBx3/KIXU8+xYJYa dU/dz2c6zC7kH0qCmfMCX6BvPX4XXB2ER0Ea+XUCtZRx+WesXyFx9YstHwCdhPZScQ0g pCZRLdeBM5HSV+WnWJi82b0D0NLbbcD6XWm4VYRgcJ8NBgyUKLdB50V6veorUgXY3ma6 0fRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=BQ/suR9lwab8Vmoit+8fApDfagM+XQzhiSMoLQs89Ks=; b=BtUpSUsqsf+Gcms/2GgPSyIc5ErBfXt353UVr/l7WYHpzBXluOifW3l41t+x8fLHbh 5Lxhhu5+wh9arnWLqBAAQ8fSI5xjj3AhWqfD0uERB6EFm/cw03u1AbHObZwKdhInf5V1 +9AQm+61nt//1J6kk8hqLxRuwEyrSV/+06oZSokDT/VGxw1yHyevt38xqKHDALdRQ6Fg HPYQjoPJtWchb4VAr1xzGYZjTCNxCWTO2JhewB570EPx1tZk/qHbLSXTvhL/CwKWqWQr Xa21XcF0+LUUWxe34GYli1oDdrygamrWIjWB5VrPGhYsQBpY5XFRVxfbjEh7Jt65apaT j1gA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=R3gchAZ4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r18si16701473edw.65.2019.11.20.05.23.29; Wed, 20 Nov 2019 05:23:53 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=R3gchAZ4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729387AbfKTLzE (ORCPT + 99 others); Wed, 20 Nov 2019 06:55:04 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:23653 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728746AbfKTLzE (ORCPT ); Wed, 20 Nov 2019 06:55:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574250903; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BQ/suR9lwab8Vmoit+8fApDfagM+XQzhiSMoLQs89Ks=; b=R3gchAZ4mjjf3pLWutObQwCzjHwgOuDb2q5SUPR1xdWCT3JOcVlVUIWsavgItXx0CraedU uGCvb4Gez4bE/RWEIr7JjV57Dl1AnBH8jgmRr9rDs/KFZRhsalfP/G2G9rKRz2i9u74AlW Y8BxE/4FTpzr3R+W9hD0POHV54zfIN0= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-61-KROyP4iVN8yo-JYTPvQBZQ-1; Wed, 20 Nov 2019 06:54:59 -0500 Received: by mail-qv1-f72.google.com with SMTP id m43so16937931qvc.17 for ; Wed, 20 Nov 2019 03:54:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aXFyh8kBLvmSj4EaxcIf64KvYzB8eENY53AuUwLsMY8=; b=VE344bkhXajTjwy1HesoffG23XMtxqIafgd90g9jrfRGrIIPOp6JIbhBAtQNAPHGak 0MOg9JoXlwhPd2gLJe9mH+xbpEMk0nnS22UtKk4ohEhiPLk/4fHH4j78np8BS9KkXyMv f1BQlTbMbnWTWT7DU9TqUHTWyMWwOs+XoI2Z1IDGiWcKcRW/AT33XPbFEd4M800oh957 REf12hCDNnlrwPVi/ZiUjjF11biukxY/U7T2hVC2H3KOr74udgBm5NGMdRgR3EwCSBUF WZd2MsAPbEnZvrd5w+vEVAdIltJxtI121r3iH0fDkCo9YZSgShj9iVXydFSUfCl25Va1 1Vhg== X-Gm-Message-State: APjAAAVNCd/2adAecoB2aDmlRN31zZgatcyVT5BsPL6V2thMSNmHG7pq luKIJHJwXjsRd2zmkl7kbFSDaD05liYTgSXFJAdOWzHC150Xh2wNNH2WyJ4v+Zkc9cagG66MFJP DgCujRojyyjkyH+eqoXr2K6q1Pg1c30yHr8nokAkG X-Received: by 2002:ac8:38cf:: with SMTP id g15mr2147338qtc.254.1574250899268; Wed, 20 Nov 2019 03:54:59 -0800 (PST) X-Received: by 2002:ac8:38cf:: with SMTP id g15mr2147324qtc.254.1574250899096; Wed, 20 Nov 2019 03:54:59 -0800 (PST) MIME-Version: 1.0 References: <20191017121901.13699-1-kherbst@redhat.com> <20191119214955.GA223696@google.com> <20191120101816.GX11621@lahna.fi.intel.com> <20191120112212.GA11621@lahna.fi.intel.com> <20191120115127.GD11621@lahna.fi.intel.com> In-Reply-To: <20191120115127.GD11621@lahna.fi.intel.com> From: Karol Herbst Date: Wed, 20 Nov 2019 12:54:48 +0100 Message-ID: Subject: Re: [PATCH v4] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges To: Mika Westerberg Cc: "Rafael J. Wysocki" , Bjorn Helgaas , LKML , Lyude Paul , "Rafael J . Wysocki" , Linux PCI , Linux PM , dri-devel , nouveau , Dave Airlie , Mario Limonciello X-MC-Unique: KROyP4iVN8yo-JYTPvQBZQ-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org for newer Windows the firmware uses bit 0x80 on 0x248 (Q0L2 being the field name) on the bridge controller to turn of the device, on other versions it uses the "older"? 0xb0 register and the P0LD field, which is documented, where the former is not. On Wed, Nov 20, 2019 at 12:51 PM Mika Westerberg wrote: > > On Wed, Nov 20, 2019 at 01:22:16PM +0200, Mika Westerberg wrote: > > If (((OSYS <=3D 0x07D9) || ((OSYS =3D=3D 0x07DF) && (_REV = =3D=3D > > 0x05)))) > > { > > The OSYS comes from this (in DSDT): > > If (_OSI ("Windows 2009")) > { > OSYS =3D 0x07D9 > } > > If (_OSI ("Windows 2012")) > { > OSYS =3D 0x07DC > } > > If (_OSI ("Windows 2013")) > { > OSYS =3D 0x07DD > } > > If (_OSI ("Windows 2015")) > { > OSYS =3D 0x07DF > } > > So I guess this particular check tries to identify Windows 7 and older, > and Linux. > > > If ((PIOF =3D=3D Zero)) > > { > > P0LD =3D One > > TCNT =3D Zero > > While ((TCNT < LDLY)) > > { > > If ((P0LT =3D=3D 0x08)) > > { > > Break > > } > > > > Sleep (0x10) > > TCNT +=3D 0x10 > > } > > > > P0RM =3D One > > P0AP =3D 0x03 > > } > > ElseIf ((PIOF =3D=3D One)) > > { > > P1LD =3D One > > TCNT =3D Zero > > While ((TCNT < LDLY)) > > { > > If ((P1LT =3D=3D 0x08)) > > { > > Break > > } > > > > Sleep (0x10) > > TCNT +=3D 0x10 > > } > > > > P1RM =3D One > > P1AP =3D 0x03 > > } > > ElseIf ((PIOF =3D=3D 0x02)) > > { > > P2LD =3D One > > TCNT =3D Zero > > While ((TCNT < LDLY)) > > { > > If ((P2LT =3D=3D 0x08)) > > { > > Break > > } > > > > Sleep (0x10) > > TCNT +=3D 0x10 > > } > > > > P2RM =3D One > > P2AP =3D 0x03 > > } > > > > If ((PBGE !=3D Zero)) > > { > > If (SBDL (PIOF)) > > { > > MBDL =3D GMXB (PIOF) > > PDUB (PIOF, MBDL) > > } > > } > > } > > Else > > { > > LKDS (PIOF) > > } > > > > If ((DerefOf (SCLK [Zero]) !=3D Zero)) > > { > > PCRO (0xDC, 0x100C, DerefOf (SCLK [One])) > > Sleep (0x10) > > } > > > > GPPR (PIOF, Zero) > > If ((OSYS !=3D 0x07D9)) > > { > > DIWK (PIOF) > > } > > > > \_SB.SGOV (0x01010004, Zero) > > Sleep (0x14) > > Return (Zero) > > } >