From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: [PATCH 2/2] efifb: Copy the ACPI BGRT boot graphics to the framebuffer Date: Sun, 17 Jun 2018 17:32:35 +0200 Message-ID: <20180617153235.16219-3-hdegoede@redhat.com> References: <20180617153235.16219-1-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180617153235.16219-1-hdegoede@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ard Biesheuvel , Bartlomiej Zolnierkiewicz Cc: Hans de Goede , linux-fbdev@vger.kernel.org, linux-efi@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: linux-efi@vger.kernel.org T24gc3lzdGVtcyB3aGVyZSBmYmNvbiBpcyBjb25maWd1cmVkIGZvciBkZWZlcnJlZCBjb25zb2xl IHRha2VvdmVyLCB0aGUKaW50ZW5kIGlzIGZvciB0aGUgZnJhbWVidWZmZXIgdG8gc2hvdyB0aGUg Ym9vdCBncmFwaGljcyAoZS5nIGEgdmVuZG9yCmxvZ28pIHVudGlsIHNvbWUgbWVzc2FnZSAoZS5n LiBhbiBlcnJvcikgaXMgcHJpbnRlZCBvciBhIGdyYXBoaWNhbApzZXNzaW9uIHRha2VzIG92ZXIu CgpTb21lIGZpcm13YXJlIGhvd2V2ZXIgcmVsaWVzIG9uIHRoZSBPUyB0byBzaG93IHRoZSBib290 IGdyYXBoaWNzCihpbmRpY2F0ZWQgYnkgYmdydF90YWIuc3RhdHVzIGJlaW5nIDApIGFuZCB0aGUg Ym9vdCBncmFwaGljcyBtYXkgaGF2ZQpiZWVuIGRlc3Ryb3llZCBieSBlLmcuIHRoZSBncnViIGJv b3QgbWVudS4KClRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IHRvIGVmaWZiIHRvIHNob3cgdGhlIGJv b3QgZ3JhcGhpY3MgYW5kCmF1dG9tYXRpY2FsbHkgZW5hYmxlcyB0aGlzIHdoZW4gZmJjb24gaXMg Y29uZmlndXJlZCBmb3IgZGVmZXJyZWQKY29uc29sZSB0YWtlb3Zlci4KClNpZ25lZC1vZmYtYnk6 IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+Ci0tLQogZHJpdmVycy92aWRlby9m YmRldi9lZmlmYi5jIHwgMTQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDE0NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9mYmRldi9lZmlmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9lZmlmYi5jCmluZGV4IDQ2 YTQ0ODRlM2RhNy4uYjA0MWQ5MzZhNDM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L2VmaWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9lZmlmYi5jCkBAIC05LDE2ICs5LDM5 IEBACiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9lZmkuaD4K KyNpbmNsdWRlIDxsaW51eC9lZmktYmdydC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAj aW5jbHVkZSA8bGludXgvZmIuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wcmludGsuaD4KICNpbmNs dWRlIDxsaW51eC9zY3JlZW5faW5mby5oPgogI2luY2x1ZGUgPHZpZGVvL3ZnYS5oPgogI2luY2x1 ZGUgPGFzbS9lZmkuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3V0aWxzLmg+IC8qIEZvciBkcm1fZ2V0 X3BhbmVsX29yaWVudGF0aW9uX3F1aXJrICovCiAjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3Iu aD4gIC8qIEZvciBEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl8qICovCiAKK3N0cnVjdCBibXBf ZmlsZV9oZWFkZXIgeworCXUxNiBpZDsKKwl1MzIgZmlsZV9zaXplOworCXUzMiByZXNlcnZlZDsK Kwl1MzIgYml0bWFwX29mZnNldDsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCBibXBfZGliX2hlYWRl ciB7CisJdTMyIGRpYl9oZWFkZXJfc2l6ZTsKKwlzMzIgd2lkdGg7CisJczMyIGhlaWdodDsKKwl1 MTYgcGxhbmVzOworCXUxNiBicHA7CisJdTMyIGNvbXByZXNzaW9uOworCXUzMiBiaXRtYXBfc2l6 ZTsKKwl1MzIgaG9yel9yZXNvbHV0aW9uOworCXUzMiB2ZXJ0X3Jlc29sdXRpb247CisJdTMyIGNv bG9yc191c2VkOworCXUzMiBjb2xvcnNfaW1wb3J0YW50OworfSBfX3BhY2tlZDsKKwogc3RhdGlj IGJvb2wgcmVxdWVzdF9tZW1fc3VjY2VlZGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBub3djID0g ZmFsc2U7CiAKQEAgLTY2LDYgKzg5LDEyOCBAQCBzdGF0aWMgaW50IGVmaWZiX3NldGNvbHJlZyh1 bnNpZ25lZCByZWdubywgdW5zaWduZWQgcmVkLCB1bnNpZ25lZCBncmVlbiwKIAlyZXR1cm4gMDsK IH0KIAorLyoKKyAqIElmIGZiY29uIGRlZmZlcmVkIGNvbnNvbGUgdGFrZW92ZXIgaXMgY29uZmln dXJlZCwgdGhlIGludGVudCBpcyBmb3IgdGhlCisgKiBmcmFtZWJ1ZmZlciB0byBzaG93IHRoZSBi b290IGdyYXBoaWNzIChlLmcuIHZlbmRvciBsb2dvKSB1bnRpbCB0aGVyZSBpcyBzb21lCisgKiAo ZXJyb3IpIG1lc3NhZ2UgdG8gZGlzcGxheS4gQnV0IHRoZSBib290IGdyYXBoaWNzIG1heSBoYXZl IGJlZW4gZGVzdHJveWVkIGJ5CisgKiBlLmcuIG9wdGlvbiBST00gb3V0cHV0LCBkZXRlY3QgdGhp cyBhbmQgcmVzdG9yZSB0aGUgYm9vdCBncmFwaGljcy4KKyAqLworI2lmIGRlZmluZWQgQ09ORklH X0ZSQU1FQlVGRkVSX0NPTlNPTEVfREVGRVJSRURfVEFLRU9WRVIgJiYgXAorICAgIGRlZmluZWQg Q09ORklHX0FDUElfQkdSVAorc3RhdGljIHZvaWQgZWZpZmJfc2hvd19ib290X2dyYXBoaWNzKHN0 cnVjdCBmYl9pbmZvICppbmZvKQoreworCXUzMiAqZHN0LCBibXBfd2lkdGgsIGJtcF9oZWlnaHQs IGJtcF9waXRjaCwgc2NyZWVuX3BpdGNoOworCXN0cnVjdCBzY3JlZW5faW5mbyAqc2kgPSAmc2Ny ZWVuX2luZm87CisJc3RydWN0IGJtcF9maWxlX2hlYWRlciAqZmlsZV9oZWFkZXI7CisJc3RydWN0 IGJtcF9kaWJfaGVhZGVyICpkaWJfaGVhZGVyOworCXZvaWQgKmJncnRfaW1hZ2UgPSBOVUxMOwor CXU4ICpzcmMsIHIsIGcsIGI7CisJczMyIHgsIHk7CisKKwlpZiAoIWJncnRfdGFiLmltYWdlX2Fk ZHJlc3MpIHsKKwkJcHJfaW5mbygiZWZpZmI6IE5vIEJHUlQsIG5vdCBzaG93aW5nIGJvb3QgZ3Jh cGhpY3NcbiIpOworCQlyZXR1cm47CisJfQorCisJLyogQXZvaWQgZmxhc2hpbmcgdGhlIGxvZ28g aWYgd2UncmUgZ29pbmcgdG8gcHJpbnQgc3RkIHByb2JlIG1lc3NhZ2VzICovCisJaWYgKGNvbnNv bGVfbG9nbGV2ZWwgPiBDT05TT0xFX0xPR0xFVkVMX1FVSUVUKQorCQlyZXR1cm47CisKKwkvKgor CSAqIFdlIGRvIG5vdCBjaGVjayBiZ3J0X3RhYi5zdGF0dXMgaGVyZSBiZWNhdXNlIHRoaXMgc2Vl bXMgdG8gb25seQorCSAqIHJlZmxlY3QgaWYgdGhlIGZpcm13YXJlIGhhcyBzaG93biB0aGUgYm9v dCBncmFwaGljcyBhdCBhbGwsIGlmIGl0CisJICogbGF0ZXIgZ290IGRlc3Ryb3llZCBieSBzb21l dGhpbmcgc3RhdHVzIHdpbGwgc3RpbGwgYmUgMS4KKwkgKiBTaW5jZSB3ZSBkcmF3IHRoZSBleGFj dCBzYW1lIGdyYXBoaWMgYXQgdGhlIGV4YWN0IHNhbWUgcGxhY2UgdGhpcworCSAqIHdpbGwgbm90 IGxlYWQgdG8gYW55IHRlYXJpbmcgaWYgdGhlIGJvb3QgZ3JhcGhpYyBpcyBhbHJlYWR5IHRoZXJl LgorCSAqLworCisJaWYgKHNpLT5sZmJfZGVwdGggIT0gMzIpIHsKKwkJcHJfaW5mbygiZWZpZmI6 IG5vdCAzMiBiaXRzLCBub3Qgc2hvd2luZyBib290IGdyYXBoaWNzXG4iKTsKKwkJcmV0dXJuOwor CX0KKworCWJncnRfaW1hZ2UgPSBtZW1yZW1hcChiZ3J0X3RhYi5pbWFnZV9hZGRyZXNzLCBiZ3J0 X2ltYWdlX3NpemUsCisJCQkgICAgICBNRU1SRU1BUF9XQik7CisJaWYgKCFiZ3J0X2ltYWdlKSB7 CisJCXByX3dhcm4oImVmaWZiOiBJZ25vcmluZyBCR1JUOiBmYWlsZWQgdG8gbWFwIGltYWdlIG1l bW9yeVxuIik7CisJCXJldHVybjsKKwl9CisKKwlpZiAoYmdydF9pbWFnZV9zaXplIDwgKHNpemVv ZigqZmlsZV9oZWFkZXIpICsgc2l6ZW9mKCpkaWJfaGVhZGVyKSkpCisJCWdvdG8gZXJyb3I7CisK KwlmaWxlX2hlYWRlciA9IGJncnRfaW1hZ2U7CisJaWYgKGZpbGVfaGVhZGVyLT5pZCAhPSAweDRk NDIgfHwgZmlsZV9oZWFkZXItPnJlc2VydmVkICE9IDApCisJCWdvdG8gZXJyb3I7CisKKwlkaWJf aGVhZGVyID0gYmdydF9pbWFnZSArIHNpemVvZigqZmlsZV9oZWFkZXIpOworCWlmIChkaWJfaGVh ZGVyLT5kaWJfaGVhZGVyX3NpemUgIT0gNDAgfHwgZGliX2hlYWRlci0+d2lkdGggPCAwIHx8CisJ ICAgIGRpYl9oZWFkZXItPnBsYW5lcyAhPSAxIHx8IGRpYl9oZWFkZXItPmJwcCAhPSAyNCB8fAor CSAgICBkaWJfaGVhZGVyLT5jb21wcmVzc2lvbiAhPSAwKQorCQlnb3RvIGVycm9yOworCisJYm1w X3dpZHRoID0gZGliX2hlYWRlci0+d2lkdGg7CisJYm1wX2hlaWdodCA9IGFicyhkaWJfaGVhZGVy LT5oZWlnaHQpOworCWJtcF9waXRjaCA9IHJvdW5kX3VwKDMgKiBibXBfd2lkdGgsIDQpOworCXNj cmVlbl9waXRjaCA9IHNpLT5sZmJfbGluZWxlbmd0aDsKKworCWlmICgoZmlsZV9oZWFkZXItPmJp dG1hcF9vZmZzZXQgKyBibXBfcGl0Y2ggKiBibXBfaGVpZ2h0KSA+CisJCQkJYmdydF9pbWFnZV9z aXplKQorCQlnb3RvIGVycm9yOworCisJaWYgKChiZ3J0X3RhYi5pbWFnZV9vZmZzZXRfeCArIGJt cF93aWR0aCkgPiBzaS0+bGZiX3dpZHRoIHx8CisJICAgIChiZ3J0X3RhYi5pbWFnZV9vZmZzZXRf eSArIGJtcF9oZWlnaHQpID4gc2ktPmxmYl9oZWlnaHQpCisJCWdvdG8gZXJyb3I7CisKKwlwcl9p bmZvKCJlZmlmYjogc2hvd2luZyBib290IGdyYXBoaWNzXG4iKTsKKworCXNyYyA9IGJncnRfaW1h Z2UgKyBmaWxlX2hlYWRlci0+Yml0bWFwX29mZnNldDsKKwlibXBfcGl0Y2ggLT0gMyAqIGJtcF93 aWR0aDsKKwlpZiAoZGliX2hlYWRlci0+aGVpZ2h0IDwgMCkgeworCQlmb3IgKHkgPSAwOyB5IDwg Ym1wX2hlaWdodDsgeSsrKSB7CisJCQlkc3QgPSAodTMyICopKAorCQkJCWluZm8tPnNjcmVlbl9i YXNlICsKKwkJCQkoYmdydF90YWIuaW1hZ2Vfb2Zmc2V0X3kgKyB5KSAqIHNjcmVlbl9waXRjaCAr CisJCQkJYmdydF90YWIuaW1hZ2Vfb2Zmc2V0X3ggKiA0KTsKKwkJCWZvciAoeCA9IDA7IHggPCBi bXBfd2lkdGg7IHgrKykgeworCQkJCWIgPSAqc3JjKys7CisJCQkJZyA9ICpzcmMrKzsKKwkJCQly ID0gKnNyYysrOworCQkJCSpkc3QrKyA9IChyIDw8IHNpLT5yZWRfcG9zKSAgIHwKKwkJCQkJIChn IDw8IHNpLT5ncmVlbl9wb3MpIHwKKwkJCQkJIChiIDw8IHNpLT5ibHVlX3Bvcyk7CisJCQl9CisJ CQlzcmMgKz0gYm1wX3BpdGNoOworCQl9CisJfSBlbHNlIHsKKwkJZm9yICh5ID0gKGJtcF9oZWln aHQgLSAxKTsgeSA+PSAwOyB5LS0pIHsKKwkJCWRzdCA9ICh1MzIgKikoCisJCQkJaW5mby0+c2Ny ZWVuX2Jhc2UgKworCQkJCShiZ3J0X3RhYi5pbWFnZV9vZmZzZXRfeSArIHkpICogc2NyZWVuX3Bp dGNoICsKKwkJCQliZ3J0X3RhYi5pbWFnZV9vZmZzZXRfeCAqIDQpOworCQkJZm9yICh4ID0gMDsg eCA8IGJtcF93aWR0aDsgeCsrKSB7CisJCQkJYiA9ICpzcmMrKzsKKwkJCQlnID0gKnNyYysrOwor CQkJCXIgPSAqc3JjKys7CisJCQkJKmRzdCsrID0gKHIgPDwgc2ktPnJlZF9wb3MpICAgfAorCQkJ CQkgKGcgPDwgc2ktPmdyZWVuX3BvcykgfAorCQkJCQkgKGIgPDwgc2ktPmJsdWVfcG9zKTsKKwkJ CX0KKwkJCXNyYyArPSBibXBfcGl0Y2g7CisJCX0KKwl9CisKKwltZW11bm1hcChiZ3J0X2ltYWdl KTsKKwlyZXR1cm47CisKK2Vycm9yOgorCW1lbXVubWFwKGJncnRfaW1hZ2UpOworCXByX3dhcm4o ImVmaWZiOiBJZ25vcmluZyBCR1JUOiB1bmV4cGVjdGVkIG9yIGludmFsaWQgQk1QIGRhdGFcbiIp OworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBlZmlmYl9zaG93X2Jvb3RfZ3JhcGhpY3Mo c3RydWN0IGZiX2luZm8gKmluZm8pIHt9CisjZW5kaWYKKwogc3RhdGljIHZvaWQgZWZpZmJfZGVz dHJveShzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIHsKIAlpZiAoaW5mby0+c2NyZWVuX2Jhc2UpCkBA IC0yODMsNiArNDI4LDggQEAgc3RhdGljIGludCBlZmlmYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpkZXYpCiAJCWdvdG8gZXJyX3JlbGVhc2VfZmI7CiAJfQogCisJZWZpZmJfc2hvd19i b290X2dyYXBoaWNzKGluZm8pOworCiAJcHJfaW5mbygiZWZpZmI6IGZyYW1lYnVmZmVyIGF0IDB4 JWx4LCB1c2luZyAlZGssIHRvdGFsICVka1xuIiwKIAkgICAgICAgZWZpZmJfZml4LnNtZW1fc3Rh cnQsIHNpemVfcmVtYXAvMTAyNCwgc2l6ZV90b3RhbC8xMDI0KTsKIAlwcl9pbmZvKCJlZmlmYjog bW9kZSBpcyAlZHglZHglZCwgbGluZWxlbmd0aD0lZCwgcGFnZXM9JWRcbiIsCi0tIAoyLjE3LjEK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=