From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [Intel-gfx] [PATCH 5/6] drm: Make property flags u32 Date: Tue, 6 Mar 2018 19:19:21 +0100 Message-ID: <20180306181921.GW22212@phenom.ffwll.local> References: <20180306164849.2862-1-ville.syrjala@linux.intel.com> <20180306164849.2862-5-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180306164849.2862-5-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMDYsIDIwMTggYXQgMDY6NDg6NDhQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IFRoZSBwcm9wZXJ0eSBmbGFncyBhcmUgcGFydCBvZiB0aGUgdWFiaSBhbmQgd2Ug aGF2ZSAzMiBiaXRzIGZvciB0aGVtLgo+IFBhc3MgdGhlbSBhcm91bmQgYXMgdTMyIGludGVybmFs bHkgYXMgd2VsbCwgaW5zdGVhZCBvZiBhIHNpZ25lZCBpbnQuCj4gCj4gU2lnbmVkLW9mZi1ieTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCnUzMiB2cyB1 aW50MzJfdCAoaW4gc3RydWN0IGRybV9wcm9wZXJ0eSkgZnR3LCBidXQgd2hvIGNhcmVzLgoKUmV2 aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJvcGVydHkuYyB8IDQxICsrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9wcm9wZXJ0eS5oICAgICB8 IDI0ICsrKysrKysrKysrKystLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDM0IGluc2Vy dGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3Byb3BlcnR5LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb3BlcnR5LmMKPiBpbmRl eCAwMTlkMWFiYjk0Y2EuLjAyN2E1MGU1NWU5NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3Byb3BlcnR5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb3BlcnR5LmMK PiBAQCAtNzIsOCArNzIsOSBAQCBzdGF0aWMgYm9vbCBkcm1fcHJvcGVydHlfdHlwZV92YWxpZChz dHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSkKPiAgICogUmV0dXJuczoKPiAgICogQSBwb2lu dGVyIHRvIHRoZSBuZXdseSBjcmVhdGVkIHByb3BlcnR5IG9uIHN1Y2Nlc3MsIE5VTEwgb24gZmFp bHVyZS4KPiAgICovCj4gLXN0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9wcm9wZXJ0eV9jcmVhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGZsYWdzLAo+IC0JCQkJCSBjb25zdCBjaGFyICpu YW1lLCBpbnQgbnVtX3ZhbHVlcykKPiArc3RydWN0IGRybV9wcm9wZXJ0eSAqZHJtX3Byb3BlcnR5 X2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJCSB1MzIgZmxhZ3MsIGNvbnN0 IGNoYXIgKm5hbWUsCj4gKwkJCQkJIGludCBudW1fdmFsdWVzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpwcm9wZXJ0eSA9IE5VTEw7Cj4gIAlpbnQgcmV0Owo+IEBAIC0xMzYsMTAgKzEz NywxMCBAQCBFWFBPUlRfU1lNQk9MKGRybV9wcm9wZXJ0eV9jcmVhdGUpOwo+ICAgKiBSZXR1cm5z Ogo+ICAgKiBBIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcHJvcGVydHkgb24gc3VjY2Vz cywgTlVMTCBvbiBmYWlsdXJlLgo+ICAgKi8KPiAtc3RydWN0IGRybV9wcm9wZXJ0eSAqZHJtX3By b3BlcnR5X2NyZWF0ZV9lbnVtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBmbGFncywKPiAt CQkJCQkgY29uc3QgY2hhciAqbmFtZSwKPiAtCQkJCQkgY29uc3Qgc3RydWN0IGRybV9wcm9wX2Vu dW1fbGlzdCAqcHJvcHMsCj4gLQkJCQkJIGludCBudW1fdmFsdWVzKQo+ICtzdHJ1Y3QgZHJtX3By b3BlcnR5ICpkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiArCQkJCQkgICAgICB1MzIgZmxhZ3MsIGNvbnN0IGNoYXIgKm5hbWUsCj4gKwkJCQkJICAgICAg Y29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCAqcHJvcHMsCj4gKwkJCQkJICAgICAgaW50 IG51bV92YWx1ZXMpCj4gIHsKPiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5Owo+ICAJ aW50IGksIHJldDsKPiBAQCAtMTg1LDEwICsxODYsMTAgQEAgRVhQT1JUX1NZTUJPTChkcm1fcHJv cGVydHlfY3JlYXRlX2VudW0pOwo+ICAgKiBBIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGNyZWF0ZWQg cHJvcGVydHkgb24gc3VjY2VzcywgTlVMTCBvbiBmYWlsdXJlLgo+ICAgKi8KPiAgc3RydWN0IGRy bV9wcm9wZXJ0eSAqZHJtX3Byb3BlcnR5X2NyZWF0ZV9iaXRtYXNrKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gLQkJCQkJIGludCBmbGFncywgY29uc3QgY2hhciAqbmFtZSwKPiAtCQkJCQkgY29u c3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCAqcHJvcHMsCj4gLQkJCQkJIGludCBudW1fcHJv cHMsCj4gLQkJCQkJIHVpbnQ2NF90IHN1cHBvcnRlZF9iaXRzKQo+ICsJCQkJCQkgdTMyIGZsYWdz LCBjb25zdCBjaGFyICpuYW1lLAo+ICsJCQkJCQkgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1f bGlzdCAqcHJvcHMsCj4gKwkJCQkJCSBpbnQgbnVtX3Byb3BzLAo+ICsJCQkJCQkgdWludDY0X3Qg c3VwcG9ydGVkX2JpdHMpCj4gIHsKPiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5Owo+ ICAJaW50IGksIHJldCwgaW5kZXggPSAwOwo+IEBAIC0yMjIsOCArMjIzLDggQEAgc3RydWN0IGRy bV9wcm9wZXJ0eSAqZHJtX3Byb3BlcnR5X2NyZWF0ZV9iaXRtYXNrKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gIEVYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5X2NyZWF0ZV9iaXRtYXNrKTsKPiAg Cj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eV9jcmVhdGVfcmFuZ2Uoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJCQkgaW50IGZsYWdzLCBjb25zdCBjaGFyICpuYW1l LAo+IC0JCQkJCSB1aW50NjRfdCBtaW4sIHVpbnQ2NF90IG1heCkKPiArCQkJCQkJICB1MzIgZmxh Z3MsIGNvbnN0IGNoYXIgKm5hbWUsCj4gKwkJCQkJCSAgdWludDY0X3QgbWluLCB1aW50NjRfdCBt YXgpCj4gIHsKPiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5Owo+ICAKPiBAQCAtMjU2 LDkgKzI1Nyw5IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eV9jcmVhdGVf cmFuZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgICogUmV0dXJuczoKPiAgICogQSBwb2lu dGVyIHRvIHRoZSBuZXdseSBjcmVhdGVkIHByb3BlcnR5IG9uIHN1Y2Nlc3MsIE5VTEwgb24gZmFp bHVyZS4KPiAgICovCj4gLXN0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9wcm9wZXJ0eV9jcmVhdGVf cmFuZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGZsYWdzLAo+IC0JCQkJCSBjb25zdCBj aGFyICpuYW1lLAo+IC0JCQkJCSB1aW50NjRfdCBtaW4sIHVpbnQ2NF90IG1heCkKPiArc3RydWN0 IGRybV9wcm9wZXJ0eSAqZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICsJCQkJCSAgICAgICB1MzIgZmxhZ3MsIGNvbnN0IGNoYXIgKm5hbWUsCj4gKwkJ CQkJICAgICAgIHVpbnQ2NF90IG1pbiwgdWludDY0X3QgbWF4KQo+ICB7Cj4gIAlyZXR1cm4gcHJv cGVydHlfY3JlYXRlX3JhbmdlKGRldiwgRFJNX01PREVfUFJPUF9SQU5HRSB8IGZsYWdzLAo+ICAJ CQluYW1lLCBtaW4sIG1heCk7Cj4gQEAgLTI4NSw4ICsyODYsOCBAQCBFWFBPUlRfU1lNQk9MKGRy bV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UpOwo+ICAgKiBBIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGNy ZWF0ZWQgcHJvcGVydHkgb24gc3VjY2VzcywgTlVMTCBvbiBmYWlsdXJlLgo+ICAgKi8KPiAgc3Ry dWN0IGRybV9wcm9wZXJ0eSAqZHJtX3Byb3BlcnR5X2NyZWF0ZV9zaWduZWRfcmFuZ2Uoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJCQkgaW50IGZsYWdzLCBjb25zdCBjaGFyICpuYW1lLAo+ IC0JCQkJCSBpbnQ2NF90IG1pbiwgaW50NjRfdCBtYXgpCj4gKwkJCQkJCSAgICAgIHUzMiBmbGFn cywgY29uc3QgY2hhciAqbmFtZSwKPiArCQkJCQkJICAgICAgaW50NjRfdCBtaW4sIGludDY0X3Qg bWF4KQo+ICB7Cj4gIAlyZXR1cm4gcHJvcGVydHlfY3JlYXRlX3JhbmdlKGRldiwgRFJNX01PREVf UFJPUF9TSUdORURfUkFOR0UgfCBmbGFncywKPiAgCQkJbmFtZSwgSTY0MlU2NChtaW4pLCBJNjQy VTY0KG1heCkpOwo+IEBAIC0zMTIsNyArMzEzLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fcHJvcGVy dHlfY3JlYXRlX3NpZ25lZF9yYW5nZSk7Cj4gICAqIEEgcG9pbnRlciB0byB0aGUgbmV3bHkgY3Jl YXRlZCBwcm9wZXJ0eSBvbiBzdWNjZXNzLCBOVUxMIG9uIGZhaWx1cmUuCj4gICAqLwo+ICBzdHJ1 Y3QgZHJtX3Byb3BlcnR5ICpkcm1fcHJvcGVydHlfY3JlYXRlX29iamVjdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+IC0JCQkJCQlpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKm5hbWUsCj4gKwkJCQkJ CXUzMiBmbGFncywgY29uc3QgY2hhciAqbmFtZSwKPiAgCQkJCQkJdWludDMyX3QgdHlwZSkKPiAg ewo+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHk7Cj4gQEAgLTM0OCw4ICszNDksOCBA QCBFWFBPUlRfU1lNQk9MKGRybV9wcm9wZXJ0eV9jcmVhdGVfb2JqZWN0KTsKPiAgICogUmV0dXJu czoKPiAgICogQSBwb2ludGVyIHRvIHRoZSBuZXdseSBjcmVhdGVkIHByb3BlcnR5IG9uIHN1Y2Nl c3MsIE5VTEwgb24gZmFpbHVyZS4KPiAgICovCj4gLXN0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9w cm9wZXJ0eV9jcmVhdGVfYm9vbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZmxhZ3MsCj4g LQkJCQkJICAgICAgY29uc3QgY2hhciAqbmFtZSkKPiArc3RydWN0IGRybV9wcm9wZXJ0eSAqZHJt X3Byb3BlcnR5X2NyZWF0ZV9ib29sKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCQkJICAg ICAgdTMyIGZsYWdzLCBjb25zdCBjaGFyICpuYW1lKQo+ICB7Cj4gIAlyZXR1cm4gZHJtX3Byb3Bl cnR5X2NyZWF0ZV9yYW5nZShkZXYsIGZsYWdzLCBuYW1lLCAwLCAxKTsKPiAgfQo+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9kcm1fcHJvcGVydHkuaCBiL2luY2x1ZGUvZHJtL2RybV9wcm9wZXJ0 eS5oCj4gaW5kZXggOGE1MjJiNGJlZDQwLi45Mzc3NTdhOGE1NjggMTAwNjQ0Cj4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtX3Byb3BlcnR5LmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fcHJvcGVydHku aAo+IEBAIC0yMzcsMjcgKzIzNywyOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZHJtX3Byb3BlcnR5 X3R5cGVfaXMoc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gIAlyZXR1cm4gcHJvcGVy dHktPmZsYWdzICYgdHlwZTsKPiAgfQo+ICAKPiAtc3RydWN0IGRybV9wcm9wZXJ0eSAqZHJtX3By b3BlcnR5X2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZmxhZ3MsCj4gLQkJCQkJ IGNvbnN0IGNoYXIgKm5hbWUsIGludCBudW1fdmFsdWVzKTsKPiAtc3RydWN0IGRybV9wcm9wZXJ0 eSAqZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBm bGFncywKPiAtCQkJCQkgICAgICBjb25zdCBjaGFyICpuYW1lLAo+ICtzdHJ1Y3QgZHJtX3Byb3Bl cnR5ICpkcm1fcHJvcGVydHlfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCQkJ IHUzMiBmbGFncywgY29uc3QgY2hhciAqbmFtZSwKPiArCQkJCQkgaW50IG51bV92YWx1ZXMpOwo+ ICtzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiArCQkJCQkgICAgICB1MzIgZmxhZ3MsIGNvbnN0IGNoYXIgKm5hbWUs Cj4gIAkJCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCAqcHJvcHMsCj4g IAkJCQkJICAgICAgaW50IG51bV92YWx1ZXMpOwo+ICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkcm1f cHJvcGVydHlfY3JlYXRlX2JpdG1hc2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJCQkJ IGludCBmbGFncywgY29uc3QgY2hhciAqbmFtZSwKPiArCQkJCQkJIHUzMiBmbGFncywgY29uc3Qg Y2hhciAqbmFtZSwKPiAgCQkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgKnBy b3BzLAo+ICAJCQkJCQkgaW50IG51bV9wcm9wcywKPiAgCQkJCQkJIHVpbnQ2NF90IHN1cHBvcnRl ZF9iaXRzKTsKPiAtc3RydWN0IGRybV9wcm9wZXJ0eSAqZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5n ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZmxhZ3MsCj4gLQkJCQkJICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUsCj4gK3N0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9wcm9wZXJ0eV9jcmVhdGVf cmFuZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCQkgICAgICAgdTMyIGZsYWdzLCBj b25zdCBjaGFyICpuYW1lLAo+ICAJCQkJCSAgICAgICB1aW50NjRfdCBtaW4sIHVpbnQ2NF90IG1h eCk7Cj4gIHN0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9wcm9wZXJ0eV9jcmVhdGVfc2lnbmVkX3Jh bmdlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCQkJCSAgICAgIGludCBmbGFncywgY29u c3QgY2hhciAqbmFtZSwKPiArCQkJCQkJICAgICAgdTMyIGZsYWdzLCBjb25zdCBjaGFyICpuYW1l LAo+ICAJCQkJCQkgICAgICBpbnQ2NF90IG1pbiwgaW50NjRfdCBtYXgpOwo+ICBzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpkcm1fcHJvcGVydHlfY3JlYXRlX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+IC0JCQkJCQlpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKm5hbWUsIHVpbnQzMl90IHR5cGUp Owo+IC1zdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkcm1fcHJvcGVydHlfY3JlYXRlX2Jvb2woc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IGZsYWdzLAo+IC0JCQkJCSAgICAgIGNvbnN0IGNoYXIgKm5h bWUpOwo+ICsJCQkJCQl1MzIgZmxhZ3MsIGNvbnN0IGNoYXIgKm5hbWUsCj4gKwkJCQkJCXVpbnQz Ml90IHR5cGUpOwo+ICtzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkcm1fcHJvcGVydHlfY3JlYXRlX2Jv b2woc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCQkgICAgICB1MzIgZmxhZ3MsIGNvbnN0 IGNoYXIgKm5hbWUpOwo+ICBpbnQgZHJtX3Byb3BlcnR5X2FkZF9lbnVtKHN0cnVjdCBkcm1fcHJv cGVydHkgKnByb3BlcnR5LCBpbnQgaW5kZXgsCj4gIAkJCSAgdWludDY0X3QgdmFsdWUsIGNvbnN0 IGNoYXIgKm5hbWUpOwo+ICB2b2lkIGRybV9wcm9wZXJ0eV9kZXN0cm95KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5KTsKPiAtLSAKPiAyLjE2LjEK PiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IElu dGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK