Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c28e6f06 authored by Mohammed Shafi Shajakhan's avatar Mohammed Shafi Shajakhan Committed by Kalle Valo
Browse files

ath10k: fix sanity check on enabling btcoex via debugfs



First check for the device state before enabling / disabling
btcoex, also return a proper error value. Enabling / disabling
btcoex ideally does a f/w + ath10k_core_restart so the checks
that are applicable for 'simulate_fw_crash' shall be applicable
for this as well

Signed-off-by: default avatarMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent af9a6a3a
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -2114,6 +2114,7 @@ static ssize_t ath10k_write_btcoex(struct file *file,
	struct ath10k *ar = file->private_data;
	char buf[32];
	size_t buf_size;
	int ret = 0;
	bool val;

	buf_size = min(count, (sizeof(buf) - 1));
@@ -2127,6 +2128,12 @@ static ssize_t ath10k_write_btcoex(struct file *file,

	mutex_lock(&ar->conf_mutex);

	if (ar->state != ATH10K_STATE_ON &&
	    ar->state != ATH10K_STATE_RESTARTED) {
		ret = -ENETDOWN;
		goto exit;
	}

	if (!(test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags) ^ val))
		goto exit;

@@ -2135,17 +2142,15 @@ static ssize_t ath10k_write_btcoex(struct file *file,
	else
		clear_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags);

	if (ar->state != ATH10K_STATE_ON)
		goto exit;

	ath10k_info(ar, "restarting firmware due to btcoex change");

	queue_work(ar->workqueue, &ar->restart_work);
	ret = count;

exit:
	mutex_unlock(&ar->conf_mutex);

	return count;
	return ret;
}

static ssize_t ath10k_read_btcoex(struct file *file, char __user *ubuf,