From: Huang, Tao Date: Fri, 4 Nov 2016 06:23:25 +0000 (+0800) Subject: Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux... X-Git-Tag: firefly_0821_release~1325 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f9ae5d202b3953b5d69e860e540a6f53df7015b5;p=firefly-linux-kernel-4.4.55.git Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git * linux-linaro-lsk-v4.4-android: (1362 commits) Linux 4.4.30 Revert "fix minor infoleak in get_user_ex()" Revert "x86/mm: Expand the exception table logic to allow new handling options" Linux 4.4.29 ARM: pxa: pxa_cplds: fix interrupt handling powerpc/nvram: Fix an incorrect partition merge mpt3sas: Don't spam logs if logging level is 0 perf symbols: Fixup symbol sizes before picking best ones perf symbols: Check symbol_conf.allow_aliases for kallsyms loading too perf hists browser: Fix event group display clk: divider: Fix clk_divider_round_rate() to use clk_readl() clk: qoriq: fix a register offset error s390/con3270: fix insufficient space padding s390/con3270: fix use of uninitialised data s390/cio: fix accidental interrupt enabling during resume x86/mm: Expand the exception table logic to allow new handling options dmaengine: ipu: remove bogus NO_IRQ reference power: bq24257: Fix use of uninitialized pointer bq->charger staging: r8188eu: Fix scheduling while atomic splat ASoC: dapm: Fix kcontrol creation for output driver widget ... --- f9ae5d202b3953b5d69e860e540a6f53df7015b5 diff --cc arch/arm/Kconfig index 6f0b7b752328,f4a214446b80..868a5f2a1cce --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@@ -36,9 -36,9 +36,10 @@@ config AR select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 select HAVE_ARCH_MMAP_RND_BITS if MMU + select HAVE_ARCH_HARDENED_USERCOPY select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT) select HAVE_ARCH_TRACEHOOK + select HAVE_ARM_SMCCC if CPU_V7 select HAVE_BPF_JIT select HAVE_CC_STACKPROTECTOR select HAVE_CONTEXT_TRACKING diff --cc arch/arm64/kernel/arm64ksyms.c index 678f30b05a45,803965a792e0..78f368039c79 --- a/arch/arm64/kernel/arm64ksyms.c +++ b/arch/arm64/kernel/arm64ksyms.c @@@ -26,7 -26,7 +26,8 @@@ #include #include #include +#include + #include #include @@@ -68,8 -68,5 +69,9 @@@ EXPORT_SYMBOL(test_and_change_bit) #ifdef CONFIG_FUNCTION_TRACER EXPORT_SYMBOL(_mcount); + NOKPROBE_SYMBOL(_mcount); #endif + + /* arm-smccc */ +EXPORT_SYMBOL(arm_smccc_smc); +EXPORT_SYMBOL(arm_smccc_hvc); diff --cc drivers/mmc/card/block.c index b5d8a71d5b25,8d169d5a8b01..c7e0db49783b --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@@ -2039,16 -2041,17 +2039,16 @@@ static void mmc_blk_packed_hdr_wrq_prep do_data_tag = (card->ext_csd.data_tag_unit_size) && (prq->cmd_flags & REQ_META) && (rq_data_dir(prq) == WRITE) && - ((brq->data.blocks * brq->data.blksz) >= - card->ext_csd.data_tag_unit_size); + blk_rq_bytes(prq) >= card->ext_csd.data_tag_unit_size; /* Argument of CMD23 */ - packed_cmd_hdr[(i * 2)] = + packed_cmd_hdr[(i * 2)] = cpu_to_le32( (do_rel_wr ? MMC_CMD23_ARG_REL_WR : 0) | (do_data_tag ? MMC_CMD23_ARG_TAG_REQ : 0) | - blk_rq_sectors(prq); + blk_rq_sectors(prq)); /* Argument of CMD18 or CMD25 */ - packed_cmd_hdr[((i * 2)) + 1] = + packed_cmd_hdr[((i * 2)) + 1] = cpu_to_le32( mmc_card_blockaddr(card) ? - blk_rq_pos(prq) : blk_rq_pos(prq) << 9; + blk_rq_pos(prq) : blk_rq_pos(prq) << 9); packed->blocks += blk_rq_sectors(prq); i++; } diff --cc drivers/mmc/core/core.c index d72977c999ad,2986e270d19a..31fc5362f99a --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@@ -2916,8 -2924,59 +2936,58 @@@ static void __exit mmc_exit(void sdio_unregister_bus(); mmc_unregister_host_class(); mmc_unregister_bus(); - destroy_workqueue(workqueue); } + #ifdef CONFIG_BLOCK + static ssize_t + latency_hist_show(struct device *dev, struct device_attribute *attr, char *buf) + { + struct mmc_host *host = cls_dev_to_mmc_host(dev); + + return blk_latency_hist_show(&host->io_lat_s, buf); + } + + /* + * Values permitted 0, 1, 2. + * 0 -> Disable IO latency histograms (default) + * 1 -> Enable IO latency histograms + * 2 -> Zero out IO latency histograms + */ + static ssize_t + latency_hist_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) + { + struct mmc_host *host = cls_dev_to_mmc_host(dev); + long value; + + if (kstrtol(buf, 0, &value)) + return -EINVAL; + if (value == BLK_IO_LAT_HIST_ZERO) + blk_zero_latency_hist(&host->io_lat_s); + else if (value == BLK_IO_LAT_HIST_ENABLE || + value == BLK_IO_LAT_HIST_DISABLE) + host->latency_hist_enabled = value; + return count; + } + + static DEVICE_ATTR(latency_hist, S_IRUGO | S_IWUSR, + latency_hist_show, latency_hist_store); + + void + mmc_latency_hist_sysfs_init(struct mmc_host *host) + { + if (device_create_file(&host->class_dev, &dev_attr_latency_hist)) + dev_err(&host->class_dev, + "Failed to create latency_hist sysfs entry\n"); + } + + void + mmc_latency_hist_sysfs_exit(struct mmc_host *host) + { + device_remove_file(&host->class_dev, &dev_attr_latency_hist); + } + #endif + subsys_initcall(mmc_init); module_exit(mmc_exit); diff --cc drivers/usb/dwc3/dwc3-pci.c index 45f5a232d9fb,3d731d1b5c60..2eb84d6c24a6 --- a/drivers/usb/dwc3/dwc3-pci.c +++ b/drivers/usb/dwc3/dwc3-pci.c @@@ -35,8 -35,8 +35,9 @@@ #define PCI_DEVICE_ID_INTEL_SPTLP 0x9d30 #define PCI_DEVICE_ID_INTEL_SPTH 0xa130 #define PCI_DEVICE_ID_INTEL_BXT 0x0aaa +#define PCI_DEVICE_ID_INTEL_BXT_M 0x1aaa #define PCI_DEVICE_ID_INTEL_APL 0x5aaa + #define PCI_DEVICE_ID_INTEL_KBP 0xa2b0 static const struct acpi_gpio_params reset_gpios = { 0, 0, false }; static const struct acpi_gpio_params cs_gpios = { 1, 0, false }; @@@ -225,8 -214,8 +226,9 @@@ static const struct pci_device_id dwc3_ { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SPTLP), }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SPTH), }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BXT), }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BXT_M), }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_APL), }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_KBP), }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB), }, { } /* Terminating Entry */ }; diff --cc kernel/sched/Makefile index c6a85f813dfd,623ce4bde0d5..dc93f1cffc6e --- a/kernel/sched/Makefile +++ b/kernel/sched/Makefile @@@ -12,9 -12,10 +12,10 @@@ CFLAGS_core.o := $(PROFILING) -fno-omit endif obj-y += core.o loadavg.o clock.o cputime.o -obj-y += idle_task.o fair.o rt.o deadline.o stop_task.o +obj-y += idle_task.o fair.o rt.o deadline.o stop_task.o energy.o obj-y += wait.o completion.o idle.o - obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o + obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o energy.o + obj-$(CONFIG_SCHED_WALT) += walt.o obj-$(CONFIG_SCHED_AUTOGROUP) += auto_group.o obj-$(CONFIG_SCHEDSTATS) += stats.o obj-$(CONFIG_SCHED_DEBUG) += debug.o diff --cc kernel/sched/fair.c index 3217494e326e,30d76a18ae1a..d5965cfbd3d7 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@@ -6825,7 -7125,8 +7125,10 @@@ static void update_cpu_capacity(struct mcc->cpu = cpu; #ifdef CONFIG_SCHED_DEBUG raw_spin_unlock_irqrestore(&mcc->lock, flags); - //pr_info("CPU%d: update max cpu_capacity %lu\n", cpu, capacity); ++/* + printk_deferred(KERN_INFO "CPU%d: update max cpu_capacity %lu\n", + cpu, capacity); ++*/ goto skip_unlock; #endif } diff --cc sound/usb/quirks.c index 85d549203903,3039e907f1f8..10e5fb9cdd8b --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@@ -1139,10 -1140,9 +1140,12 @@@ bool snd_usb_get_sample_rate_quirk(stru case USB_ID(0x047F, 0xAA05): /* Plantronics DA45 */ case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */ case USB_ID(0x0556, 0x0014): /* Phoenix Audio TMX320VC */ + case USB_ID(0x05A3, 0x9420): /* ELP HD USB Camera */ +#ifdef CONFIG_HID_RKVR + case USB_ID(0x071B, 0x3205): /* RockChip NanoC VR */ +#endif case USB_ID(0x074D, 0x3553): /* Outlaw RR2150 (Micronas UAC3553B) */ + case USB_ID(0x1901, 0x0191): /* GE B850V3 CP2114 audio interface */ case USB_ID(0x1de7, 0x0013): /* Phoenix Audio MT202exe */ case USB_ID(0x1de7, 0x0014): /* Phoenix Audio TMX320 */ case USB_ID(0x1de7, 0x0114): /* Phoenix Audio MT202pcs */