author | Praneeth Bajjuri <praneeth@ti.com> | |
Thu, 21 Mar 2013 03:41:09 +0000 (22:41 -0500) | ||
committer | Praneeth Bajjuri <praneeth@ti.com> | |
Thu, 21 Mar 2013 03:41:09 +0000 (22:41 -0500) |
Integrate https://android.googlesource.com/kernel/common/ experimental/android-3.8
* 'android-3.8' of ti-android-kernel/kernel-common: (362 commits)
Revert "ARM: cache-l2x0: update workaround for PL310 errata 727915"
netfilter: xt_qtaguid: fix bad tcp_time_wait sock handling
usb: gadget: Fix android gadget driver build
HACK: usb: gadget: Fix enumeration on boot
usb: gadget: android: Fixes and hacks to make android usb gadget compile on 3.8
ARM: decompressor: Flush tlb before swiching domain 0 to client mode
ARM: mm: Split memory banks that span multiple sections when sparsemem is enabled
pstore/ram: Restore ecc information block
mmc: block: Remove call to mmc_blk_set_blksize
gpu: ion: Remove __GFP_NO_KSWAPD
gpu: ion: __dma_page_cpu_to_dev -> arm_dma_ops.sync_single_for_device hack
ARM: fiq_debugger: Update tty code for 3.8
ARM: fiq_debugger: Use kmsg_dumper to dump kernel logs
ARM: fiq_debugger: Fix to compile on 3.7
usb: otg: otg-wakelock: Fix build for 3.7
net: bluetooth: Remove the AID_NET_BT* gid numbers
sync: fix timeout = 0 wait behavior
power: android-battery: push uevent whenever charge source changes
power: android-battery: remove ac and usb supplies
base: sync: Include seq_file.h in sync.h
...
Conflicts:
arch/arm/common/Kconfig
arch/arm/common/Makefile
arch/arm/mm/mmu.c
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
* 'android-3.8' of ti-android-kernel/kernel-common: (362 commits)
Revert "ARM: cache-l2x0: update workaround for PL310 errata 727915"
netfilter: xt_qtaguid: fix bad tcp_time_wait sock handling
usb: gadget: Fix android gadget driver build
HACK: usb: gadget: Fix enumeration on boot
usb: gadget: android: Fixes and hacks to make android usb gadget compile on 3.8
ARM: decompressor: Flush tlb before swiching domain 0 to client mode
ARM: mm: Split memory banks that span multiple sections when sparsemem is enabled
pstore/ram: Restore ecc information block
mmc: block: Remove call to mmc_blk_set_blksize
gpu: ion: Remove __GFP_NO_KSWAPD
gpu: ion: __dma_page_cpu_to_dev -> arm_dma_ops.sync_single_for_device hack
ARM: fiq_debugger: Update tty code for 3.8
ARM: fiq_debugger: Use kmsg_dumper to dump kernel logs
ARM: fiq_debugger: Fix to compile on 3.7
usb: otg: otg-wakelock: Fix build for 3.7
net: bluetooth: Remove the AID_NET_BT* gid numbers
sync: fix timeout = 0 wait behavior
power: android-battery: push uevent whenever charge source changes
power: android-battery: remove ac and usb supplies
base: sync: Include seq_file.h in sync.h
...
Conflicts:
arch/arm/common/Kconfig
arch/arm/common/Makefile
arch/arm/mm/mmu.c
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
30 files changed:
diff --cc arch/arm/Kconfig
Simple merge
diff --cc arch/arm/common/Kconfig
index 9e32d0d866599e7a6ed5be84f811f9590fbe2608,842dd85e784fc1523a630f0eb6e5ac41303779cb..92efb7a692f1fb77033b2011bf13f35af2516000
+++ b/arch/arm/common/Kconfig
config SHARP_SCOOP
bool
+config TI_PRIV_EDMA
+ bool
++
+ config FIQ_GLUE
+ bool
+ select FIQ
+
+ config FIQ_DEBUGGER
+ bool "FIQ Mode Serial Debugger"
+ select FIQ
+ select FIQ_GLUE
+ default n
+ help
+ The FIQ serial debugger can accept commands even when the
+ kernel is unresponsive due to being stuck with interrupts
+ disabled.
+
+
+ config FIQ_DEBUGGER_NO_SLEEP
+ bool "Keep serial debugger active"
+ depends on FIQ_DEBUGGER
+ default n
+ help
+ Enables the serial debugger at boot. Passing
+ fiq_debugger.no_sleep on the kernel commandline will
+ override this config option.
+
+ config FIQ_DEBUGGER_WAKEUP_IRQ_ALWAYS_ON
+ bool "Don't disable wakeup IRQ when debugger is active"
+ depends on FIQ_DEBUGGER
+ default n
+ help
+ Don't disable the wakeup irq when enabling the uart clock. This will
+ cause extra interrupts, but it makes the serial debugger usable with
+ on some MSM radio builds that ignore the uart clock request in power
+ collapse.
+
+ config FIQ_DEBUGGER_CONSOLE
+ bool "Console on FIQ Serial Debugger port"
+ depends on FIQ_DEBUGGER
+ default n
+ help
+ Enables a console so that printk messages are displayed on
+ the debugger serial port as the occur.
+
+ config FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE
+ bool "Put the FIQ debugger into console mode by default"
+ depends on FIQ_DEBUGGER_CONSOLE
+ default n
+ help
+ If enabled, this puts the fiq debugger into console mode by default.
+ Otherwise, the fiq debugger will start out in debug mode.
diff --cc arch/arm/common/Makefile
index d09a39b1b5d40583106eca52d1f0bdff60b8a6da,091576aabf0ec76493d0bd2b9f61d03f43861344..4c2748c06d5ab000d08059ec555c302aad3906d2
+++ b/arch/arm/common/Makefile
obj-$(CONFIG_SHARP_SCOOP) += scoop.o
obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o
obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o
+obj-$(CONFIG_TI_PRIV_EDMA) += edma.o
+ obj-$(CONFIG_FIQ_GLUE) += fiq_glue.o fiq_glue_setup.o
+ obj-$(CONFIG_FIQ_DEBUGGER) += fiq_debugger.o
diff --cc arch/arm/kernel/smp.c
Simple merge
diff --cc arch/arm/mm/mmu.c
index 0c10c20bd241dd69c0c6e8d0ae778d6276d5aa53,cc76ec03e52d8019887b80137ceb3be90c4acb7a..11b4b6d4f41c52106a49a88527b88fc04f37e5a4
--- 1/arch/arm/mm/mmu.c
--- 2/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
set_pte_ext(pte, pfn_pte(pfn, __pgprot(type->prot_pte)), 0);
pfn++;
} while (pte++, addr += PAGE_SIZE, addr != end);
+ early_pte_install(pmd, start_pte, type->prot_l1);
}
-static void __init alloc_init_section(pud_t *pud, unsigned long addr,
- unsigned long end, phys_addr_t phys,
- const struct mem_type *type,
- bool force_pages)
+static void __init map_init_section(pmd_t *pmd, unsigned long addr,
+ unsigned long end, phys_addr_t phys,
+ const struct mem_type *type)
{
- pmd_t *pmd = pmd_offset(pud, addr);
-
+#ifndef CONFIG_ARM_LPAE
/*
- * Try a section mapping - end, addr and phys must all be aligned
- * to a section boundary. Note that PMDs refer to the individual
- * L1 entries, whereas PGDs refer to a group of L1 entries making
- * up one logical pointer to an L2 table.
+ * In classic MMU format, puds and pmds are folded in to
+ * the pgds. pmd_offset gives the PGD entry. PGDs refer to a
+ * group of L1 entries making up one logical pointer to
+ * an L2 table (2MB), where as PMDs refer to the individual
+ * L1 entries (1MB). Hence increment to get the correct
+ * offset for odd 1MB sections.
+ * (See arch/arm/include/asm/pgtable-2level.h)
*/
- if (type->prot_sect && ((addr | end | phys) & ~SECTION_MASK) == 0 &&
- !force_pages) {
- pmd_t *p = pmd;
-
-#ifndef CONFIG_ARM_LPAE
- if (addr & SECTION_SIZE)
- pmd++;
+ if (addr & SECTION_SIZE)
+ pmd++;
#endif
+ do {
+ *pmd = __pmd(phys | type->prot_sect);
+ phys += SECTION_SIZE;
+ } while (pmd++, addr += SECTION_SIZE, addr != end);
- do {
- *pmd = __pmd(phys | type->prot_sect);
- phys += SECTION_SIZE;
- } while (pmd++, addr += SECTION_SIZE, addr != end);
+ flush_pmd_entry(pmd);
+}
- flush_pmd_entry(p);
- } else {
+static void __init alloc_init_pmd(pud_t *pud, unsigned long addr,
+ unsigned long end, phys_addr_t phys,
+ const struct mem_type *type)
+{
+ pmd_t *pmd = pmd_offset(pud, addr);
+ unsigned long next;
+
+ do {
/*
- * No need to loop; pte's aren't interested in the
- * individual L1 entries.
+ * With LPAE, we must loop over to map
+ * all the pmds for the given range.
*/
- alloc_init_pte(pmd, addr, end, __phys_to_pfn(phys), type);
- }
+ next = pmd_addr_end(addr, end);
+
+ /*
+ * Try a section mapping - addr, next and phys must all be
+ * aligned to a section boundary.
+ */
+ if (type->prot_sect &&
+ ((addr | next | phys) & ~SECTION_MASK) == 0) {
+ map_init_section(pmd, addr, next, phys, type);
+ } else {
+ alloc_init_pte(pmd, addr, next,
+ __phys_to_pfn(phys), type);
+ }
+
+ phys += next - addr;
+
+ } while (pmd++, addr = next, addr != end);
}
static void __init alloc_init_pud(pgd_t *pgd, unsigned long addr,
diff --cc block/genhd.c
Simple merge
diff --cc block/partition-generic.c
Simple merge
diff --cc drivers/Kconfig
Simple merge
diff --cc drivers/Makefile
Simple merge
diff --cc drivers/input/misc/Kconfig
Simple merge
diff --cc drivers/input/misc/Makefile
Simple merge
diff --cc drivers/leds/Kconfig
Simple merge
diff --cc drivers/leds/Makefile
Simple merge
diff --cc drivers/misc/Kconfig
Simple merge
diff --cc drivers/net/tun.c
Simple merge
diff --cc drivers/usb/otg/Kconfig
Simple merge
diff --cc drivers/usb/otg/Makefile
Simple merge
diff --cc include/net/bluetooth/hci.h
Simple merge
diff --cc include/net/bluetooth/hci_core.h
Simple merge
diff --cc kernel/cgroup.c
Simple merge
diff --cc kernel/fork.c
Simple merge
diff --cc mm/shmem.c
Simple merge
diff --cc net/bluetooth/amp.c
Simple merge
diff --cc net/bluetooth/hci_event.c
index 477726a63512e0160fb550f7c83861266ad585b7,a96b5b3422fe72480c4102f33e7b98200f349135..6ce42b45426cd3f0f25c152c16faa1a9481fb51f
mode 100644,100755..100755
mode 100644,100755..100755
diff --cc net/bluetooth/l2cap_core.c
Simple merge
diff --cc net/bluetooth/mgmt.c
index 39395c7144aa16d0402ae9a71ecd2cd248a1affa,0deec732fe83f2db1432bf8c9f798747826ce523..078ec4d86b78721c09aeab6d9a85cfd1f5b080cb
+++ b/net/bluetooth/mgmt.c
auth_type = HCI_AT_DEDICATED_BONDING_MITM;
if (cp->addr.type == BDADDR_BREDR)
- conn = hci_connect(hdev, ACL_LINK, &cp->addr.bdaddr,
+ conn = hci_connect(hdev, ACL_LINK, 0, &cp->addr.bdaddr,
cp->addr.type, sec_level, auth_type);
else
- conn = hci_connect(hdev, LE_LINK, &cp->addr.bdaddr,
+ conn = hci_connect(hdev, LE_LINK, 0, &cp->addr.bdaddr,
cp->addr.type, sec_level, auth_type);
- memset(&rp, 0, sizeof(rp));
- bacpy(&rp.addr.bdaddr, &cp->addr.bdaddr);
- rp.addr.type = cp->addr.type;
-
if (IS_ERR(conn)) {
int status;
diff --cc net/bluetooth/sco.c
Simple merge
diff --cc net/ipv4/af_inet.c
Simple merge
diff --cc net/ipv4/tcp.c
Simple merge
diff --cc net/wireless/sme.c
Simple merge