block: fiops ioscheduler core
block: fiops read/write request scale

read/write speed of Flash based storage usually is different. For example,
in my SSD maxium thoughput of read is about 3 times faster than that of
write. Add a scale to differenate read and write. Also add a tunable, so
user can assign different scale for read and write.

By default, the scale is 1:1, which means the scale is a noop.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
block: fiops sync/async scale

CFQ gives 2.5 times more share to sync workload. This matches CFQ.

Note this is different with the read/write scale. We have 3 types of
requests:
1. read
2. sync write
3. write
CFQ doesn't differentitate type 1 and 2, but request cost of 1 and 2
are usually different for flash based storage. So we have both sync/async
and read/write scale here.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
block: fiops add ioprio support

Add CFQ-like ioprio support. Priority A will get 20% more share than priority
A+1, which matches CFQ.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
block: fiops preserve vios key for deep queue depth workload

If the task has running request, even it's added into service tree newly,
we preserve its vios key, so it will not lost its share. This should work
for task driving big queue depth. For single depth task, there is no approach
to preserve its vios key.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
block: fiops bias sync workload

If there are async requests running, delay async workload. Otherwise
async workload (usually very deep iodepth) will use all queue iodepth
and later sync requests will get long delayed. The idea is from CFQ.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
block: fiops add some trace information

Add some trace information, which is helpful when I do debugging.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
wlan: Do not check for mcbc flag to resume.

On a host resume driver sends resume request to the firmware
to terminate the requisite offload functionality (PNO) as well
as disables few offload requisite explicitly, and this is
done only when MCBC filter flag is set. That said ,it would
lead to failed behavior if disable and resume request are
not issued to the firmware.
Address this by sending the resume request and disabling
offloads irrespective of the MCBC filters state.

CRs-fixed: 543098
Change-Id: I0a2192c50ba6e20d7cd7aaa98fe4cb26d050c943
(cherry picked from commit 3d15fbfab6729058614c4de4d05d7af246d23217)
Signed-off-by: Paul Reioux <reioux@gmail.com>
wlan: reload WLAN driver if cannot recover from RX low resource

If WLAN host driver could not recover Out of RX buffer problem,
Trigger re-load host driver to recover from dead end

Change-Id: I04895f56892cc0b25fcee341829eb7eb91ab1553
CRs-fixed: 500022
Signed-off-by: Paul Reioux <reioux@gmail.com>
wlan: adding check for ts_info.up.

'params' is user controlled, and 'ts_info.up' could be defined to be
greater than maximum sme_QosWmmUpType enum, resulting in hddWmmUpToAcMap
being indexed out of bounds.
Validated 0 < ts_info.up < SME_QOS_WMM_UP_MAX.

Change-Id: Ia1966db2a6c8ce8d3a9422f0dd9d91a59573c783
CRs-Fixed: 567234
Signed-off-by: Paul Reioux <reioux@gmail.com>