Based on Trilu's patch http://forum.xda-developers.com/showthread.php?t=1007774
Removed some debug and unnecessary code, and added some missing code by tytung.
Thanks to Trilu for finally fixing the BT problem.
Thanks to Charansingh for the work he has done on the BT problem.
commit 9ef0298a8e5730d9a46d640014c727f3b4152870 upstream.
Like many other places, we have to check that the array index is
within allowed limits, or otherwise, a kernel oops and other nastiness
can ensue when we access memory beyond the end of the array.
[ 5954.115381] BUG: unable to handle kernel paging request at 0000004000000000
[ 5954.120014] IP: __find_logger+0x6f/0xa0
[ 5954.123979] nf_log_bind_pf+0x2b/0x70
[ 5954.123979] nfulnl_recv_config+0xc0/0x4a0 [nfnetlink_log]
[ 5954.123979] nfnetlink_rcv_msg+0x12c/0x1b0 [nfnetlink]
...
The problem goes back to v2.6.30-rc1~1372~1342~31 where nf_log_bind
was decoupled from nf_log_register.
Reported-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com>,
via irc.freenode.net/#netfilter
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
In suspend interrupts are disabled from 0 to NR_IRQ, in resume interrupts
should be enabled in reverse order.
Enabling parent or summary interrupts before enabling child interrupts
causes the handler of the child interrupt to run even before it is
enabled. Usually the genirq handler does the correct thing of masking
the interrupt and additionally marking the interrupt IRQ_PENDING if its
an edge triggered interrupt. However the nested handler
(handle_nested_irq()) simply ignores the interrupt causing a loss of it.
Not calling the action of an interrupt, especially if it marked wakeup,
causes the system to incorrectly go back to suspend immediately.
Change-Id: Ica30c10a975a4a7b41b97b4f21250dac80335b2b
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
In the current code, for a device switch command, ACDB configuration
is sent to Q6 only if there is any active tx/rx session.
As per Q6 API, changing the code to send ACDB configuration after
the PREPARE stage of the device switch even if there's no active
tx/rx session.
Change-Id: I895f5da5d23f586ae829c4856a5b39b4399422ee
CRs-Fixed: 267703
Signed-off-by: Phani Kumar Allada <pallad@codeaurora.org>
As per the Q6 API, the ACDB configuration need to be sent to Q6 after the
PREPARE stage of the device switch. But in the current code it is in the
reverse order. Hence correcting the code as per the Q6 API.
Change-Id: I9f947d44f73b1fc71ddea8259ca54402edc895c2
Signed-off-by: Phani Kumar Allada <pallad@codeaurora.org>
- Now button backlight is managed by this driver, also it is configurable by sysfs (number of secs. after backlight will be turned off after last key-press, enable/disable this auto_off feature)
-When disabled auto_off, backlight will go off along with screen backlight.
- Sysfs for num. of seconds : /sys/devices/platform/btn_backlight_manager/off_seconds
(min: 5 sec, max: 60 sec)
- Sysfs for turn on/off auto-off feature: /sys/devices/platform/btn_backlight_manager/auto_off
(0 to disable auto-off, 1 to enable)
- Added button backlight control via panel backlight (button backlight will go on/off with screen backlight)
- To enable/disable this just echo 0 or 1 to /sys/devices/platform/htcleo-backlight/btn_control
( echo 0 > /sys/devices/platform/htcleo-backlight/btn_control )
- By default button control is enabled
- remove all lights.*.so files from /system/lib/hw (backup if u want) and replace with lights.qsd8k.so from Bravo ROM or download from http://www.multiupload.com/2M5T02M3TU
- if button backlight don’t work: turn screen on, press any key and put phone under bright light ( this should activate light sensor and backlight)
Conflicts:
arch/arm/configs/htcleo_defconfig
arch/arm/mach-msm/board-htcleo.h
Add commit from 654ce990ab
In NVS the mac address is always same on all devices.
We create now from encrypted device ID a custom mac address.
This is always different but for same device almays identical.
(by Markinus)