From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: [PATCH RFC 024/111] staging: etnaviv: fix multiple command buffer submission in etnaviv_buffer_queue() Date: Thu, 2 Apr 2015 17:29:26 +0200 Message-ID: <1427988653-754-25-git-send-email-l.stach@pengutronix.de> References: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by gabe.freedesktop.org (Postfix) with ESMTP id 4EE686EA3F for ; Thu, 2 Apr 2015 08:30:57 -0700 (PDT) In-Reply-To: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Russell King , kernel@pengutronix.de List-Id: dri-devel@lists.freedesktop.org RnJvbTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybS5saW51eC5vcmcudWs+CgpldG5hdml2 X2J1ZmZlcl9xdWV1ZSgpIGNvdWxkIG5vdCBoYW5kbGUgbXVsdGlwbGUgY29tbWFuZCBidWZmZXJz LiAgV2UKY2FuIGhhbmRsZSB0aGlzIHRyaXZpYWxseSBieSBhZGFwdGluZyB0aGUgZXhpc3Rpbmcg Y29kZSAtIHdlIHJlY29yZAp3aGVyZSB3ZSB3YW50IHRvIGxpbmsgdG8sIGFuZCB3YWxrIHRoZSBz dWJtaXR0ZWQgY29tbWFuZCBidWZmZXJzIGluCnJldmVyc2Ugb3JkZXIsIGFwcGVuZGluZyBhIExJ TksgY29tbWFuZCB0byB0aGUgcHJldmlvdXMgdGFyZ2V0LgoKVGhpcyBhbHNvIG1lYW5zIHRoYXQg d2UgY29udmVuaWVudGx5IGVuZCB1cCB3aXRoIHRoZSBhZGRyZXNzIGFuZCBzaXplCnRvIGxpbmsg dG8gd2hlbiBjaGFuZ2luZyB0aGUgcHJldmlvdXMgV0FJVCBjb21tYW5kLgoKU2lnbmVkLW9mZi1i eTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybS5saW51eC5vcmcudWs+Ci0tLQogZHJpdmVy cy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYyB8IDQ1ICsrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMjEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9i dWZmZXIuYyBiL2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfYnVmZmVyLmMKaW5kZXgg OTQ1YWYyMmRiM2YxLi5iZTJiMDJjZTlhNDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9l dG5hdml2L2V0bmF2aXZfYnVmZmVyLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRu YXZpdl9idWZmZXIuYwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgZXRuYXZpdl9idWZmZXJfcXVl dWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHVuc2lnbmVkIGludCBldmVudCwgc3RydWN0IGV0 CiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqYnVmZmVyID0gdG9fZXRuYXZpdl9ibyhncHUt PmJ1ZmZlcik7CiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqY21kOwogCXUzMiAqbHcgPSBi dWZmZXItPnZhZGRyICsgKChidWZmZXItPm9mZnNldCAtIDQpICogNCk7Ci0JdTMyIGJhY2s7CisJ dTMyIGJhY2ssIGxpbmtfdGFyZ2V0LCBsaW5rX3NpemU7CiAJdTMyIGk7CiAKIAlpZiAoZHJtX2Rl YnVnICYgRFJNX1VUX0RSSVZFUikKQEAgLTE1Niw2ICsxNTYsOCBAQCB2b2lkIGV0bmF2aXZfYnVm ZmVyX3F1ZXVlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1bnNpZ25lZCBpbnQgZXZlbnQsIHN0 cnVjdCBldAogCiAJLyogc2F2ZSBvZmZzZXQgYmFjayBpbnRvIG1haW4gYnVmZmVyICovCiAJYmFj ayA9IGJ1ZmZlci0+b2Zmc2V0OworCWxpbmtfdGFyZ2V0ID0gYnVmZmVyLT5wYWRkciArIGJ1ZmZl ci0+b2Zmc2V0ICogNDsKKwlsaW5rX3NpemUgPSA2OwogCiAJLyogdHJpZ2dlciBldmVudCAqLwog CUNNRF9MT0FEX1NUQVRFKGJ1ZmZlciwgVklWU19HTF9FVkVOVCwgVklWU19HTF9FVkVOVF9FVkVO VF9JRChldmVudCkgfCBWSVZTX0dMX0VWRU5UX0ZST01fUEUpOwpAQCAtMTY1LDI3ICsxNjcsMjgg QEAgdm9pZCBldG5hdml2X2J1ZmZlcl9xdWV1ZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdW5z aWduZWQgaW50IGV2ZW50LCBzdHJ1Y3QgZXQKIAlDTURfTElOSyhidWZmZXIsIDIsIGJ1ZmZlci0+ cGFkZHIgKyAoKGJ1ZmZlci0+b2Zmc2V0IC0gMSkgKiA0KSk7CiAKIAkvKiB1cGRhdGUgb2Zmc2V0 IGZvciBldmVyeSBjbWQgc3RyZWFtICovCi0JZm9yIChpID0gMDsgaSA8IHN1Ym1pdC0+bnJfY21k czsgaSsrKQotCQlzdWJtaXQtPmNtZFtpXS5vYmotPm9mZnNldCA9IHN1Ym1pdC0+Y21kW2ldLm9m ZnNldCArCi0JCQkJCSAgICAgc3VibWl0LT5jbWRbaV0uc2l6ZTsKKwlmb3IgKGkgPSBzdWJtaXQt Pm5yX2NtZHM7IGktLTsgKSB7CisJCWNtZCA9IHN1Ym1pdC0+Y21kW2ldLm9iajsKIAotCS8qIFRP RE86IGludGVyLWNvbm5lY3QgYWxsIGNtZCBidWZmZXJzICovCisJCWNtZC0+b2Zmc2V0ID0gc3Vi bWl0LT5jbWRbaV0ub2Zmc2V0ICsgc3VibWl0LT5jbWRbaV0uc2l6ZTsKIAotCS8qIGp1bXAgYmFj ayBmcm9tIGxhc3QgY21kIHRvIG1haW4gYnVmZmVyICovCi0JY21kID0gc3VibWl0LT5jbWRbc3Vi bWl0LT5ucl9jbWRzIC0gMV0ub2JqOwotCUNNRF9MSU5LKGNtZCwgNCwgYnVmZmVyLT5wYWRkciAr IChiYWNrICogNCkpOworCQlpZiAoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikKKwkJCXByX2lu Zm8oInN0cmVhbSBsaW5rIGZyb20gYnVmZmVyICV1IHRvIDB4JTA4eCBAIDB4JTA4eCAlcFxuIiwK KwkJCQlpLCBsaW5rX3RhcmdldCwKKwkJCQljbWQtPnBhZGRyICsgY21kLT5vZmZzZXQgKiA0LAor CQkJCWNtZC0+dmFkZHIgKyBjbWQtPm9mZnNldCAqIDQpOwogCi0JLyogdXBkYXRlIHRoZSBzaXpl ICovCi0JZm9yIChpID0gMDsgaSA8IHN1Ym1pdC0+bnJfY21kczsgaSsrKQotCQlzdWJtaXQtPmNt ZFtpXS5zaXplID0gc3VibWl0LT5jbWRbaV0ub2JqLT5vZmZzZXQgLQotCQkJCSAgICAgIHN1Ym1p dC0+Y21kW2ldLm9mZnNldDsKKwkJLyoganVtcCBiYWNrIGZyb20gbGFzdCBjbWQgdG8gbWFpbiBi dWZmZXIgKi8KKwkJQ01EX0xJTksoY21kLCBsaW5rX3NpemUsIGxpbmtfdGFyZ2V0KTsKIAotCWlm IChkcm1fZGVidWcgJiBEUk1fVVRfRFJJVkVSKSB7Ci0JCXByX2luZm8oInN0cmVhbSBsaW5rIEAg MHglMDh4XG4iLAotCQkJY21kLT5wYWRkciArICgoY21kLT5vZmZzZXQgLSAxKSAqIDQpKTsKLQkJ cHJfaW5mbygic3RyZWFtIGxpbmsgQCAlcFxuIiwKLQkJCWNtZC0+dmFkZHIgKyAoKGNtZC0+b2Zm c2V0IC0gMSkgKiA0KSk7CisJCS8qIHVwZGF0ZSB0aGUgc2l6ZSAqLworCQlzdWJtaXQtPmNtZFtp XS5zaXplID0gY21kLT5vZmZzZXQgLSBzdWJtaXQtPmNtZFtpXS5vZmZzZXQ7CisKKwkJbGlua190 YXJnZXQgPSBjbWQtPnBhZGRyICsgc3VibWl0LT5jbWRbaV0ub2Zmc2V0ICogNDsKKwkJbGlua19z aXplID0gc3VibWl0LT5jbWRbaV0uc2l6ZSAqIDI7CisJfQogCisJaWYgKGRybV9kZWJ1ZyAmIERS TV9VVF9EUklWRVIpIHsKIAkJZm9yIChpID0gMDsgaSA8IHN1Ym1pdC0+bnJfY21kczsgaSsrKSB7 CiAJCQlzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpvYmogPSBzdWJtaXQtPmNtZFtpXS5vYmo7 CiAKQEAgLTE5NSwxNiArMTk4LDE2IEBAIHZvaWQgZXRuYXZpdl9idWZmZXJfcXVldWUoc3RydWN0 IGV0bmF2aXZfZ3B1ICpncHUsIHVuc2lnbmVkIGludCBldmVudCwgc3RydWN0IGV0CiAKIAkJcHJf aW5mbygibGluayBvcDogJXBcbiIsIGx3KTsKIAkJcHJfaW5mbygibGluayBhZGRyOiAlcFxuIiwg bHcgKyAxKTsKLQkJcHJfaW5mbygiYWRkcjogMHglMDh4XG4iLCBzdWJtaXQtPmNtZFswXS5vYmot PnBhZGRyKTsKKwkJcHJfaW5mbygiYWRkcjogMHglMDh4XG4iLCBsaW5rX3RhcmdldCk7CiAJCXBy X2luZm8oImJhY2s6IDB4JTA4eFxuIiwgYnVmZmVyLT5wYWRkciArIChiYWNrICogNCkpOwogCQlw cl9pbmZvKCJldmVudDogJWRcbiIsIGV2ZW50KTsKIAl9CiAKIAkvKiBDaGFuZ2UgV0FJVCBpbnRv IGEgTElOSyBjb21tYW5kOyB3cml0ZSB0aGUgYWRkcmVzcyBmaXJzdC4gKi8KLQlpID0gVklWX0ZF X0xJTktfSEVBREVSX09QX0xJTksgfCBWSVZfRkVfTElOS19IRUFERVJfUFJFRkVUQ0goc3VibWl0 LT5jbWRbMF0uc2l6ZSAqIDIpOwotCSoobHcgKyAxKSA9IHN1Ym1pdC0+Y21kWzBdLm9iai0+cGFk ZHIgKyBzdWJtaXQtPmNtZFswXS5vZmZzZXQgKiA0OworCSoobHcgKyAxKSA9IGxpbmtfdGFyZ2V0 OwogCW1iKCk7Ci0JKihsdyk9IGk7CisJKihsdykgPSBWSVZfRkVfTElOS19IRUFERVJfT1BfTElO SyB8CisJCVZJVl9GRV9MSU5LX0hFQURFUl9QUkVGRVRDSChsaW5rX3NpemUpOwogCW1iKCk7CiAK IAlpZiAoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikKLS0gCjIuMS40CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=