From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 2/3] drm/dp: Adjust i2c-over-aux retry count based on message size and i2c bus speed Date: Tue, 1 Sep 2015 17:11:45 +0200 Message-ID: <20150901151145.GR1367@phenom.ffwll.local> References: <1440514590-30837-1-git-send-email-ville.syrjala@linux.intel.com> <1440618907-11169-1-git-send-email-ville.syrjala@linux.intel.com> <1440618907-11169-2-git-send-email-ville.syrjala@linux.intel.com> <20150901091443.GJ1367@phenom.ffwll.local> <20150901111301.GE29811@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4D4F56E0DC for ; Tue, 1 Sep 2015 08:11:51 -0700 (PDT) Received: by wicge5 with SMTP id ge5so10850023wic.0 for ; Tue, 01 Sep 2015 08:11:49 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150901111301.GE29811@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 =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: moosotc@gmail.com, dri-devel@lists.freedesktop.org, Simon Farnsworth List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBTZXAgMDEsIDIwMTUgYXQgMDI6MTM6MDFQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgU2VwIDAxLCAyMDE1IGF0IDExOjE0OjQzQU0gKzAyMDAsIERhbmll bCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBXZWQsIEF1ZyAyNiwgMjAxNSBhdCAxMDo1NTowNlBNICsw MzAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+ID4gRnJvbTogVmls bGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gCj4gPiA+ IENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIHJldHJpZXMgd2Ugc2hvdWxkIGRvIGZvciBlYWNoIGky Yy1vdmVyLWF1eAo+ID4gPiBtZXNzYWdlIGJhc2VkIG9uIHRoZSB0aW1lIGl0IHRha2VzIHRvIHBl cmZvcm0gdGhlIGkyYyB0cmFuc2ZlciB2cy4gdGhlCj4gPiA+IGF1eCB0cmFuc2Zlci4gV2UgYXNz dW1lIHRoZSBzaG9ydGVzdCBwb3NzaWJsZSBsZW5ndGggZm9yIHRoZSBhdXgKPiA+ID4gdHJhbnNm ZXIsIGFuZCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSAoZXhsdWRpbmcgY2xvY2sgc3RyZXRjaGluZykg Zm9yIHRoZQo+ID4gPiBpMmMgdHJhbnNmZXIuCj4gPiA+IAo+ID4gPiBUaGUgRFAgc3BlYyBoYXMg c29tZSBleGFtcGxlcyBvbiBob3cgdG8gY2FsY3VsYXRlIHRoaXMsIGJ1dCB3ZSBkb24ndAo+ID4g PiBjYWxjdWxhdGUgdGhpbmdzIHF1aXRlIHRoZSBzYW1lIHdheS4gVGhlIHNwZWMgZG9lc24ndCBh Y2NvdW50IGZvciB0aGUKPiA+ID4gcmV0cnkgaW50ZXJ2YWwgKGFzc3VtZXMgaW1tZWRpYXRlIHJl dHJ5IG9uIGRlZmVyKSwgYW5kIGRvZXNuJ3QgYXNzdW1lCj4gPiA+IHRoZSBiZXN0L3dvcnN0IGNh c2UgYmVoYXZpb3VyIGFzIHdlIGRvLgo+ID4gPiAKPiA+ID4gTm90ZSB0aGF0IGN1cnJlbnRseSB3 ZSBhc3N1bWUgMTAga0h6IHNwZWVkIGZvciB0aGUgaTJjIGJ1cy4gU29tZSByZWFsCj4gPiA+IHdv cmxkIGRldmljZXMgKGVnLiBzb21lIEFwcGxlIERQLT5WR0EgZG9uZ2xlKSBmYWlscyB3aXRoIGxl c3MgdGhhbiAxNgo+ID4gPiByZXRyaWVzLiBhbmQgdGhhdCB3b3VsZCBjb3JyZXNwb25kIHRvIHNv bWV0aGluZyBjbG9zZSB0byAxNSBrSHogKHdpdGgKPiA+ID4gb3VyIG1ldGhvZCBvZiBjYWxjdWxh dGluZyB0aGluZ3MpIEJ1dCBsZXQncyBqdXN0IGdvIGZvciAxMCBrSHogdG8gYmUKPiA+ID4gb24g dGhlIHNhZmUgc2lkZS4gSWRlYWxseSB3ZSBzaG91bGQgcXVlcnkvc2V0IHRoZSBpMmMgYnVzIHNw ZWVkIHZpYQo+ID4gPiBEUENEIGJ1dCBmb3Igbm93IHRoaXMgc2hvdWxkIGF0IGxlYWFzdCByZW1v dmUgdGhlIHJlZ3Jlc3Npb24gZnJvbSB0aGUKPiA+ID4gMS0+MTYgYnl0ZSB0cmFzbmZlciBzaXpl IGNoYW5nZS4gQW5kIG9mIGNvdXJzZSBpZiB0aGUgc2luayBjb21wbGV0ZXMKPiA+ID4gdGhlIHRy YW5zZmVyIHF1aWNrZXIgdGhpcyBzaG91bGRuJ3Qgc2xvdyB0aGluZ3MgZG93biBzaW5jZSB3ZSBk b24ndAo+ID4gPiBjaGFuZ2UgdGhlIGludGVydmFsIGJldHdlZW4gcmV0cmllcy4KPiA+ID4gCj4g PiA+IEkgZGlkIGEgZmV3IGV4cGVyaW1lbnRzIHdpdGggYSBEUC0+RFZJIGRvbmdsZSBJIGhhdmUg dGhhdCBhbGxvd3MgeW91Cj4gPiA+IHRvIGNoYW5nZSB0aGUgaTJjIGJ1cyBzcGVlZC4gSGVyZSBh cmUgdGhlIHJlc3VsdHMgb2YgbWUgY2hhbmdpbmcgdGhlCj4gPiA+IGFjdHVhbCBidXMgc3BlZWQg YW5kIHRoZSBhc3N1bWVkIGJ1cyBzcGVlZCBhbmQgc2VlaW5nIHdoZW4gd2Ugc3RhcnQKPiA+ID4g dG8gZmFpbCB0aGUgb3BlcmF0aW9uOgo+ID4gPiAKPiA+ID4gYWN0dWFsIGkyYyBraHogICAgICAg ICAgYXNzdW1lZCBpMmMga2h6ICAgICAgICAgbWF4IHJldHJpZXMKPiA+ID4gMSAgICAgICAgICAg ICAgICAgICAgICAgMSBvayAtPiAyIGZhaWwgICAgICAgICAgMjExIG9rIC0+IDEwNiBmYWlsCj4g PiA+IDUgICAgICAgICAgICAgICAgICAgICAgIDggb2sgLT4gOSBmYWlsICAgICAgICAgIDI3IG9r IC0+IDI0IGZhaWwKPiA+ID4gMTAgICAgICAgICAgICAgICAgICAgICAgMTcgb2sgLT4gMTggZmFp bCAgICAgICAgMTMgb2sgLT4gMTIgZmFpbAo+ID4gPiAxMDAgICAgICAgICAgICAgICAgICAgICAy MTAgb2sgLT4gMjExIGZhaWwgICAgICAyIG9rIC0+IDEgZmFpbAo+ID4gPiAKPiA+ID4gU28gYmFz ZWQgb24gdGhhdCB3ZSBoYXZlIGEgZmFpcmx5IGRlY2VudCBzYWZldHkgbWFyZ2luIGJha2VkIGlu dG8KPiA+ID4gdGhlIGZvcm11bGEgdG8gY2FsY3VsYXRlIHRoZSBtYXggbnVtYmVyIG9mIHJldHJp ZXMuCj4gPiA+IAo+ID4gPiBGaXhlcyBhIHJlZ3Jlc3Npb24gd2l0aCBzb21lIERQIGRvbmdsZXMg ZnJvbToKPiA+ID4gY29tbWl0IDFkMDAyZmE3MjA3MzhiY2QwYmRkYjkxNzhlOWVhMDc3MzI4OGUx ZGQKPiA+ID4gQXV0aG9yOiBTaW1vbiBGYXJuc3dvcnRoIDxzaW1vbi5mYXJuc3dvcnRoQG9uZWxh bi5jby51az4KPiA+ID4gRGF0ZTogICBUdWUgRmViIDEwIDE4OjM4OjA4IDIwMTUgKzAwMDAKPiA+ ID4gCj4gPiA+ICAgICBkcm0vZHA6IFVzZSBsYXJnZSB0cmFuc2FjdGlvbnMgZm9yIEkyQyBvdmVy IEFVWAo+ID4gPiAKPiA+ID4gdjI6IFVzZSBiZXN0IGNhc2UgZm9yIEFVWCBhbmQgd29yc3QgY2Fz ZSBmb3IgaTJjIChTaW1vbiBGYXJuc3dvcnRoKQo+ID4gPiAgICAgQWRkIGEgZGVmaW5lIG91ciBB VVggcmV0cnkgaW50ZXJ2YWwgYW5kIGFjY291bnQgZm9yIGl0Cj4gPiA+IAo+ID4gPiBDYzogU2lt b24gRmFybnN3b3J0aCA8c2ltb24uZmFybnN3b3J0aEBvbmVsYW4uY29tPgo+ID4gPiBDYzogbW9v c290Y0BnbWFpbC5jb20KPiA+ID4gVGVzdGVkLWJ5OiBtb29zb3RjQGdtYWlsLmNvbQo+ID4gPiBC dWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE0 NTEKPiA+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hl bHBlci5jIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ ID4gIDEgZmlsZSBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4g PiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCj4gPiA+IGluZGV4IDcwNjllNTQuLjIzYjlm Y2MgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMKPiA+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYwo+ID4gPiBAQCAtNDI0LDYg KzQyNCw3OCBAQCBzdGF0aWMgdTMyIGRybV9kcF9pMmNfZnVuY3Rpb25hbGl0eShzdHJ1Y3QgaTJj X2FkYXB0ZXIgKmFkYXB0ZXIpCj4gPiA+ICAJICAgICAgIEkyQ19GVU5DXzEwQklUX0FERFI7Cj4g PiA+ICB9Cj4gPiA+ICAKPiA+ID4gKyNkZWZpbmUgQVVYX1BSRUNIQVJHRV9MRU4gMTAgLyogMTAg dG8gMTYgKi8KPiA+ID4gKyNkZWZpbmUgQVVYX1NZTkNfTEVOICgxNiArIDQpIC8qIHByZWFtYmxl ICsgQVVYX1NZTkNfRU5EICovCj4gPiA+ICsjZGVmaW5lIEFVWF9TVE9QX0xFTiA0Cj4gPiA+ICsj ZGVmaW5lIEFVWF9DTURfTEVOIDQKPiA+ID4gKyNkZWZpbmUgQVVYX0FERFJFU1NfTEVOIDIwCj4g PiA+ICsjZGVmaW5lIEFVWF9SRVBMWV9QQURfTEVOIDQKPiA+ID4gKyNkZWZpbmUgQVVYX0xFTkdU SF9MRU4gOAo+ID4gPiArCj4gPiA+ICsvKgo+ID4gPiArICogQ2FsY3VsYXRlIHRoZSBsZW5ndGgg b2YgdGhlIEFVWCByZXF1ZXN0L3JlcGx5LiBHaXZlcyB0aGUgImJlc3QiCj4gPiA+ICsgKiBjYXNl IGVzdGltYXRlLCBpZS4gc3VjY2Vzc2Z1bCB3aGlsZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4KPiA+ ID4gKyAqLwo+ID4gPiArc3RhdGljIGludCBkcm1fZHBfYXV4X3JlcV9sZW4oY29uc3Qgc3RydWN0 IGRybV9kcF9hdXhfbXNnICptc2cpCj4gPiA+ICt7Cj4gPiA+ICsJaW50IGxlbiA9IEFVWF9QUkVD SEFSR0VfTEVOICsgQVVYX1NZTkNfTEVOICsgQVVYX1NUT1BfTEVOICsKPiA+ID4gKwkJQVVYX0NN RF9MRU4gKyBBVVhfQUREUkVTU19MRU4gKyBBVVhfTEVOR1RIX0xFTjsKPiA+ID4gKwo+ID4gPiAr CWlmICgobXNnLT5yZXF1ZXN0ICYgRFBfQVVYX0kyQ19SRUFEKSA9PSAwKQo+ID4gPiArCQlsZW4g Kz0gbXNnLT5zaXplICogODsKPiA+ID4gKwo+ID4gPiArCXJldHVybiBsZW47Cj4gPiA+ICt9Cj4g PiA+ICsKPiA+ID4gK3N0YXRpYyBpbnQgZHJtX2RwX2F1eF9yZXBseV9sZW4oY29uc3Qgc3RydWN0 IGRybV9kcF9hdXhfbXNnICptc2cpCj4gPiA+ICt7Cj4gPiA+ICsJaW50IGxlbiA9IEFVWF9QUkVD SEFSR0VfTEVOICsgQVVYX1NZTkNfTEVOICsgQVVYX1NUT1BfTEVOICsKPiA+ID4gKwkJQVVYX0NN RF9MRU4gKyBBVVhfUkVQTFlfUEFEX0xFTjsKPiA+ID4gKwo+ID4gPiArCS8qCj4gPiA+ICsJICog Rm9yIHJlYWQgd2UgZXhwZWN0IHdoYXQgd2FzIGFza2VkLiBGb3Igd3JpdGVzIHRoZXJlIHdpbGwK PiA+ID4gKwkgKiBiZSAwIG9yIDEgZGF0YSBieXRlcy4gQXNzdW1lIDAgZm9yIHRoZSAiYmVzdCIg Y2FzZS4KPiA+ID4gKwkgKi8KPiA+ID4gKwlpZiAobXNnLT5yZXF1ZXN0ICYgRFBfQVVYX0kyQ19S RUFEKQo+ID4gPiArCQlsZW4gKz0gbXNnLT5zaXplICogODsKPiA+ID4gKwo+ID4gPiArCXJldHVy biBsZW47Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgSTJDX1NUQVJUX0xFTiAxCj4g PiA+ICsjZGVmaW5lIEkyQ19TVE9QX0xFTiAxCj4gPiA+ICsjZGVmaW5lIEkyQ19BRERSX0xFTiA5 IC8qIEFERFJFU1MgKyBSL1cgKyBBQ0svTkFDSyAqLwo+ID4gPiArI2RlZmluZSBJMkNfREFUQV9M RU4gOSAvKiBEQVRBICsgQUNLL05BQ0sgKi8KPiA+ID4gKwo+ID4gPiArLyoKPiA+ID4gKyAqIENh bGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHRoZSBpMmMgdHJhbnNmZXIgKGluIEFVWCBjbG9ja3MpCj4g PiA+ICsgKiBhc3N1bWluZyB0aGUgaTJjIGJ1cyBzcGVlZCBpcyBhcyBzcGVjaWZpZWQuIEdpdmVz IHRoZSB0aGUKPiA+ID4gKyAqICJ3b3JzdCIgY2FzZSBlc3RpbWF0ZSwgaWUuIHN1Y2Nlc3NmdWwg d2hpbGUgYXMgbG9uZyBhcyBwb3NzaWJsZS4KPiA+ID4gKyAqIERvZXNuJ3QgYWNjb3VudCB0aGUg dGhlICJNT1QiIGJpdCwgYW5kIGluc3RlYWQgYXNzdW1lcyBlYWNoCj4gPiA+ICsgKiBtZXNzYWdl IGluY2x1ZGVzIGEgU1RBUlQsIEFERFJFU1MgYW5kIFNUT1AuIE5laXRoZXIgZG9lcyBpdAo+ID4g PiArICogYWNjb3VudCBmb3IgYWRkaXRpb25hbCByYW5kb20gdmFyaWFibGVzIHN1Y2ggYXMgY2xv Y2sgc3RyZXRjaGluZy4KPiA+ID4gKyAqLwo+ID4gPiArc3RhdGljIGludCBkcm1fZHBfaTJjX21z Z19sZW4oY29uc3Qgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2csCj4gPiA+ICsJCQkgICAgICBp bnQgaTJjX3NwZWVkX2toeikKPiA+ID4gK3sKPiA+ID4gKwlyZXR1cm4gKEkyQ19TVEFSVF9MRU4g KyBJMkNfQUREUl9MRU4gKyBtc2ctPnNpemUgKiBJMkNfREFUQV9MRU4gKwo+ID4gPiArCQlJMkNf U1RPUF9MRU4pICogMTAwMCAvIGkyY19zcGVlZF9raHo7Cj4gPiAKPiA+IFRoaXMgZG9lc24ndCBz ZWVtIHRvIGNvbXB1dGUgdGhlIGxlbmdodCwgYnV0IHRoZSB0aW1lIGEgdHJhbnNmZXIgdGFrZXMs IGluCj4gPiB1c2VjIChpZiBJIGhhdmVuJ3Qgc2NyZXdlZCB1cCBteSBudW1iZXJzIC4uLikuIEFs c28gRElWX1JPVU5EX0RPV04gdG8gbWFrZQo+ID4gdGhlIGRlZmVuc2l2ZW5lc3MgY2xlYXI/Cj4g Cj4gV2VsbCBpdCBzdGFydGVkIG91dCBhcyBsZW5ndGgsIGFuZCB0aGVuIEkgZmlndXJlZCBJJ2xs IGp1c3Qgc2hvdmUgdGhlCj4gaTJjLT5hdXggdW5pdCBjb252ZXJzaW9uIGluIGhlcmUuIEl0J3Mg YSBsZW5ndGggaW4gdGltZSBpZiB5b3Ugd2lsbCA7KQo+IAo+IEFuZCBpdCBzaG91bGQgcmF0aGVy IGJlIERJVl9ST1VORF9VUCgpIHNpbmNlIHdlIHdhbnQgdGhlICJtYXhpbXVtIiBoZXJlLgoKSG0g cmlnaHQsIG1peGVkIHRoYXQgdXAuCgo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICsvKgo+ID4gPiAr ICogRGV0ZXJpbmUgaG93IG1hbnkgcmV0cmllcyBzaG91bGQgYmUgYXR0ZW1wdGVkIHRvIHN1Y2Nl c3NmdWxseSB0cmFuc2Zlcgo+ID4gCj4gPiBEZXRlcmlfbV9lLgo+ID4gCj4gPiA+ICsgKiB0aGUg c3BlY2lmaWVkIG1lc3NhZ2UsIGJhc2VkIG9uIHRoZSBlc3RpbWF0ZWQgZHVyYXRpb25zIG9mIHRo ZQo+ID4gPiArICogaTJjIGFuZCBBVVggdHJhbnNmZXJzLgo+ID4gPiArICovCj4gPiA+ICtzdGF0 aWMgaW50IGRybV9kcF9pMmNfcmV0cnlfY291bnQoY29uc3Qgc3RydWN0IGRybV9kcF9hdXhfbXNn ICptc2csCj4gPiA+ICsJCQkgICAgICBpbnQgaTJjX3NwZWVkX2toeikKPiA+ID4gK3sKPiA+ID4g KwlpbnQgYXV4X2xlbiA9IGRybV9kcF9hdXhfcmVxX2xlbihtc2cpICsgZHJtX2RwX2F1eF9yZXBs eV9sZW4obXNnKTsKPiA+ID4gKwlpbnQgaTJjX2xlbiA9IGRybV9kcF9pMmNfbXNnX2xlbihtc2cs IGkyY19zcGVlZF9raHopOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIERJVl9ST1VORF9VUChpMmNf bGVuLCBhdXhfbGVuICsgQVVYX1JFVFJZX0lOVEVSVkFMKTsKPiA+IAo+ID4gU28gYXNzdW1pbmcg SSBnZXQgdGhpbmdzIHJpZ2h0IGkyY19sZW4gaXMgYWN0dWFsbHkgaTJjX3RpbWVfdXMsIGJ1dAo+ ID4gYXV4X2xlbiBpcyBzdGlsbCBqdXN0IGEgbGVuZ3RoIChhbmQgc2luY2UgdGhlIGJ1cyBydW5z IGF0IDJNSHogaXQgZG9lc24ndAo+ID4gc2VlbSB0byBqdXN0IGFkZCB1cCBjb3JyZWN0bHkpLgo+ IAo+IEFVWCBiaXRyYXRlIGlzIDFNSHoKClJpZ2h0IEkgcmVtZW1iZXJlZCBvbmx5IHRoYXQgd2Ug bmVlZCB0byBwdXQgaW4gdGhlIGNsb2NrIGRpdmlkZXIgZm9yIDJNSHoKZm9yIGludGVsIGRwIGF1 eCB0cmFuc2ZlcnMgYW5kIGdvdCBjb25mdXNlZCBieSB0aGF0IGh3IHJlcXVpcmVtZW50LgoKU3Rp bGwgYSBjb21tZW50IHRoYXQgdGhlIGF1eCBjbG9jayBpcyAxTUh6IHBsdXMgcmVuYW1pbmcgYXV4 X2xlbiB0bwphdXhfdGltZV91c2VjcyB3b3VsZCBiZSBncmVhdCBmb3IgY2xhcml0eS4KClRoYW5r cywgRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=