From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mauro Carvalho Chehab Subject: Re: [PATCHv2 6/7] cec-pin-error-inj.rst: document CEC Pin Error Injection Date: Wed, 21 Mar 2018 12:45:52 -0300 Message-ID: <20180321124511.7e841256@vento.lan> References: <20180305135139.95652-1-hverkuil@xs4all.nl> <20180305135139.95652-7-hverkuil@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from osg.samsung.com (osg.samsung.com [64.30.133.232]) by gabe.freedesktop.org (Postfix) with ESMTP id 9099D6E933 for ; Wed, 21 Mar 2018 15:45:59 +0000 (UTC) In-Reply-To: <20180305135139.95652-7-hverkuil@xs4all.nl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans Verkuil Cc: Maxime Ripard , Wolfram Sang , Hans Verkuil , dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org RW0gTW9uLCAgNSBNYXIgMjAxOCAxNDo1MTozOCArMDEwMApIYW5zIFZlcmt1aWwgPGh2ZXJrdWls QHhzNGFsbC5ubD4gZXNjcmV2ZXU6Cgo+IEZyb206IEhhbnMgVmVya3VpbCA8aGFucy52ZXJrdWls QGNpc2NvLmNvbT4KPiAKPiBUaGUgQ0VDIFBpbiBmcmFtZXdvcmsgYWRkcyBzdXBwb3J0IGZvciBF cnJvciBJbmplY3Rpb24uCj4gCj4gRG9jdW1lbnQgYWxsIHRoZSBlcnJvciBpbmplY3Rpb25zIGNv bW1hbmRzIGFuZCBob3cgdG8gdXNlIGl0LgoKUGxlYXNlIG5vdGljZSB0aGF0IGFsbCBkZWJ1Z2Zz L3N5c2ZzIGVudHJpZXMgc2hvdWxkICphbHNvKiBiZQpkb2N1bWVudGVkIGF0IHRoZSBzdGFuZGFy ZCB3YXksIGUuIGcuIGJ5IGFkZGluZyB0aGUgY29ycmVzcG9uZGluZwpkb2N1bWVudGF0aW9uIGF0 IERvY3VtZW50YXRpb24vQUJJLgoKUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL0FCSS9SRUFETUUu CgpBZGRpdGlvbmFsbHksIHRoZXJlIGFyZSBhIGZldyBtaW5vciBuaXRwaWNrcyBvbiB0aGlzIHBh dGNoLgpTZWUgYmVsb3cuCgpUaGUgcmVtYWluaW5nIHBhdGNoZXMgbG9va2VkIG9rIG9uIG15IGV5 ZXMuCgpJJ2xsIHdhaXQgZm9yIGEgdjMgd2l0aCB0aGUgZGVidWdmcyBBQkkgZG9jdW1lbnRhdGlv biBpbiBvcmRlciB0byBtZXJnZQppdC4gRmVlbCBmcmVlIHRvIHB1dCBpdCBvbiBhIHNlcGFyYXRl IHBhdGNoLgoKUmVnYXJkcywKTWF1cm8KCj4gCj4gU2lnbmVkLW9mZi1ieTogSGFucyBWZXJrdWls IDxoYW5zLnZlcmt1aWxAY2lzY28uY29tPgo+IC0tLQo+ICAuLi4vbWVkaWEvY2VjLWRyaXZlcnMv Y2VjLXBpbi1lcnJvci1pbmoucnN0ICAgICAgICB8IDMyMiArKysrKysrKysrKysrKysrKysrKysK PiAgRG9jdW1lbnRhdGlvbi9tZWRpYS9jZWMtZHJpdmVycy9pbmRleC5yc3QgICAgICAgICAgfCAg IDEgKwo+ICBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCj4gIDMgZmlsZXMgY2hhbmdlZCwgMzI0IGluc2VydGlvbnMoKykKPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vbWVkaWEvY2VjLWRyaXZlcnMvY2VjLXBpbi1lcnJv ci1pbmoucnN0Cj4gCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbWVkaWEvY2VjLWRyaXZl cnMvY2VjLXBpbi1lcnJvci1pbmoucnN0IGIvRG9jdW1lbnRhdGlvbi9tZWRpYS9jZWMtZHJpdmVy cy9jZWMtcGluLWVycm9yLWluai5yc3QKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAwMDAwMC4uMjFiZGE4MzFkM2ZiCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL0RvY3VtZW50 YXRpb24vbWVkaWEvY2VjLWRyaXZlcnMvY2VjLXBpbi1lcnJvci1pbmoucnN0Cj4gQEAgLTAsMCAr MSwzMjIgQEAKPiArQ0VDIFBpbiBGcmFtZXdvcmsgRXJyb3IgSW5qZWN0aW9uCj4gKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQo+ICsKPiArVGhlIENFQyBQaW4gRnJhbWV3b3JrIGlz IGEgY29yZSBDRUMgZnJhbWV3b3JrIGZvciBDRUMgaGFyZHdhcmUgdGhhdCBvbmx5Cj4gK2hhcyBs b3ctbGV2ZWwgc3VwcG9ydCBmb3IgdGhlIENFQyBidXMuIE1vc3QgaGFyZHdhcmUgdG9kYXkgd2ls bCBoYXZlCj4gK2hpZ2gtbGV2ZWwgQ0VDIHN1cHBvcnQgd2hlcmUgdGhlIGhhcmR3YXJlIGRlYWxz IHdpdGggZHJpdmluZyB0aGUgQ0VDIGJ1cywKPiArYnV0IHNvbWUgb2xkZXIgZGV2aWNlcyBhcmVu J3QgdGhhdCBmYW5jeS4gSG93ZXZlciwgdGhpcyBmcmFtZXdvcmsgYWxzbwo+ICthbGxvd3MgeW91 IHRvIGNvbm5lY3QgdGhlIENFQyBwaW4gdG8gYSBHUElPIG9uIGUuZy4gYSBSYXNwYmVycnkgUGkg YW5kCj4gK3lvdSBjYW4gYmVjb21lIGFuIGluc3RhbnQgQ0VDIGFkYXB0ZXIuCj4gKwo+ICtXaGF0 IG1ha2VzIGRvaW5nIHRoaXMgc28gaW50ZXJlc3RpbmcgaXMgdGhhdCBzaW5jZSB3ZSBoYXZlIGZ1 bGwgY29udHJvbAo+ICtvdmVyIHRoZSBidXMgaXQgaXMgZWFzeSB0byBzdXBwb3J0IGVycm9yIGlu amVjdGlvbi4gVGhpcyBpcyBpZGVhbCB0bwo+ICt0ZXN0IGhvdyB3ZWxsIENFQyBhZGFwdGVycyBj YW4gaGFuZGxlIGVycm9yIGNvbmRpdGlvbnMuCj4gKwo+ICtDdXJyZW50bHkgb25seSB0aGUgY2Vj LWdwaW8gZHJpdmVyICh3aGVuIHRoZSBDRUMgbGluZSBpcyBkaXJlY3RseQo+ICtjb25uZWN0ZWQg dG8gYSBwdWxsLXVwIEdQSU8gbGluZSkgYW5kIHRoZSBBbGxXaW5uZXIgQTEwL0EyMCBkcm0gZHJp dmVyCj4gK3N1cHBvcnQgdGhpcyBmcmFtZXdvcmsuCj4gKwo+ICtJZiBgYENPTkZJR19DRUNfUElO X0VSUk9SX0lOSmBgIGlzIGVuYWJsZWQsIHRoZW4gZXJyb3IgaW5qZWN0aW9uIGlzIGF2YWlsYWJs ZQo+ICt0aHJvdWdoIGRlYnVnZnMuIFNwZWNpZmljYWxseSwgaW4gYGAvc3lzL2tlcm5lbC9kZWJ1 Zy9jZWMvY2VjWC9gYCB0aGVyZSBpcwo+ICtub3cgYW4gYGBlcnJvci1pbmpgYCBmaWxlLgo+ICsK PiArV2l0aCBgYGNhdCBlcnJvci1pbmpgYCB5b3UgY2FuIHNlZSBib3RoIHRoZSBwb3NzaWJsZSBj b21tYW5kcyBhbmQgdGhlIGN1cnJlbnQKPiArZXJyb3IgaW5qZWN0aW9uIHN0YXR1czoKPiArCj4g Ky4uIGNvZGUtYmxvY2s6OiBub25lCgpJdCBpcyB1c3VhbGx5IGJldHRlciB0byB1c2UgIjo6IiBp bnN0ZWFkIG9mICIuLiBjb2RlLWJsb2NrIi4KCj4gKwo+ICsJJCBjYXQgL3N5cy9rZXJuZWwvZGVi dWcvY2VjL2NlYzAvZXJyb3ItaW5qCj4gKwkjIENsZWFyIGVycm9yIGluamVjdGlvbnM6Cj4gKwkj ICAgY2xlYXIgICAgICAgICAgY2xlYXIgYWxsIHJ4IGFuZCB0eCBlcnJvciBpbmplY3Rpb25zCj4g KwkjICAgcngtY2xlYXIgICAgICAgY2xlYXIgYWxsIHJ4IGVycm9yIGluamVjdGlvbnMKPiArCSMg ICB0eC1jbGVhciAgICAgICBjbGVhciBhbGwgdHggZXJyb3IgaW5qZWN0aW9ucwo+ICsJIyAgIDxv cD4gY2xlYXIgICAgIGNsZWFyIGFsbCByeCBhbmQgdHggZXJyb3IgaW5qZWN0aW9ucyBmb3IgPG9w Pgo+ICsJIyAgIDxvcD4gcngtY2xlYXIgIGNsZWFyIGFsbCByeCBlcnJvciBpbmplY3Rpb25zIGZv ciA8b3A+Cj4gKwkjICAgPG9wPiB0eC1jbGVhciAgY2xlYXIgYWxsIHR4IGVycm9yIGluamVjdGlv bnMgZm9yIDxvcD4KPiArCSMKPiArCSMgUlggZXJyb3IgaW5qZWN0aW9uOgo+ICsJIyAgIDxvcD5b LDxtb2RlPl0gcngtbmFjayAgICAgICAgICAgICAgTkFDSyB0aGUgbWVzc2FnZSBpbnN0ZWFkIG9m IHNlbmRpbmcgYW4gQUNLCj4gKwkjICAgPG9wPlssPG1vZGU+XSByeC1sb3ctZHJpdmUgPGJpdD4g ICBmb3JjZSBhIGxvdy1kcml2ZSBjb25kaXRpb24gYXQgdGhpcyBiaXQgcG9zaXRpb24KPiArCSMg ICA8b3A+Wyw8bW9kZT5dIHJ4LWFkZC1ieXRlICAgICAgICAgIGFkZCBhIHNwdXJpb3VzIGJ5dGUg dG8gdGhlIHJlY2VpdmVkIENFQyBtZXNzYWdlCj4gKwkjICAgPG9wPlssPG1vZGU+XSByeC1yZW1v dmUtYnl0ZSAgICAgICByZW1vdmUgdGhlIGxhc3QgYnl0ZSBmcm9tIHRoZSByZWNlaXZlZCBDRUMg bWVzc2FnZQo+ICsJIyAgIDxvcD5bLDxtb2RlPl0gcngtYXJiLWxvc3QgPHBvbGw+ICAgZ2VuZXJh dGUgYSBQT0xMIG1lc3NhZ2UgdG8gdHJpZ2dlciBhbiBhcmJpdHJhdGlvbiBsb3N0Cj4gKwkjCj4g KwkjIFRYIGVycm9yIGluamVjdGlvbiBzZXR0aW5nczoKPiArCSMgICB0eC1pZ25vcmUtbmFjay11 bnRpbC1lb20gICAgICAgICAgIGlnbm9yZSBlYXJseSBOQUNLcyB1bnRpbCBFT00KPiArCSMgICB0 eC1jdXN0b20tbG93LXVzZWNzIDx1c2Vjcz4gICAgICAgIGRlZmluZSB0aGUgJ2xvdycgdGltZSBm b3IgdGhlIGN1c3RvbSBwdWxzZQo+ICsJIyAgIHR4LWN1c3RvbS1oaWdoLXVzZWNzIDx1c2Vjcz4g ICAgICAgZGVmaW5lIHRoZSAnaGlnaCcgdGltZSBmb3IgdGhlIGN1c3RvbSBwdWxzZQo+ICsJIyAg IHR4LWN1c3RvbS1wdWxzZSAgICAgICAgICAgICAgICAgICAgdHJhbnNtaXQgdGhlIGN1c3RvbSBw dWxzZSBvbmNlIHRoZSBidXMgaXMgaWRsZQo+ICsJIwo+ICsJIyBUWCBlcnJvciBpbmplY3Rpb246 Cj4gKwkjICAgPG9wPlssPG1vZGU+XSB0eC1uby1lb20gICAgICAgICAgICBkb24ndCBzZXQgdGhl IEVPTSBiaXQKPiArCSMgICA8b3A+Wyw8bW9kZT5dIHR4LWVhcmx5LWVvbSAgICAgICAgIHNldCB0 aGUgRU9NIGJpdCBvbmUgYnl0ZSB0b28gc29vbgo+ICsJIyAgIDxvcD5bLDxtb2RlPl0gdHgtYWRk LWJ5dGVzIDxudW0+ICAgYXBwZW5kIDxudW0+ICgxLTI1NSkgc3B1cmlvdXMgYnl0ZXMgdG8gdGhl IG1lc3NhZ2UKPiArCSMgICA8b3A+Wyw8bW9kZT5dIHR4LXJlbW92ZS1ieXRlICAgICAgIGRyb3Ag dGhlIGxhc3QgYnl0ZSBmcm9tIHRoZSBtZXNzYWdlCj4gKwkjICAgPG9wPlssPG1vZGU+XSB0eC1z aG9ydC1iaXQgPGJpdD4gICBtYWtlIHRoaXMgYml0IHNob3J0ZXIgdGhhbiBhbGxvd2VkCj4gKwkj ICAgPG9wPlssPG1vZGU+XSB0eC1sb25nLWJpdCA8Yml0PiAgICBtYWtlIHRoaXMgYml0IGxvbmdl ciB0aGFuIGFsbG93ZWQKPiArCSMgICA8b3A+Wyw8bW9kZT5dIHR4LWN1c3RvbS1iaXQgPGJpdD4g IHNlbmQgdGhlIGN1c3RvbSBwdWxzZSBpbnN0ZWFkIG9mIHRoaXMgYml0Cj4gKwkjICAgPG9wPlss PG1vZGU+XSB0eC1zaG9ydC1zdGFydCAgICAgICBzZW5kIGEgc3RhcnQgcHVsc2UgdGhhdCdzIHRv byBzaG9ydAo+ICsJIyAgIDxvcD5bLDxtb2RlPl0gdHgtbG9uZy1zdGFydCAgICAgICAgc2VuZCBh IHN0YXJ0IHB1bHNlIHRoYXQncyB0b28gbG9uZwo+ICsJIyAgIDxvcD5bLDxtb2RlPl0gdHgtY3Vz dG9tLXN0YXJ0ICAgICAgc2VuZCB0aGUgY3VzdG9tIHB1bHNlIGluc3RlYWQgb2YgdGhlIHN0YXJ0 IHB1bHNlCj4gKwkjICAgPG9wPlssPG1vZGU+XSB0eC1sYXN0LWJpdCA8Yml0PiAgICBzdG9wIHNl bmRpbmcgYWZ0ZXIgdGhpcyBiaXQKPiArCSMgICA8b3A+Wyw8bW9kZT5dIHR4LWxvdy1kcml2ZSA8 Yml0PiAgIGZvcmNlIGEgbG93LWRyaXZlIGNvbmRpdGlvbiBhdCB0aGlzIGJpdCBwb3NpdGlvbgo+ ICsJIwo+ICsJIyA8b3A+ICAgICAgIENFQyBtZXNzYWdlIG9wY29kZSAoMC0yNTUpIG9yICdhbnkn Cj4gKwkjIDxtb2RlPiAgICAgJ29uY2UnIChkZWZhdWx0KSwgJ2Fsd2F5cycsICd0b2dnbGUnIG9y ICdvZmYnCj4gKwkjIDxiaXQ+ICAgICAgQ0VDIG1lc3NhZ2UgYml0ICgwLTE1OSkKPiArCSMgICAg ICAgICAgICAxMCBiaXRzIHBlciAnYnl0ZSc6IGJpdHMgMC03OiBkYXRhLCBiaXQgODogRU9NLCBi aXQgOTogQUNLCj4gKwkjIDxwb2xsPiAgICAgQ0VDIHBvbGwgbWVzc2FnZSB1c2VkIHRvIHRlc3Qg YXJiaXRyYXRpb24gbG9zdCAoMHgwMC0weGZmLCBkZWZhdWx0IDB4MGYpCj4gKwkjIDx1c2Vjcz4g ICAgbWljcm9zZWNvbmRzICgwLTEwMDAwMDAwLCBkZWZhdWx0IDEwMDApCj4gKwo+ICsJY2xlYXIK PiArCj4gK1lvdSBjYW4gd3JpdGUgZXJyb3IgaW5qZWN0aW9uIGNvbW1hbmRzIHRvIGBgZXJyb3It aW5qYGAgdXNpbmcgYGBlY2hvICdjbWQnID5lcnJvci1pbmpgYAo+ICtvciBgYGNhdCBjbWQudHh0 ID5lcnJvci1pbmpgYC4gVGhlIGBgY2F0IGVycm9yLWluamBgIG91dHB1dCBjb250YWlucyB0aGUg Y3VycmVudAo+ICtlcnJvciBjb21tYW5kcy4gWW91IGNhbiBzYXZlIHRoZSBvdXRwdXQgdG8gYSBm aWxlIGFuZCB1c2UgaXQgYXMgYW4gaW5wdXQgdG8KPiArYGBlcnJvci1pbmpgYCBsYXRlci4KClBs ZWFzZSB3b3JkLXdyYXAgaXQgdG8gZml0IGludG8gODAgY29sdW1ucyAoYWN0dWFsbHksIGl0IGlz IGJldHRlciB0byB1c2UKc29tZXRoaW5nIGxvd2VyIHRoYW4gdGhhdCwgbGlrZSA3MiwgYXMgaXQg bWFrZXMgZWFzaWVyIHRvIGRvIHNtYWxsCmFkanVzdG1lbnRzIHdpdGhvdXQgbmVlZGluZyB0byBj aGFuZ2UgYW4gZW50aXJlIHRleHQgYmxvY2suCgooU2FtZSBhcHBsaWVzIHRvIG90aGVyIHBhcnRz IG9mIHRoaXMgcGF0Y2gpCgoKClRoYW5rcywKTWF1cm8KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from osg.samsung.com ([64.30.133.232]:62616 "EHLO osg.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751714AbeCUPp7 (ORCPT ); Wed, 21 Mar 2018 11:45:59 -0400 Date: Wed, 21 Mar 2018 12:45:52 -0300 From: Mauro Carvalho Chehab To: Hans Verkuil Cc: linux-media@vger.kernel.org, Wolfram Sang , Maxime Ripard , dri-devel@lists.freedesktop.org, Hans Verkuil Subject: Re: [PATCHv2 6/7] cec-pin-error-inj.rst: document CEC Pin Error Injection Message-ID: <20180321124511.7e841256@vento.lan> In-Reply-To: <20180305135139.95652-7-hverkuil@xs4all.nl> References: <20180305135139.95652-1-hverkuil@xs4all.nl> <20180305135139.95652-7-hverkuil@xs4all.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org List-ID: Em Mon, 5 Mar 2018 14:51:38 +0100 Hans Verkuil escreveu: > From: Hans Verkuil > > The CEC Pin framework adds support for Error Injection. > > Document all the error injections commands and how to use it. Please notice that all debugfs/sysfs entries should *also* be documented at the standard way, e. g. by adding the corresponding documentation at Documentation/ABI. Please see Documentation/ABI/README. Additionally, there are a few minor nitpicks on this patch. See below. The remaining patches looked ok on my eyes. I'll wait for a v3 with the debugfs ABI documentation in order to merge it. Feel free to put it on a separate patch. Regards, Mauro > > Signed-off-by: Hans Verkuil > --- > .../media/cec-drivers/cec-pin-error-inj.rst | 322 +++++++++++++++++++++ > Documentation/media/cec-drivers/index.rst | 1 + > MAINTAINERS | 1 + > 3 files changed, 324 insertions(+) > create mode 100644 Documentation/media/cec-drivers/cec-pin-error-inj.rst > > diff --git a/Documentation/media/cec-drivers/cec-pin-error-inj.rst b/Documentation/media/cec-drivers/cec-pin-error-inj.rst > new file mode 100644 > index 000000000000..21bda831d3fb > --- /dev/null > +++ b/Documentation/media/cec-drivers/cec-pin-error-inj.rst > @@ -0,0 +1,322 @@ > +CEC Pin Framework Error Injection > +================================= > + > +The CEC Pin Framework is a core CEC framework for CEC hardware that only > +has low-level support for the CEC bus. Most hardware today will have > +high-level CEC support where the hardware deals with driving the CEC bus, > +but some older devices aren't that fancy. However, this framework also > +allows you to connect the CEC pin to a GPIO on e.g. a Raspberry Pi and > +you can become an instant CEC adapter. > + > +What makes doing this so interesting is that since we have full control > +over the bus it is easy to support error injection. This is ideal to > +test how well CEC adapters can handle error conditions. > + > +Currently only the cec-gpio driver (when the CEC line is directly > +connected to a pull-up GPIO line) and the AllWinner A10/A20 drm driver > +support this framework. > + > +If ``CONFIG_CEC_PIN_ERROR_INJ`` is enabled, then error injection is available > +through debugfs. Specifically, in ``/sys/kernel/debug/cec/cecX/`` there is > +now an ``error-inj`` file. > + > +With ``cat error-inj`` you can see both the possible commands and the current > +error injection status: > + > +.. code-block:: none It is usually better to use "::" instead of ".. code-block". > + > + $ cat /sys/kernel/debug/cec/cec0/error-inj > + # Clear error injections: > + # clear clear all rx and tx error injections > + # rx-clear clear all rx error injections > + # tx-clear clear all tx error injections > + # clear clear all rx and tx error injections for > + # rx-clear clear all rx error injections for > + # tx-clear clear all tx error injections for > + # > + # RX error injection: > + # [,] rx-nack NACK the message instead of sending an ACK > + # [,] rx-low-drive force a low-drive condition at this bit position > + # [,] rx-add-byte add a spurious byte to the received CEC message > + # [,] rx-remove-byte remove the last byte from the received CEC message > + # [,] rx-arb-lost generate a POLL message to trigger an arbitration lost > + # > + # TX error injection settings: > + # tx-ignore-nack-until-eom ignore early NACKs until EOM > + # tx-custom-low-usecs define the 'low' time for the custom pulse > + # tx-custom-high-usecs define the 'high' time for the custom pulse > + # tx-custom-pulse transmit the custom pulse once the bus is idle > + # > + # TX error injection: > + # [,] tx-no-eom don't set the EOM bit > + # [,] tx-early-eom set the EOM bit one byte too soon > + # [,] tx-add-bytes append (1-255) spurious bytes to the message > + # [,] tx-remove-byte drop the last byte from the message > + # [,] tx-short-bit make this bit shorter than allowed > + # [,] tx-long-bit make this bit longer than allowed > + # [,] tx-custom-bit send the custom pulse instead of this bit > + # [,] tx-short-start send a start pulse that's too short > + # [,] tx-long-start send a start pulse that's too long > + # [,] tx-custom-start send the custom pulse instead of the start pulse > + # [,] tx-last-bit stop sending after this bit > + # [,] tx-low-drive force a low-drive condition at this bit position > + # > + # CEC message opcode (0-255) or 'any' > + # 'once' (default), 'always', 'toggle' or 'off' > + # CEC message bit (0-159) > + # 10 bits per 'byte': bits 0-7: data, bit 8: EOM, bit 9: ACK > + # CEC poll message used to test arbitration lost (0x00-0xff, default 0x0f) > + # microseconds (0-10000000, default 1000) > + > + clear > + > +You can write error injection commands to ``error-inj`` using ``echo 'cmd' >error-inj`` > +or ``cat cmd.txt >error-inj``. The ``cat error-inj`` output contains the current > +error commands. You can save the output to a file and use it as an input to > +``error-inj`` later. Please word-wrap it to fit into 80 columns (actually, it is better to use something lower than that, like 72, as it makes easier to do small adjustments without needing to change an entire text block. (Same applies to other parts of this patch) Thanks, Mauro