Merge branch 'android-3.8' of ti-android-kernel/kernel-common into p-ti-android-3.8.y
authorPraneeth Bajjuri <praneeth@ti.com>
Thu, 21 Mar 2013 03:41:09 +0000 (22:41 -0500)
committerPraneeth 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>
30 files changed:
1  2 
arch/arm/Kconfig
arch/arm/common/Kconfig
arch/arm/common/Makefile
arch/arm/kernel/smp.c
arch/arm/mm/mmu.c
block/genhd.c
block/partition-generic.c
drivers/Kconfig
drivers/Makefile
drivers/input/misc/Kconfig
drivers/input/misc/Makefile
drivers/leds/Kconfig
drivers/leds/Makefile
drivers/misc/Kconfig
drivers/net/tun.c
drivers/usb/otg/Kconfig
drivers/usb/otg/Makefile
include/net/bluetooth/hci.h
include/net/bluetooth/hci_core.h
kernel/cgroup.c
kernel/fork.c
mm/shmem.c
net/bluetooth/amp.c
net/bluetooth/hci_event.c
net/bluetooth/l2cap_core.c
net/bluetooth/mgmt.c
net/bluetooth/sco.c
net/ipv4/af_inet.c
net/ipv4/tcp.c
net/wireless/sme.c

Simple merge
index 9e32d0d866599e7a6ed5be84f811f9590fbe2608,842dd85e784fc1523a630f0eb6e5ac41303779cb..92efb7a692f1fb77033b2011bf13f35af2516000
@@@ -41,5 -41,52 +41,55 @@@ config SHARP_PARA
  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.
index d09a39b1b5d40583106eca52d1f0bdff60b8a6da,091576aabf0ec76493d0bd2b9f61d03f43861344..4c2748c06d5ab000d08059ec555c302aad3906d2
@@@ -13,4 -13,5 +13,6 @@@ obj-$(CONFIG_SHARP_PARAM)     += sharpsl_pa
  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
Simple merge
index 0c10c20bd241dd69c0c6e8d0ae778d6276d5aa53,cc76ec03e52d8019887b80137ceb3be90c4acb7a..11b4b6d4f41c52106a49a88527b88fc04f37e5a4
@@@ -574,62 -593,44 +593,63 @@@ static void __init alloc_init_pte(pmd_
                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
Simple merge
diff --cc drivers/Kconfig
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/cgroup.c
Simple merge
diff --cc kernel/fork.c
Simple merge
diff --cc mm/shmem.c
Simple merge
Simple merge
index 477726a63512e0160fb550f7c83861266ad585b7,a96b5b3422fe72480c4102f33e7b98200f349135..6ce42b45426cd3f0f25c152c16faa1a9481fb51f
mode 100644,100755..100755
Simple merge
index 39395c7144aa16d0402ae9a71ecd2cd248a1affa,0deec732fe83f2db1432bf8c9f798747826ce523..078ec4d86b78721c09aeab6d9a85cfd1f5b080cb
@@@ -2041,12 -1918,16 +2041,12 @@@ static int pair_device(struct sock *sk
                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;
  
Simple merge
Simple merge
diff --cc net/ipv4/tcp.c
Simple merge
Simple merge