From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH v3 2/3] drm: plumb attaching dev thru to prime_pin/unpin Date: Tue, 16 Jul 2019 14:37:41 -0700 Message-ID: <20190716213746.4670-2-robdclark@gmail.com> References: <20190716213746.4670-1-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190716213746.4670-1-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: Eric Biggers , Maxime Ripard , nouveau@lists.freedesktop.org, Gerd Hoffmann , Emil Velikov , Rob Clark , "David (ChunMing) Zhou" , amd-gfx@lists.freedesktop.org, David Airlie , Ben Skeggs , Russell King , Dave Airlie , Deepak Sharma , linux-arm-msm@vger.kernel.org, Intel Graphics Development , etnaviv@lists.freedesktop.org, spice-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Thomas Zimmermann , Alex Deucher , freedreno@lists.freedesktop.org, =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: amd-gfx.lists.freedesktop.org RnJvbTogUm9iIENsYXJrIDxyb2JkY2xhcmtAY2hyb21pdW0ub3JnPgoKTmVlZGVkIGluIHRoZSBm b2xsb3dpbmcgcGF0Y2ggZm9yIGNhY2hlIG9wZXJhdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBSb2Ig Q2xhcmsgPHJvYmRjbGFya0BjaHJvbWl1bS5vcmc+Ci0tLQp2MzogcmViYXNlZCBvbiBkcm0tdGlw CgogZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYyAgICAgICAgICAgICAgICAgICB8IDggKysrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCAgICAgICAgICAgICAgfCA0ICsrLS0K IGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYyAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIGRy aXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1lLmMgfCA0ICsrLS0KIGRyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oICAgICAgICAgICAgICAgfCA0ICsrLS0KIGRyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2dlbV9wcmltZS5jICAgICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmggICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfcHJpbWUuYyAgICAgfCA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX3ByaW1lLmMgICAgICAgICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX3ByaW1lLmMgICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS92Z2VtL3Zn ZW1fZHJ2LmMgICAgICAgICAgICAgfCA0ICsrLS0KIGluY2x1ZGUvZHJtL2RybV9kcnYuaCAgICAg ICAgICAgICAgICAgICAgICAgfCA1ICsrLS0tCiAxMiBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRp b25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYwppbmRleCA4NDY4OWNjYWU4ODUuLmFm MjU0OWM0NTAyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jCkBAIC0xMjE1LDIyICsxMjE1LDIyIEBAIHZvaWQgZHJt X2dlbV9wcmludF9pbmZvKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgdW5zaWduZWQgaW50IGluZGVu dCwKIAkJb2JqLT5kZXYtPmRyaXZlci0+Z2VtX3ByaW50X2luZm8ocCwgaW5kZW50LCBvYmopOwog fQogCi1pbnQgZHJtX2dlbV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCitpbnQgZHJt X2dlbV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBkZXZpY2UgKmRldikK IHsKIAlpZiAob2JqLT5mdW5jcyAmJiBvYmotPmZ1bmNzLT5waW4pCiAJCXJldHVybiBvYmotPmZ1 bmNzLT5waW4ob2JqKTsKIAllbHNlIGlmIChvYmotPmRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfcGlu KQotCQlyZXR1cm4gb2JqLT5kZXYtPmRyaXZlci0+Z2VtX3ByaW1lX3BpbihvYmopOworCQlyZXR1 cm4gb2JqLT5kZXYtPmRyaXZlci0+Z2VtX3ByaW1lX3BpbihvYmosIGRldik7CiAJZWxzZQogCQly ZXR1cm4gMDsKIH0KIAotdm9pZCBkcm1fZ2VtX3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqKQordm9pZCBkcm1fZ2VtX3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1 Y3QgZGV2aWNlICpkZXYpCiB7CiAJaWYgKG9iai0+ZnVuY3MgJiYgb2JqLT5mdW5jcy0+dW5waW4p CiAJCW9iai0+ZnVuY3MtPnVucGluKG9iaik7CiAJZWxzZSBpZiAob2JqLT5kZXYtPmRyaXZlci0+ Z2VtX3ByaW1lX3VucGluKQotCQlvYmotPmRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfdW5waW4ob2Jq KTsKKwkJb2JqLT5kZXYtPmRyaXZlci0+Z2VtX3ByaW1lX3VucGluKG9iaiwgZGV2KTsKIH0KIAog dm9pZCAqZHJtX2dlbV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9p bnRlcm5hbC5oCmluZGV4IDUxYTIwNTVjOGYxOC4uZTY0MDkwMzczZTNhIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9p bnRlcm5hbC5oCkBAIC0xMzMsOCArMTMzLDggQEAgdm9pZCBkcm1fZ2VtX3JlbGVhc2Uoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwogdm9pZCBk cm1fZ2VtX3ByaW50X2luZm8oc3RydWN0IGRybV9wcmludGVyICpwLCB1bnNpZ25lZCBpbnQgaW5k ZW50LAogCQkJY29uc3Qgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwogCi1pbnQgZHJtX2dl bV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwotdm9pZCBkcm1fZ2VtX3VucGluKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKK2ludCBkcm1fZ2VtX3BpbihzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaiwgc3RydWN0IGRldmljZSAqZGV2KTsKK3ZvaWQgZHJtX2dlbV91bnBpbihz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IGRldmljZSAqZGV2KTsKIHZvaWQgKmRy bV9nZW1fdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiB2b2lkIGRybV9nZW1fdnVu bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcik7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJp bWUuYwppbmRleCAxODlkOTgwNDAyYWQuLjEyNjg2MDQzMmZmOSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9wcmltZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwpA QCAtNTc1LDcgKzU3NSw3IEBAIGludCBkcm1fZ2VtX21hcF9hdHRhY2goc3RydWN0IGRtYV9idWYg KmRtYV9idWYsCiB7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmLT5wcml2 OwogCi0JcmV0dXJuIGRybV9nZW1fcGluKG9iaik7CisJcmV0dXJuIGRybV9nZW1fcGluKG9iaiwg YXR0YWNoLT5kZXYpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX21hcF9hdHRhY2gpOwogCkBA IC01OTMsNyArNTkzLDcgQEAgdm9pZCBkcm1fZ2VtX21hcF9kZXRhY2goc3RydWN0IGRtYV9idWYg KmRtYV9idWYsCiB7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmLT5wcml2 OwogCi0JZHJtX2dlbV91bnBpbihvYmopOworCWRybV9nZW1fdW5waW4ob2JqLCBhdHRhY2gtPmRl dik7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fbWFwX2RldGFjaCk7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1lLmMgYi9kcml2ZXJzL2dw dS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9wcmltZS5jCmluZGV4IGEwNTI5MmU4ZWQ2Zi4uNjdl NjlhNWYwMGYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dl bV9wcmltZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1l LmMKQEAgLTQzLDcgKzQzLDcgQEAgaW50IGV0bmF2aXZfZ2VtX3ByaW1lX21tYXAoc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmosCiAJcmV0dXJuIGV0bmF2aXZfb2JqLT5vcHMtPm1tYXAoZXRuYXZp dl9vYmosIHZtYSk7CiB9CiAKLWludCBldG5hdml2X2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmopCitpbnQgZXRuYXZpdl9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJaWYgKCFvYmotPmltcG9ydF9h dHRhY2gpIHsKIAkJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmogPSB0b19l dG5hdml2X2JvKG9iaik7CkBAIC01NSw3ICs1NSw3IEBAIGludCBldG5hdml2X2dlbV9wcmltZV9w aW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgZXRu YXZpdl9nZW1fcHJpbWVfdW5waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCit2b2lkIGV0 bmF2aXZfZ2VtX3ByaW1lX3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3Qg ZGV2aWNlICpkZXYpCiB7CiAJaWYgKCFvYmotPmltcG9ydF9hdHRhY2gpIHsKIAkJc3RydWN0IGV0 bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmogPSB0b19ldG5hdml2X2JvKG9iaik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2Rydi5oCmluZGV4IGVlN2I1MTJkYzE1OC4uMGVlYTY4NjE4YjY4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9kcnYuaApAQCAtMjg4LDggKzI4OCw4IEBAIHZvaWQgbXNtX2dlbV9wcmltZV92dW5tYXAo c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKIGludCBtc21fZ2VtX3By aW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hKTsKIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqbXNtX2dlbV9wcmltZV9pbXBvcnRfc2df dGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJc3RydWN0IGRtYV9idWZfYXR0YWNobWVu dCAqYXR0YWNoLCBzdHJ1Y3Qgc2dfdGFibGUgKnNnKTsKLWludCBtc21fZ2VtX3ByaW1lX3Bpbihz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Ci12b2lkIG1zbV9nZW1fcHJpbWVfdW5waW4oc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOworaW50IG1zbV9nZW1fcHJpbWVfcGluKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZGV2aWNlICpkZXYpOwordm9pZCBtc21fZ2VtX3By aW1lX3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZGV2aWNlICpkZXYp Owogdm9pZCAqbXNtX2dlbV9nZXRfdmFkZHIoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwog dm9pZCAqbXNtX2dlbV9nZXRfdmFkZHJfYWN0aXZlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq KTsKIHZvaWQgbXNtX2dlbV9wdXRfdmFkZHIoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9nZW1fcHJpbWUuYwppbmRleCA1ZDY0ZTA2NzFmN2EuLmNjMDdiZjk0 ZTIwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMKQEAgLTQ3LDE0ICs0NywxNCBA QCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm1zbV9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIG1zbV9nZW1faW1wb3J0KGRldiwgYXR0YWNo LT5kbWFidWYsIHNnKTsKIH0KIAotaW50IG1zbV9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqKQoraW50IG1zbV9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJaWYgKCFvYmotPmltcG9ydF9hdHRhY2gp CiAJCW1zbV9nZW1fZ2V0X3BhZ2VzKG9iaik7CiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgbXNtX2dl bV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKK3ZvaWQgbXNtX2dlbV9w cmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IGRldmljZSAqZGV2 KQogewogCWlmICghb2JqLT5pbXBvcnRfYXR0YWNoKQogCQltc21fZ2VtX3B1dF9wYWdlcyhvYmop OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0uaCBiL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmgKaW5kZXggZmUzOTk5OGY2NWNjLi45 MWRjZjg5MTM4ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf Z2VtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0uaApAQCAtMzIs OSArMzIsOSBAQCBleHRlcm4gaW50IG5vdXZlYXVfZ2VtX2lvY3RsX2NwdV9maW5pKHN0cnVjdCBk cm1fZGV2aWNlICosIHZvaWQgKiwKIGV4dGVybiBpbnQgbm91dmVhdV9nZW1faW9jdGxfaW5mbyhz dHJ1Y3QgZHJtX2RldmljZSAqLCB2b2lkICosCiAJCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKik7CiAK LWV4dGVybiBpbnQgbm91dmVhdV9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq KTsKK2V4dGVybiBpbnQgbm91dmVhdV9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqLCBzdHJ1Y3QgZGV2aWNlICopOwogc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqbm91dmVh dV9nZW1fcHJpbWVfcmVzX29iaihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKik7Ci1leHRlcm4gdm9p ZCBub3V2ZWF1X2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKik7CitleHRl cm4gdm9pZCBub3V2ZWF1X2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKiwg c3RydWN0IGRldmljZSAqKTsKIGV4dGVybiBzdHJ1Y3Qgc2dfdGFibGUgKm5vdXZlYXVfZ2VtX3By aW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKik7CiBleHRlcm4gc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpub3V2ZWF1X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoCiAJc3Ry dWN0IGRybV9kZXZpY2UgKiwgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqLCBzdHJ1Y3Qgc2df dGFibGUgKik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3By aW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ByaW1lLmMKaW5kZXggMWZl ZmM5M2FmMWQ3Li5kZWMyZDVlMzdiMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfcHJpbWUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X3ByaW1lLmMKQEAgLTg4LDcgKzg4LDcgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpub3V2ZWF1 X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1 cm4gJm52Ym8tPmdlbTsKIH0KIAotaW50IG5vdXZlYXVfZ2VtX3ByaW1lX3BpbihzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaikKK2ludCBub3V2ZWF1X2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9i byAqbnZibyA9IG5vdXZlYXVfZ2VtX29iamVjdChvYmopOwogCWludCByZXQ7CkBAIC0xMDEsNyAr MTAxLDcgQEAgaW50IG5vdXZlYXVfZ2VtX3ByaW1lX3BpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaikKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBub3V2ZWF1X2dlbV9wcmltZV91bnBpbihzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKK3ZvaWQgbm91dmVhdV9nZW1fcHJpbWVfdW5waW4oc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3Qg bm91dmVhdV9ibyAqbnZibyA9IG5vdXZlYXVfZ2VtX29iamVjdChvYmopOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9x eGxfcHJpbWUuYwppbmRleCA3ZDM4MTZmY2E1YTguLjIxZTliNDRlYjJlNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcHJpbWUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhs L3F4bF9wcmltZS5jCkBAIC0yOCwxNCArMjgsMTQgQEAKIC8qIEVtcHR5IEltcGxlbWVudGF0aW9u cyBhcyB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBvdGhlciBkcml2ZXIgZm9yIGEgdmlydHVhbAog ICogZGV2aWNlIHRoYXQgbWlnaHQgc2hhcmUgYnVmZmVycyB3aXRoIHF4bCAqLwogCi1pbnQgcXhs X2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCitpbnQgcXhsX2dlbV9w cmltZV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBkZXZpY2UgKmRldikK IHsKIAlzdHJ1Y3QgcXhsX2JvICpibyA9IGdlbV90b19xeGxfYm8ob2JqKTsKIAogCXJldHVybiBx eGxfYm9fcGluKGJvKTsKIH0KIAotdm9pZCBxeGxfZ2VtX3ByaW1lX3VucGluKHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqKQordm9pZCBxeGxfZ2VtX3ByaW1lX3VucGluKHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHF4bF9ibyAqYm8g PSBnZW1fdG9fcXhsX2JvKG9iaik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wcmltZS5j CmluZGV4IGRlYWZmY2U1MGEyZS4uZjM0NDJiZDg2MGY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9wcmltZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX3ByaW1lLmMKQEAgLTgzLDcgKzgzLDcgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpy YWRlb25fZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CXJldHVybiAmYm8tPmdlbV9iYXNlOwogfQogCi1pbnQgcmFkZW9uX2dlbV9wcmltZV9waW4oc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCitpbnQgcmFkZW9uX2dlbV9wcmltZV9waW4oc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgcmFk ZW9uX2JvICpibyA9IGdlbV90b19yYWRlb25fYm8ob2JqKTsKIAlpbnQgcmV0ID0gMDsKQEAgLTEw MSw3ICsxMDEsNyBAQCBpbnQgcmFkZW9uX2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmopCiAJcmV0dXJuIHJldDsKIH0KIAotdm9pZCByYWRlb25fZ2VtX3ByaW1lX3VucGlu KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQordm9pZCByYWRlb25fZ2VtX3ByaW1lX3VucGlu KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IHJhZGVvbl9ibyAqYm8gPSBnZW1fdG9fcmFkZW9uX2JvKG9iaik7CiAJaW50IHJldCA9IDA7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL3ZnZW0vdmdlbV9kcnYuYwppbmRleCA3NmQ5NWI1ZTI4OWMuLmU3ZDEyZTkzYjFmMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vdmdlbS92Z2VtX2Rydi5jCkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIHZvaWQg dmdlbV91bnBpbl9wYWdlcyhzdHJ1Y3QgZHJtX3ZnZW1fZ2VtX29iamVjdCAqYm8pCiAJbXV0ZXhf dW5sb2NrKCZiby0+cGFnZXNfbG9jayk7CiB9CiAKLXN0YXRpYyBpbnQgdmdlbV9wcmltZV9waW4o c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgaW50IHZnZW1fcHJpbWVfcGluKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0 IGRybV92Z2VtX2dlbV9vYmplY3QgKmJvID0gdG9fdmdlbV9ibyhvYmopOwogCWxvbmcgbl9wYWdl cyA9IG9iai0+c2l6ZSA+PiBQQUdFX1NISUZUOwpAQCAtMzI1LDcgKzMyNSw3IEBAIHN0YXRpYyBp bnQgdmdlbV9wcmltZV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyB2b2lkIHZnZW1fcHJpbWVfdW5waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopCitzdGF0aWMgdm9pZCB2Z2VtX3ByaW1lX3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV92Z2VtX2dlbV9vYmpl Y3QgKmJvID0gdG9fdmdlbV9ibyhvYmopOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f ZHJ2LmggYi9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKaW5kZXggYjMzZjJjZWUyMDk5Li4yYjNkNzli ZGU2ZTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcnYuaAorKysgYi9pbmNsdWRlL2Ry bS9kcm1fZHJ2LmgKQEAgLTU5MiwyMCArNTkyLDE5IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKIAkg Ki8KIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKiAoKmdlbV9wcmltZV9pbXBvcnQpKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCQkJc3RydWN0IGRtYV9idWYgKmRtYV9idWYpOwotCiAJLyoqCiAJ ICogQGdlbV9wcmltZV9waW46CiAJICoKIAkgKiBEZXByZWNhdGVkIGhvb2sgaW4gZmF2b3VyIG9m ICZkcm1fZ2VtX29iamVjdF9mdW5jcy5waW4uCiAJICovCi0JaW50ICgqZ2VtX3ByaW1lX3Bpbiko c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOworCWludCAoKmdlbV9wcmltZV9waW4pKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZGV2aWNlICpkZXYpOwogCiAJLyoqCiAJICog QGdlbV9wcmltZV91bnBpbjoKIAkgKgogCSAqIERlcHJlY2F0ZWQgaG9vayBpbiBmYXZvdXIgb2Yg JmRybV9nZW1fb2JqZWN0X2Z1bmNzLnVucGluLgogCSAqLwotCXZvaWQgKCpnZW1fcHJpbWVfdW5w aW4pKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKKwl2b2lkICgqZ2VtX3ByaW1lX3VucGlu KShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IGRldmljZSAqZGV2KTsKIAogCiAJ LyoqCi0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B2C33C76192 for ; Tue, 16 Jul 2019 21:42:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 72303206C2 for ; Tue, 16 Jul 2019 21:42:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kN3NUoT1" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728699AbfGPVml (ORCPT ); Tue, 16 Jul 2019 17:42:41 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:42690 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726794AbfGPVml (ORCPT ); Tue, 16 Jul 2019 17:42:41 -0400 Received: by mail-pg1-f193.google.com with SMTP id t132so10067080pgb.9; Tue, 16 Jul 2019 14:42:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+natRHZ6L0BuGx+W5tA7MTs43222M5gkM31utxxbCOU=; b=kN3NUoT12UjsD2xyZpN8e4MYUo58H5FkPsDaw8dzZE/ejR28e9veipDZu1ue9cFGNJ C9ZB5Ngpuq+di+buJJ/Y47TVf7fsGqHj2vxwz+U3KoDhMp3U07imodBdSnwCXjDsRyKy TVLJsb4D6EpfgBYl20dhWfgQiN4IuioGmF3wHHQZJOPVoT3bwtxGrlqOj6NTIzGPXb3O p3mszmW7RuMgdxXOfE/D3ASRGoZH71QWpyjfEHflYR5LADDR5ggU+8ZzdiCMyypEoFPP vBTopgbzZ2VpMO56qkbzYjBr59Ev6sZ/AffvJvMX6yIH49JK9TZh2AAKuy/8oJCspGrY Yn5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+natRHZ6L0BuGx+W5tA7MTs43222M5gkM31utxxbCOU=; b=Jm+2khT6+MRT1f+IOM2uUUjd0SWyZRpQG4TvQUJemDudJsRl2Dqg8kh+gp+Hdn6HGj 2H1unpYUmnr7cb8qZoK3h9GaOMxkpSikTt9sr+onjDljL2zRzk91yCXJ0+p3q2qdCPr5 X+8r1NB4Ov1utVZ8mCwoULZwZf5ulgDi0RKaedJ1p1B7sr7oiVslkfzsURBACyEGhA9u 4NJq9ABBKC3SJ1DSX7jHpHE/kugc1zjCYKrS47h2qbcTqNJkUKbOarafvnMXnF7i88wR Tqr1/WTFv1nrghTabx8cgjntKtRwUcHgoqAfq3OXxtVmK0tI3bgG2d1LWW4VD/LTUoNS L78g== X-Gm-Message-State: APjAAAUSlwznX3RJW4F2I26pgNWbvGVmgXUdoxck31hKcFxQ5if0Y8c0 GNCMbFwHJOr208oeRXdxagE= X-Google-Smtp-Source: APXvYqzfz/S5WZIpSAuwm3Dywv2EHXSbMUU2QF7mDGE4cV/Oh7IH2/0lpwu3uOVqyg5xVISogAbcDA== X-Received: by 2002:a63:1658:: with SMTP id 24mr37706389pgw.167.1563313360593; Tue, 16 Jul 2019 14:42:40 -0700 (PDT) Received: from localhost ([100.118.89.203]) by smtp.gmail.com with ESMTPSA id q22sm18809095pgh.49.2019.07.16.14.42.39 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 16 Jul 2019 14:42:39 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: Chris Wilson , Intel Graphics Development , Rob Clark , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Daniel Vetter , Lucas Stach , Russell King , Christian Gmeiner , Rob Clark , Ben Skeggs , Dave Airlie , Gerd Hoffmann , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , "David (ChunMing) Zhou" , Emil Velikov , Eric Anholt , Thomas Zimmermann , Imre Deak , Deepak Sharma , Eric Biggers , linux-kernel@vger.kernel.org, etnaviv@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, nouveau@lists.freedesktop.org, virtualization@lists.linux-foundation.org, spice-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org Subject: [PATCH v3 2/3] drm: plumb attaching dev thru to prime_pin/unpin Date: Tue, 16 Jul 2019 14:37:41 -0700 Message-Id: <20190716213746.4670-2-robdclark@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190716213746.4670-1-robdclark@gmail.com> References: <20190716213746.4670-1-robdclark@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org From: Rob Clark Needed in the following patch for cache operations. Signed-off-by: Rob Clark --- v3: rebased on drm-tip drivers/gpu/drm/drm_gem.c | 8 ++++---- drivers/gpu/drm/drm_internal.h | 4 ++-- drivers/gpu/drm/drm_prime.c | 4 ++-- drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 4 ++-- drivers/gpu/drm/msm/msm_drv.h | 4 ++-- drivers/gpu/drm/msm/msm_gem_prime.c | 4 ++-- drivers/gpu/drm/nouveau/nouveau_gem.h | 4 ++-- drivers/gpu/drm/nouveau/nouveau_prime.c | 4 ++-- drivers/gpu/drm/qxl/qxl_prime.c | 4 ++-- drivers/gpu/drm/radeon/radeon_prime.c | 4 ++-- drivers/gpu/drm/vgem/vgem_drv.c | 4 ++-- include/drm/drm_drv.h | 5 ++--- 12 files changed, 26 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index 84689ccae885..af2549c45027 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -1215,22 +1215,22 @@ void drm_gem_print_info(struct drm_printer *p, unsigned int indent, obj->dev->driver->gem_print_info(p, indent, obj); } -int drm_gem_pin(struct drm_gem_object *obj) +int drm_gem_pin(struct drm_gem_object *obj, struct device *dev) { if (obj->funcs && obj->funcs->pin) return obj->funcs->pin(obj); else if (obj->dev->driver->gem_prime_pin) - return obj->dev->driver->gem_prime_pin(obj); + return obj->dev->driver->gem_prime_pin(obj, dev); else return 0; } -void drm_gem_unpin(struct drm_gem_object *obj) +void drm_gem_unpin(struct drm_gem_object *obj, struct device *dev) { if (obj->funcs && obj->funcs->unpin) obj->funcs->unpin(obj); else if (obj->dev->driver->gem_prime_unpin) - obj->dev->driver->gem_prime_unpin(obj); + obj->dev->driver->gem_prime_unpin(obj, dev); } void *drm_gem_vmap(struct drm_gem_object *obj) diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h index 51a2055c8f18..e64090373e3a 100644 --- a/drivers/gpu/drm/drm_internal.h +++ b/drivers/gpu/drm/drm_internal.h @@ -133,8 +133,8 @@ void drm_gem_release(struct drm_device *dev, struct drm_file *file_private); void drm_gem_print_info(struct drm_printer *p, unsigned int indent, const struct drm_gem_object *obj); -int drm_gem_pin(struct drm_gem_object *obj); -void drm_gem_unpin(struct drm_gem_object *obj); +int drm_gem_pin(struct drm_gem_object *obj, struct device *dev); +void drm_gem_unpin(struct drm_gem_object *obj, struct device *dev); void *drm_gem_vmap(struct drm_gem_object *obj); void drm_gem_vunmap(struct drm_gem_object *obj, void *vaddr); diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c index 189d980402ad..126860432ff9 100644 --- a/drivers/gpu/drm/drm_prime.c +++ b/drivers/gpu/drm/drm_prime.c @@ -575,7 +575,7 @@ int drm_gem_map_attach(struct dma_buf *dma_buf, { struct drm_gem_object *obj = dma_buf->priv; - return drm_gem_pin(obj); + return drm_gem_pin(obj, attach->dev); } EXPORT_SYMBOL(drm_gem_map_attach); @@ -593,7 +593,7 @@ void drm_gem_map_detach(struct dma_buf *dma_buf, { struct drm_gem_object *obj = dma_buf->priv; - drm_gem_unpin(obj); + drm_gem_unpin(obj, attach->dev); } EXPORT_SYMBOL(drm_gem_map_detach); diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c index a05292e8ed6f..67e69a5f00f2 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c @@ -43,7 +43,7 @@ int etnaviv_gem_prime_mmap(struct drm_gem_object *obj, return etnaviv_obj->ops->mmap(etnaviv_obj, vma); } -int etnaviv_gem_prime_pin(struct drm_gem_object *obj) +int etnaviv_gem_prime_pin(struct drm_gem_object *obj, struct device *dev) { if (!obj->import_attach) { struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); @@ -55,7 +55,7 @@ int etnaviv_gem_prime_pin(struct drm_gem_object *obj) return 0; } -void etnaviv_gem_prime_unpin(struct drm_gem_object *obj) +void etnaviv_gem_prime_unpin(struct drm_gem_object *obj, struct device *dev) { if (!obj->import_attach) { struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index ee7b512dc158..0eea68618b68 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -288,8 +288,8 @@ void msm_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr); int msm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); struct drm_gem_object *msm_gem_prime_import_sg_table(struct drm_device *dev, struct dma_buf_attachment *attach, struct sg_table *sg); -int msm_gem_prime_pin(struct drm_gem_object *obj); -void msm_gem_prime_unpin(struct drm_gem_object *obj); +int msm_gem_prime_pin(struct drm_gem_object *obj, struct device *dev); +void msm_gem_prime_unpin(struct drm_gem_object *obj, struct device *dev); void *msm_gem_get_vaddr(struct drm_gem_object *obj); void *msm_gem_get_vaddr_active(struct drm_gem_object *obj); void msm_gem_put_vaddr(struct drm_gem_object *obj); diff --git a/drivers/gpu/drm/msm/msm_gem_prime.c b/drivers/gpu/drm/msm/msm_gem_prime.c index 5d64e0671f7a..cc07bf94e206 100644 --- a/drivers/gpu/drm/msm/msm_gem_prime.c +++ b/drivers/gpu/drm/msm/msm_gem_prime.c @@ -47,14 +47,14 @@ struct drm_gem_object *msm_gem_prime_import_sg_table(struct drm_device *dev, return msm_gem_import(dev, attach->dmabuf, sg); } -int msm_gem_prime_pin(struct drm_gem_object *obj) +int msm_gem_prime_pin(struct drm_gem_object *obj, struct device *dev) { if (!obj->import_attach) msm_gem_get_pages(obj); return 0; } -void msm_gem_prime_unpin(struct drm_gem_object *obj) +void msm_gem_prime_unpin(struct drm_gem_object *obj, struct device *dev) { if (!obj->import_attach) msm_gem_put_pages(obj); diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.h b/drivers/gpu/drm/nouveau/nouveau_gem.h index fe39998f65cc..91dcf89138f1 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.h +++ b/drivers/gpu/drm/nouveau/nouveau_gem.h @@ -32,9 +32,9 @@ extern int nouveau_gem_ioctl_cpu_fini(struct drm_device *, void *, extern int nouveau_gem_ioctl_info(struct drm_device *, void *, struct drm_file *); -extern int nouveau_gem_prime_pin(struct drm_gem_object *); +extern int nouveau_gem_prime_pin(struct drm_gem_object *, struct device *); struct reservation_object *nouveau_gem_prime_res_obj(struct drm_gem_object *); -extern void nouveau_gem_prime_unpin(struct drm_gem_object *); +extern void nouveau_gem_prime_unpin(struct drm_gem_object *, struct device *); extern struct sg_table *nouveau_gem_prime_get_sg_table(struct drm_gem_object *); extern struct drm_gem_object *nouveau_gem_prime_import_sg_table( struct drm_device *, struct dma_buf_attachment *, struct sg_table *); diff --git a/drivers/gpu/drm/nouveau/nouveau_prime.c b/drivers/gpu/drm/nouveau/nouveau_prime.c index 1fefc93af1d7..dec2d5e37b34 100644 --- a/drivers/gpu/drm/nouveau/nouveau_prime.c +++ b/drivers/gpu/drm/nouveau/nouveau_prime.c @@ -88,7 +88,7 @@ struct drm_gem_object *nouveau_gem_prime_import_sg_table(struct drm_device *dev, return &nvbo->gem; } -int nouveau_gem_prime_pin(struct drm_gem_object *obj) +int nouveau_gem_prime_pin(struct drm_gem_object *obj, struct device *dev) { struct nouveau_bo *nvbo = nouveau_gem_object(obj); int ret; @@ -101,7 +101,7 @@ int nouveau_gem_prime_pin(struct drm_gem_object *obj) return 0; } -void nouveau_gem_prime_unpin(struct drm_gem_object *obj) +void nouveau_gem_prime_unpin(struct drm_gem_object *obj, struct device *dev) { struct nouveau_bo *nvbo = nouveau_gem_object(obj); diff --git a/drivers/gpu/drm/qxl/qxl_prime.c b/drivers/gpu/drm/qxl/qxl_prime.c index 7d3816fca5a8..21e9b44eb2e4 100644 --- a/drivers/gpu/drm/qxl/qxl_prime.c +++ b/drivers/gpu/drm/qxl/qxl_prime.c @@ -28,14 +28,14 @@ /* Empty Implementations as there should not be any other driver for a virtual * device that might share buffers with qxl */ -int qxl_gem_prime_pin(struct drm_gem_object *obj) +int qxl_gem_prime_pin(struct drm_gem_object *obj, struct device *dev) { struct qxl_bo *bo = gem_to_qxl_bo(obj); return qxl_bo_pin(bo); } -void qxl_gem_prime_unpin(struct drm_gem_object *obj) +void qxl_gem_prime_unpin(struct drm_gem_object *obj, struct device *dev) { struct qxl_bo *bo = gem_to_qxl_bo(obj); diff --git a/drivers/gpu/drm/radeon/radeon_prime.c b/drivers/gpu/drm/radeon/radeon_prime.c index deaffce50a2e..f3442bd860f6 100644 --- a/drivers/gpu/drm/radeon/radeon_prime.c +++ b/drivers/gpu/drm/radeon/radeon_prime.c @@ -83,7 +83,7 @@ struct drm_gem_object *radeon_gem_prime_import_sg_table(struct drm_device *dev, return &bo->gem_base; } -int radeon_gem_prime_pin(struct drm_gem_object *obj) +int radeon_gem_prime_pin(struct drm_gem_object *obj, struct device *dev) { struct radeon_bo *bo = gem_to_radeon_bo(obj); int ret = 0; @@ -101,7 +101,7 @@ int radeon_gem_prime_pin(struct drm_gem_object *obj) return ret; } -void radeon_gem_prime_unpin(struct drm_gem_object *obj) +void radeon_gem_prime_unpin(struct drm_gem_object *obj, struct device *dev) { struct radeon_bo *bo = gem_to_radeon_bo(obj); int ret = 0; diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c index 76d95b5e289c..e7d12e93b1f0 100644 --- a/drivers/gpu/drm/vgem/vgem_drv.c +++ b/drivers/gpu/drm/vgem/vgem_drv.c @@ -307,7 +307,7 @@ static void vgem_unpin_pages(struct drm_vgem_gem_object *bo) mutex_unlock(&bo->pages_lock); } -static int vgem_prime_pin(struct drm_gem_object *obj) +static int vgem_prime_pin(struct drm_gem_object *obj, struct device *dev) { struct drm_vgem_gem_object *bo = to_vgem_bo(obj); long n_pages = obj->size >> PAGE_SHIFT; @@ -325,7 +325,7 @@ static int vgem_prime_pin(struct drm_gem_object *obj) return 0; } -static void vgem_prime_unpin(struct drm_gem_object *obj) +static void vgem_prime_unpin(struct drm_gem_object *obj, struct device *dev) { struct drm_vgem_gem_object *bo = to_vgem_bo(obj); diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h index b33f2cee2099..2b3d79bde6e1 100644 --- a/include/drm/drm_drv.h +++ b/include/drm/drm_drv.h @@ -592,20 +592,19 @@ struct drm_driver { */ struct drm_gem_object * (*gem_prime_import)(struct drm_device *dev, struct dma_buf *dma_buf); - /** * @gem_prime_pin: * * Deprecated hook in favour of &drm_gem_object_funcs.pin. */ - int (*gem_prime_pin)(struct drm_gem_object *obj); + int (*gem_prime_pin)(struct drm_gem_object *obj, struct device *dev); /** * @gem_prime_unpin: * * Deprecated hook in favour of &drm_gem_object_funcs.unpin. */ - void (*gem_prime_unpin)(struct drm_gem_object *obj); + void (*gem_prime_unpin)(struct drm_gem_object *obj, struct device *dev); /** -- 2.21.0