From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [17/18] ALSA: hal2: pass struct device to DMA API functions From: Christoph Hellwig Message-Id: <20190201084801.10983-18-hch@lst.de> Date: Fri, 1 Feb 2019 09:48:00 +0100 To: John Crispin , Vinod Koul , Dmitry Tarnyagin , Nicolas Ferre , Sudip Mukherjee , Felipe Balbi , linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, netdev@vger.kernel.org, linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org, alsa-devel@alsa-project.org Cc: iommu@lists.linux-foundation.org List-ID: VGhlIERNQSBBUEkgZ2VuZXJhbGx5IHJlbGllcyBvbiBhIHN0cnVjdCBkZXZpY2UgdG8gd29yayBw cm9wZXJseSwgYW5kCm9ubHkgYmFyZWx5IHdvcmtzIHdpdGhvdXQgb25lIGZvciBsZWdhY3kgcmVh c29ucy4gIFBhc3MgdGhlIGVhc2lseQphdmFpbGFibGUgc3RydWN0IGRldmljZSBmcm9tIHRoZSBw bGF0Zm9ybV9kZXZpY2UgdG8gcmVtZWR5IHRoaXMuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGgg SGVsbHdpZyA8aGNoQGxzdC5kZT4KLS0tCiBzb3VuZC9taXBzL2hhbDIuYyB8IDMxICsrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCsp LCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zb3VuZC9taXBzL2hhbDIuYyBiL3NvdW5k L21pcHMvaGFsMi5jCmluZGV4IGE0ZWQ1NGFlYWYxZC4uZDYzZTE1NjViNjJiIDEwMDY0NAotLS0g YS9zb3VuZC9taXBzL2hhbDIuYworKysgYi9zb3VuZC9taXBzL2hhbDIuYwpAQCAtNDU0LDIxICs0 NTQsMjIgQEAgc3RhdGljIGlubGluZSB2b2lkIGhhbDJfc3RvcF9hZGMoc3RydWN0IHNuZF9oYWwy ICpoYWwyKQogCWhhbDItPmFkYy5wYnVzLnBidXMtPnBiZG1hX2N0cmwgPSBIUEMzX1BETUFDVFJM X0xEOwogfQogCi1zdGF0aWMgaW50IGhhbDJfYWxsb2NfZG1hYnVmKHN0cnVjdCBoYWwyX2NvZGVj ICpjb2RlYykKK3N0YXRpYyBpbnQgaGFsMl9hbGxvY19kbWFidWYoc3RydWN0IHNuZF9oYWwyICpo YWwyLCBzdHJ1Y3QgaGFsMl9jb2RlYyAqY29kZWMpCiB7CisJc3RydWN0IGRldmljZSAqZGV2ID0g aGFsMi0+Y2FyZC0+ZGV2OwogCXN0cnVjdCBoYWwyX2Rlc2MgKmRlc2M7CiAJZG1hX2FkZHJfdCBk ZXNjX2RtYSwgYnVmZmVyX2RtYTsKIAlpbnQgY291bnQgPSBIMl9CVUZfU0laRSAvIEgyX0JMT0NL X1NJWkU7CiAJaW50IGk7CiAKLQljb2RlYy0+YnVmZmVyID0gZG1hX2FsbG9jX2F0dHJzKE5VTEws IEgyX0JVRl9TSVpFLCAmYnVmZmVyX2RtYSwKKwljb2RlYy0+YnVmZmVyID0gZG1hX2FsbG9jX2F0 dHJzKGRldiwgSDJfQlVGX1NJWkUsICZidWZmZXJfZG1hLAogCQkJCQlHRlBfS0VSTkVMLCBETUFf QVRUUl9OT05fQ09OU0lTVEVOVCk7CiAJaWYgKCFjb2RlYy0+YnVmZmVyKQogCQlyZXR1cm4gLUVO T01FTTsKLQlkZXNjID0gZG1hX2FsbG9jX2F0dHJzKE5VTEwsIGNvdW50ICogc2l6ZW9mKHN0cnVj dCBoYWwyX2Rlc2MpLAorCWRlc2MgPSBkbWFfYWxsb2NfYXR0cnMoZGV2LCBjb3VudCAqIHNpemVv ZihzdHJ1Y3QgaGFsMl9kZXNjKSwKIAkJCSAgICAgICAmZGVzY19kbWEsIEdGUF9LRVJORUwsIERN QV9BVFRSX05PTl9DT05TSVNURU5UKTsKIAlpZiAoIWRlc2MpIHsKLQkJZG1hX2ZyZWVfYXR0cnMo TlVMTCwgSDJfQlVGX1NJWkUsIGNvZGVjLT5idWZmZXIsIGJ1ZmZlcl9kbWEsCisJCWRtYV9mcmVl X2F0dHJzKGRldiwgSDJfQlVGX1NJWkUsIGNvZGVjLT5idWZmZXIsIGJ1ZmZlcl9kbWEsCiAJCQkg ICAgICAgRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CkBA IC00ODIsMTcgKzQ4MywxOSBAQCBzdGF0aWMgaW50IGhhbDJfYWxsb2NfZG1hYnVmKHN0cnVjdCBo YWwyX2NvZGVjICpjb2RlYykKIAkJICAgICAgZGVzY19kbWEgOiBkZXNjX2RtYSArIChpICsgMSkg KiBzaXplb2Yoc3RydWN0IGhhbDJfZGVzYyk7CiAJCWRlc2MrKzsKIAl9Ci0JZG1hX2NhY2hlX3N5 bmMoTlVMTCwgY29kZWMtPmRlc2MsIGNvdW50ICogc2l6ZW9mKHN0cnVjdCBoYWwyX2Rlc2MpLAor CWRtYV9jYWNoZV9zeW5jKGRldiwgY29kZWMtPmRlc2MsIGNvdW50ICogc2l6ZW9mKHN0cnVjdCBo YWwyX2Rlc2MpLAogCQkgICAgICAgRE1BX1RPX0RFVklDRSk7CiAJY29kZWMtPmRlc2NfY291bnQg PSBjb3VudDsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgaGFsMl9mcmVlX2RtYWJ1Zihz dHJ1Y3QgaGFsMl9jb2RlYyAqY29kZWMpCitzdGF0aWMgdm9pZCBoYWwyX2ZyZWVfZG1hYnVmKHN0 cnVjdCBzbmRfaGFsMiAqaGFsMiwgc3RydWN0IGhhbDJfY29kZWMgKmNvZGVjKQogewotCWRtYV9m cmVlX2F0dHJzKE5VTEwsIGNvZGVjLT5kZXNjX2NvdW50ICogc2l6ZW9mKHN0cnVjdCBoYWwyX2Rl c2MpLAorCXN0cnVjdCBkZXZpY2UgKmRldiA9IGhhbDItPmNhcmQtPmRldjsKKworCWRtYV9mcmVl X2F0dHJzKGRldiwgY29kZWMtPmRlc2NfY291bnQgKiBzaXplb2Yoc3RydWN0IGhhbDJfZGVzYyks CiAJCSAgICAgICBjb2RlYy0+ZGVzYywgY29kZWMtPmRlc2NfZG1hLCBETUFfQVRUUl9OT05fQ09O U0lTVEVOVCk7Ci0JZG1hX2ZyZWVfYXR0cnMoTlVMTCwgSDJfQlVGX1NJWkUsIGNvZGVjLT5idWZm ZXIsIGNvZGVjLT5idWZmZXJfZG1hLAorCWRtYV9mcmVlX2F0dHJzKGRldiwgSDJfQlVGX1NJWkUs IGNvZGVjLT5idWZmZXIsIGNvZGVjLT5idWZmZXJfZG1hLAogCQkgICAgICAgRE1BX0FUVFJfTk9O X0NPTlNJU1RFTlQpOwogfQogCkBAIC01NDAsNyArNTQzLDcgQEAgc3RhdGljIGludCBoYWwyX3Bs YXliYWNrX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiAKIAlydW50 aW1lLT5odyA9IGhhbDJfcGNtX2h3OwogCi0JZXJyID0gaGFsMl9hbGxvY19kbWFidWYoJmhhbDIt PmRhYyk7CisJZXJyID0gaGFsMl9hbGxvY19kbWFidWYoaGFsMiwgJmhhbDItPmRhYyk7CiAJaWYg KGVycikKIAkJcmV0dXJuIGVycjsKIAlyZXR1cm4gMDsKQEAgLTU1MCw3ICs1NTMsNyBAQCBzdGF0 aWMgaW50IGhhbDJfcGxheWJhY2tfY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJz dHJlYW0pCiB7CiAJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hp cChzdWJzdHJlYW0pOwogCi0JaGFsMl9mcmVlX2RtYWJ1ZigmaGFsMi0+ZGFjKTsKKwloYWwyX2Zy ZWVfZG1hYnVmKGhhbDIsICZoYWwyLT5kYWMpOwogCXJldHVybiAwOwogfQogCkBAIC02MDYsNyAr NjA5LDcgQEAgc3RhdGljIHZvaWQgaGFsMl9wbGF5YmFja190cmFuc2ZlcihzdHJ1Y3Qgc25kX3Bj bV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKIAl1bnNpZ25lZCBjaGFyICpidWYgPSBoYWwyLT5kYWMu YnVmZmVyICsgcmVjLT5od19kYXRhOwogCiAJbWVtY3B5KGJ1Ziwgc3Vic3RyZWFtLT5ydW50aW1l LT5kbWFfYXJlYSArIHJlYy0+c3dfZGF0YSwgYnl0ZXMpOwotCWRtYV9jYWNoZV9zeW5jKE5VTEws IGJ1ZiwgYnl0ZXMsIERNQV9UT19ERVZJQ0UpOworCWRtYV9jYWNoZV9zeW5jKGhhbDItPmNhcmQt PmRldiwgYnVmLCBieXRlcywgRE1BX1RPX0RFVklDRSk7CiAKIH0KIApAQCAtNjI5LDcgKzYzMiw3 IEBAIHN0YXRpYyBpbnQgaGFsMl9jYXB0dXJlX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFt ICpzdWJzdHJlYW0pCiAKIAlydW50aW1lLT5odyA9IGhhbDJfcGNtX2h3OwogCi0JZXJyID0gaGFs Ml9hbGxvY19kbWFidWYoYWRjKTsKKwllcnIgPSBoYWwyX2FsbG9jX2RtYWJ1ZihoYWwyLCBhZGMp OwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAJcmV0dXJuIDA7CkBAIC02MzksNyArNjQyLDcg QEAgc3RhdGljIGludCBoYWwyX2NhcHR1cmVfY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFt ICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJl YW1fY2hpcChzdWJzdHJlYW0pOwogCi0JaGFsMl9mcmVlX2RtYWJ1ZigmaGFsMi0+YWRjKTsKKwlo YWwyX2ZyZWVfZG1hYnVmKGhhbDIsICZoYWwyLT5hZGMpOwogCXJldHVybiAwOwogfQogCkBAIC02 OTQsNyArNjk3LDcgQEAgc3RhdGljIHZvaWQgaGFsMl9jYXB0dXJlX3RyYW5zZmVyKHN0cnVjdCBz bmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAogCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNu ZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKIAl1bnNpZ25lZCBjaGFyICpidWYgPSBo YWwyLT5hZGMuYnVmZmVyICsgcmVjLT5od19kYXRhOwogCi0JZG1hX2NhY2hlX3N5bmMoTlVMTCwg YnVmLCBieXRlcywgRE1BX0ZST01fREVWSUNFKTsKKwlkbWFfY2FjaGVfc3luYyhoYWwyLT5jYXJk LT5kZXYsIGJ1ZiwgYnl0ZXMsIERNQV9GUk9NX0RFVklDRSk7CiAJbWVtY3B5KHN1YnN0cmVhbS0+ cnVudGltZS0+ZG1hX2FyZWEgKyByZWMtPnN3X2RhdGEsIGJ1ZiwgYnl0ZXMpOwogfQogCg==