qcacmn: Fix compilation and update SHADOW REG OFFSET for qca6750

For qca6750, update the SHADOW REGISTER OFFSET value and
fix the compilation issue.

Change-Id: Ic4b44c1c40e62ddcc50c0a66d37c0663a70b5c54
CRs-Fixed: 2633044
This commit is contained in:
Alok Kumar
2020-02-24 18:45:43 +05:30
committed by nshrivas
parent ee4dcfe6d7
commit 32de2fe166
4 changed files with 35 additions and 34 deletions

View File

@@ -28,8 +28,7 @@
#include "qdf_platform.h"
/* calculate the register address offset from bar0 of shadow register x */
#if defined(QCA_WIFI_QCA6390) || defined(QCA_WIFI_QCA6490) || \
defined(QCA_WIFI_QCA6750)
#if defined(QCA_WIFI_QCA6390) || defined(QCA_WIFI_QCA6490)
#define SHADOW_REGISTER_START_ADDRESS_OFFSET 0x000008FC
#define SHADOW_REGISTER_END_ADDRESS_OFFSET \
((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (MAX_SHADOW_REGISTERS)))
@@ -39,6 +38,11 @@
#define SHADOW_REGISTER_END_ADDRESS_OFFSET \
((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (MAX_SHADOW_REGISTERS)))
#define SHADOW_REGISTER(x) ((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (x)))
#elif defined(QCA_WIFI_QCA6750)
#define SHADOW_REGISTER_START_ADDRESS_OFFSET 0x00000504
#define SHADOW_REGISTER_END_ADDRESS_OFFSET \
((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (MAX_SHADOW_REGISTERS)))
#define SHADOW_REGISTER(x) ((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (x)))
#else
#define SHADOW_REGISTER(x) 0
#endif /* QCA_WIFI_QCA6390 || QCA_WIFI_QCA6490 || QCA_WIFI_QCA6750 */

View File

@@ -954,14 +954,16 @@ static uint32_t hal_rx_tid_get_6750(hal_soc_handle_t hal_soc_hdl, uint8_t *buf)
/**
* hal_rx_hw_desc_get_ppduid_get_6750(): retrieve ppdu id
* @hw_desc_addr: hw addr
* @rx_tlv_hdr: rx tlv header
* @rxdma_dst_ring_desc: rxdma HW descriptor
*
* Return: ppdu id
*/
static uint32_t hal_rx_hw_desc_get_ppduid_get_6750(void *hw_desc_addr)
static uint32_t hal_rx_hw_desc_get_ppduid_get_6750(void *rx_tlv_hdr,
void *rxdma_dst_ring_desc)
{
struct rx_mpdu_info *rx_mpdu_info;
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)hw_desc_addr;
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)rx_tlv_hdr;
rx_mpdu_info =
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
@@ -1413,6 +1415,13 @@ struct hal_hw_txrx_ops qca6750_hal_hw_txrx_ops = {
NULL,
/* rx - msdu end fast path info fields */
hal_rx_msdu_packet_metadata_get_generic,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
};
struct hal_hw_srng_config hw_srng_table_6750[] = {

View File

@@ -172,7 +172,7 @@ static int hif_ce_srng_msi_free_irq(struct hif_softc *scn)
hif_debug("%s: (ce_id %d, msi_data %d, irq %d)", __func__,
ce_id, msi_data, irq);
free_irq(irq, &ce_sc->tasklets[ce_id]);
pfrm_free_irq(scn->qdf_dev->dev, irq, &ce_sc->tasklets[ce_id]);
}
return ret;
@@ -196,7 +196,8 @@ static void hif_ipci_deconfigure_grp_irq(struct hif_softc *scn)
hif_ext_group->irq_requested = false;
for (j = 0; j < hif_ext_group->numirq; j++) {
irq = hif_ext_group->os_irq[j];
free_irq(irq, hif_ext_group);
pfrm_free_irq(scn->qdf_dev->dev,
irq, hif_ext_group);
}
hif_ext_group->numirq = 0;
}
@@ -216,13 +217,6 @@ void hif_ipci_nointrs(struct hif_softc *scn)
hif_ipci_deconfigure_grp_irq(scn);
ret = hif_ce_srng_msi_free_irq(scn);
if (ret != -EINVAL) {
/* ce irqs freed in hif_ce_srng_msi_free_irq */
if (scn->wake_irq)
free_irq(scn->wake_irq, scn);
scn->wake_irq = 0;
}
scn->request_irq_done = false;
}
@@ -293,15 +287,11 @@ int hif_ipci_bus_suspend_noirq(struct hif_softc *scn)
if (hif_can_suspend_link(GET_HIF_OPAQUE_HDL(scn)))
qdf_atomic_set(&scn->link_suspended, 1);
hif_apps_wake_irq_enable(GET_HIF_OPAQUE_HDL(scn));
return 0;
}
int hif_ipci_bus_resume_noirq(struct hif_softc *scn)
{
hif_apps_wake_irq_disable(GET_HIF_OPAQUE_HDL(scn));
if (hif_can_suspend_link(GET_HIF_OPAQUE_HDL(scn)))
qdf_atomic_set(&scn->link_suspended, 0);
@@ -428,7 +418,8 @@ static int hif_ce_msi_configure_irq(struct hif_softc *scn)
continue;
ipci_sc->ce_msi_irq_num[ce_id] = irq;
ret = request_irq(irq, hif_ce_interrupt_handler,
ret = pfrm_request_irq(scn->qdf_dev->dev,
irq, hif_ce_interrupt_handler,
IRQF_SHARED,
ce_name[ce_id],
&ce_sc->tasklets[ce_id]);
@@ -446,7 +437,7 @@ free_irq:
ce_id--;
msi_data = (ce_id % msi_data_count) + msi_irq_start;
irq = pld_get_msi_irq(scn->qdf_dev->dev, msi_data);
free_irq(irq, &ce_sc->tasklets[ce_id]);
pfrm_free_irq(scn->qdf_dev->dev, irq, &ce_sc->tasklets[ce_id]);
}
return ret;
@@ -502,7 +493,7 @@ int hif_ipci_configure_grp_irq(struct hif_softc *scn,
hif_info("request_irq = %d for grp %d",
irq, hif_ext_group->grp_id);
ret = request_irq(irq,
ret = pfrm_request_irq(scn->qdf_dev->dev, irq,
hif_ext_group_interrupt_handler,
IRQF_SHARED | IRQF_NO_SUSPEND,
"wlan_EXT_GRP",
@@ -620,7 +611,6 @@ QDF_STATUS hif_ipci_enable_bus(struct hif_softc *ol_sc,
struct hif_ipci_softc *sc = HIF_GET_IPCI_SOFTC(ol_sc);
struct hif_opaque_softc *hif_hdl = GET_HIF_OPAQUE_HDL(ol_sc);
uint16_t revision_id = 0;
struct pci_dev *pdev = bdev;
struct hif_target_info *tgt_info;
int device_id = QCA6750_DEVICE_ID;
@@ -635,8 +625,6 @@ QDF_STATUS hif_ipci_enable_bus(struct hif_softc *ol_sc,
sc->hif_ipci_get_soc_info(sc, dev);
HIF_TRACE("%s: hif_enable_pci done", __func__);
device_disable_async_suspend(&pdev->dev);
ret = hif_get_device_type(device_id, revision_id,
&hif_type, &target_type);
if (ret < 0) {

View File

@@ -266,9 +266,9 @@ void hif_register_tbl_attach(struct hif_softc *scn, u32 hif_type)
#endif /* QCA6490_HEADERS_DEF */
#if defined(QCA6750_HEADERS_DEF)
case TARGET_TYPE_QCA6750:
case HIF_TYPE_QCA6750:
scn->hostdef = QCA6750_HOSTdef;
HIF_TRACE("%s: TARGET_TYPE_QCA6750", __func__);
HIF_TRACE("%s: HIF_TYPE_QCA6750", __func__);
break;
#endif /* QCA6750_HEADERS_DEF */
default: