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:
@@ -28,8 +28,7 @@
|
|||||||
#include "qdf_platform.h"
|
#include "qdf_platform.h"
|
||||||
|
|
||||||
/* calculate the register address offset from bar0 of shadow register x */
|
/* calculate the register address offset from bar0 of shadow register x */
|
||||||
#if defined(QCA_WIFI_QCA6390) || defined(QCA_WIFI_QCA6490) || \
|
#if defined(QCA_WIFI_QCA6390) || defined(QCA_WIFI_QCA6490)
|
||||||
defined(QCA_WIFI_QCA6750)
|
|
||||||
#define SHADOW_REGISTER_START_ADDRESS_OFFSET 0x000008FC
|
#define SHADOW_REGISTER_START_ADDRESS_OFFSET 0x000008FC
|
||||||
#define SHADOW_REGISTER_END_ADDRESS_OFFSET \
|
#define SHADOW_REGISTER_END_ADDRESS_OFFSET \
|
||||||
((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (MAX_SHADOW_REGISTERS)))
|
((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (MAX_SHADOW_REGISTERS)))
|
||||||
@@ -39,6 +38,11 @@
|
|||||||
#define SHADOW_REGISTER_END_ADDRESS_OFFSET \
|
#define SHADOW_REGISTER_END_ADDRESS_OFFSET \
|
||||||
((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (MAX_SHADOW_REGISTERS)))
|
((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (MAX_SHADOW_REGISTERS)))
|
||||||
#define SHADOW_REGISTER(x) ((SHADOW_REGISTER_START_ADDRESS_OFFSET) + (4 * (x)))
|
#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
|
#else
|
||||||
#define SHADOW_REGISTER(x) 0
|
#define SHADOW_REGISTER(x) 0
|
||||||
#endif /* QCA_WIFI_QCA6390 || QCA_WIFI_QCA6490 || QCA_WIFI_QCA6750 */
|
#endif /* QCA_WIFI_QCA6390 || QCA_WIFI_QCA6490 || QCA_WIFI_QCA6750 */
|
||||||
|
@@ -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
|
* 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
|
* 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_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_mpdu_info =
|
||||||
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
&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,
|
NULL,
|
||||||
/* rx - msdu end fast path info fields */
|
/* rx - msdu end fast path info fields */
|
||||||
hal_rx_msdu_packet_metadata_get_generic,
|
hal_rx_msdu_packet_metadata_get_generic,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hal_hw_srng_config hw_srng_table_6750[] = {
|
struct hal_hw_srng_config hw_srng_table_6750[] = {
|
||||||
|
@@ -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__,
|
hif_debug("%s: (ce_id %d, msi_data %d, irq %d)", __func__,
|
||||||
ce_id, msi_data, irq);
|
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;
|
return ret;
|
||||||
@@ -196,7 +196,8 @@ static void hif_ipci_deconfigure_grp_irq(struct hif_softc *scn)
|
|||||||
hif_ext_group->irq_requested = false;
|
hif_ext_group->irq_requested = false;
|
||||||
for (j = 0; j < hif_ext_group->numirq; j++) {
|
for (j = 0; j < hif_ext_group->numirq; j++) {
|
||||||
irq = hif_ext_group->os_irq[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;
|
hif_ext_group->numirq = 0;
|
||||||
}
|
}
|
||||||
@@ -216,13 +217,6 @@ void hif_ipci_nointrs(struct hif_softc *scn)
|
|||||||
hif_ipci_deconfigure_grp_irq(scn);
|
hif_ipci_deconfigure_grp_irq(scn);
|
||||||
|
|
||||||
ret = hif_ce_srng_msi_free_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;
|
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)))
|
if (hif_can_suspend_link(GET_HIF_OPAQUE_HDL(scn)))
|
||||||
qdf_atomic_set(&scn->link_suspended, 1);
|
qdf_atomic_set(&scn->link_suspended, 1);
|
||||||
|
|
||||||
hif_apps_wake_irq_enable(GET_HIF_OPAQUE_HDL(scn));
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hif_ipci_bus_resume_noirq(struct hif_softc *scn)
|
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)))
|
if (hif_can_suspend_link(GET_HIF_OPAQUE_HDL(scn)))
|
||||||
qdf_atomic_set(&scn->link_suspended, 0);
|
qdf_atomic_set(&scn->link_suspended, 0);
|
||||||
|
|
||||||
@@ -428,7 +418,8 @@ static int hif_ce_msi_configure_irq(struct hif_softc *scn)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
ipci_sc->ce_msi_irq_num[ce_id] = irq;
|
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,
|
IRQF_SHARED,
|
||||||
ce_name[ce_id],
|
ce_name[ce_id],
|
||||||
&ce_sc->tasklets[ce_id]);
|
&ce_sc->tasklets[ce_id]);
|
||||||
@@ -446,7 +437,7 @@ free_irq:
|
|||||||
ce_id--;
|
ce_id--;
|
||||||
msi_data = (ce_id % msi_data_count) + msi_irq_start;
|
msi_data = (ce_id % msi_data_count) + msi_irq_start;
|
||||||
irq = pld_get_msi_irq(scn->qdf_dev->dev, msi_data);
|
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;
|
return ret;
|
||||||
@@ -502,7 +493,7 @@ int hif_ipci_configure_grp_irq(struct hif_softc *scn,
|
|||||||
|
|
||||||
hif_info("request_irq = %d for grp %d",
|
hif_info("request_irq = %d for grp %d",
|
||||||
irq, hif_ext_group->grp_id);
|
irq, hif_ext_group->grp_id);
|
||||||
ret = request_irq(irq,
|
ret = pfrm_request_irq(scn->qdf_dev->dev, irq,
|
||||||
hif_ext_group_interrupt_handler,
|
hif_ext_group_interrupt_handler,
|
||||||
IRQF_SHARED | IRQF_NO_SUSPEND,
|
IRQF_SHARED | IRQF_NO_SUSPEND,
|
||||||
"wlan_EXT_GRP",
|
"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_ipci_softc *sc = HIF_GET_IPCI_SOFTC(ol_sc);
|
||||||
struct hif_opaque_softc *hif_hdl = GET_HIF_OPAQUE_HDL(ol_sc);
|
struct hif_opaque_softc *hif_hdl = GET_HIF_OPAQUE_HDL(ol_sc);
|
||||||
uint16_t revision_id = 0;
|
uint16_t revision_id = 0;
|
||||||
struct pci_dev *pdev = bdev;
|
|
||||||
struct hif_target_info *tgt_info;
|
struct hif_target_info *tgt_info;
|
||||||
int device_id = QCA6750_DEVICE_ID;
|
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);
|
sc->hif_ipci_get_soc_info(sc, dev);
|
||||||
HIF_TRACE("%s: hif_enable_pci done", __func__);
|
HIF_TRACE("%s: hif_enable_pci done", __func__);
|
||||||
|
|
||||||
device_disable_async_suspend(&pdev->dev);
|
|
||||||
|
|
||||||
ret = hif_get_device_type(device_id, revision_id,
|
ret = hif_get_device_type(device_id, revision_id,
|
||||||
&hif_type, &target_type);
|
&hif_type, &target_type);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
@@ -266,9 +266,9 @@ void hif_register_tbl_attach(struct hif_softc *scn, u32 hif_type)
|
|||||||
#endif /* QCA6490_HEADERS_DEF */
|
#endif /* QCA6490_HEADERS_DEF */
|
||||||
|
|
||||||
#if defined(QCA6750_HEADERS_DEF)
|
#if defined(QCA6750_HEADERS_DEF)
|
||||||
case TARGET_TYPE_QCA6750:
|
case HIF_TYPE_QCA6750:
|
||||||
scn->hostdef = QCA6750_HOSTdef;
|
scn->hostdef = QCA6750_HOSTdef;
|
||||||
HIF_TRACE("%s: TARGET_TYPE_QCA6750", __func__);
|
HIF_TRACE("%s: HIF_TYPE_QCA6750", __func__);
|
||||||
break;
|
break;
|
||||||
#endif /* QCA6750_HEADERS_DEF */
|
#endif /* QCA6750_HEADERS_DEF */
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user