radio: iris: Expose FM Radio commands and events to user-space

Move the FM command and event structure declarations to separate header
file and include it in FM Radio driver.

Change-Id: Id664eab476240a54a1bc8db656bc9dc95a252bdb
CRs-Fixed: 436286
Signed-off-by: Venkateshwarlu Domakonda <Venkateshwarlu@codeaurora.org>
radio-iris: Configure repeat count for PS string

- When FM Rx tuned to a station, not receiving complete PS string.
  SOC is not waiting for complete PS string. it is sending PS event
  even if it has part of PS string as well.
- Added support for setting repeat count for PS string
  to get refined PS string from receiver.

CRs-Fixed: 474719
Change-Id: I71c0c1c8af9488573c05d816c37982f9ed935a87
Signed-off-by: Venkateshwarlu Domakonda <Venkateshwarlu@codeaurora.org>
radio: iris: Add the parameter to turn on/off sig blend

FM driver will always enable the sig blend feature, it will cause
FM seperation failure during lab test.So add this new parameter
to disable the feature by adb command to pass the test.

Change-Id: I187d4e5fff4aabfb994a905e174bb8ce941e2c16
Signed-off-by: Sheng Fang <fsheng@codeaurora.org>
radio: iris: Add NULL pointer check

Dereferencing a NULL pointer may cause kernel crash,
Check for NULL pointer before dereferencing

Conflicts:
        drivers/media/radio/radio-iris.c

Change-Id: Ic3368d619d23c76702d95e0f69e41394e423a296
CRs-Fixed: 548404
Signed-off-by: Ayaz Ahmad <aahmad@codeaurora.org>
radio: iris: Bound check user space values

There is no bound check for arguments passed
from user space to kernel space. This may cause
fatal exceptions.

Change-Id: I944e8e5d6e3b12b75df4e6cee7887075237b4411
CRs-Fixed: 546081
Signed-off-by: Ayaz Ahmad <aahmad@codeaurora.org>
radio: iris: Fixed an issue with search stations list.

RDS search, search station list were getting excluded
while checking bounds for allowed search types. Fixed
check to include them.

CRs-fixed: 597996
Change-Id: Ia2d7cc8a1bbf8e861a0e23dfc8ca56181b42b810
Signed-off-by: Satish Kodishala <skodisha@codeaurora.org>
radio: iris: Use #define to declare numerical constants

* Declaring these as actual types causes duplicate symbol problems
  when compiling IRIS as a kernel builtin.

Change-Id: Id180bc196caaa12d0755a9159af9660419558a56
m7 kernel: Add FM radio support

Build IRIS into the kernel for the m7

Change-Id: I38aaeed50e3b6fbba4da8854eba32d759bdb9acc