qcacmn: Genoa: SDIO: Handle Tx Padding & Credits
In Genoa SDIO ADMA implementation Host sends packets to FW in multiples of SDIO Block size. If the packet/bundle is not block aligned Host adds padding at the end of Packet/Bundle. If the TX packet plus padding exceeds one FW TX Buffer, Padding data will occupy the next FW TX buffer. Same applies for bundle TX packet. For above scenario, HTC_FLAGS_PADDING_CHECK of HTC header Flags is used to notify the FW that - Padding data follows the currentHTC packet Since the padding data will take one extra FW Tx Buffer, host need to handle the extra Tx credit being used by the padding data/buffer CRs-Fixed: 2516617 Change-Id: I1eb394859689b281653bfd6d681804eb016a14cf
This commit is contained in:

committed by
nshrivas

parent
68f186311d
commit
957b63aec6
@@ -69,6 +69,8 @@ struct ol_ath_htc_stats {
|
||||
/* To resume HTT Tx queue during runtime resume */
|
||||
typedef void (*HTC_EP_RESUME_TX_QUEUE)(void *);
|
||||
|
||||
typedef int (*HTC_EP_PADDING_CREDIT_UPDATE) (void *, int);
|
||||
|
||||
/* per service connection send completion */
|
||||
typedef void (*HTC_EP_SEND_PKT_COMPLETE)(void *, HTC_PACKET *);
|
||||
/* per service connection callback when a plurality of packets have been sent
|
||||
@@ -175,6 +177,8 @@ struct htc_ep_callbacks {
|
||||
HTC_EP_SEND_PKT_COMP_MULTIPLE EpTxCompleteMultiple;
|
||||
|
||||
HTC_EP_RESUME_TX_QUEUE ep_resume_tx_queue;
|
||||
|
||||
HTC_EP_PADDING_CREDIT_UPDATE ep_padding_credit_update;
|
||||
/* if EpRecvAllocThresh is non-NULL, HTC will compare the
|
||||
* threshold value to the current recv packet length and invoke
|
||||
* the EpRecvAllocThresh callback to acquire a packet buffer
|
||||
|
Reference in New Issue
Block a user