Linux Samsung SOC development
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil@xs4all.nl>
To: Kamil Debski <kamil@wypas.org>
Cc: linux-samsung-soc@vger.kernel.org,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	sean@mess.org, Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	lars@opdenkamp.eu, dri-devel@lists.freedesktop.org,
	Hans Verkuil <hansverk@cisco.com>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Hans Verkuil <hans.verkuil@cisco.com>,
	thomas@tommie-lie.de, linux-input@vger.kernel.org,
	linux-media@vger.kernel.org,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCHv9 14/15] cec: s5p-cec: Add s5p-cec driver
Date: Mon, 12 Oct 2015 14:39:42 +0200	[thread overview]
Message-ID: <561BAA0E.4040905@xs4all.nl> (raw)
In-Reply-To: <CAP3TMiFj47GMYEqnNTXQv3vKbwnDGKhRDcMrwTY42RVUH-_d4Q@mail.gmail.com>

On 10/12/2015 02:33 PM, Kamil Debski wrote:
> Hi,
> 
> On 12 October 2015 at 12:50, Hans Verkuil <hverkuil@xs4all.nl> wrote:
>> On 10/06/2015 12:32 AM, Russell King - ARM Linux wrote:
>>> On Mon, Sep 07, 2015 at 03:44:43PM +0200, Hans Verkuil wrote:
>>>> +    if (status & CEC_STATUS_TX_DONE) {
>>>> +            if (status & CEC_STATUS_TX_ERROR) {
>>>> +                    dev_dbg(cec->dev, "CEC_STATUS_TX_ERROR set\n");
>>>> +                    cec->tx = STATE_ERROR;
>>>> +            } else {
>>>> +                    dev_dbg(cec->dev, "CEC_STATUS_TX_DONE\n");
>>>> +                    cec->tx = STATE_DONE;
>>>> +            }
>>>> +            s5p_clr_pending_tx(cec);
>>>> +    }
>>>
>>> Your CEC implementation seems to be written around the idea that there
>>> are only two possible outcomes from a CEC message - "done" and "error",
>>> which get translated to:
>>
>> This code is for the Samsung exynos CEC implementation. Marek, is this all
>> that the exynos CEC hardware returns?
> 
> The possible status values that are implemented in the CEC framework
> are following:
> 
> +/* cec status field */
> +#define CEC_TX_STATUS_OK               (0)
> +#define CEC_TX_STATUS_ARB_LOST         (1 << 0)
> +#define CEC_TX_STATUS_RETRY_TIMEOUT    (1 << 1)
> +#define CEC_TX_STATUS_FEATURE_ABORT    (1 << 2)
> +#define CEC_TX_STATUS_REPLY_TIMEOUT    (1 << 3)
> +#define CEC_RX_STATUS_READY            (0)
> 
> The only two ones I could match with the Exynos CEC module status bits are
> CEC_TX_STATUS_OK and  CEC_TX_STATUS_RETRY_TIMEOUT.
> 
> The status bits in Exynos HW are:
> - Tx_Error
> - Tx_Done
> - Tx_Transferring
> - Tx_Running
> - Tx_Bytes_Transferred
> 
> - Tx_Wait
> - Tx_Sending_Status_Bit
> - Tx_Sending_Hdr_Blk
> - Tx_Sending_Data_Blk
> - Tx_Latest_Initiator
> 
> - Tx_Wait_SFT_Succ
> - Tx_Wait_SFT_New
> - Tx_Wait_SFT_Retran
> - Tx_Retrans_Cnt
> - Tx_ACK_Failed

So are these all intermediate states? And every transfer always ends with Tx_Done or
Tx_Error state?

It does look that way...

Regards,

	Hans

> 
>>
>>>
>>>> +    case STATE_DONE:
>>>> +            cec_transmit_done(cec->adap, CEC_TX_STATUS_OK);
>>>> +            cec->tx = STATE_IDLE;
>>>> +            break;
>>>> +    case STATE_ERROR:
>>>> +            cec_transmit_done(cec->adap, CEC_TX_STATUS_RETRY_TIMEOUT);
>>>> +            cec->tx = STATE_IDLE;
>>>
>>> "okay" and "retry_timeout".  So, if we have an adapter which can report
>>> (eg) a NACK, we have to report it as the obscure "retry timeout" status?
>>> Why this obscure naming - why can't we have something that uses the
>>> terminology in the spec?
>>>
>>
>> Actually, a NACK should lead to a re-transmission (up to 5 times), see CEC 7.1.
>> The assumption of the CEC framework is that this is done by the CEC adapter
>> driver, not by the framework. So if after repeated retransmissions there is
>> still no Ack, the CEC_TX_STATUS_RETRY_TIMEOUT error is returned. I could
>> change this to _MAX_RETRIES_REACHED if you prefer.
>>
>> The CEC_TX_STATUS_ macros were based on what the adv drivers support (except
>> for CEC_TX_STATUS_REPLY_TIMEOUT which is specific to the framework).
>>
>> Regards,
>>
>>         Hans
> 
> Best wishes,
> Kamil
> 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2015-10-12 12:39 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-07 13:44 [PATCHv9 00/15] HDMI CEC framework Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 01/15] dts: exynos4*: add HDMI CEC pin definition to pinctrl Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 02/15] dts: exynos4: add node for the HDMI CEC device Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 03/15] dts: exynos4412-odroid*: enable " Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 04/15] input.h: add BUS_CEC type Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 05/15] HID: add HDMI CEC specific keycodes Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 06/15] rc: Add HDMI CEC protocol handling Hans Verkuil
2015-10-06 18:05   ` Russell King - ARM Linux
2015-10-12 11:50     ` Hans Verkuil
2015-10-13 23:09       ` Russell King - ARM Linux
2015-10-14  7:12         ` Hans Verkuil
2015-10-15  7:31       ` Russell King - ARM Linux
2015-09-07 13:44 ` [PATCHv9 07/15] cec: add HDMI CEC framework Hans Verkuil
2015-10-06 17:06   ` Russell King - ARM Linux
2015-10-12 11:35     ` Hans Verkuil
2015-10-13 22:51       ` Russell King - ARM Linux
2015-10-14  6:29         ` Hans Verkuil
2015-10-15 17:34           ` Russell King - ARM Linux
2015-10-15 17:45             ` Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 08/15] cec.txt: add CEC framework documentation Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 09/15] DocBook/media: add CEC documentation Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 10/15] v4l2-subdev: add HDMI CEC ops Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 11/15] cec: adv7604: add cec support Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 12/15] cec: adv7842: " Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 13/15] cec: adv7511: " Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 14/15] cec: s5p-cec: Add s5p-cec driver Hans Verkuil
2015-10-05 22:32   ` Russell King - ARM Linux
2015-10-12 10:50     ` Hans Verkuil
2015-10-12 12:33       ` Kamil Debski
2015-10-12 12:39         ` Hans Verkuil [this message]
2015-10-12 12:44           ` Kamil Debski
2015-10-13 23:26           ` Russell King - ARM Linux
2015-10-05 23:11   ` Russell King - ARM Linux
2015-10-12 10:54     ` Hans Verkuil
2015-09-07 13:44 ` [PATCHv9 15/15] cobalt: add cec support Hans Verkuil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=561BAA0E.4040905@xs4all.nl \
    --to=hverkuil@xs4all.nl \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hans.verkuil@cisco.com \
    --cc=hansverk@cisco.com \
    --cc=kamil@wypas.org \
    --cc=kyungmin.park@samsung.com \
    --cc=lars@opdenkamp.eu \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=m.szyprowski@samsung.com \
    --cc=sean@mess.org \
    --cc=thomas@tommie-lie.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox