summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-03-10Revert "sysfs: Fix sysfs owner and group."Arve Hjønnevåg
This reverts commit f1f8e7cd6f796b15ed011361f09b57db796d9b4e.
2010-03-10USB: gadget: f_rndis: Add platform data for RNDIS vendor ID and MAC address.Mike Lockwood
This fixes a kernel panic in rndis.c when receiving the OID_GEN_VENDOR_DESCRIPTION command. Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-03-09Bluetooth: Use non-flushable pb flag by default for ACL data on capable ↵Nick Pelly
chipsets. With Bluetooth 2.1 ACL packets can be flushable or non-flushable. This commit makes ACL data packets non-flushable by default on compatible chipsets, and adds the L2CAP_LM_FLUSHABLE socket option to explicitly request flushable ACL data packets for a given L2CAP socket. This is useful for A2DP data which can be safely discarded if it can not be delivered within a short time (while other ACL data should not be discarded). Note that making ACL data flushable has no effect unless the automatic flush timeout for that ACL link is changed from its default of 0 (infinite). Change-Id: Ie3d4befdeaefb8c979de7ae603ff5ec462b3483c Signed-off-by: Nick Pelly <npelly@google.com>
2010-03-09Revert "Bluetooth: Introduce L2CAP_LM_FLUSHABLE to allow flushing of ACL ↵Nick Pelly
packets." This reverts commit d7897fd1e9fb3a5df0740dc2dc45ec94ca0965f2. Change-Id: I3401550b6dc97b683104e9fdac30a617a2db8c8e Signed-off-by: Nick Pelly <npelly@google.com>
2010-03-02pmem: Add cache flush ioctl for pmem buffersDima Zavin
Change-Id: I9156bad829e8c65087f122b48cc57638902fab12 Signed-off-by: Dima Zavin <dima@android.com>
2010-02-26USB: gadget: composite: Don't increment interface number for alt settings.Mike Lockwood
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-26USB: gadget: composite: Don't call set_alt() on functions that are hidden.Mike Lockwood
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-24Bluetooth: Allow SCO/eSCO packet type selection for outgoing SCO connections.Nick Pelly
__u16 sco_pkt_type is introduced to struct sockaddr_sco. It allows bitwise selection of SCO/eSCO packet types. Currently those bits are: 0x0001 HV1 may be used. 0x0002 HV2 may be used. 0x0004 HV3 may be used. 0x0008 EV3 may be used. 0x0010 EV4 may be used. 0x0020 EV5 may be used. 0x0040 2-EV3 may be used. 0x0080 3-EV3 may be used. 0x0100 2-EV5 may be used. 0x0200 3-EV5 may be used. This is similar to the Packet Type parameter in the HCI Setup Synchronous Connection Command, except that we are not reversing the logic on the EDR bits. This makes the use of sco_pkt_tpye forward portable for the use case of white-listing packet types, which we expect will be the primary use case. If sco_pkt_type is zero, or userspace uses the old struct sockaddr_sco, then the default behavior is to allow all packet types. Packet type selection is just a request made to the Bluetooth chipset, and it is up to the link manager on the chipset to negiotiate and decide on the actual packet types used. Furthermore, when a SCO/eSCO connection is eventually made there is no way for the host stack to determine which packet type was used (however it is possible to get the link type of SCO or eSCO). sco_pkt_type is ignored for incoming SCO connections. It is possible to add this in the future as a parameter to the Accept Synchronous Connection Command, however its a little trickier because the kernel does not currently preserve sockaddr_sco data between userspace calls to accept(). The most common use for sco_pkt_type will be to white-list only SCO packets, which can be done with the hci.h constant SCO_ESCO_MASK. This patch is motivated by broken Bluetooth carkits such as the Motorolo HF850 (it claims to support eSCO, but will actually reject eSCO connections after 5 seconds) and the 2007/2008 Infiniti G35/37 (fails to route audio if a 2-EV5 packet type is negiotiated). With this patch userspace can maintain a list of compatible packet types to workaround remote devices such as these. Based on a patch by Marcel Holtmann. Change-Id: I304d8fda5b4145254820a3003820163bf53de5a5 Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-24Revert "Bluetooth: Change RFCOMM to use BT_CONNECT2 for BT_DEFER_SETUP"Nick Pelly
This reverts commit 8bf4794174659b06d43cc5e290cd384757374613. Change-Id: Ieaeed6866996446e0392e387b77b446361f23d46 Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-24Revert "Bluetooth: Fix removing of RFCOMM DLC timer with DEFER_SETUP"Nick Pelly
This reverts commit e2139b32726e5dd184974c785ea3f62026590801. Change-Id: Id948d5860840aaf85eca7d8894a7bb3192f0bb47 Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-24USB: gadget: android: Disable UMS when RNDIS ethernet is active.Mike Lockwood
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-23android: logger: Add new system log for framework/system log messagesSan Mehat
Signed-off-by: San Mehat <san@google.com>
2010-02-19vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREEYongseok Koh
In free_unmap_area_noflush(), va->flags is marked as VM_LAZY_FREE first, and then vmap_lazy_nr is increased atomically. But, in __purge_vmap_area_lazy(), while traversing of vmap_are_list, nr is counted by checking VM_LAZY_FREE is set to va->flags. After counting the variable nr, kernel reads vmap_lazy_nr atomically and checks a BUG_ON condition whether nr is greater than vmap_lazy_nr to prevent vmap_lazy_nr from being negative. The problem is that, if interrupted right after marking VM_LAZY_FREE, increment of vmap_lazy_nr can be delayed. Consequently, BUG_ON condition can be met because nr is counted more than vmap_lazy_nr. It is highly probable when vmalloc/vfree are called frequently. This scenario have been verified by adding delay between marking VM_LAZY_FREE and increasing vmap_lazy_nr in free_unmap_area_noflush(). Even the vmap_lazy_nr is for checking high watermark, it never be the strict watermark. Although the BUG_ON condition is to prevent vmap_lazy_nr from being negative, vmap_lazy_nr is signed variable. So, it could go down to negative value temporarily. Consequently, removing the BUG_ON condition is proper. A possible BUG_ON message is like the below. kernel BUG at mm/vmalloc.c:517! invalid opcode: 0000 [#1] SMP EIP: 0060:[<c04824a4>] EFLAGS: 00010297 CPU: 3 EIP is at __purge_vmap_area_lazy+0x144/0x150 EAX: ee8a8818 EBX: c08e77d4 ECX: e7c7ae40 EDX: c08e77ec ESI: 000081fe EDI: e7c7ae60 EBP: e7c7ae64 ESP: e7c7ae3c DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Call Trace: [<c0482ad9>] free_unmap_vmap_area_noflush+0x69/0x70 [<c0482b02>] remove_vm_area+0x22/0x70 [<c0482c15>] __vunmap+0x45/0xe0 [<c04831ec>] vmalloc+0x2c/0x30 Code: 8d 59 e0 eb 04 66 90 89 cb 89 d0 e8 87 fe ff ff 8b 43 20 89 da 8d 48 e0 8d 43 20 3b 04 24 75 e7 fe 05 a8 a5 a3 c0 e9 78 ff ff ff <0f> 0b eb fe 90 8d b4 26 00 00 00 00 56 89 c6 b8 ac a5 a3 c0 31 EIP: [<c04824a4>] __purge_vmap_area_lazy+0x144/0x150 SS:ESP 0068:e7c7ae3c [ See also http://marc.info/?l=linux-kernel&m=126335856228090&w=2 ] Signed-off-by: Yongseok Koh <yongseok.koh@samsung.com> Reviewed-by: Minchan Kim <minchan.kim@gmail.com> Cc: Nick Piggin <npiggin@suse.de> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-02-19power: wakelock: Print active wakelocks when has_wake_lock() is calledMike Chan
When DEBUG_SUSPEND is enabled print active wakelocks when we check if there are any active wakelocks. In print_active_locks(), print expired wakelocks if DEBUG_EXPIRE is enabled Change-Id: Ib1cb795555e71ff23143a2bac7c8a58cbce16547 Signed-off-by: Mike Chan <mike@android.com>
2010-02-18usb: gadget: u_ether: Remove warning from gether_disconnect()Mike Lockwood
gether_disconnect() is always called before gether_connect() by the different USB ethernet functions, so this warning was firing during normal operation. Change-Id: I178cc7d1f67e9e87ac2e99c6674c4db8fcddf4a0 Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-17Revert "Bluetooth: Fix rejected connection not disconnecting ACL link"Nick Pelly
This reverts commit 9e726b17422bade75fba94e625cd35fd1353e682. Change-Id: I3bc2e4caa2a0e0c36b9c7de4a09b03276adae4e1 Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-17Add USB_ANDROID_RNDIS_WCEIS option.Steve Kondik
Change-Id: I85973ebfcbfae6b401fb8b402842309c72655149 Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-16mtd: nand: Allow NAND chip ids to be included standalone.Dima Zavin
Lets non-standard NAND drivers take advantage of known NAND chip information. Change-Id: I87e2fcb40b07b2ec91e102f1fa7f419a4b4af0a3 Signed-off-by: Dima Zavin <dima@android.com>
2010-02-14USB: gadget: android: Fix special case for RNDIS ethernet functionMike Lockwood
Only set device descriptor bDeviceClass field to USB_CLASS_COMM when the RNDIS function is actually enabled. Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-14USB: composite: Compute interface numbers correctly when functions are hidden.Mike Lockwood
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-12USB: gadget: android: Specify USB_CLASS_COMM in device descriptor if using RNDISMike Lockwood
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-12USB: gadget: Disable RNDIS function by default if CONFIG_USB_ANDROID_RNDIS ↵Mike Lockwood
is set Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-12USB: android: Use composite class driver for enabling and disabling functionsMike Lockwood
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-12USB: composite: Add class driver for enabling and disabling USB functions.Mike Lockwood
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-12disable staging/dreamArve Hjønnevåg
Change-Id: I8f2fdae60761ba773fd0ee5b49a624f3d1798fd6
2010-02-09mmc: core: Release delayed mmc work wakelock after deep disableSan Mehat
Signed-off-by: San Mehat <san@google.com>
2010-02-08pca963x: Phillips PCA963X 4-bit i2c led driverShan-Fu Chiou
Signed-off-by: Rebecca Schultz <rschultz@google.com>
2010-02-08HACK stay compatible with the emulated TLS register HACKBrian Swetland
2010-02-08block: genhd: Add disk/partition specific uevent callbacks for partition infoSan Mehat
For disk devices, a new uevent parameter 'NPARTS' specifies the number of partitions detected by the kernel. Partition devices get 'PARTN' which specifies the partitions index in the table. Signed-off-by: San Mehat <san@google.com>
2010-02-08cpufreq: ondemand: Don't synchronize sample rate unless mulitple cpus presentJocelyn Falempe
For UP systems this is not required, and results in a more consistent sample interval. Signed-off-by: Jocelyn Falempe <jocelyn.falempe@motorola.com> Signed-off-by: Mike Chan <mike@android.com>
2010-02-08Staging: android: timed_gpio: Request gpios.Arve Hjønnevåg
Change-Id: I9e98250a04e5505ce2db2edd355e8fdf8391cabd Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-02-08Staging: android: ram_console: Start ram console earlierArve Hjønnevåg
Change-Id: I15d809d8c3002e5bf397a2b154e3803ea0e73642 Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-02-08misc: apanic: erase kpanic when no dataTom Zhu
erase kpanic partition when there is no data(console and thread) Signed-off-by: Tom Zhu <a2289c@android-hal-04.(none)> Signed-off-by: San Mehat <san@google.com>
2010-02-08misc: apanic: bad block handlingTom Zhu
Add bad block handling in apanic Signed-off-by: Tom Zhu <ling.zhu@motorola.com> Signed-off-by: San Mehat <san@google.com> misc: apanic: Improved bad-block / watchdog handling 1. handle cases that there is no more good blocks 2. touch softlockup watchdog at the start of apanic 3. change unsigned char get_bb() to unsigned int get_bb() 4. return idx instead of rc2, to keep the previous written pages. Signed-off-by: Tom Zhu <ling.zhu@motorola.com> Signed-off-by: San Mehat <san@google.com>
2010-02-08ramconsole/apanic: Ensure ramconsole does not get cluttered by apanic threadsSan Mehat
Signed-off-by: San Mehat <san@google.com>
2010-02-08drivers: apanic: Android kernel panic handler.San Mehat
This driver triggers when the kernel panics and attempts to write critical debug data to the flash. Signed-off-by: San Mehat <san@google.com> drivers: apanic: checkpatch fixes Signed-off-by: San Mehat <san@google.com> apanic: Fix a few cases of calling non-atomic things from atomic We need to pay special care to not enrage cond_resched(), and the base nand bb stuff calls schedule() so thats out. Signed-off-by: San Mehat <san@google.com>
2010-02-08proc: smaps: Allow smaps access for CAP_SYS_RESOURCESan Mehat
Signed-off-by: San Mehat <san@google.com>
2010-02-08kernel: printk: Add non exported function for clearing the log ring bufferSan Mehat
Signed-off-by: San Mehat <san@google.com>
2010-02-08[ARM] process: Add display of memory around registers when displaying regs.San Mehat
This is extremely useful in diagnosing remote crashes, and is based heavily on original work by <md@google.com>. Signed-off-by: San Mehat <san@google.com> Cc: Michael Davidson <md@google.com> [ARM] process: Use uber-safe probe_kernel_address() to read mem when dumping. This prevents the dump from taking pagefaults / external aborts. Signed-off-by: San Mehat <san@google.com>
2010-02-08mtd: nand: Add naieve panic_write support for generic nand devices.San Mehat
Signed-off-by: San Mehat <san@google.com> mtd: nand_base: fix nand_panic_wait fix the problem of nand_panic_wait Signed-off-by: Tom Zhu <a2289c@android-hal-04.(none)> Signed-off-by: San Mehat <san@google.com>
2010-02-08drivers: power: Add watchdog timer to catch drivers which lockup during suspend.San Mehat
Rather than hard-lock the kernel, we now BUG() when a driver takes > 3 seconds to suspend. If the underlying platform supports panic dumps, then the data can be collected for debug. Signed-off-by: San Mehat <san@google.com>
2010-02-08Bluetooth: Hack: Do not use power_save feature.Nick Pelly
power_save is a feature to allow HID devices to control the sniff mode. Unfortunately it also prevents us exiting sniff mode on some A2DP devices that do not explicitly exit sniff mode themselves, resulting in skipping audio. Marcel is trying to finalize a setsockopt() API to control whether power_save is enabled on a per socket basis. In the mean-time, turn off power_save for Android, since we do not have official HID support, and this is causing problems for A2DP which we do support. (Note the power_save logic is reversed, 0 is on, 1 is off). Change-Id: Ife4478055128b81669bf49308d2e2199e1aa11a1 Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-08Bluetooth: Introduce L2CAP_LM_FLUSHABLE to allow flushing of ACL packets.Nick Pelly
With Bluetooth 2.1 ACL packets can be flushable or non-flushable. This changes makes the default ACL packet non-flushable, and allows selection of flushable packets on a per-L2CAP socket basis with L2CAP_LM_FLUSHABLE. Note the HCI Write Automatic Flush Timeout command also needs to be issued to set the flush timeout to non-zero. Need to featurize this change to Bluetooth 2.1 chipsets only before pushing upstream. Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-08Bluetooth: Add ACL MTU, available buffers and total buffers to hci_conn_info.Nick Pelly
This provides userspace debugging tools access to ACL flow control state. Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-08Bluetooth: Enter active mode before establishing a SCO link.Nick Pelly
When in sniff mode with a long interval time (1.28s) it can take 4+ seconds to establish a SCO link. Fix by requesting active mode before requesting SCO connection. This improves SCO setup time to ~500ms. Bluetooth headsets that use a long interval time, and exhibit the long SCO connection time include Motorola H790, HX1 and H17. They have a CSR 2.1 chipset Verified this behavior and fix with host Bluetooth chipsets: BCM4329 and TI1271. Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-08Bluetooth: Fallback to SCO on error code 0x10 (Connection Accept Timeout).Nick Pelly
This is to support the Motorola HF850 carkit which reports the error code 0x10 for an eSCO attempt, even though it advertises eSCO support. Here is the hcidump: 2009-09-22 15:40:24.492391 < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17 handle 1 voice setting 0x0060 2009-09-22 15:40:24.493002 > HCI Event: Command Status (0x0f) plen 4 Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1 2009-09-22 15:40:30.594869 > HCI Event: Synchronous Connect Complete (0x2c) plen 17 status 0x10 handle 257 bdaddr 00:50:CD:20:C6:84 type eSCO Error: Connection Accept Timeout Exceeded With this patch we will retry with a SCO connection, which succeeds. Unfortunately the Moto HF850 also takes 5 seconds to return the error for the eSCO attempt, so it will still take 5 seconds to fallback to SCO with this patch. Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-08Bluetooth: Do not call rfcomm_session_put() due to RFCOMM UA on closed socket.Nick Pelly
Processing a RFCOMM UA frame when the socket is closed and we were not the RFCOMM initiator would cause rfcomm_session_put() to be called twice during rfcomm_process_rx(). This would cause a kernel panic in rfcomm_session_close. This could be easily reproduced during disconnect with devices such as Motorola H270 that send RFCOMM UA followed quickly by L2CAP disconnect request. This hcidump for this looks like: 2009-09-21 17:22:37.788895 < ACL data: handle 1 flags 0x02 dlen 8 L2CAP(d): cid 0x0041 len 4 [psm 3] RFCOMM(s): DISC: cr 0 dlci 20 pf 1 ilen 0 fcs 0x7d 2009-09-21 17:22:37.906204 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 1 packets 1 2009-09-21 17:22:37.933090 > ACL data: handle 1 flags 0x02 dlen 8 L2CAP(d): cid 0x0040 len 4 [psm 3] RFCOMM(s): UA: cr 0 dlci 20 pf 1 ilen 0 fcs 0x57 2009-09-21 17:22:38.636764 < ACL data: handle 1 flags 0x02 dlen 8 L2CAP(d): cid 0x0041 len 4 [psm 3] RFCOMM(s): DISC: cr 0 dlci 0 pf 1 ilen 0 fcs 0x9c 2009-09-21 17:22:38.744125 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 1 packets 1 2009-09-21 17:22:38.763687 > ACL data: handle 1 flags 0x02 dlen 8 L2CAP(d): cid 0x0040 len 4 [psm 3] RFCOMM(s): UA: cr 0 dlci 0 pf 1 ilen 0 fcs 0xb6 2009-09-21 17:22:38.783554 > ACL data: handle 1 flags 0x02 dlen 12 L2CAP(s): Disconn req: dcid 0x0040 scid 0x0041 Avoid calling rfcomm_session_put() twice by skipping this call in rfcomm_recv_ua() if the socket is closed. Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-08Bluetooth: Increase timeout for legacy pairing from 10 seconds to 40 seconds.Nick Pelly
Legacy pairing is a bit of a problem because on the incoming end it is impossible to know pairing has begun: 2009-09-18 18:29:24.115692 > HCI Event: Connect Request (0x04) plen 10 bdaddr 00:23:D4:04:51:7A class 0x58020c type ACL 2009-09-18 18:29:24.115966 < HCI Command: Accept Connection Request (0x01|0x0009) plen 7 bdaddr 00:23:D4:04:51:7A role 0x00 Role: Master 2009-09-18 18:29:24.117065 > HCI Event: Command Status (0x0f) plen 4 Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1 2009-09-18 18:29:24.282928 > HCI Event: Role Change (0x12) plen 8 status 0x00 bdaddr 00:23:D4:04:51:7A role 0x00 Role: Master 2009-09-18 18:29:24.291534 > HCI Event: Connect Complete (0x03) plen 11 status 0x00 handle 1 bdaddr 00:23:D4:04:51:7A type ACL encrypt 0x00 2009-09-18 18:29:24.291839 < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2 handle 1 2009-09-18 18:29:24.292144 > HCI Event: Page Scan Repetition Mode Change (0x20) plen 7 bdaddr 00:23:D4:04:51:7A mode 1 2009-09-18 18:29:24.293823 > HCI Event: Command Status (0x0f) plen 4 Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1 2009-09-18 18:29:24.303588 > HCI Event: Max Slots Change (0x1b) plen 3 handle 1 slots 5 2009-09-18 18:29:24.309448 > HCI Event: Read Remote Supported Features (0x0b) plen 11 status 0x00 handle 1 Features: 0xff 0xff 0x2d 0xfe 0x9b 0xff 0x79 0x83 2009-09-18 18:29:24.345916 < HCI Command: Remote Name Request (0x01|0x0019) plen 10 bdaddr 00:23:D4:04:51:7A mode 2 clkoffset 0x0000 2009-09-18 18:29:24.346923 > HCI Event: Command Status (0x0f) plen 4 Remote Name Request (0x01|0x0019) status 0x00 ncmd 1 2009-09-18 18:29:24.375793 > HCI Event: Remote Name Req Complete (0x07) plen 255 status 0x00 bdaddr 00:23:D4:04:51:7A name 'test' 2009-09-18 18:29:34.332190 < HCI Command: Disconnect (0x01|0x0006) plen 3 handle 1 reason 0x13 There are some mainline patches such as "Add different pairing timeout for Legacy Pairing" but they do not address the HCI sequence above. I think the real solution is to avoid using CreateBond(), and instead make the profile connection immediately. This way both sides will use a longer timeout because there is a higher level connection in progress, and we will not end up with the useless HCI sequence above. Signed-off-by: Nick Pelly <npelly@google.com>
2010-02-08Bluetooth: Fallback from eSCO to SCO on error code 0x1a (unsupported feature).Nick Pelly
GM carkits with LGE BT chipsets return this error code when eSCO is attempted. Signed-off-by: Jaikumar Ganesh <jaikumar@google.com> Acked-by: Nick Pelly <npelly@google.com>
2010-02-08Bluetooth: Do not attempt to send dlci disconnect when in BT_CONFIG.Nick Pelly
This fixes a bug where shutdown() and close() on a rfcomm socket during ACL connection would not cause HCI Create Connection Cancel. Signed-off-by: Nick Pelly <npelly@google.com>