Search Linux Wireless

Re: [PATCH v2] ath11k: cold boot calibration support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sowmiya Sree Elavalagan <ssreeela@xxxxxxxxxxxxxx> writes:

> From: Govindaraj Saminathan <gsamin@xxxxxxxxxxxxxx>
>
> cold boot calibration is the process to calibrate all the channels
> during the boot-up to avoid the calibration delay during the
> channel change.
> During the boot-up, firmware started with mode “cold_boot_calibration”
> Firmware calibrate all channels and generate CalDb(DDR).
> Subsequent WIFI ON will reuse the same CalDb.
> Firmware restarted with Mission mode to continue the normal operation.
>
> caldb memory address send to firmware through the QMI message.Firmware
> use this address to store the caldb data and use it until next reboot.
>
> This will give the improvement during the channel change. But it is
> increasing the boot-up time(up to 15sec depend on number of radios).
> So if the user want to reduce the boot-up time and accepting for channel
> change delay, user can disable this feature using the module param
> cold_boot_cal =0.
>
> Signed-off-by: Govindaraj Saminathan <gsamin@xxxxxxxxxxxxxx>
> Co-developed-by: Sowmiya Sree Elavalagan <ssreeela@xxxxxxxxxxxxxx>
> Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@xxxxxxxxxxxxxx>

Please add a Tested-on tag.

What hardware does support this feature? I guess QCA6390 does not? So I wonder
should we only enable this on hardware which we know supports this? For the
rest we would just give a warning and not enable the feature. And to do that we
would have a boolean for  each hardware in hw_params.

> +static int ath11k_qmi_process_coldboot_calibration(struct ath11k_base *ab)
> +{
> +	int timeout;
> +	int ret;
> +
> +	ret = ath11k_qmi_wlanfw_mode_send(ab, ATH11K_FIRMWARE_MODE_COLD_BOOT);
> +	if (ret < 0) {
> +		ath11k_warn(ab, "qmi failed to send wlan fw mode:%d\n", ret);
> +		return ret;
> +	}
> +
> +	ath11k_warn(ab, "Coldboot calibration wait started\n");

This should be a debug message.

> +	timeout = wait_event_timeout(ab->qmi.cold_boot_waitq,
> +				     (ab->qmi.cal_done  == 1),
> +				     ATH11K_COLD_BOOT_FW_RESET_DELAY);
> +	if (timeout <= 0) {
> +		ath11k_warn(ab, "Coldboot Calibration timed out\n");
> +		return -ETIMEDOUT;
> +	}
> +
> +	ath11k_warn(ab, "Coldboot calibration wait ended\n");

And this too.

-- 
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux