msm: mdss: implement overlay prepare ioctl

Overlay prepare will allow a full frame with multiple overlays to be
configured at once and perform frame level checks before being pushed to
display. This function guarantees that if the call is successful, the
frame can be displayed successfully on the screen when display commit is
called.

Change-Id: I276b6fe3e0a872a2e93170f3cea1002d3ce0dac9
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
Signed-off-by: Anusha Koduru <kanusha@codeaurora.org>
msm: vidc: Bail out if ocmem allocation failed

We shouldn't need to call venus_hfi_set_ocmem if the allocation of ocmem
failed.

Change-Id: I805f914af4d340fd50beecdb63b87c4cbda19fb0
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
msm: vidc: add LTR support for video encoder

Enable LTR support for VP8 codec to add robust error resilience.

Change-Id: I3b87c5cdaef836a6d02d5b9fe71b7165b7f13581
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
msm: vidc: Add generic LTR mode support

Use generic LTR HFI APIs for h264 and vp8 formats.

Change-Id: I9f307046d7ec6de4eb6d43704686be902356882a
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
msm: vidc: Add support to request frame level QP information

The resulting QP information for H264 is the slice level
QP averaged over whole frame; for all other codecs its
frame level QP.

Change-Id: I288904b05d886c1e94fc113b8bd3fba5b13b48f3
Signed-off-by: Jorge Solano Altamirano <jsolano@codeaurora.org>
msm: vidc: Add support to request frame bits info as extra-data

Provides information regarding number of bits in the frame (i.e frame
size expressed in bits) & also the number of bits in frame header (i.e
frame header size expressed in bits).
Number of bits in header is reported as:
For H264, sum of all slice headers bits for all the slices in the frame.
For all other codecs, number of bits in the frame header.

Change-Id: I6caeca025ff0ce059a20891a6d657b47c4b452b3
Signed-off-by: Jorge Solano Altamirano <jsolano@codeaurora.org>
msm: vidc: Return meaningful information for extra-data plane

Sending meaningful information in the extra-data plane structure
instead of trashy values for some uninitialized fields.

Change-Id: I6d1a5debb801836f48e4cdbd6129b5086ec18a63
Signed-off-by: Jorge Solano Altamirano <jsolano@codeaurora.org>
v4l2: Add enum for frame level QP extra-data

This option is intended to be used to request as extra-data
the frame level QP.

Change-Id: Icaf88bd5a48ac394d1ed7ded8dc320cfeebc2765
Signed-off-by: Jorge Solano Altamirano <jsolano@codeaurora.org>
v4l2: Add enums to request frame bits info as extra-data

This option is intended to be used to request as extra-data
the size in bits from frame header and frame itself.

Change-Id: I207045cda8c8038981bcf4548eb3d221502a67e1
Signed-off-by: Jorge Solano Altamirano <jsolano@codeaurora.org>
msm: vidc: Add support for MBI extradata

Macro Block Information extradata (if enabled) allows interested
clients to query for metadata about each macroblock.

Change-Id: Icfee32770018338e28ae149e1ccb654f5a48cbec
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
msm: vidc: add control to enable Hierarchical P num layers

This change will enable firmware to perform Hierarchical
video encoding for P frames. Hierarchical video encoding is
used to improve error resilience and temporal scalability.
The encoded frames are logically organized in to multiple
layers with frames in one layer referencing only frames
from lower layers. The lowest layer, i.e. base layer, is
the only exception.

Change-Id: Ie30e6d075b76b3337ec895584cf1f3be9f4bb6c6
Signed-off-by: Arun Menon <avmenon@codeaurora.org>
msm: vidc: Provide qmenu for V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_MODE

The v4l2 control framework requires a qmenu containing a string
description of each menu item.

Change-Id: Id41fd794a6f7ad8711caf9d072975ad6cabad6f9
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
msm: vidc: Add description of LTR Extradata

The missing string descriptor caused a mismatch in array sizes
causing the v4l2 control framework make an out of bounds access.

Change-Id: I9a9f64e16ca95163d800702d94528833f5892537
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
msm: vidc: Query the core on VIDIOC_G_FMT

Previously we only queried the core for buffer requirements in
VIDIOC_REQBUFS, and relied on that information in _G_FMT.  However,
there's no expectation that the client calls _REQBUFS before _G_FMT,
which leads to stale information being returned as part of _G_FMT.

As such, always retreive fresh info from the core for either ioctl.

Change-Id: Ife94343f4bd4f62da7f2bef4266076ceed409bca
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
msm: display: Add pipe type selection in overlay request

Allow user to specify the type when requesting an overlay pipe.
If field is set the pipe type indication in the flags will be
ignored.
Change-Id: Iee51d24b96c7a2a987dc70a439342e6548dfc8fa
Signed-off-by: Vineet Bajaj <vbajaj@codeaurora.org>
update gitignore
prima: WLAN Driver Release 3.1.7.9

Initial code drop for wlan driver.

git clone gitosis@git.codeaurora.org:/external/wlan/reponame.git
SHA: 295189bdc1f9d9ce4f01e1c67662aaad2d64348a

Signed-off-by: Iliyan Malchev <malchev@google.com>
prima: WLAN Driver Release 3.1.7.11

git clone git://codeaurora.org/external/wlan/prima.git
SHA: 04dd8a8d8eb61b4e09387f952c241560a361935f

Incorporate Driver Releases 3.1.7.10 and 3.1.7.11

Release 3.1.7.10

Integrate the following CLs from Perforce:

633566: Do not drop beacons or probe response ever when in scan mode
If beacons or probe response is dropped for an AP, it can take upto 10
seconds to connect to an AP as the AP will not be discovered until
next scan cycle.  There was logic to throttle/drop incomming frames
even during scan and not overhwhelm PE and VOSS Message wrappers which
was done in Gen6 days. With the new MSMs, faster processing power and
and removal of SDIO, host should be able to handle and process all
frames fast enough.  Therefore do not ever drop beacons or probe
response frames when we are in scan mode.  (CR 368500)

633567: Fix BMPS issues which prevent disconnect after missed beacon
1. In missed beacon scenario, BMPS request from PMC must not be
allowed by PE. This is because DUT has exited BMPS to probe the AP and
if probe has not completed, BMPS must not be allowed.
2. When ENTER BMPS is rejected or ENTER BMPS fails, make sure
heartbeat timer is always running. This is just a fail safe check to
ensure we do not ever land in a situation where DUT is out of BMPS and
also out of AP's range but heartbeat timer is deactivated for some
reason. If that happens, link will never be torn down and device will
always keep trying to enter BMPS unsuccessfully.
3. Introduce a new eSIR_SME_BMPS_REQ_REJECT which implies that request
is rejected by PE.  eSIR_SME_BMPS_REQ_FAILED now implies that request
was denied by Riva. This will help us in debugging.  (CR 367659)

633809: Change value of MAX_SCAN_SSID
While doing cfg80211 interface registeration with kernel, we are
filling wiphy->max_scan_ssids parameter with MAX_SCAN_SSID value
(MAX_SCAN_SSID =2). So During combo scan wpa_supplicant is not able to
send more then 2 profile to host driver. As host driver supporting 9
max ssid. MAX_SCAN_SSID has value set to 9 while registering the
cfg80211 interface.  (CR 365219)

634012, 634018, 634021, 634163: Legacy Fast Roaming Feature (CR 362782)

634148: Fix SSR race condition in cfg80211 APIs and BTAMP
cfg80211 APIs are blocked when SSR is going on; there could be various
race conditions in WLAN driver if these APIs are not blocked during
SSR. Some of them are already SSR protected, adding protection to the
missing ones. Also fixing a BTAMP race condition during SSR in softap
mode.  (CR 370064)

634185: Fuzzing Fix - Vos Packet is Freed Twice
Fix issue seen in fuzzing test case #48518 for malformed data packet -
There is a bug where if WLANTL_GetEtherType fails, the vos packet is
returned twice.  (CR 369987)

634238: Fix for Timer Leak
While unloading host driver it is showing timer leak. In rrmClose
function, it is not destroying neighborRspWaitTimer. Same way it is
not destroying txSleepTimer in hddDevTmUnregisterNotifyCallback
function. this change is going to fix both timer leak issue.  (CR
369951)

634272: Fix of kernel Panic in P2P mode after including DXE TX ring empty fi
DXE TX ring is taking more than 3 seconds in some secarios to get
cleared and becasue of this after getting DEL BSS response sessionId
is getting changed and as a side effect of this dev is comign as Null
and any access to it is leading to Kernel Panic.  (CR 370441)

634397: SME Close Session wait timeout should be more than WDI timeout
SME Close Session is timing out before getting the call back from
WDI. Increased the WLAN_WAIT_TIME_SESSIONOPENCLOSE to 15 seconds which
is more than WDI timeout (10 seconds).  (CR 368821)

634422: Port config80211 softap interfaces to Kernel 3.4
The softap config80211 interfaces are changed in Kernel 3.4, some of
the interfaces are renamed; and also a new data structures is
introduced for softap interface. So the existing WLAN driver APIs are
modified to accomadate these changes.  (CR 371516)

634858: Fix typo in sirWrapper.h Copyright
Fix typo that was uncovered during Open Source legal scan

Release 3.1.7.11

Integrate the following CLs from Perforce:

634522: Make changeCountryCode ioctl completly synchronous
Implemented completion routine and callback function to make
changeCountryCode Ioctl completely Synchronous (CR 365094)

634543: Fix typo in WCNSS version log message

634791: Do not allow the second interface for the same type.
Currently two concurrent sessions of same type are not supported. The
new additional session is causing problems to existing session. Seeing
errors like sme_OpenSession() failure, disconnecting and reconnect the
existing session, but data transfer failure etc., As two P2P sessions
are currently not supported, restrict this, at HDD level. This can be
removed once concurrent P2P CLI sessions have to be supported.

634824: Set ERP protection bit when SoftAP overlaps with 11b AP.
SoftAP is not setting ERP protection bit when 11b AP operates in same
channel as that of SoftAP. Added this 11b OBSS overlap support. After
turning off 11b AP, ERP protection bit is cleared but not "OBSS non-HT
STA" persent bit. HT protection also remained "01". We need to disable
this HT protection also while disabling ERP protection.  (CR 368189)

634825: Fix for Memory Leak
While sending scan response from LIM to SME, it allocate memory of
8000 byte length for pSirSmeScanRsp. In case where scan results are
empty (bssCount=0) LIM send eWNI_SME_SCAN_RSP message with
statusCode. After posting message it is not freeing memroy which is
allocated previously which result into memory leak for 8000 byte when
we unload driver. Now After posting message we will check if
pSirSmeScanRsp is not NULL then free allocate memory.  (CR 371901)

634850: Fix for setband and country commands which occasionally enable dualb
Added a fix to check the INI settings for band (CR 368987)

634876: Max tx power value from ini is not reflected during initial assoc
check is added to pick up the lowest of regmax, ap and ini value  (CR 367780

635070: Fix issue with iwconfig for p2p session when concurrency is enabled

635072: Fix for leting device go to IMPS when p2p_client is disconnected
In case where p2p_client is the last session to be
deleted/disconnected, what happens is that csrScanTriggerIdleScan()
fails at vos_concurrent_sessions_running(). We add further check to
see if any session is in connect state. In case there are no sessions
in connect state, it is okie to go into IMPS.

635216: Fix SoftP and P2P porting issues on Kernel 3.4
When registering with config80211 interface, Kernel 3.4 expects to
announce the capability for "remain on channel" interface. So add this
flag when WLAN driver register with cfg80211. For SoftAP when cfg80211
new station interface is invoked, Kernel 3.4 expects an additional
flag in station info, to indicate that it has filled association
request IES.
prima: HACK: compilation fixes for gcc 4.6

These changes are reguired to compile sucessfully with gcc 4.6
It's temporary solutions and better to remove the warning from codes.

Change-Id: I7fb7456134bc44bf5ce49edf5f00dae10ae5e778
Merge prima driver releases 3.2.0.1 and 3.2.0.2 from codeaurora.org

git clone git://codeaurora.org/external/wlan/prima.git
	d13512 prima: WLAN Driver Release 3.2.0.1
	43971f5 prima: WLAN Driver Release 3.2.0.2

prima: WLAN Driver Release 3.2.0.1

Integrate the following CLs from Perforce:

635258: Integrate the latest Riva API

635360: Cleaning up WDI_SendMsg for WDA requests with req callbacks
1. For WDI requests which have registered a request callback, inform
the WDA caller of the same via setting the return value (wdiStatus) to
WDI_STATUS_PENDING. This makes sure that WDA doesnt end up repeating
the functonality in the req callback for the WDI_STATUS_E_FAILURE case
2. General cleanup/restructuring of WDI_SendMsg.
(CR 356091)

635425: Add support for multicast MAC address list
Provision to configure multicast MAC address list "gMCAddrListEnable"
flag and support for Multicast MAC address List.  Currently Multicast
MAC address List is not supported. Nowit is supported in Riva and Host
changes are verified. In addition to this, one ini flag
"gMCAddrListEnable" is introduced to enable this support.
  # to enable Multicast MAC address list
  # Flags to enable filter Mcast MAC address list separately
  # gMCAddrListEnable=1 to enable the support
  # gMCAddrListEnable=0 to disable the support
  gMCAddrListEnable=1
Default value 0 if not configured in ini file.  (CR 371401)

635520: Fix a possible NULL pointer dereference in SME 'get statistics'
Fix a possible NULL pointer dereference while SME processes a 'get
statistics' de-register request. (CR 368659)

636116: Support multicast MAC address list

636138 & 636161: Remove hard tabs

636159: Avoid duplicate entries in gLimMgmtFrameRegistratinQueue
__limProcessSmeRegisterMgmtFrameReq is adding entry even there is an
entry for requested mgmt frame already exists.  This is creating
problem when wlan_hdd_request_remain_on_channel function get called
back to back.  Fix- First checking whether the entry for requested
mgmt frame exists in the list; if exists then deleting the entry and
adding new entry to make sure that there wont be no duplicate entries
in the list.

636356: Avoid unwanted reset of country code after disassoc/assoc failure
After dis-association or association failure, reset the country code
only if 11d is disabled and current operating country code and default
country codes are different.  If we reset the country code, driver is
flushing the scan results and which is triggering full scan. Full scan
is taking 3-4 sec and this delay is causing connection issues in
roaming.

636724: Fix for Prefetch Abort in Vos MC Thread
Fix to not invoke WDI callback function if it is NULL (CR 370598)

prima: WLAN Driver Release 3.2.0.2

Integrate the following CLs from Perforce:

636735: Insure PMK candidate notify event only sent up to supplicant for RSN
Insure that PMK candidate notify even only sent up to supplicant for
RSN associations (CR 362782)

636761,
636770,
636789: Feature for supporting roaming to an AP with better RSSI
This feature takes care of the station to roam to a new AP only if the
roamable/new AP has a better RSSI than current AP.  A new ini item has
been added named RoamRssiDiff using which we can configure how better
in terms of Rssi, the new AP that we want to roam should be. On
providing a value of Zero, the feature is disabled and the check for
an AP with better RSSI does not happen while roaming. (CR 366355)

636834: Set rssi filter period to FT value
if CCX is disable and LFR is enabled, rssi filter period was set to 20
(default value) because of which RSSI monitoring was not effective,
changes added to set rssi filter period to FT rssi value (5) even for
LFR enabled case also. (CR 372303)

636843: isFastRoamingEnabled passed during reassoc (CR 372303)

636970: Implemented getwlandbg for SoftAP
SoftAP does not have an ioctl to print the log levels and log
info. Implemented getwlandbg for SoftAP.  (CR 374467)

636989 & 636992: Remove hard tabs and DOS line endings

637100: Fix of WDA Stop timeout kernel panic issue.
WDA stop timeout should never happen. Increasing WDA stop timeout
after considering 1 pending request and cleaning up WDI pending queues
once driver unload is trigerred.  (CR 367261)

637246: Fixed WLAN_BAPReset() to avoid sending Disassoc on STA interface.
Due to some reason(Seen just after driver load and whenever
hdd_netdev_notifier_call get called with netdevice state
NETDEV_GOING_DOWN where we call WLANBAP_DeregisterFromHCI())
WLAN_BAPReset was getting called through BSL_Write -> bslWriteFinish.
Even If the BT-AMP session is not opened(in this case
btampHandle->sessionId will be zero(default value) and if
WLAN_BAPReset is called, BAP was issueing sme_RoamDisconnect with
sessionId 0 which is station interface which results in Disassoc of
STA with AP.  Fixed the issue by checking BT-AMP session is opened or
not. (btampContext->isBapSessionOpen). If its opened then only call
sme_RoamDisconnect.

637340: SAP does not beacon on Country code to which STA is associated
(CR 368474)

637497: completed tx statistic reporting functionality
(CR 370923)

637687: Support for MC/BC & hostARPOffload with ini to work instead of ioctl
Fixes MC frames are still passed to host driver although
McastBcastFilter=1, hostArpOffload=0 (CR 363707)

637850: Fix for SAP Auto Channel Selection feature
For SAP auto channel selection, WLAN host driver do scan to find less
noise channel. While performaing scan do not check for Active session
in CSR module and change CSR roam state to eCSR_ROAMING_STATE_SCANNING
state for scan command irrespective of session is active or not.  (CR
375829)

638022: Fix for CCX-STA to connect to CCKM-RSN AP
because of the incorrect if-else-if authentication type overwritten to
255 (CR 376930)

638142-638147: Fix compilation warnings caused by GCC -Wenum-compare
Recent versions of the GCC compiler include an "enum-compare" warning
which will emit a warning when an enum of one type is compared with an
enum of a different type.  The compiler has found occurrences of this
issue in the WLAN code.  Fix those issues such that enum comparisons
are restricted to enums of the same enumerated type.

638253: Implemented getAutoChannel ioctl for SoftAP
SoftAP does not have an ioctl to get auto channel. Implemented
getAutoChannel for SoftAP and fixed getchannel ioctl for softap (CR
369147)

638267: Fix GCC 4.6 compile failure in WDI due to inlining failure
WDI_GET_PAL_CTX() was defined to be an inline function, but the
function body was not available to the compilation units that refer to
it.  Other versions of the compiler have silently ignored this, but
GCC-4.6 is emitting an error "sorry, unimplemented: inlining failed in
call to 'WDI_GET_PAL_CTX': function body not available".  So we remove
the unnecessary "inline" directive from the definition of
WDI_GET_PAL_CTX().

638291: Fix WLAN suspended flag
If WLAN driver suspend fails becuase of a TX, RX or MC thread suspend
timeout, the suspended flag is not reset. So set the suspended flag
only after all three threads are suspended successfully.  (CR 375230)

638703: Disabling AMP flag
Disabling AMP flag from config file, so that we don't register with
HCI any more as BT AMP is not PORed (CR 375826)