Re: [PATCH] firmware: ti_sci: rm: Add support for tx_tdtype parameter for tx channel

From: Peter Ujfalusi
Date: Wed Nov 27 2019 - 02:58:03 EST


Hi,

On 13/11/2019 8.48, Peter Ujfalusi wrote:
> Thanks Tero,
>
> On 01/11/2019 10.23, Tero Kristo wrote:
>> On 25/10/2019 11:47, Peter Ujfalusi wrote:
>>> The system controller's resource manager have support for configuring the
>>> TDTYPE of TCHAN_CFG register on j721e.
>>> With this parameter the teardown completion can be controlled:
>>> TDTYPE == 0: Return without waiting for peer to complete the teardown
>>> TDTYPE == 1: Wait for peer to complete the teardown
>>>
>>> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
>>
>> Reviewed-by: Tero Kristo <t-kristo@xxxxxx>
>
> I'll take this patch as part of the upcoming v6 of the k3 DMA support
> series to make sure it is buildable unless someone will pick this for
> 5.5-rc1.

Will this patch going to be picked up for 5.5?

If not, then I'll just split out the support for this in the upcoming
DMA driver and let Vinod decide if he wants to apply firmware patch
along with the DMA driver.
Or just plan to get the support for this in 5.7.

- PÃter

>
> - PÃter
>
>>
>>> ---
>>> Hi,
>>>
>>> I know it is kind of getting late for 5.5, but can you consider this
>>> small
>>> addition so I can add the support for it in the initial DMA driver?
>>>
>>> Thanks and regards,
>>> Peter
>>>
>>> Â drivers/firmware/ti_sci.cÂÂÂÂÂÂÂÂÂÂÂÂÂ | 1 +
>>> Â drivers/firmware/ti_sci.hÂÂÂÂÂÂÂÂÂÂÂÂÂ | 7 +++++++
>>> Â include/linux/soc/ti/ti_sci_protocol.h | 2 ++
>>> Â 3 files changed, 10 insertions(+)
>>>
>>> diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c
>>> index 4126be9e3216..f13e4a96f3b7 100644
>>> --- a/drivers/firmware/ti_sci.c
>>> +++ b/drivers/firmware/ti_sci.c
>>> @@ -2412,6 +2412,7 @@ static int ti_sci_cmd_rm_udmap_tx_ch_cfg(const
>>> struct ti_sci_handle *handle,
>>> ÂÂÂÂÂ req->fdepth = params->fdepth;
>>> ÂÂÂÂÂ req->tx_sched_priority = params->tx_sched_priority;
>>> ÂÂÂÂÂ req->tx_burst_size = params->tx_burst_size;
>>> +ÂÂÂ req->tx_tdtype = params->tx_tdtype;
>>> Â ÂÂÂÂÂ ret = ti_sci_do_xfer(info, xfer);
>>> ÂÂÂÂÂ if (ret) {
>>> diff --git a/drivers/firmware/ti_sci.h b/drivers/firmware/ti_sci.h
>>> index f0d068c03944..255327171dae 100644
>>> --- a/drivers/firmware/ti_sci.h
>>> +++ b/drivers/firmware/ti_sci.h
>>> @@ -910,6 +910,7 @@ struct rm_ti_sci_msg_udmap_rx_flow_opt_cfg {
>>> ÂÂ *ÂÂ 12 - Valid bit for @ref
>>> ti_sci_msg_rm_udmap_tx_ch_cfg::tx_credit_count
>>> ÂÂ *ÂÂ 13 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::fdepth
>>> ÂÂ *ÂÂ 14 - Valid bit for @ref
>>> ti_sci_msg_rm_udmap_tx_ch_cfg::tx_burst_size
>>> + *ÂÂ 15 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_tdtype
>>> ÂÂ *
>>> ÂÂ * @nav_id: SoC device ID of Navigator Subsystem where tx channel is
>>> located
>>> ÂÂ *
>>> @@ -973,6 +974,11 @@ struct rm_ti_sci_msg_udmap_rx_flow_opt_cfg {
>>> ÂÂ *
>>> ÂÂ * @tx_burst_size: UDMAP transmit channel burst size configuration
>>> to be
>>> ÂÂ * programmed into the tx_burst_size field of the TCHAN_TCFG register.
>>> + *
>>> + * @tx_tdtype: UDMAP transmit channel teardown type configuration to be
>>> + * programmed into the tdtype field of the TCHAN_TCFG register:
>>> + * 0 - Return immediately
>>> + * 1 - Wait for completion message from remote peer
>>> ÂÂ */
>>> Â struct ti_sci_msg_rm_udmap_tx_ch_cfg_req {
>>> ÂÂÂÂÂ struct ti_sci_msg_hdr hdr;
>>> @@ -994,6 +1000,7 @@ struct ti_sci_msg_rm_udmap_tx_ch_cfg_req {
>>> ÂÂÂÂÂ u16 fdepth;
>>> ÂÂÂÂÂ u8 tx_sched_priority;
>>> ÂÂÂÂÂ u8 tx_burst_size;
>>> +ÂÂÂ u8 tx_tdtype;
>>> Â } __packed;
>>> Â Â /**
>>> diff --git a/include/linux/soc/ti/ti_sci_protocol.h
>>> b/include/linux/soc/ti/ti_sci_protocol.h
>>> index 9531ec823298..f3aed0b91564 100644
>>> --- a/include/linux/soc/ti/ti_sci_protocol.h
>>> +++ b/include/linux/soc/ti/ti_sci_protocol.h
>>> @@ -342,6 +342,7 @@ struct ti_sci_msg_rm_udmap_tx_ch_cfg {
>>> Â #define TI_SCI_MSG_VALUE_RM_UDMAP_CH_TX_SUPR_TDPKT_VALIDÂÂÂÂÂÂÂ BIT(11)
>>> Â #define TI_SCI_MSG_VALUE_RM_UDMAP_CH_TX_CREDIT_COUNT_VALIDÂÂÂÂÂ BIT(12)
>>> Â #define TI_SCI_MSG_VALUE_RM_UDMAP_CH_TX_FDEPTH_VALIDÂÂÂÂÂÂÂÂÂÂÂ BIT(13)
>>> +#define TI_SCI_MSG_VALUE_RM_UDMAP_CH_TX_TDTYPE_VALIDÂÂÂÂÂÂÂÂÂÂÂ BIT(15)
>>> ÂÂÂÂÂ u16 nav_id;
>>> ÂÂÂÂÂ u16 index;
>>> ÂÂÂÂÂ u8 tx_pause_on_err;
>>> @@ -359,6 +360,7 @@ struct ti_sci_msg_rm_udmap_tx_ch_cfg {
>>> ÂÂÂÂÂ u16 fdepth;
>>> ÂÂÂÂÂ u8 tx_sched_priority;
>>> ÂÂÂÂÂ u8 tx_burst_size;
>>> +ÂÂÂ u8 tx_tdtype;
>>> Â };
>>> Â Â /**
>>>
>>
>> --
>> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
>> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
>
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki