Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

firmware: ti_sci: rm: Add support for extended_ch_type for tx channel

Sysfw added 'extended_ch_type' to the tx_ch_cfg_req message which should be
used when BCDMA block copy channels are configured:
extended_ch_type = 0 : the channel is split tx channel (tchan)
extended_ch_type = 1 : the channel is block copy channel (bchan)

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>

authored by

Peter Ujfalusi and committed by
Santosh Shilimkar
ce1feed5 f5087f68

+12
+1
drivers/firmware/ti_sci.c
··· 2365 2365 req->tx_sched_priority = params->tx_sched_priority; 2366 2366 req->tx_burst_size = params->tx_burst_size; 2367 2367 req->tx_tdtype = params->tx_tdtype; 2368 + req->extended_ch_type = params->extended_ch_type; 2368 2369 2369 2370 ret = ti_sci_do_xfer(info, xfer); 2370 2371 if (ret) {
+6
drivers/firmware/ti_sci.h
··· 915 915 * 13 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::fdepth 916 916 * 14 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_burst_size 917 917 * 15 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_tdtype 918 + * 16 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::extended_ch_type 918 919 * 919 920 * @nav_id: SoC device ID of Navigator Subsystem where tx channel is located 920 921 * ··· 984 983 * programmed into the tdtype field of the TCHAN_TCFG register: 985 984 * 0 - Return immediately 986 985 * 1 - Wait for completion message from remote peer 986 + * 987 + * @extended_ch_type: Valid for BCDMA. 988 + * 0 - the channel is split tx channel (tchan) 989 + * 1 - the channel is block copy channel (bchan) 987 990 */ 988 991 struct ti_sci_msg_rm_udmap_tx_ch_cfg_req { 989 992 struct ti_sci_msg_hdr hdr; ··· 1010 1005 u8 tx_sched_priority; 1011 1006 u8 tx_burst_size; 1012 1007 u8 tx_tdtype; 1008 + u8 extended_ch_type; 1013 1009 } __packed; 1014 1010 1015 1011 /**
+5
include/linux/soc/ti/ti_sci_protocol.h
··· 336 336 #define TI_SCI_RM_UDMAP_CHAN_BURST_SIZE_128_BYTES 2 337 337 #define TI_SCI_RM_UDMAP_CHAN_BURST_SIZE_256_BYTES 3 338 338 339 + #define TI_SCI_RM_BCDMA_EXTENDED_CH_TYPE_TCHAN 0 340 + #define TI_SCI_RM_BCDMA_EXTENDED_CH_TYPE_BCHAN 1 341 + 339 342 /* UDMAP TX/RX channel valid_params common declarations */ 340 343 #define TI_SCI_MSG_VALUE_RM_UDMAP_CH_PAUSE_ON_ERR_VALID BIT(0) 341 344 #define TI_SCI_MSG_VALUE_RM_UDMAP_CH_ATYPE_VALID BIT(1) ··· 365 362 #define TI_SCI_MSG_VALUE_RM_UDMAP_CH_TX_CREDIT_COUNT_VALID BIT(12) 366 363 #define TI_SCI_MSG_VALUE_RM_UDMAP_CH_TX_FDEPTH_VALID BIT(13) 367 364 #define TI_SCI_MSG_VALUE_RM_UDMAP_CH_TX_TDTYPE_VALID BIT(15) 365 + #define TI_SCI_MSG_VALUE_RM_UDMAP_CH_EXTENDED_CH_TYPE_VALID BIT(16) 368 366 u16 nav_id; 369 367 u16 index; 370 368 u8 tx_pause_on_err; ··· 384 380 u8 tx_sched_priority; 385 381 u8 tx_burst_size; 386 382 u8 tx_tdtype; 383 + u8 extended_ch_type; 387 384 }; 388 385 389 386 /**