From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 1/2] drm/i915: Make macro definitions consistent for ICL and CNL Date: Tue, 12 Feb 2019 15:58:09 -0800 Message-ID: <20190212235809.GA6529@intel.com> References: <20190128220012.13122-1-aditya.swarup@intel.com> <20190128220012.13122-2-aditya.swarup@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id D34656E6CD for ; Tue, 12 Feb 2019 23:56:03 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190128220012.13122-2-aditya.swarup@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Aditya Swarup Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMjgsIDIwMTkgYXQgMDI6MDA6MTFQTSAtMDgwMCwgQWRpdHlhIFN3YXJ1cCB3 cm90ZToKPiBNYWNybyBkZWZpbml0aW9ucyB0byBiZSBvcmdhbml6ZWQgc2VtYW50aWNhbGx5IGJh c2VkIG9uIGR3b3JkLCBsYW5lIGFuZAo+IHBvcnQoaW4gdGhpcyBvcmRlcikuCj4gCj4gQ2M6IENs aW50IFRheWxvciA8Y2xpbnRvbi5hLnRheWxvckBpbnRlbC5jb20+Cj4gQ2M6IEltcmUgRGVhayA8 aW1yZS5kZWFrQGludGVsLmNvbT4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4 LmludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBZGl0eWEgU3dhcnVwIDxhZGl0eWEuc3dhcnVw QGludGVsLmNvbT4KCkkgdGhpbmsgeW91IGNhbiBjaGFuZ2UgdGhlIGNvbW1pdCBtZXNzYWdlIHRv IHNheSBDb21ibyBQSFkgRERJIHByb2dyYW1taW5nCnJlbGF0ZWQgbWFjcm8gZGVmaW5pdGlvbnMg c2luY2UgdGhlIG5leHQgcGF0Y2ggbWVudGlvbmVzIE1HIFBIWSBtYWNybyBkZWZzLgpBbHNvIHlv dSBzaG91bGQgYWRkIEZpeGVzIHRhZyB3aXRoIHRoZSBTSEEgb2YgdGhlIG9yaWdpbmFsIHBhdGNo IHRoYXQgYWRkcyB0aGVzZQptYWNyb3MuCkV2ZXJ5dGhpbmcgZWxzZSBsb29rcyBnb29kIHRvIG1l IHcuci50IHRoZSBjaGFuZ2VzIHN1Z2dlc3RlZCB0byB1c2UgdGhlIGFyZ3VtZW50cyBvcmRlcgph cyBkd29yZCwgbGFuZSwgcG9ydC4KU28gd2l0aCB0aGUgYWJvdmUgY2hhbmdlcywKClJldmlld2Vk LWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgoKTWFuYXNpCj4g LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggIHwgIDYgKysrLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ljbF9kc2kuYyAgIHwgIDggKysrKy0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgfCAxNiArKysrKysrKy0tLS0tLS0tCj4gIDMgZmlsZXMg Y2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gaW5kZXggMWVjYTE2NmQ5NWJiLi5iMDUzNTA3M2MzZjAgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtMTg2MCwxMyArMTg2MCwxMyBAQCBlbnVtIGk5MTVf cG93ZXJfd2VsbF9pZCB7Cj4gICNkZWZpbmUgX0NOTF9QT1JUX1RYX0RXNF9MTjFfQUUJCTB4MTYy NEQwCj4gICNkZWZpbmUgQ05MX1BPUlRfVFhfRFc0X0dSUChwb3J0KQlfTU1JTyhfQ05MX1BPUlRf VFhfRFdfR1JQKDQsIChwb3J0KSkpCj4gICNkZWZpbmUgQ05MX1BPUlRfVFhfRFc0X0xOMChwb3J0 KQlfTU1JTyhfQ05MX1BPUlRfVFhfRFdfTE4wKDQsIChwb3J0KSkpCj4gLSNkZWZpbmUgQ05MX1BP UlRfVFhfRFc0X0xOKHBvcnQsIGxuKSAgIF9NTUlPKF9DTkxfUE9SVF9UWF9EV19MTjAoNCwgKHBv cnQpKSArIFwKPiArI2RlZmluZSBDTkxfUE9SVF9UWF9EVzRfTE4obG4sIHBvcnQpICAgX01NSU8o X0NOTF9QT1JUX1RYX0RXX0xOMCg0LCAocG9ydCkpICsgXAo+ICAJCQkJCSAgICgobG4pICogKF9D TkxfUE9SVF9UWF9EVzRfTE4xX0FFIC0gXAo+ICAJCQkJCQkgICAgX0NOTF9QT1JUX1RYX0RXNF9M TjBfQUUpKSkKPiAgI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzRfQVVYKHBvcnQpCV9NTUlPKF9JQ0xf UE9SVF9UWF9EV19BVVgoNCwgcG9ydCkpCj4gICNkZWZpbmUgSUNMX1BPUlRfVFhfRFc0X0dSUChw b3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfR1JQKDQsIHBvcnQpKQo+ICAjZGVmaW5lIElDTF9Q T1JUX1RYX0RXNF9MTjAocG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0xOKDQsIDAsIHBvcnQp KQo+IC0jZGVmaW5lIElDTF9QT1JUX1RYX0RXNF9MTihwb3J0LCBsbikJX01NSU8oX0lDTF9QT1JU X1RYX0RXX0xOKDQsIGxuLCBwb3J0KSkKPiArI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzRfTE4obG4s IHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19MTig0LCBsbiwgcG9ydCkpCj4gICNkZWZpbmUg ICBMT0FER0VOX1NFTEVDVAkJKDEgPDwgMzEpCj4gICNkZWZpbmUgICBQT1NUX0NVUlNPUl8xKHgp CQkoKHgpIDw8IDEyKQo+ICAjZGVmaW5lICAgUE9TVF9DVVJTT1JfMV9NQVNLCQkoMHgzRiA8PCAx MikKPiBAQCAtMTg5Myw3ICsxODkzLDcgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewo+ICAj ZGVmaW5lIElDTF9QT1JUX1RYX0RXN19BVVgocG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0FV WCg3LCBwb3J0KSkKPiAgI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzdfR1JQKHBvcnQpCV9NTUlPKF9J Q0xfUE9SVF9UWF9EV19HUlAoNywgcG9ydCkpCj4gICNkZWZpbmUgSUNMX1BPUlRfVFhfRFc3X0xO MChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfTE4oNywgMCwgcG9ydCkpCj4gLSNkZWZpbmUg SUNMX1BPUlRfVFhfRFc3X0xOKHBvcnQsIGxuKQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfTE4oNywg bG4sIHBvcnQpKQo+ICsjZGVmaW5lIElDTF9QT1JUX1RYX0RXN19MTihsbiwgcG9ydCkJX01NSU8o X0lDTF9QT1JUX1RYX0RXX0xOKDcsIGxuLCBwb3J0KSkKPiAgI2RlZmluZSAgIE5fU0NBTEFSKHgp CQkJKCh4KSA8PCAyNCkKPiAgI2RlZmluZSAgIE5fU0NBTEFSX01BU0sJCQkoMHg3RiA8PCAyNCkK PiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ljbF9kc2kuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ljbF9kc2kuYwo+IGluZGV4IDczYTdiZWUyNGE2Ni4uYmViMzBkOWE4 NTVjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ljbF9kc2kuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ljbF9kc2kuYwo+IEBAIC0yNDYsMTMgKzI0NiwxMyBAQCBz dGF0aWMgdm9pZCBkc2lfcHJvZ3JhbV9zd2luZ19hbmRfZGVlbXBoYXNpcyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKPiAgCj4gIAkJZm9yIChsYW5lID0gMDsgbGFuZSA8PSAzOyBsYW5l KyspIHsKPiAgCQkJLyogQnNwZWM6IG11c3Qgbm90IHVzZSBHUlAgcmVnaXN0ZXIgZm9yIHdyaXRl ICovCj4gLQkJCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzRfTE4ocG9ydCwgbGFuZSkp Owo+ICsJCQl0bXAgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc0X0xOKGxhbmUsIHBvcnQpKTsK PiAgCQkJdG1wICY9IH4oUE9TVF9DVVJTT1JfMV9NQVNLIHwgUE9TVF9DVVJTT1JfMl9NQVNLIHwK PiAgCQkJCSBDVVJTT1JfQ09FRkZfTUFTSyk7Cj4gIAkJCXRtcCB8PSBQT1NUX0NVUlNPUl8xKDB4 MCk7Cj4gIAkJCXRtcCB8PSBQT1NUX0NVUlNPUl8yKDB4MCk7Cj4gIAkJCXRtcCB8PSBDVVJTT1Jf Q09FRkYoMHgzZik7Cj4gLQkJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc0X0xOKHBvcnQsIGxh bmUpLCB0bXApOwo+ICsJCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNF9MTihsYW5lLCBwb3J0 KSwgdG1wKTsKPiAgCQl9Cj4gIAl9Cj4gIH0KPiBAQCAtMzkwLDExICszOTAsMTEgQEAgc3RhdGlj IHZvaWQgZ2VuMTFfZHNpX2NvbmZpZ19waHlfbGFuZXNfc2VxdWVuY2Uoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpCj4gIAkJdG1wICY9IH5MT0FER0VOX1NFTEVDVDsKPiAgCQlJOTE1X1dS SVRFKElDTF9QT1JUX1RYX0RXNF9BVVgocG9ydCksIHRtcCk7Cj4gIAkJZm9yIChsYW5lID0gMDsg bGFuZSA8PSAzOyBsYW5lKyspIHsKPiAtCQkJdG1wID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RX NF9MTihwb3J0LCBsYW5lKSk7Cj4gKwkJCXRtcCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzRf TE4obGFuZSwgcG9ydCkpOwo+ICAJCQl0bXAgJj0gfkxPQURHRU5fU0VMRUNUOwo+ICAJCQlpZiAo bGFuZSAhPSAyKQo+ICAJCQkJdG1wIHw9IExPQURHRU5fU0VMRUNUOwo+IC0JCQlJOTE1X1dSSVRF KElDTF9QT1JUX1RYX0RXNF9MTihwb3J0LCBsYW5lKSwgdG1wKTsKPiArCQkJSTkxNV9XUklURShJ Q0xfUE9SVF9UWF9EVzRfTE4obGFuZSwgcG9ydCksIHRtcCk7Cj4gIAkJfQo+ICAJfQo+ICAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IGFjZDk0MzU0YWZjOC4uYzZkZWY2OTM0OGE2 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMjMxNSwxMyArMjMxNSwxMyBA QCBzdGF0aWMgdm9pZCBjbmxfZGRpX3Zzd2luZ19wcm9ncmFtKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAJLyogUHJvZ3JhbSBQT1JUX1RYX0RXNCAqLwo+ICAJLyogV2UgY2Fubm90 IHdyaXRlIHRvIEdSUC4gSXQgd291bGQgb3ZlcnJpdGUgaW5kaXZpZHVhbCBsb2FkZ2VuICovCj4g IAlmb3IgKGxuID0gMDsgbG4gPCA0OyBsbisrKSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKENOTF9Q T1JUX1RYX0RXNF9MTihwb3J0LCBsbikpOwo+ICsJCXZhbCA9IEk5MTVfUkVBRChDTkxfUE9SVF9U WF9EVzRfTE4obG4sIHBvcnQpKTsKPiAgCQl2YWwgJj0gfihQT1NUX0NVUlNPUl8xX01BU0sgfCBQ T1NUX0NVUlNPUl8yX01BU0sgfAo+ICAJCQkgQ1VSU09SX0NPRUZGX01BU0spOwo+ICAJCXZhbCB8 PSBQT1NUX0NVUlNPUl8xKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3NF9wb3N0X2N1cnNvcl8x KTsKPiAgCQl2YWwgfD0gUE9TVF9DVVJTT1JfMihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5kdzRf cG9zdF9jdXJzb3JfMik7Cj4gIAkJdmFsIHw9IENVUlNPUl9DT0VGRihkZGlfdHJhbnNsYXRpb25z W2xldmVsXS5kdzRfY3Vyc29yX2NvZWZmKTsKPiAtCQlJOTE1X1dSSVRFKENOTF9QT1JUX1RYX0RX NF9MTihwb3J0LCBsbiksIHZhbCk7Cj4gKwkJSTkxNV9XUklURShDTkxfUE9SVF9UWF9EVzRfTE4o bG4sIHBvcnQpLCB2YWwpOwo+ICAJfQo+ICAKPiAgCS8qIFByb2dyYW0gUE9SVF9UWF9EVzUgKi8K PiBAQCAtMjM3NywxNCArMjM3NywxNCBAQCBzdGF0aWMgdm9pZCBjbmxfZGRpX3Zzd2luZ19zZXF1 ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCSAqID4gNiBHSHogKExOMD0w LCBMTjE9MCwgTE4yPTAsIExOMz0wKQo+ICAJICovCj4gIAlmb3IgKGxuID0gMDsgbG4gPD0gMzsg bG4rKykgewo+IC0JCXZhbCA9IEk5MTVfUkVBRChDTkxfUE9SVF9UWF9EVzRfTE4ocG9ydCwgbG4p KTsKPiArCQl2YWwgPSBJOTE1X1JFQUQoQ05MX1BPUlRfVFhfRFc0X0xOKGxuLCBwb3J0KSk7Cj4g IAkJdmFsICY9IH5MT0FER0VOX1NFTEVDVDsKPiAgCj4gIAkJaWYgKChyYXRlIDw9IDYwMDAwMCAm JiB3aWR0aCA9PSA0ICYmIGxuID49IDEpICB8fAo+ICAJCSAgICAocmF0ZSA8PSA2MDAwMDAgJiYg d2lkdGggPCA0ICYmIChsbiA9PSAxIHx8IGxuID09IDIpKSkgewo+ICAJCQl2YWwgfD0gTE9BREdF Tl9TRUxFQ1Q7Cj4gIAkJfQo+IC0JCUk5MTVfV1JJVEUoQ05MX1BPUlRfVFhfRFc0X0xOKHBvcnQs IGxuKSwgdmFsKTsKPiArCQlJOTE1X1dSSVRFKENOTF9QT1JUX1RYX0RXNF9MTihsbiwgcG9ydCks IHZhbCk7Cj4gIAl9Cj4gIAo+ICAJLyogMy4gU2V0IFBPUlRfQ0xfRFc1IFNVUyBDbG9jayBDb25m aWcgdG8gMTFiICovCj4gQEAgLTI0NDYsMTMgKzI0NDYsMTMgQEAgc3RhdGljIHZvaWQgaWNsX2Rk aV9jb21ib192c3dpbmdfcHJvZ3JhbShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAkvKiBQcm9ncmFtIFBPUlRfVFhfRFc0ICovCj4gIAkvKiBXZSBjYW5ub3Qgd3JpdGUgdG8g R1JQLiBJdCB3b3VsZCBvdmVyd3JpdGUgaW5kaXZpZHVhbCBsb2FkZ2VuLiAqLwo+ICAJZm9yIChs biA9IDA7IGxuIDw9IDM7IGxuKyspIHsKPiAtCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhf RFc0X0xOKHBvcnQsIGxuKSk7Cj4gKwkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNF9M TihsbiwgcG9ydCkpOwo+ICAJCXZhbCAmPSB+KFBPU1RfQ1VSU09SXzFfTUFTSyB8IFBPU1RfQ1VS U09SXzJfTUFTSyB8Cj4gIAkJCSBDVVJTT1JfQ09FRkZfTUFTSyk7Cj4gIAkJdmFsIHw9IFBPU1Rf Q1VSU09SXzEoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uZHc0X3Bvc3RfY3Vyc29yXzEpOwo+ICAJ CXZhbCB8PSBQT1NUX0NVUlNPUl8yKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3NF9wb3N0X2N1 cnNvcl8yKTsKPiAgCQl2YWwgfD0gQ1VSU09SX0NPRUZGKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxd LmR3NF9jdXJzb3JfY29lZmYpOwo+IC0JCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc0X0xOKHBv cnQsIGxuKSwgdmFsKTsKPiArCQlJOTE1X1dSSVRFKElDTF9QT1JUX1RYX0RXNF9MTihsbiwgcG9y dCksIHZhbCk7Cj4gIAl9Cj4gIAo+ICAJLyogUHJvZ3JhbSBQT1JUX1RYX0RXNyAqLwo+IEBAIC0y NTAzLDE0ICsyNTAzLDE0IEBAIHN0YXRpYyB2b2lkIGljbF9jb21ib19waHlfZGRpX3Zzd2luZ19z ZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCSAqID4gNiBHSHogKExO MD0wLCBMTjE9MCwgTE4yPTAsIExOMz0wKQo+ICAJICovCj4gIAlmb3IgKGxuID0gMDsgbG4gPD0g MzsgbG4rKykgewo+IC0JCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzRfTE4ocG9ydCwg bG4pKTsKPiArCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFc0X0xOKGxuLCBwb3J0KSk7 Cj4gIAkJdmFsICY9IH5MT0FER0VOX1NFTEVDVDsKPiAgCj4gIAkJaWYgKChyYXRlIDw9IDYwMDAw MCAmJiB3aWR0aCA9PSA0ICYmIGxuID49IDEpIHx8Cj4gIAkJICAgIChyYXRlIDw9IDYwMDAwMCAm JiB3aWR0aCA8IDQgJiYgKGxuID09IDEgfHwgbG4gPT0gMikpKSB7Cj4gIAkJCXZhbCB8PSBMT0FE R0VOX1NFTEVDVDsKPiAgCQl9Cj4gLQkJSTkxNV9XUklURShJQ0xfUE9SVF9UWF9EVzRfTE4ocG9y dCwgbG4pLCB2YWwpOwo+ICsJCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc0X0xOKGxuLCBwb3J0 KSwgdmFsKTsKPiAgCX0KPiAgCj4gIAkvKiAzLiBTZXQgUE9SVF9DTF9EVzUgU1VTIENsb2NrIENv bmZpZyB0byAxMWIgKi8KPiAtLSAKPiAyLjE3LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4