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

Commit 472410d8 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "wil6210: bus_request platform operation refinement" into msm-4.9

parents 0e6032e3 704099f3
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -764,6 +764,7 @@ static int wil_cfg80211_connect(struct wiphy *wiphy,
	rc = wmi_send(wil, WMI_CONNECT_CMDID, &conn, sizeof(conn));
	if (rc == 0) {
		netif_carrier_on(ndev);
		wil6210_bus_request(wil, WIL_MAX_BUS_REQUEST_KBPS);
		/* Connect can take lots of time */
		mod_timer(&wil->connect_timer,
			  jiffies + msecs_to_jiffies(2000));
@@ -1283,6 +1284,7 @@ static int _wil_cfg80211_start_ap(struct wiphy *wiphy,
	wil->pbss = pbss;

	netif_carrier_on(ndev);
	wil6210_bus_request(wil, WIL_MAX_BUS_REQUEST_KBPS);

	rc = wmi_pcp_start(wil, bi, wmi_nettype, chan, hidden_ssid, is_go);
	if (rc)
@@ -1298,6 +1300,7 @@ static int _wil_cfg80211_start_ap(struct wiphy *wiphy,
	wmi_pcp_stop(wil);
err_pcp_start:
	netif_carrier_off(ndev);
	wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
out:
	mutex_unlock(&wil->mutex);
	return rc;
@@ -1404,6 +1407,7 @@ static int wil_cfg80211_stop_ap(struct wiphy *wiphy,
	wil_dbg_misc(wil, "stop_ap\n");

	netif_carrier_off(ndev);
	wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
	wil_set_recovery_state(wil, fw_recovery_idle);

	mutex_lock(&wil->mutex);
+9 −5
Original line number Diff line number Diff line
@@ -274,6 +274,7 @@ static void _wil6210_disconnect(struct wil6210_priv *wil, const u8 *bssid,
		wil_bcast_fini(wil);
		wil_update_net_queues_bh(wil, NULL, true);
		netif_carrier_off(ndev);
		wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);

		if (test_bit(wil_status_fwconnected, wil->status)) {
			clear_bit(wil_status_fwconnected, wil->status);
@@ -557,6 +558,12 @@ int wil_priv_init(struct wil6210_priv *wil)
	return -EAGAIN;
}

void wil6210_bus_request(struct wil6210_priv *wil, u32 kbps)
{
	if (wil->platform_ops.bus_request)
		wil->platform_ops.bus_request(wil->platform_handle, kbps);
}

/**
 * wil6210_disconnect - disconnect one connection
 * @wil: driver context
@@ -1073,9 +1080,7 @@ int __wil_up(struct wil6210_priv *wil)
	napi_enable(&wil->napi_tx);
	set_bit(wil_status_napi_en, wil->status);

	if (wil->platform_ops.bus_request)
		wil->platform_ops.bus_request(wil->platform_handle,
					      WIL_MAX_BUS_REQUEST_KBPS);
	wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);

	return 0;
}
@@ -1099,8 +1104,7 @@ int __wil_down(struct wil6210_priv *wil)

	set_bit(wil_status_resetting, wil->status);

	if (wil->platform_ops.bus_request)
		wil->platform_ops.bus_request(wil->platform_handle, 0);
	wil6210_bus_request(wil, 0);

	wil_disable_irq(wil);
	if (test_and_clear_bit(wil_status_napi_en, wil->status)) {
+3 −2
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012-2016 Qualcomm Atheros, Inc.
 * Copyright (c) 2012-2017 Qualcomm Atheros, Inc.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
@@ -41,6 +41,7 @@ extern bool disable_ap_sme;
#define WIL_FW_NAME_SPARROW_PLUS "wil6210_sparrow_plus.fw" /* code Sparrow D0 */
#define WIL_BOARD_FILE_NAME "wil6210.brd" /* board & radio parameters */

#define WIL_DEFAULT_BUS_REQUEST_KBPS 128000 /* ~1Gbps */
#define WIL_MAX_BUS_REQUEST_KBPS 800000 /* ~6.1Gbps */

/**
@@ -910,7 +911,7 @@ int wmi_aoa_meas(struct wil6210_priv *wil, const void *mac_addr, u8 chan,
		 u8 type);
int wmi_abort_scan(struct wil6210_priv *wil);
void wil_abort_scan(struct wil6210_priv *wil, bool sync);

void wil6210_bus_request(struct wil6210_priv *wil, u32 kbps);
void wil6210_disconnect(struct wil6210_priv *wil, const u8 *bssid,
			u16 reason_code, bool from_event);
void wil_probe_client_flush(struct wil6210_priv *wil);
+1 −0
Original line number Diff line number Diff line
@@ -566,6 +566,7 @@ static void wmi_evt_connect(struct wil6210_priv *wil, int id, void *d, int len)
	    (wdev->iftype == NL80211_IFTYPE_P2P_CLIENT)) {
		if (rc) {
			netif_carrier_off(ndev);
			wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
			wil_err(wil, "cfg80211_connect_result with failure\n");
			cfg80211_connect_result(ndev, evt->bssid, NULL, 0,
						NULL, 0,