From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH AUTOSEL 4.19 104/167] PCI: Reset Lenovo ThinkPad P50 nvgpu at boot if necessary Date: Tue, 3 Sep 2019 12:24:16 -0400 Message-ID: <20190903162519.7136-104-sashal@kernel.org> References: <20190903162519.7136-1-sashal@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190903162519.7136-1-sashal-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Sasha Levin , nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Bjorn Helgaas List-Id: dri-devel@lists.freedesktop.org RnJvbTogTHl1ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNvbT4KClsgVXBzdHJlYW0gY29tbWl0IGUw NTQ3YzgxYmZjZmFkMDFjYmJmYTkzYTVlNjZiYjk4YWI5MzJmODAgXQoKT24gVGhpbmtQYWQgUDUw IFNLVXMgd2l0aCBhbiBOdmlkaWEgUXVhZHJvIE0xMDAwTSBpbnN0ZWFkIG9mIHRoZSBNMjAwME0K dmFyaWFudCwgdGhlIEJJT1MgZG9lcyBub3QgYWx3YXlzIHJlc2V0IHRoZSBzZWNvbmRhcnkgTnZp ZGlhIEdQVSBkdXJpbmcKcmVib290IGlmIHRoZSBsYXB0b3AgaXMgY29uZmlndXJlZCBpbiBIeWJy aWQgR3JhcGhpY3MgbW9kZS4gIFRoZSByZWFzb24gaXMKdW5rbm93biwgYnV0IHRoZSBmb2xsb3dp bmcgc3RlcHMgYW5kIHBvc3NpYmx5IGEgZ29vZCBiaXQgb2YgcGF0aWVuY2Ugd2lsbApyZXByb2R1 Y2UgdGhlIGlzc3VlOgoKICAxLiBCb290IHVwIHRoZSBsYXB0b3Agbm9ybWFsbHkgaW4gSHlicmlk IEdyYXBoaWNzIG1vZGUKICAyLiBNYWtlIHN1cmUgbm91dmVhdSBpcyBsb2FkZWQgYW5kIHRoYXQg dGhlIEdQVSBpcyBhd2FrZQogIDMuIEFsbG93IHRoZSBOdmlkaWEgR1BVIHRvIHJ1bnRpbWUgc3Vz cGVuZCBpdHNlbGYgYWZ0ZXIgYmVpbmcgaWRsZQogIDQuIFJlYm9vdCB0aGUgbWFjaGluZSwgdGhl IG1vcmUgc3VkZGVuIHRoZSBiZXR0ZXIgKGUuZy4gc3lzcnEtYiBtYXkgaGVscCkKICA1LiBJZiBu b3V2ZWF1IGxvYWRzIHVwIHByb3Blcmx5LCByZWJvb3QgdGhlIG1hY2hpbmUgYWdhaW4gYW5kIGdv IGJhY2sgdG8KICAgICBzdGVwIDIgdW50aWwgeW91IHJlcHJvZHVjZSB0aGUgaXNzdWUKClRoaXMg cmVzdWx0cyBpbiBzb21lIHZlcnkgc3RyYW5nZSBiZWhhdmlvcjogdGhlIEdQVSB3aWxsIGJlIGxl ZnQgaW4gZXhhY3RseQp0aGUgc2FtZSBzdGF0ZSBpdCB3YXMgaW4gd2hlbiB0aGUgcHJldmlvdXNs eSBib290ZWQga2VybmVsIHN0YXJ0ZWQgdGhlCnJlYm9vdC4gIFRoaXMgaGFzIGFsbCBzb3J0cyBv ZiBiYWQgc2lkZSBlZmZlY3RzOiBmb3Igc3RhcnRlcnMsIHRoaXMKY29tcGxldGVseSBicmVha3Mg bm91dmVhdSBzdGFydGluZyB3aXRoIGEgbXlzdGVyaW91cyBFVk8gY2hhbm5lbCBmYWlsdXJlCnRo YXQgaGFwcGVucyB3ZWxsIGJlZm9yZSB3ZSd2ZSBhY3R1YWxseSB1c2VkIHRoZSBFVk8gY2hhbm5l bCBmb3IgYW55dGhpbmc6CgogIG5vdXZlYXUgMDAwMDowMTowMC4wOiBkaXNwOiBjaGlkIDAgbXRo ZCAwMDAwIGRhdGEgMDAwMDA0MDAgMDAwMDEwMDAgMDAwMDAwMDIKClRoaXMgY2F1c2VzIGEgdGlt ZW91dCB0cnlpbmcgdG8gYnJpbmcgdXAgdGhlIEdSIGN0eDoKCiAgbm91dmVhdSAwMDAwOjAxOjAw LjA6IHRpbWVvdXQKICBXQVJOSU5HOiBDUFU6IDAgUElEOiAxMiBhdCBkcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9udmttL2VuZ2luZS9nci9jdHhnZjEwMC5jOjE1NDcgZ2YxMDBfZ3JjdHhfZ2VuZXJh dGUrMHg3YjIvMHg4NTAgW25vdXZlYXVdCiAgSGFyZHdhcmUgbmFtZTogTEVOT1ZPIDIwRVFTNjRO MEIvMjBFUVM2NE4wQiwgQklPUyBOMUVFVDgyVyAoMS41NSApIDEyLzE4LzIwMTgKICBXb3JrcXVl dWU6IGV2ZW50c19sb25nIGRybV9kcF9tc3RfbGlua19wcm9iZV93b3JrIFtkcm1fa21zX2hlbHBl cl0KICAuLi4KICBub3V2ZWF1IDAwMDA6MDE6MDAuMDogZ3I6IHdhaXQgZm9yIGlkbGUgdGltZW91 dCAoZW46IDEsIGN0eHN3OiAwLCBidXN5OiAxKQogIG5vdXZlYXUgMDAwMDowMTowMC4wOiBncjog d2FpdCBmb3IgaWRsZSB0aW1lb3V0IChlbjogMSwgY3R4c3c6IDAsIGJ1c3k6IDEpCiAgbm91dmVh dSAwMDAwOjAxOjAwLjA6IGZpZm86IGZhdWx0IDAxIFtXUklURV0gYXQgMDAwMDAwMDAwMDAwODAw MCBlbmdpbmUgMDAgW0dSXSBjbGllbnQgMTUgW0hVQi9TQ0NfTkJdIHJlYXNvbiBjNCBbXSBvbiBj aGFubmVsIC0xIFswMDAwMDAwMDAwIHVua25vd25dCgpUaGUgR1BVIG5ldmVyIG1hbmFnZXMgdG8g cmVjb3Zlci4gIEJvb3Rpbmcgd2l0aG91dCBsb2FkaW5nIG5vdXZlYXUgY2F1c2VzCmlzc3VlcyBh cyB3ZWxsLCBzaW5jZSB0aGUgR1BVIHN0YXJ0cyBzZW5kaW5nIHNwdXJpb3VzIGludGVycnVwdHMg dGhhdCBjYXVzZQpvdGhlciBkZXZpY2UncyBJUlFzIHRvIGdldCBkaXNhYmxlZCBieSB0aGUga2Vy bmVsOgoKICBpcnEgMTY6IG5vYm9keSBjYXJlZCAodHJ5IGJvb3Rpbmcgd2l0aCB0aGUgImlycXBv bGwiIG9wdGlvbikKICAuLi4KICBoYW5kbGVyczoKICBbPDAwMDAwMDAwN2ZhYTllOTk+XSBpODAx X2lzciBbaTJjX2k4MDFdCiAgRGlzYWJsaW5nIElSUSAjMTYKICAuLi4KICBzZXJpbzogUk1JNCBQ Uy8yIHBhc3MtdGhyb3VnaCBwb3J0IGF0IHJtaTQtMDAuZm4wMwogIGk4MDFfc21idXMgMDAwMDow MDoxZi40OiBUaW1lb3V0IHdhaXRpbmcgZm9yIGludGVycnVwdCEKICBpODAxX3NtYnVzIDAwMDA6 MDA6MWYuNDogVHJhbnNhY3Rpb24gdGltZW91dAogIHJtaTRfZjAzIHJtaTQtMDAuZm4wMzogcm1p X2YwM19wdF93cml0ZTogRmFpbGVkIHRvIHdyaXRlIHRvIEYwMyBUWCByZWdpc3RlciAoLTExMCku CiAgaTgwMV9zbWJ1cyAwMDAwOjAwOjFmLjQ6IFRpbWVvdXQgd2FpdGluZyBmb3IgaW50ZXJydXB0 IQogIGk4MDFfc21idXMgMDAwMDowMDoxZi40OiBUcmFuc2FjdGlvbiB0aW1lb3V0CiAgcm1pNF9w aHlzaWNhbCBybWk0LTAwOiBybWlfZHJpdmVyX3NldF9pcnFfYml0czogRmFpbGVkIHRvIGNoYW5n ZSBlbmFibGVkIGludGVycnVwdHMhCgpUaGlzIGNhdXNlcyB0aGUgdG91Y2hwYWQgYW5kIHNvbWV0 aW1lcyBvdGhlciB0aGluZ3MgdG8gZ2V0IGRpc2FibGVkLgoKU2luY2UgdGhpcyBoYXBwZW5zIHdp dGhvdXQgbm91dmVhdSwgd2UgY2FuJ3QgZml4IHRoaXMgcHJvYmxlbSBmcm9tIG5vdXZlYXUKaXRz ZWxmLgoKQWRkIGEgUENJIHF1aXJrIGZvciB0aGUgc3BlY2lmaWMgUDUwIHZhcmlhbnQgb2YgdGhp cyBHUFUuICBNYWtlIHN1cmUgdGhlCkdQVSBpcyBhZHZlcnRpc2luZyBOb1Jlc2V0LSBzbyB3ZSBk b24ndCByZXNldCB0aGUgR1BVIHdoZW4gdGhlIG1hY2hpbmUgaXMKaW4gRGVkaWNhdGVkIGdyYXBo aWNzIG1vZGUgKHdoZXJlIHRoZSBHUFUgYmVpbmcgaW5pdGlhbGl6ZWQgYnkgdGhlIEJJT1MgaXMK bm9ybWFsIGFuZCBleHBlY3RlZCkuICBNYXAgdGhlIEdQVSBNTUlPIHNwYWNlIGFuZCByZWFkIHRo ZSBtYWdpYyAweDIyNDBjCnJlZ2lzdGVyLCB3aGljaCB3aWxsIGhhdmUgYml0IDEgc2V0IGlmIHRo ZSBkZXZpY2Ugd2FzIFBPU1RlZCBkdXJpbmcgYQpwcmV2aW91cyBib290LiAgT25jZSB3ZSd2ZSBj b25maXJtZWQgYWxsIG9mIHRoaXMsIHJlc2V0IHRoZSBHUFUgYW5kCnJlLWRpc2FibGUgaXQgLSBi cmluZ2luZyBpdCBiYWNrIHRvIGEgaGVhbHRoeSBzdGF0ZS4KCkxpbms6IGh0dHBzOi8vYnVnemls bGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDAzCkxpbms6IGh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL2xrbWwvMjAxOTAyMTIyMjAyMzAuMTU2OC0xLWx5dWRlQHJlZGhhdC5jb20KU2ln bmVkLW9mZi1ieTogTHl1ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTog Qmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KQ2M6IG5vdXZlYXVAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCkNjOiBLYXJv bCBIZXJic3QgPGtoZXJic3RAcmVkaGF0LmNvbT4KQ2M6IEJlbiBTa2VnZ3MgPHNrZWdnc2JAZ21h aWwuY29tPgpDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBTYXNoYSBM ZXZpbiA8c2FzaGFsQGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVycy9wY2kvcXVpcmtzLmMgfCA1OCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5n ZWQsIDU4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9xdWlya3MuYyBi L2RyaXZlcnMvcGNpL3F1aXJrcy5jCmluZGV4IDZjZGE4YjdlY2M4MjEuLjMxMWY4YTMzZTYyZmYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3F1aXJrcy5jCisrKyBiL2RyaXZlcnMvcGNpL3F1aXJr cy5jCkBAIC01MTE2LDMgKzUxMTYsNjEgQEAgU1dJVENIVEVDX1FVSVJLKDB4ODU3Myk7ICAvKiBQ RlhJIDQ4WEczICovCiBTV0lUQ0hURUNfUVVJUksoMHg4NTc0KTsgIC8qIFBGWEkgNjRYRzMgKi8K IFNXSVRDSFRFQ19RVUlSSygweDg1NzUpOyAgLyogUEZYSSA4MFhHMyAqLwogU1dJVENIVEVDX1FV SVJLKDB4ODU3Nik7ICAvKiBQRlhJIDk2WEczICovCisKKy8qCisgKiBPbiBMZW5vdm8gVGhpbmtw YWQgUDUwIFNLVXMgd2l0aCBhIE52aWRpYSBRdWFkcm8gTTEwMDBNLCB0aGUgQklPUyBkb2VzCisg KiBub3QgYWx3YXlzIHJlc2V0IHRoZSBzZWNvbmRhcnkgTnZpZGlhIEdQVSBiZXR3ZWVuIHJlYm9v dHMgaWYgdGhlIHN5c3RlbQorICogaXMgY29uZmlndXJlZCB0byB1c2UgSHlicmlkIEdyYXBoaWNz IG1vZGUuICBUaGlzIHJlc3VsdHMgaW4gdGhlIEdQVQorICogYmVpbmcgbGVmdCBpbiB3aGF0ZXZl ciBzdGF0ZSBpdCB3YXMgaW4gZHVyaW5nIHRoZSAqcHJldmlvdXMqIGJvb3QsIHdoaWNoCisgKiBj YXVzZXMgc3B1cmlvdXMgaW50ZXJydXB0cyBmcm9tIHRoZSBHUFUsIHdoaWNoIGluIHR1cm4gY2F1 c2VzIHVzIHRvCisgKiBkaXNhYmxlIHRoZSB3cm9uZyBJUlEgYW5kIGVuZCB1cCBicmVha2luZyB0 aGUgdG91Y2hwYWQuICBVbnN1cnByaXNpbmdseSwKKyAqIHRoaXMgYWxzbyBjb21wbGV0ZWx5IGJy ZWFrcyBub3V2ZWF1LgorICoKKyAqIEx1Y2tpbHksIGl0IHNlZW1zIGEgc2ltcGxlIHJlc2V0IG9m IHRoZSBOdmlkaWEgR1BVIGJyaW5ncyBpdCBiYWNrIHRvIGEKKyAqIGNsZWFuIHN0YXRlIGFuZCBm aXhlcyBhbGwgdGhlc2UgaXNzdWVzLgorICoKKyAqIFdoZW4gdGhlIG1hY2hpbmUgaXMgY29uZmln dXJlZCBpbiBEZWRpY2F0ZWQgZGlzcGxheSBtb2RlLCB0aGUgaXNzdWUKKyAqIGRvZXNuJ3Qgb2Nj dXIuICBGb3J0dW5hdGVseSB0aGUgR1BVIGFkdmVydGlzZXMgTm9SZXNldCsgd2hlbiBpbiB0aGlz CisgKiBtb2RlLCBzbyB3ZSBjYW4gZGV0ZWN0IHRoYXQgYW5kIGF2b2lkIHJlc2V0dGluZyBpdC4K KyAqLworc3RhdGljIHZvaWQgcXVpcmtfcmVzZXRfbGVub3ZvX3RoaW5rcGFkX3A1MF9udmdwdShz dHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKwl2b2lkIF9faW9tZW0gKm1hcDsKKwlpbnQgcmV0Owor CisJaWYgKHBkZXYtPnN1YnN5c3RlbV92ZW5kb3IgIT0gUENJX1ZFTkRPUl9JRF9MRU5PVk8gfHwK KwkgICAgcGRldi0+c3Vic3lzdGVtX2RldmljZSAhPSAweDIyMmUgfHwKKwkgICAgIXBkZXYtPnJl c2V0X2ZuKQorCQlyZXR1cm47CisKKwlpZiAocGNpX2VuYWJsZV9kZXZpY2VfbWVtKHBkZXYpKQor CQlyZXR1cm47CisKKwkvKgorCSAqIEJhc2VkIG9uIG52a21fZGV2aWNlX2N0b3IoKSBpbgorCSAq IGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2RldmljZS9iYXNlLmMKKwkgKi8K KwltYXAgPSBwY2lfaW9tYXAocGRldiwgMCwgMHgyMzAwMCk7CisJaWYgKCFtYXApIHsKKwkJcGNp X2VycihwZGV2LCAiQ2FuJ3QgbWFwIE1NSU8gc3BhY2VcbiIpOworCQlnb3RvIG91dF9kaXNhYmxl OworCX0KKworCS8qCisJICogTWFrZSBzdXJlIHRoZSBHUFUgbG9va3MgbGlrZSBpdCdzIGJlZW4g UE9TVGVkIGJlZm9yZSByZXNldHRpbmcKKwkgKiBpdC4KKwkgKi8KKwlpZiAoaW9yZWFkMzIobWFw ICsgMHgyMjQwYykgJiAweDIpIHsKKwkJcGNpX2luZm8ocGRldiwgRldfQlVHICJHUFUgbGVmdCBp bml0aWFsaXplZCBieSBFRkksIHJlc2V0dGluZ1xuIik7CisJCXJldCA9IHBjaV9yZXNldF9mdW5j dGlvbihwZGV2KTsKKwkJaWYgKHJldCA8IDApCisJCQlwY2lfZXJyKHBkZXYsICJGYWlsZWQgdG8g cmVzZXQgR1BVOiAlZFxuIiwgcmV0KTsKKwl9CisKKwlpb3VubWFwKG1hcCk7CitvdXRfZGlzYWJs ZToKKwlwY2lfZGlzYWJsZV9kZXZpY2UocGRldik7Cit9CitERUNMQVJFX1BDSV9GSVhVUF9DTEFT U19GSU5BTChQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgxM2IxLAorCQkJICAgICAgUENJX0NMQVNT X0RJU1BMQVlfVkdBLCA4LAorCQkJICAgICAgcXVpcmtfcmVzZXRfbGVub3ZvX3RoaW5rcGFkX3A1 MF9udmdwdSk7Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91 dmVhdQ==