Commit de8781d7 authored by Govind Singh's avatar Govind Singh Committed by Kalle Valo
Browse files

ath10k: disable interface pause wow config for integrated chipset



wow pause iface config controls the PCI D0/D3-WOW cases for pcie
bus state. Firmware does not expects WOW_IFACE_PAUSE_ENABLED config
for bus/link that cannot be suspended ex:snoc and does not trigger
common subsystem shutdown.
Disable interface pause wow config for integrated chipset(WCN3990)
for correct WOW configuration in the firmware.

Testing:
    Tested on WCN3990 HW.
    Tested FW: WLAN.HL.2.0-01192-QCAHLSWMTPLZ-1.

Signed-off-by: default avatarGovind Singh <govinds@codeaurora.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 185be1c6
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -2994,8 +2994,9 @@ err:
int ath10k_core_register(struct ath10k *ar,
			 const struct ath10k_bus_params *bus_params)
{
	ar->chip_id = bus_params->chip_id;
	ar->dev_type = bus_params->dev_type;
	ar->bus_param.chip_id = bus_params->chip_id;
	ar->bus_param.dev_type = bus_params->dev_type;
	ar->bus_param.link_can_suspend = bus_params->link_can_suspend;
	queue_work(ar->workqueue, &ar->register_work);

	return 0;
+2 −0
Original line number Diff line number Diff line
@@ -922,6 +922,7 @@ enum ath10k_dev_type {
struct ath10k_bus_params {
	u32 chip_id;
	enum ath10k_dev_type dev_type;
	bool link_can_suspend;
};

struct ath10k {
@@ -1191,6 +1192,7 @@ struct ath10k {
	enum ath10k_radar_confirmation_state radar_conf_state;
	struct ath10k_radar_found_info last_radar_info;
	struct work_struct radar_confirmation_work;
	struct ath10k_bus_params bus_param;

	/* must be last */
	u8 drv_priv[0] __aligned(sizeof(void *));
+1 −1
Original line number Diff line number Diff line
@@ -1167,7 +1167,7 @@ static struct ath10k_dump_file_data *ath10k_coredump_build(struct ath10k *ar)
	dump_data->version = cpu_to_le32(ATH10K_FW_CRASH_DUMP_VERSION);

	guid_copy(&dump_data->guid, &crash_data->guid);
	dump_data->chip_id = cpu_to_le32(ar->chip_id);
	dump_data->chip_id = cpu_to_le32(ar->bus_param.chip_id);
	dump_data->bus_type = cpu_to_le32(0);
	dump_data->target_version = cpu_to_le32(ar->target_version);
	dump_data->fw_version_major = cpu_to_le32(ar->fw_version_major);
+2 −2
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ void ath10k_debug_print_hwfw_info(struct ath10k *ar)
	ath10k_info(ar, "%s target 0x%08x chip_id 0x%08x sub %04x:%04x",
		    ar->hw_params.name,
		    ar->target_version,
		    ar->chip_id,
		    ar->bus_param.chip_id,
		    ar->id.subsystem_vendor, ar->id.subsystem_device);

	ath10k_info(ar, "kconfig debug %d debugfs %d tracing %d dfs %d testmode %d\n",
@@ -625,7 +625,7 @@ static ssize_t ath10k_read_chip_id(struct file *file, char __user *user_buf,
	size_t len;
	char buf[50];

	len = scnprintf(buf, sizeof(buf), "0x%08x\n", ar->chip_id);
	len = scnprintf(buf, sizeof(buf), "0x%08x\n", ar->bus_param.chip_id);

	return simple_read_from_buffer(user_buf, count, ppos, buf, len);
}
+3 −3
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ static inline void ath10k_htc_restore_tx_skb(struct ath10k_htc *htc,
{
	struct ath10k_skb_cb *skb_cb = ATH10K_SKB_CB(skb);

	if (htc->ar->dev_type != ATH10K_DEV_TYPE_HL)
	if (htc->ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL)
		dma_unmap_single(htc->ar->dev, skb_cb->paddr, skb->len, DMA_TO_DEVICE);
	skb_pull(skb, sizeof(struct ath10k_htc_hdr));
}
@@ -138,7 +138,7 @@ int ath10k_htc_send(struct ath10k_htc *htc,
	ath10k_htc_prepare_tx_skb(ep, skb);

	skb_cb->eid = eid;
	if (ar->dev_type != ATH10K_DEV_TYPE_HL) {
	if (ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL) {
		skb_cb->paddr = dma_map_single(dev, skb->data, skb->len,
					       DMA_TO_DEVICE);
		ret = dma_mapping_error(dev, skb_cb->paddr);
@@ -161,7 +161,7 @@ int ath10k_htc_send(struct ath10k_htc *htc,
	return 0;

err_unmap:
	if (ar->dev_type != ATH10K_DEV_TYPE_HL)
	if (ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL)
		dma_unmap_single(dev, skb_cb->paddr, skb->len, DMA_TO_DEVICE);
err_credits:
	if (ep->tx_credit_flow_enabled) {
Loading