drivers:bluetooth:hci_h4p

P.S. Changes are taken from Nokia public linux kernel tarball
and separated to different commits in some almost random order.
The nearest baseline corresponding to this changes was selected.
So, do not try to find logic ;)

Signed-off-by: Denis Zalevskiy <denis.zalevskiy@jollamobile.com>
(cherry picked from commit 41fd4973a9f2c01322760390aa743b736ad25b9c)
drivers:bluetooth

P.S. Changes are taken from Nokia public linux kernel tarball
and separated to different commits in some almost random order.
The nearest baseline corresponding to this changes was selected.
So, do not try to find logic ;)

Signed-off-by: Denis Zalevskiy <denis.zalevskiy@jollamobile.com>
(cherry picked from commit 0f4872c8bfaf81ec4d9ae5ee9854cf93cdd9619d)

Conflicts:
	drivers/bluetooth/Kconfig
	drivers/bluetooth/btusb.c
BT: Build error fixes for HCI_H4P driver

This patch adjust HCI_H4P driver to 3.5 kernel.

Signed-off-by: Lukasz Rymanowski <lukasz.rymanowski@tieto.com>
N9: wl1271 sdio card

Detect, configure and enable sdio/wl1271 WLAN card.
Verifed with N9 with wl1271 sdio.
Ported from old kernel version.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Marek Puzyniak <marek.puzyniak@tieto.com>
ARM: Add BT configuration to mach-omap2

Add bluetooth configuration for nokia RM680 and RM696.
Some files like board-omap-bt and board-nokia has been ported from
2.6.32 kernel.

Signed-off-by: Lukasz Rymanowski <lukasz.rymanowski@tieto.com>
N9: Enable BT in Mer

Signed-off-by: Lukasz Rymanowski <lukasz.rymanowski@tieto.com>
N950: wl1271 spi support

Configure and setup WLAN spi card.
Also detect if N9 or N950 and configure
correct bus (SDIO, SPI).

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
wlcore: add power callback for SPI

Add power callback also for SPI.
This will also fix a dump:

[  143.111602] Unable to handle kernel NULL pointer dereference at
virtual address 00000000
[  143.150573] pgd = dda58000
[  143.153472] [00000000] *pgd=9d812831, *pte=00000000, *ppte=00000000
[  143.181091] Internal error: Oops: 80000007 [#1] PREEMPT ARM
[  143.186981] Modules linked in: wlcore_spi(+) wl12xx wlcore mac80211
cfg80211 atmel_mxt pvrsrvkm ipv6
[  143.196655] CPU: 0    Not tainted  (3.5.3-00240-g17ca7c0-dirty #7)
[  143.203186] PC is at 0x0
[  143.206024] LR is at wl12xx_set_power_on+0x24/0xb0 [wlcore]
[  143.211883] pc : [<00000000>]    lr : [<bf162620>]    psr: 60000013
[  143.211883] sp : ddf23db0  ip : 00000002  fp : 00000000
[  143.223968] r10: 00000000  r9 : 00000000  r8 : dddae1a8
[  143.229522] r7 : 00000001  r6 : dddaeb5a  r5 : dddad8e0  r4 : dddad8e0
[  143.236389] r3 : 00000000  r2 : 00000000  r1 : 00000001  r0 : ddfef808
[  143.243255] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  143.250732] Control: 10c5387d  Table: 9da58019  DAC: 00000015
[  143.256774] Process insmod (pid: 442, stack limit = 0xddf222e8)
[  143.263000] Stack: (0xddf23db0 to 0xddf24000)
[  143.267578] 3da0:                                     dddad8e0
dddaeb70 00000008 dddad8e0
[  143.276153] 3dc0: 00000000 bf175ff8 ddfefa50 dddad8e0 ddfef808
c02bd12c 00000000 bf194f24
[  143.284729] 3de0: 00000000 c02be138 c02be124 c02bcf78 c02be318
ddfef808 c02bd12c 00000000
[  143.293304] 3e00: 00000000 c02bb968 de4038d8 dd8bed54 ddfef808
ddfef83c ddfef808 c02bd208
[  143.301879] 3e20: ddfef808 c06a8af0 ddfef808 c02bc394 ddfef808
ddfef810 de700c00 c02bb24c
[  143.310485] 3e40: ddfef810 00000000 00000000 de700c00 00000000
c0259ad4 ddfef800 ddfef800
[  143.319091] 3e60: 00000001 0000001c de700c00 00000000 ddf22000
00000000 00000000 c02be670
[  143.327636] 3e80: 00000000 dda62cc0 c067ea30 00000020 de700c00
bf19a730 de46bb08 00000000
[  143.336212] 3ea0: 00000000 bf19a8a5 00000400 00000000 00000000
00000000 de700c00 de700c34
[  143.344787] 3ec0: bf19a98c bf19a98c c000d804 c030bb5c c030bb44
c02bcf78 00000000 de700c00
[  143.353363] 3ee0: de700c34 bf19a98c 00000000 c02bd108 bf19a98c
c02bd0a0 00000000 c02bb9e8
[  143.361907] 3f00: de46baa8 de53fed0 bf19a98c dd9ff600 c06afb18
c02bc0d0 bf19a8f7 00000000
[  143.370483] 3f20: 00000000 bf19a98c bf19c000 00000000 00000000
c000d804 00000000 c02bd724
[  143.379089] 3f40: bf19a9c4 bf19c000 00000000 00000000 c000d804
c000863c 00000000 00000001
[  143.387664] 3f60: bf19a9c4 b6f7e2f0 00000000 bf19a9c4 b6f7e2f0
00000000 0002dc66 c000d804
[  143.396270] 3f80: ddf22000 c006b5d8 b6d80000 0002dc66 b6f7e2f0
00000000 00000000 00022db8
[  143.404876] 3fa0: 00000080 c000d660 00000000 00000000 b6d80000
0002dc66 b6f7e2f0 b6d80000
[  143.413513] 3fc0: 00000000 00000000 00022db8 00000080 00022d10
0002dc66 b6f7e2f0 00000000
[  143.422088] 3fe0: b6eee200 beaa68d8 b6f74ae4 b6eee210 60000010
b6d80000 fa0e0000 0e000061
[  143.430969] [<bf162620>] (wl12xx_set_power_on+0x24/0xb0 [wlcore])
from [<bf175ff8>] (wlcore_probe+0x3b4/0x678 [wlcore])
[  143.442474] [<bf175ff8>] (wlcore_probe+0x3b4/0x678 [wlcore]) from
[<c02be138>] (platform_drv_probe+0x14/0x18)
[  143.452880] [<c02be138>] (platform_drv_probe+0x14/0x18) from
[<c02bcf78>] (driver_probe_device+0xc8/0x1f0)
[  143.463012] [<c02bcf78>] (driver_probe_device+0xc8/0x1f0) from
[<c02bb968>] (bus_for_each_drv+0x48/0x80)
[  143.472961] [<c02bb968>] (bus_for_each_drv+0x48/0x80) from
[<c02bd208>] (device_attach+0x78/0xa4)
[  143.482269] [<c02bd208>] (device_attach+0x78/0xa4) from
[<c02bc394>] (bus_probe_device+0x28/0x9c)
[  143.491577] [<c02bc394>] (bus_probe_device+0x28/0x9c) from
[<c02bb24c>] (device_add+0x3d8/0x554)
[  143.500823] [<c02bb24c>] (device_add+0x3d8/0x554) from [<c02be670>]
(platform_device_add+0x104/0x160)
[  143.510528] [<c02be670>] (platform_device_add+0x104/0x160) from
[<bf19a730>] (wl1271_probe+0x140/0x19c [wlcore_spi])
[  143.521636] [<bf19a730>] (wl1271_probe+0x140/0x19c [wlcore_spi])
from [<c030bb5c>] (spi_drv_probe+0x18/0x1c)
[  143.531982] [<c030bb5c>] (spi_drv_probe+0x18/0x1c) from
[<c02bcf78>] (driver_probe_device+0xc8/0x1f0)
[  143.541687] [<c02bcf78>] (driver_probe_device+0xc8/0x1f0) from
[<c02bd108>] (__driver_attach+0x68/0x8c)
[  143.551544] [<c02bd108>] (__driver_attach+0x68/0x8c) from
[<c02bb9e8>] (bus_for_each_dev+0x48/0x74)
[  143.561065] [<c02bb9e8>] (bus_for_each_dev+0x48/0x74) from
[<c02bc0d0>] (bus_add_driver+0xa8/0x224)
[  143.570587] [<c02bc0d0>] (bus_add_driver+0xa8/0x224) from
[<c02bd724>] (driver_register+0xa0/0x12c)
[  143.580108] [<c02bd724>] (driver_register+0xa0/0x12c) from
[<c000863c>] (do_one_initcall+0x98/0x16c)
[  143.589721] [<c000863c>] (do_one_initcall+0x98/0x16c) from
[<c006b5d8>] (sys_init_module+0x70/0x18c)
[  143.599395] [<c006b5d8>] (sys_init_module+0x70/0x18c) from
[<c000d660>] (ret_fast_syscall+0x0/0x3c)
[  143.608886] Code: bad PC value
[  144.454803] ---[ end trace ba1722c65a7fd00a ]---

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
wlcore: SPI - fix spi_transfer list

In corner case for wl12xx_spi_raw_write() when
	len == WL1271_AGGR_BUFFER_SIZE
we don't setup correctly spi transfer_list.
Next we will have garbage and strange errors
reported by SPI framework (eg. wrong speed_hz,
failed to transfer one message from queue)
when iterate transfer_list.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
n9: disable RFKILL in defconfig

Temporary disbale RFKILL for n9_mer_defconfig.
This will allow for easy WLAN testing.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Merge pull request #14 from rymanluk/master

Enable BT chip for N9 and N950

Looks good, pulling in.

Signed-off-by: Kalle Jokiniemi <kalle.jokiniemi@jollamobile.com>
Merge pull request #15 from l4mer/master

N9, N950: wlan sdio/spi driver configuration

Works nicely. We have WLAN now. Need to do bit of packaging to get the firmware more easily available. Pulling in.

Signed-off-by: Kalle Jokiniemi <kalle.jokiniemi@jollamobile.com>
Nemo: remove needless mkdir from prepare script

The prepare script was duplicating the mods/lib/modules/...
folders to mods/lib/modules/$KernelVer/

Removed the duplicating code as it's not needed.

Signed-off-by: Kalle Jokiniemi <kalle.jokiniemi@jollamobile.com>