qcacmn: CE assignment changes for qcn9224
Add CE assignment table for qcn9224 Change-Id: Idf1cd998ce9089d9e0cc12ea771b9559cfb13540 CRs-Fixed: 2916087
This commit is contained in:

committed by
snandini

parent
ed3db92994
commit
4acc2310cd
@@ -1419,4 +1419,79 @@ static struct CE_pipe_config target_ce_config_wlan_wcn7850[] = {
|
||||
{ /* CE8 */ 8, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
|
||||
/* CE 9, 10, 11 belong to CoreBsp & MHI driver */
|
||||
};
|
||||
|
||||
#ifdef QCA_WIFI_QCN9224
|
||||
#define QCN_9224_CE_COUNT 16
|
||||
static struct CE_attr host_ce_config_wlan_qcn9224[] = {
|
||||
/* host->target HTC control and raw streams */
|
||||
{/*CE0*/ (CE_ATTR_FLAGS), 0, 16, 2048, 0, NULL,},
|
||||
/* target->host HTT + HTC control */
|
||||
{/*CE1*/ (CE_ATTR_FLAGS), 0, 0, 2048,
|
||||
512, NULL,},
|
||||
/* target->host WMI */
|
||||
{/*CE2*/ (CE_ATTR_FLAGS), 0, 0, 2048,
|
||||
128, NULL,},
|
||||
/* host->target WMI (mac0) */
|
||||
{/*CE3*/ (CE_ATTR_FLAGS), 0, 32, 2048, 0, NULL,},
|
||||
/* host->target HTT */
|
||||
{/*CE4*/ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
|
||||
CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,},
|
||||
/* target -> host PKTLOG */
|
||||
#ifdef REMOVE_PKT_LOG
|
||||
{ /* CE5 */ 0, 0, 0, 0, 0, NULL,},
|
||||
#else
|
||||
{/*CE5*/ (CE_ATTR_FLAGS), 0, 0, 2048,
|
||||
PKTLOG_DST_ENTRIES, NULL,},
|
||||
#endif
|
||||
/* Target autonomous HIF_memcpy */
|
||||
{/*CE6*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
/* host->target WMI (mac1) */
|
||||
{/*CE7*/ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
|
||||
/* Reserved for target (Generic HiF memcpy */
|
||||
{/*CE8*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
/* CE 9, 10, 11 belong to CoreBsp & MHI driver */
|
||||
{/*CE9*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
{/*CE10*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
{/*CE11*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
/* Target CV prefetch */
|
||||
{/*CE12*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
/* Target CV prefetch */
|
||||
{/*CE13*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
/* target->host WMI logging, Direc-DMA */
|
||||
{/*CE14*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
/* Reserved for customer use */
|
||||
{/*CE15*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
};
|
||||
|
||||
static struct CE_pipe_config target_ce_config_wlan_qcn9224[] = {
|
||||
/* host->target HTC control and raw streams */
|
||||
{ /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
|
||||
/* target->host HTT */
|
||||
{ /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,},
|
||||
/* target->host WMI */
|
||||
{ /* CE2 */ 2, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,},
|
||||
/* host->target WMI */
|
||||
{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
|
||||
/* host->target HTT */
|
||||
{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256,
|
||||
(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
|
||||
/* Target -> host PKTLOG */
|
||||
{ /* CE5 */ 5, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,},
|
||||
/* Reserved for target autonomous HIF_memcpy */
|
||||
{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
|
||||
/* host->target WMI */
|
||||
{ /* CE7 */ 7, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
|
||||
/* Reserved for target */
|
||||
{ /* CE8 */ 8, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
|
||||
/* CE 9, 10, 11 belong to CoreBsp & MHI driver */
|
||||
/* CV prefetch */
|
||||
{ /* CE12 */ 12, PIPEDIR_OUT, 32, 2048, 8192, 0,},
|
||||
/* CV prefetch */
|
||||
{ /* CE13 */ 13, PIPEDIR_OUT, 32, 2048, 8192, 0,},
|
||||
/* target->host WMI logging + DirectDMA events */
|
||||
{ /* CE14 */ 14, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,},
|
||||
/*CE 15 - Reserved for customer use */
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif /* __HIF_PCI_INTERNAL_H__ */
|
||||
|
@@ -513,6 +513,33 @@ static struct service_to_pipe target_service_to_ce_map_qcn9000[] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if (defined(QCA_WIFI_QCN9224))
|
||||
static struct service_to_pipe target_service_to_ce_map_qcn9224[] = {
|
||||
{ WMI_DATA_VO_SVC, PIPEDIR_OUT, 3, },
|
||||
{ WMI_DATA_VO_SVC, PIPEDIR_IN, 2, },
|
||||
{ WMI_DATA_BK_SVC, PIPEDIR_OUT, 3, },
|
||||
{ WMI_DATA_BK_SVC, PIPEDIR_IN, 2, },
|
||||
{ WMI_DATA_BE_SVC, PIPEDIR_OUT, 3, },
|
||||
{ WMI_DATA_BE_SVC, PIPEDIR_IN, 2, },
|
||||
{ WMI_DATA_VI_SVC, PIPEDIR_OUT, 3, },
|
||||
{ WMI_DATA_VI_SVC, PIPEDIR_IN, 2, },
|
||||
{ WMI_CONTROL_SVC, PIPEDIR_OUT, 3, },
|
||||
{ WMI_CONTROL_SVC, PIPEDIR_IN, 2, },
|
||||
{ HTC_CTRL_RSVD_SVC, PIPEDIR_OUT, 0, },
|
||||
{ HTC_CTRL_RSVD_SVC, PIPEDIR_IN, 1, },
|
||||
{ HTC_RAW_STREAMS_SVC, PIPEDIR_OUT, 0},
|
||||
{ HTC_RAW_STREAMS_SVC, PIPEDIR_IN, 1 },
|
||||
{ HTT_DATA_MSG_SVC, PIPEDIR_OUT, 4, },
|
||||
{ HTT_DATA_MSG_SVC, PIPEDIR_IN, 1, },
|
||||
{ WMI_CONTROL_SVC_WMAC1, PIPEDIR_OUT, 7, },
|
||||
{ WMI_CONTROL_SVC_WMAC1, PIPEDIR_IN, 2, },
|
||||
{ PACKET_LOG_SVC, PIPEDIR_IN, 5, },
|
||||
{ WMI_CONTROL_DIAG_SVC, PIPEDIR_IN, 14, },
|
||||
/* (Additions here) */
|
||||
{ 0, 0, 0, },
|
||||
};
|
||||
#endif
|
||||
|
||||
#if (defined(QCA_WIFI_QCA5018))
|
||||
static struct service_to_pipe target_service_to_ce_map_qca5018[] = {
|
||||
{ WMI_DATA_VO_SVC, PIPEDIR_OUT, 3, },
|
||||
@@ -870,6 +897,42 @@ void hif_select_ce_map_qcn7605(struct service_to_pipe **tgt_svc_map_to_use,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef QCA_WIFI_QCN9224
|
||||
static
|
||||
void hif_set_ce_config_qcn9224(struct hif_softc *scn,
|
||||
struct HIF_CE_state *hif_state)
|
||||
{
|
||||
hif_state->host_ce_config = host_ce_config_wlan_qcn9224;
|
||||
hif_state->target_ce_config = target_ce_config_wlan_qcn9224;
|
||||
hif_state->target_ce_config_sz =
|
||||
sizeof(target_ce_config_wlan_qcn9224);
|
||||
scn->ce_count = QCN_9224_CE_COUNT;
|
||||
scn->disable_wake_irq = 1;
|
||||
}
|
||||
|
||||
static
|
||||
void hif_select_ce_map_qcn9224(struct service_to_pipe **tgt_svc_map_to_use,
|
||||
uint32_t *sz_tgt_svc_map_to_use)
|
||||
{
|
||||
*tgt_svc_map_to_use = target_service_to_ce_map_qcn9224;
|
||||
*sz_tgt_svc_map_to_use = sizeof(target_service_to_ce_map_qcn9224);
|
||||
}
|
||||
#else
|
||||
static inline
|
||||
void hif_set_ce_config_qcn9224(struct hif_softc *scn,
|
||||
struct HIF_CE_state *hif_state)
|
||||
{
|
||||
hif_err("QCN9224 not supported");
|
||||
}
|
||||
|
||||
static inline
|
||||
void hif_select_ce_map_qcn9224(struct service_to_pipe **tgt_svc_map_to_use,
|
||||
uint32_t *sz_tgt_svc_map_to_use)
|
||||
{
|
||||
hif_err("QCN9224 not supported");
|
||||
}
|
||||
#endif
|
||||
|
||||
static void hif_select_service_to_pipe_map(struct hif_softc *scn,
|
||||
struct service_to_pipe **tgt_svc_map_to_use,
|
||||
uint32_t *sz_tgt_svc_map_to_use)
|
||||
@@ -950,6 +1013,10 @@ static void hif_select_service_to_pipe_map(struct hif_softc *scn,
|
||||
*sz_tgt_svc_map_to_use =
|
||||
sizeof(target_service_to_ce_map_qcn9000);
|
||||
break;
|
||||
case TARGET_TYPE_QCN9224:
|
||||
hif_select_ce_map_qcn9224(tgt_svc_map_to_use,
|
||||
sz_tgt_svc_map_to_use);
|
||||
break;
|
||||
case TARGET_TYPE_QCA5018:
|
||||
case TARGET_TYPE_QCN6122:
|
||||
*tgt_svc_map_to_use =
|
||||
@@ -1185,6 +1252,7 @@ bool ce_srng_based(struct hif_softc *scn)
|
||||
case TARGET_TYPE_QCN6122:
|
||||
case TARGET_TYPE_QCA5018:
|
||||
case TARGET_TYPE_WCN7850:
|
||||
case TARGET_TYPE_QCN9224:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@@ -3390,6 +3458,9 @@ void hif_ce_prepare_config(struct hif_softc *scn)
|
||||
scn->ce_count = QCN_9000_CE_COUNT;
|
||||
scn->disable_wake_irq = 1;
|
||||
break;
|
||||
case TARGET_TYPE_QCN9224:
|
||||
hif_set_ce_config_qcn9224(scn, hif_state);
|
||||
break;
|
||||
case TARGET_TYPE_QCN6122:
|
||||
hif_state->host_ce_config = host_ce_config_wlan_qcn6122;
|
||||
hif_state->target_ce_config = target_ce_config_wlan_qcn6122;
|
||||
|
Reference in New Issue
Block a user