<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><font size="-1">Hi Shrirang,</font></p>
    <p><font size="-1">I will follow below instructions and send you the
        v2 patch.</font></p>
    <pre class="moz-signature" cols="72">Thank you
Siva Rebbagondla</pre>
    <div class="moz-cite-prefix">On Monday 23 April 2018 11:06 AM,
      Shrirang Bagul wrote:<br>
    </div>
    <blockquote cite="mid:1524461789.28338.11.camel@canonical.com"
      type="cite">
      <pre wrap="">Hi Amit,

Looks like this patch slipped through the current SRU cycle, possibly because it was tagged with same message-ID as the firmware patch "[Xenial][PATCH] UBUNTU: linux-firmware: update firmware images
for Redpine 9113 chipset".
Unfortunately, it too late now for this cycle,  please resend this patch for SRU again, don't forget to add a 'RESEND' prefix to the subject. 

This will certainly delay the release of this feature to the customer.

To avoid such mishaps In future:
- Make sure patches for linux-firmware (firmware) package and linux (Xenial kernel) patches must have separate message-ID's, 
- Separate bugs must be filed against each of the packages, and
- Firmware patch must only include the BugLink to the bug in linux-firmware package; the same logic applies for the kernel SRU patch.

Thanks,
Shirang


On Wed, 2018-03-21 at 20:02 +0530, Amitkumar Karwar wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">From: Sanjay Kumar Konduri <a class="moz-txt-link-rfc2396E" href="mailto:sanjay.konduri@redpinesignals.com"><sanjay.konduri@redpinesignals.com></a>

BugLink: <a class="moz-txt-link-freetext" href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1757435">https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1757435</a>

We are disabling deep sleep before performing scan. In corner case,
it's observed that probe request is downloaded to firmware before
receiving deep sleep confirmation which leads to a scan stop issue

Race is resolved in this patch by waiting for the confirmation from
firmware

Signed-off-by: Sanjay Kumar Konduri <a class="moz-txt-link-rfc2396E" href="mailto:sanjay.konduri@redpinesignals.com"><sanjay.konduri@redpinesignals.com></a>
Signed-off-by: Amitkumar Karwar <a class="moz-txt-link-rfc2396E" href="mailto:amit.karwar@redpinesignals.com"><amit.karwar@redpinesignals.com></a>
---
 ubuntu/rsi/rsi_91x_main.c | 1 +
 ubuntu/rsi/rsi_91x_mgmt.c | 5 +++++
 ubuntu/rsi/rsi_main.h     | 1 +
 3 files changed, 7 insertions(+)

diff --git a/ubuntu/rsi/rsi_91x_main.c b/ubuntu/rsi/rsi_91x_main.c
index 2350dbb61..49b98cd 100644
--- a/ubuntu/rsi/rsi_91x_main.c
+++ b/ubuntu/rsi/rsi_91x_main.c
@@ -382,6 +382,7 @@ struct rsi_hw *ven_rsi_91x_init(void)
 #ifdef CONFIG_HW_SCAN_OFFLOAD
        rsi_init_event(&common->chan_set_event);
        rsi_init_event(&common->probe_cfm_event);
+       rsi_init_event(&common->mgmt_cfm_event);
        rsi_init_event(&common->chan_change_event);
        rsi_init_event(&common->cancel_hw_scan_event);
        common->scan_workqueue = 
diff --git a/ubuntu/rsi/rsi_91x_mgmt.c b/ubuntu/rsi/rsi_91x_mgmt.c
index 11b2046..58a9b69 100644
--- a/ubuntu/rsi/rsi_91x_mgmt.c
+++ b/ubuntu/rsi/rsi_91x_mgmt.c
@@ -2407,6 +2407,8 @@ void rsi_scan_start(struct work_struct *work)
 
        common->scan_in_prog = true;
        rsi_disable_ps(common->priv);
+       rsi_reset_event(&common->mgmt_cfm_event);
+       rsi_wait_event(&common->mgmt_cfm_event, msecs_to_jiffies(2000));
        
        for (ii =0; ii < scan_req->n_channels ; ii++) {
                if (common->iface_down)
@@ -2470,6 +2472,8 @@ void rsi_scan_start(struct work_struct *work)
        del_timer(&common->scan_timer);
        common->scan_in_prog = false;
        rsi_enable_ps(common->priv);
+       rsi_reset_event(&common->mgmt_cfm_event);
+       rsi_wait_event(&common->mgmt_cfm_event, msecs_to_jiffies(2000));
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0))
        info.aborted = false;
        ieee80211_scan_completed(common->priv->hw, &info);
@@ -2693,6 +2697,7 @@ static int rsi_handle_ta_confirm(struct rsi_common *common, u8 *msg)
 
        case WAKEUP_SLEEP_REQUEST:
                ven_rsi_dbg(INFO_ZONE, "Wakeup/Sleep confirmation.\n");
+               rsi_set_event(&common->mgmt_cfm_event);
                return rsi_handle_ps_confirm(adapter, msg);
 
        case BG_SCAN_PROBE_REQ:
diff --git a/ubuntu/rsi/rsi_main.h b/ubuntu/rsi/rsi_main.h
index 2aad124..027e9d9 100644
--- a/ubuntu/rsi/rsi_main.h
+++ b/ubuntu/rsi/rsi_main.h
@@ -376,6 +376,7 @@ struct rsi_common {
        struct work_struct scan_work;
        struct rsi_event chan_set_event;
        struct rsi_event probe_cfm_event;
+       struct rsi_event mgmt_cfm_event;
        struct rsi_event chan_change_event;
        struct rsi_event cancel_hw_scan_event;
        struct timer_list scan_timer;</pre>
      </blockquote>
    </blockquote>
    <br>
  <BR />
<BR />
<br><BR />
</body>
</html>