Merge remote-tracking branch 'kernel-common/android-4.14-stable' into LE.UM.4.2.1.r1.3
* kernel-common/android-4.14-stable:
ANDROID: cuttlefish_defconfig: Disable CMOS RTC driver
ANDROID: modules: fix lockprove warning
BACKPORT: arm64: vdso: Explicitly add build-id option
BACKPORT: arm64: vdso: use $(LD) instead of $(CC) to link VDSO
Linux 4.14.183
scsi: zfcp: fix request object use-after-free in send path causing wrong traces
genirq/generic_pending: Do not lose pending affinity update
net: hns: Fixes the missing put_device in positive leg for roce reset
net: hns: fix unsigned comparison to less than zero
KVM: VMX: check for existence of secondary exec controls before accessing
rxrpc: Fix transport sockopts to get IPv4 errors on an IPv6 socket
sc16is7xx: move label 'err_spi' to correct section
mm/vmalloc.c: don't dereference possible NULL pointer in __vunmap()
netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build
bonding: Fix reference count leak in bond_sysfs_slave_add.
qlcnic: fix missing release in qlcnic_83xx_interrupt_test.
esp6: get the right proto for transport mode in esp6_gso_encap
netfilter: nf_conntrack_pptp: prevent buffer overflows in debug code
netfilter: nfnetlink_cthelper: unbreak userspace helper support
netfilter: ipset: Fix subcounter update skip
netfilter: nft_reject_bridge: enable reject with bridge vlan
ip_vti: receive ipip packet by calling ip_tunnel_rcv
vti4: eliminated some duplicate code.
xfrm: fix error in comment
xfrm: fix a NULL-ptr deref in xfrm_local_error
xfrm: fix a warning in xfrm_policy_insert_list
xfrm: call xfrm_output_gso when inner_protocol is set in xfrm_output
xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
copy_xstate_to_kernel(): don't leave parts of destination uninitialized
x86/dma: Fix max PFN arithmetic overflow on 32 bit systems
mac80211: mesh: fix discovery timer re-arming issue / crash
parisc: Fix kernel panic in mem_init()
iommu: Fix reference count leak in iommu_group_alloc.
include/asm-generic/topology.h: guard cpumask_of_node() macro argument
fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()
libceph: ignore pool overlay and cache logic on redirects
ALSA: hda/realtek - Add new codec supported for ALC287
exec: Always set cap_ambient in cap_bprm_set_creds
ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC
ALSA: hwdep: fix a left shifting 1 by 31 UB bug
RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe()
mmc: block: Fix use-after-free issue for rpmb
ARM: dts: bcm2835-rpi-zero-w: Fix led polarity
ARM: dts/imx6q-bx50v3: Set display interface clock parents
ARM: dts: imx6q-bx50v3: Add internal switch
IB/qib: Call kobject_put() when kobject_init_and_add() fails
gpio: exar: Fix bad handling for ida_simple_get error path
ARM: uaccess: fix DACR mismatch with nested exceptions
ARM: uaccess: integrate uaccess_save and uaccess_restore
ARM: uaccess: consolidate uaccess asm to asm/uaccess-asm.h
ARM: 8843/1: use unified assembler in headers
Input: synaptics-rmi4 - fix error return code in rmi_driver_probe()
Input: synaptics-rmi4 - really fix attn_data use-after-free
Input: i8042 - add ThinkPad S230u to i8042 reset list
Input: dlink-dir685-touchkeys - fix a typo in driver name
Input: xpad - add custom init packet for Xbox One S controllers
Input: evdev - call input_flush_device() on release(), not flush()
Input: usbtouchscreen - add support for BonXeon TP
samples: bpf: Fix build error
cifs: Fix null pointer check in cifs_read
net: freescale: select CONFIG_FIXED_PHY where needed
usb: gadget: legacy: fix redundant initialization warnings
cachefiles: Fix race between read_waiter and read_copier involving op->to_do
gfs2: move privileged user check to gfs2_quota_lock_check
net: microchip: encx24j600: add missed kthread_stop
gpio: tegra: mask GPIO IRQs during IRQ shutdown
ARM: dts: rockchip: fix pinctrl sub nodename for spi in rk322x.dtsi
arm64: dts: rockchip: swap interrupts interrupt-names rk3399 gpu node
ARM: dts: rockchip: fix phy nodename for rk3228-evb
net/mlx4_core: fix a memory leak bug.
net: sun: fix missing release regions in cas_init_one().
net: qrtr: Fix passing invalid reference to qrtr_local_enqueue()
net/mlx5e: Update netdev txq on completions during closure
sctp: Start shutdown on association restart if in SHUTDOWN-SENT state and socket is closed
r8152: support additional Microsoft Surface Ethernet Adapter variant
net sched: fix reporting the first-time use timestamp
net: revert "net: get rid of an signed integer overflow in ip_idents_reserve()"
net/mlx5: Add command entry handling completion
net: ipip: fix wrong address family in init error path
ax25: fix setsockopt(SO_BINDTODEVICE)
ANDROID: scs: fix recursive spinlock in scs_check_usage
ANDROID: timer: fix timer_setup with CFI
FROMGIT: USB: dummy-hcd: use configurable endpoint naming scheme
UPSTREAM: USB: dummy-hcd: remove unsupported isochronous endpoints
UPSTREAM: usb: raw-gadget: fix null-ptr-deref when reenabling endpoints
UPSTREAM: usb: raw-gadget: documentation updates
UPSTREAM: usb: raw-gadget: support stalling/halting/wedging endpoints
UPSTREAM: usb: raw-gadget: fix gadget endpoint selection
UPSTREAM: usb: raw-gadget: improve uapi headers comments
UPSTREAM: usb: raw-gadget: fix return value of ep read ioctls
UPSTREAM: usb: raw-gadget: fix raw_event_queue_fetch locking
UPSTREAM: usb: raw-gadget: Fix copy_to/from_user() checks
ANDROID: net: bpf: permit redirect from ingress L3 to egress L2 devices at near max mtu
Revert "ANDROID: Incremental fs: Avoid continually recalculating hashes"
Linux 4.14.182
iio: adc: stm32-adc: fix device used to request dma
iio: adc: stm32-adc: Use dma_request_chan() instead dma_request_slave_channel()
x86/unwind/orc: Fix unwind_get_return_address_ptr() for inactive tasks
rxrpc: Fix a memory leak in rxkad_verify_response()
rapidio: fix an error in get_user_pages_fast() error handling
mei: release me_cl object reference
iio: dac: vf610: Fix an error handling path in 'vf610_dac_probe()'
iio: sca3000: Remove an erroneous 'get_device()'
staging: greybus: Fix uninitialized scalar variable
staging: iio: ad2s1210: Fix SPI reading
Revert "gfs2: Don't demote a glock until its revokes are written"
cxgb4/cxgb4vf: Fix mac_hlist initialization and free
cxgb4: free mac_hlist properly
media: fdp1: Fix R-Car M3-N naming in debug message
libnvdimm/btt: Fix LBA masking during 'free list' population
libnvdimm/btt: Remove unnecessary code in btt_freelist_init
ubsan: build ubsan.c more conservatively
x86/uaccess, ubsan: Fix UBSAN vs. SMAP
powerpc/64s: Disable STRICT_KERNEL_RWX
powerpc: Remove STRICT_KERNEL_RWX incompatibility with RELOCATABLE
powerpc: restore alphabetic order in Kconfig
dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()'
apparmor: Fix aa_label refcnt leak in policy_update
ALSA: pcm: fix incorrect hw_base increase
ALSA: iec1712: Initialize STDSP24 properly when using the model=staudio option
l2tp: initialise PPP sessions before registering them
l2tp: protect sock pointer of struct pppol2tp_session with RCU
l2tp: initialise l2tp_eth sessions before registering them
l2tp: don't register sessions in l2tp_session_create()
arm64: fix the flush_icache_range arguments in machine_kexec
padata: purge get_cpu and reorder_via_wq from padata_do_serial
padata: initialize pd->cpu with effective cpumask
padata: Replace delayed timer with immediate workqueue in padata_reorder
padata: set cpu_index of unused CPUs to -1
ARM: futex: Address build warning
platform/x86: asus-nb-wmi: Do not load on Asus T100TA and T200TA
USB: core: Fix misleading driver bug report
ceph: fix double unlock in handle_cap_export()
gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp()
x86/apic: Move TSC deadline timer debug printk
scsi: ibmvscsi: Fix WARN_ON during event pool release
component: Silence bind error on -EPROBE_DEFER
vhost/vsock: fix packet delivery order to monitoring devices
configfs: fix config_item refcnt leak in configfs_rmdir()
scsi: qla2xxx: Fix hang when issuing nvme disconnect-all in NPIV
HID: multitouch: add eGalaxTouch P80H84 support
gcc-common.h: Update for GCC 10
ubi: Fix seq_file usage in detailed_erase_block_info debugfs file
i2c: mux: demux-pinctrl: Fix an error handling path in 'i2c_demux_pinctrl_probe()'
iommu/amd: Fix over-read of ACPI UID from IVRS table
fix multiplication overflow in copy_fdtable()
ima: Fix return value of ima_write_policy()
evm: Check also if *tfm is an error pointer in init_desc()
ima: Set file->f_mode instead of file->f_flags in ima_calc_file_hash()
padata: ensure padata_do_serial() runs on the correct CPU
padata: ensure the reorder timer callback runs on the correct CPU
i2c: dev: Fix the race between the release of i2c_dev and cdev
watchdog: Fix the race between the release of watchdog_core_data and cdev
ext4: add cond_resched() to ext4_protect_reserved_inode
ANDROID: scsi: ufs: Handle clocks when lrbp fails
ANDROID: fscrypt: handle direct I/O with IV_INO_LBLK_32
BACKPORT: FROMLIST: fscrypt: add support for IV_INO_LBLK_32 policies
ANDROID: namespace'ify tcp_default_init_rwnd implementation
Linux 4.14.181
Makefile: disallow data races on gcc-10 as well
KVM: x86: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce
ARM: dts: r8a7740: Add missing extal2 to CPG node
ARM: dts: r8a73a4: Add missing CMT1 interrupts
arm64: dts: rockchip: Rename dwc3 device nodes on rk3399 to make dtc happy
arm64: dts: rockchip: Replace RK805 PMIC node name with "pmic" on rk3328 boards
Revert "ALSA: hda/realtek: Fix pop noise on ALC225"
usb: gadget: legacy: fix error return code in cdc_bind()
usb: gadget: legacy: fix error return code in gncm_bind()
usb: gadget: audio: Fix a missing error return value in audio_bind()
usb: gadget: net2272: Fix a memory leak in an error handling path in 'net2272_plat_probe()'
clk: rockchip: fix incorrect configuration of rk3228 aclk_gpu* clocks
exec: Move would_dump into flush_old_exec
x86/unwind/orc: Fix error handling in __unwind_start()
usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg list
USB: gadget: fix illegal array access in binding with UDC
usb: host: xhci-plat: keep runtime active when removing host
usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B
ALSA: usb-audio: Add control message quirk delay for Kingston HyperX headset
x86: Fix early boot crash on gcc-10, third try
ARM: dts: imx27-phytec-phycard-s-rdk: Fix the I2C1 pinctrl entries
ARM: dts: dra7: Fix bus_dma_limit for PCIe
ALSA: rawmidi: Fix racy buffer resize under concurrent accesses
ALSA: rawmidi: Initialize allocated buffers
ALSA: hda/realtek - Limit int mic boost for Thinkpad T530
net: tcp: fix rx timestamp behavior for tcp_recvmsg
netprio_cgroup: Fix unlimited memory leak of v2 cgroups
net: ipv4: really enforce backoff for redirects
net: dsa: loop: Add module soft dependency
hinic: fix a bug of ndo_stop
Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu"
net: phy: fix aneg restart in phy_ethtool_set_eee
netlabel: cope with NULL catmap
net: fix a potential recursive NETDEV_FEAT_CHANGE
net: phy: micrel: Use strlcpy() for ethtool::get_strings
x86/asm: Add instruction suffixes to bitops
gcc-10: avoid shadowing standard library 'free()' in crypto
gcc-10: disable 'restrict' warning for now
gcc-10: disable 'stringop-overflow' warning for now
gcc-10: disable 'array-bounds' warning for now
gcc-10: disable 'zero-length-bounds' warning for now
Stop the ad-hoc games with -Wno-maybe-initialized
kbuild: compute false-positive -Wmaybe-uninitialized cases in Kconfig
gcc-10 warnings: fix low-hanging fruit
pnp: Use list_for_each_entry() instead of open coding
hwmon: (da9052) Synchronize access with mfd
IB/mlx4: Test return value of calls to ib_get_cached_pkey
netfilter: conntrack: avoid gcc-10 zero-length-bounds warning
i40iw: Fix error handling in i40iw_manage_arp_cache()
pinctrl: cherryview: Add missing spinlock usage in chv_gpio_irq_handler
pinctrl: baytrail: Enable pin configuration setting for GPIO chip
ipmi: Fix NULL pointer dereference in ssif_probe
x86/entry/64: Fix unwind hints in register clearing code
ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse
ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper()
ALSA: hda/hdmi: fix race in monitor detection during probe
cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode once
dmaengine: mmp_tdma: Reset channel error on release
dmaengine: pch_dma.c: Avoid data race between probe and irq handler
scsi: sg: add sg_remove_request in sg_write
virtio-blk: handle block_device_operations callbacks after hot unplug
drop_monitor: work around gcc-10 stringop-overflow warning
net: moxa: Fix a potential double 'free_irq()'
net/sonic: Fix a resource leak in an error handling path in 'jazz_sonic_probe()'
shmem: fix possible deadlocks on shmlock_user_lock
net: stmmac: Use mutex instead of spinlock
f2fs: fix to avoid memory leakage in f2fs_listxattr
f2fs: fix to avoid accessing xattr across the boundary
f2fs: sanity check of xattr entry size
f2fs: introduce read_xattr_block
f2fs: introduce read_inline_xattr
blktrace: fix dereference after null check
blktrace: Protect q->blk_trace with RCU
blktrace: fix trace mutex deadlock
blktrace: fix unlocked access to init/start-stop/teardown
net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
net: ipv6: add net argument to ip6_dst_lookup_flow
scripts/decodecode: fix trapping instruction formatting
objtool: Fix stack offset tracking for indirect CFAs
netfilter: nat: never update the UDP checksum when it's 0
x86/unwind/orc: Fix error path for bad ORC entry type
x86/unwind/orc: Prevent unwinding before ORC initialization
x86/unwind/orc: Don't skip the first frame for inactive tasks
x86/entry/64: Fix unwind hints in rewind_stack_do_exit()
x86/entry/64: Fix unwind hints in kernel exit path
batman-adv: Fix refcnt leak in batadv_v_ogm_process
batman-adv: Fix refcnt leak in batadv_store_throughput_override
batman-adv: Fix refcnt leak in batadv_show_throughput_override
batman-adv: fix batadv_nc_random_weight_tq
coredump: fix crash when umh is disabled
mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous()
KVM: arm: vgic: Fix limit condition when writing to GICD_I[CS]ACTIVER
tracing: Add a vmalloc_sync_mappings() for safe measure
USB: serial: garmin_gps: add sanity checking for data length
USB: uas: add quirk for LaCie 2Big Quadra
HID: usbhid: Fix race between usbhid_close() and usbhid_stop()
geneve: only configure or fill UDP_ZERO_CSUM6_RX/TX info when CONFIG_IPV6
HID: wacom: Read HID_DG_CONTACTMAX directly for non-generic devices
ipv6: fix cleanup ordering for ip6_mr failure
net: stricter validation of untrusted gso packets
bnxt_en: Fix VF anti-spoof filter setup.
bnxt_en: Improve AER slot reset.
net/mlx5: Fix command entry leak in Internal Error State
net/mlx5: Fix forced completion access non initialized command entry
bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features().
sch_sfq: validate silly quantum values
sch_choke: avoid potential panic in choke_reset()
net: usb: qmi_wwan: add support for DW5816e
net/mlx4_core: Fix use of ENOSPC around mlx4_counter_alloc()
net: macsec: preserve ingress frame ordering
fq_codel: fix TCA_FQ_CODEL_DROP_BATCH_SIZE sanity checks
dp83640: reverse arguments to list_add_tail
USB: serial: qcserial: Add DW5816e support
f2fs: flush dirty meta pages when flushing them
f2fs: fix checkpoint=disable:%u%%
f2fs: rework filename handling
f2fs: split f2fs_d_compare() from f2fs_match_name()
f2fs: don't leak filename in f2fs_try_convert_inline_dir()
ANDROID: clang: update to 11.0.1
FROMLIST: x86_64: fix jiffies ODR violation
ANDROID: cuttlefish_defconfig: Enable net testing options
ANDROID: Incremental fs: wake up log pollers less often
ANDROID: Incremental fs: Fix scheduling while atomic error
ANDROID: Incremental fs: Avoid continually recalculating hashes
Revert "f2fs: refactor resize_fs to avoid meta updates in progress"
UPSTREAM: HID: steam: Fix input device disappearing
ANDROID: fscrypt: set dun_bytes more precisely
ANDROID: dm-default-key: set dun_bytes more precisely
ANDROID: block: backport the ability to specify max_dun_bytes
ANDROID: hid: steam: remove BT controller matching
ANDROID: dm-default-key: Update key size for wrapped keys
ANDROID: cuttlefish_defconfig: Enable CONFIG_STATIC_USERMODEHELPER
ANDROID: cuttlefish_defconfig: enable CONFIG_MMC_CRYPTO
ANDROID: Add padding for crypto related structs in UFS and MMC
ANDROID: mmc: MMC crypto API
Linux 4.14.180
cgroup, netclassid: remove double cond_resched
mac80211: add ieee80211_is_any_nullfunc()
ALSA: hda: Match both PCI ID and SSID for driver blacklist
tracing: Reverse the order of trace_types_lock and event_mutex
sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
net: systemport: suppress warnings on failed Rx SKB allocations
net: bcmgenet: suppress warnings on failed Rx SKB allocations
lib/mpi: Fix building for powerpc with clang
net: dsa: b53: Rework ARL bin logic
scripts/config: allow colons in option strings for sed
s390/ftrace: fix potential crashes when switching tracers
cifs: protect updating server->dstaddr with a spinlock
net: stmmac: Fix sub-second increment
net: stmmac: fix enabling socfpga's ptp_ref_clock
wimax/i2400m: Fix potential urb refcnt leak
ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry
ASoC: rsnd: Fix HDMI channel mapping for multi-SSI mode
ASoC: sgtl5000: Fix VAG power-on handling
selftests/ipc: Fix test failure seen after initial test run
ASoC: topology: Check return value of pcm_new_ver
powerpc/pci/of: Parse unassigned resources
vhost: vsock: kick send_pkt worker once device is started
ANDROID: arm64: fix a mismerge in proc.S
Linux 4.14.179
selinux: properly handle multiple messages in selinux_netlink_send()
dmaengine: dmatest: Fix iteration non-stop logic
nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl
ALSA: opti9xx: shut up gcc-10 range warning
iommu/amd: Fix legacy interrupt remapping for x2APIC-enabled system
scsi: target/iblock: fix WRITE SAME zeroing
iommu/qcom: Fix local_base status check
vfio/type1: Fix VA->PA translation for PFNMAP VMAs in vaddr_get_pfn()
vfio: avoid possible overflow in vfio_iommu_type1_pin_pages
RDMA/mlx4: Initialize ib_spec on the stack
RDMA/mlx5: Set GRH fields in query QP on RoCE
dm verity fec: fix hash block number in verity_fec_decode
PM: hibernate: Freeze kernel threads in software_resume()
PM: ACPI: Output correct message on target power state
ALSA: pcm: oss: Place the plugin buffer overflow checks correctly
ALSA: hda/hdmi: fix without unlocked before return
ALSA: hda/realtek - Two front mics on a Lenovo ThinkCenter
mmc: sdhci-pci: Fix eMMC driver strength for BYT-based controllers
mmc: sdhci-xenon: fix annoying 1.8V regulator warning
btrfs: fix partial loss of prealloc extent past i_size after fsync
btrfs: fix block group leak when removing fails
drm/qxl: qxl_release use after free
drm/qxl: qxl_release leak in qxl_hw_surface_alloc()
drm/qxl: qxl_release leak in qxl_draw_dirty_fb()
drm/edid: Fix off-by-one in DispID DTD pixel clock
ext4: fix special inode number checks in __ext4_iget()
ANDROID: Incremental fs: Fix issues with very large files
Linux 4.14.178
propagate_one(): mnt_set_mountpoint() needs mount_lock
ext4: check for non-zero journal inum in ext4_calculate_overhead
qed: Fix use after free in qed_chain_free
ext4: unsigned int compared against zero
ext4: fix block validity checks for journal inodes using indirect blocks
ext4: don't perform block validity checks on the journal inode
ext4: protect journal inode's blocks using block_validity
ext4: avoid declaring fs inconsistent due to invalid file handles
hwmon: (jc42) Fix name to have no illegal characters
ext4: convert BUG_ON's to WARN_ON's in mballoc.c
ext4: increase wait time needed before reuse of deleted inode numbers
ext4: use matching invalidatepage in ext4_writepage
arm64: Delete the space separator in __emit_inst
xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status
objtool: Support Clang non-section symbols in ORC dump
objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings
scsi: target: fix PR IN / READ FULL STATUS for FC
xfs: fix partially uninitialized structure in xfs_reflink_remap_extent
x86: hyperv: report value of misc_features
bpf, x86: Fix encoding for lower 8-bit registers in BPF_STX BPF_B
mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path
perf/core: fix parent pid/tid in task exit events
ARM: dts: bcm283x: Disable dsi0 node
net/cxgb4: Check the return from t4_query_params properly
i2c: altera: use proper variable to hold errno
nfsd: memory corruption in nfsd4_lock()
iio:ad7797: Use correct attribute_group
usb: gadget: udc: bdc: Remove unnecessary NULL checks in bdc_req_complete
usb: dwc3: gadget: Do link recovery for SS and SSP
binder: take read mode of mmap_sem in binder_alloc_free_page()
include/uapi/linux/swab.h: fix userspace breakage, use __BITS_PER_LONG for swap
mtd: cfi: fix deadloop in cfi_cmdset_0002.c do_write_buffer
remoteproc: Fix wrong rvring index computation
xfs: Fix deadlock between AGI and AGF with RENAME_WHITEOUT
xfs: validate sb_logsunit is a multiple of the fs blocksize
serial: sh-sci: Make sure status register SCxSR is read in correct sequence
usb: f_fs: Clear OS Extended descriptor counts to zero in ffs_data_reset()
UAS: fix deadlock in error handling and PM flushing work
UAS: no use logging any details in case of ENODEV
cdc-acm: introduce a cool down
cdc-acm: close race betrween suspend() and acm_softint
staging: vt6656: Power save stop wake_up_count wrap around.
staging: vt6656: Fix pairwise key entry save.
staging: vt6656: Fix drivers TBTT timing counter.
staging: vt6656: Fix calling conditions of vnt_set_bss_mode
staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by default.
vt: don't hardcode the mem allocation upper bound
staging: comedi: Fix comedi_device refcnt leak in comedi_open
staging: comedi: dt2815: fix writing hi byte of analog output
powerpc/setup_64: Set cache-line-size based on cache-block-size
ARM: imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y
iwlwifi: pcie: actually release queue memory in TVQM
ASoC: dapm: fixup dapm kcontrol widget
audit: check the length of userspace generated audit records
usb-storage: Add unusual_devs entry for JMicron JMS566
tty: rocket, avoid OOB access
tty: hvc: fix buffer overflow during hvc_alloc().
KVM: VMX: Enable machine check support for 32bit targets
KVM: Check validity of resolved slot when searching memslots
tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send()
tpm/tpm_tis: Free IRQ if probing fails
ALSA: usb-audio: Filter out unsupported sample rates on Focusrite devices
ALSA: usb-audio: Fix usb audio refcnt leak when getting spdif
ALSA: hda/realtek - Add new codec supported for ALC245
ALSA: usx2y: Fix potential NULL dereference
tools/vm: fix cross-compile build
mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
mm/hugetlb: fix a addressing exception caused by huge_pte_offset
vmalloc: fix remap_vmalloc_range() bounds checks
overflow.h: Add arithmetic shift helper
USB: hub: Fix handling of connect changes during sleep
USB: core: Fix free-while-in-use bug in the USB S-Glibrary
USB: early: Handle AMD's spec-compliant identifiers, too
USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair K70 RGB RAPIDFIRE
USB: sisusbvga: Change port variable from signed to unsigned
fs/namespace.c: fix mountpoint reference counter race
iio: xilinx-xadc: Fix sequencer configuration for aux channels in simultaneous mode
iio: xilinx-xadc: Fix clearing interrupt when enabling trigger
iio: xilinx-xadc: Fix ADC-B powerdown
iio: adc: stm32-adc: fix sleep in atomic context
ALSA: hda: Remove ASUS ROG Zenith from the blacklist
KEYS: Avoid false positive ENOMEM error on key read
vrf: Check skb for XFRM_TRANSFORMED flag
xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish
net: dsa: b53: Fix ARL register definitions
team: fix hang in team_mode_get()
tcp: cache line align MAX_TCP_HEADER
net/x25: Fix x25_neigh refcnt leak when receiving frame
net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node
net: bcmgenet: correct per TX/RX ring statistics
macvlan: fix null dereference in macvlan_device_event()
macsec: avoid to set wrong mtu
ipv6: fix restrict IPV6_ADDRFORM operation
cxgb4: fix large delays in PTP synchronization
mm, slub: restore the original intention of prefetch_freepointer()
PCI/ASPM: Allow re-enabling Clock PM
perf/core: Disable page faults when getting phys address
pwm: bcm2835: Dynamically allocate base
pwm: renesas-tpu: Fix late Runtime PM enablement
s390/cio: avoid duplicated 'ADD' uevents
ipc/util.c: sysvipc_find_ipc() should increase position index
selftests: kmod: fix handling test numbers above 9
kernel/gcov/fs.c: gcov_seq_next() should increase position index
ASoC: Intel: atom: Take the drv->lock mutex before calling sst_send_slot_map()
scsi: iscsi: Report unbind session event when the target has been removed
pwm: rcar: Fix late Runtime PM enablement
ceph: don't skip updating wanted caps when cap is stale
ceph: return ceph_mdsc_do_request() errors from __get_parent()
scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login
watchdog: reset last_hw_keepalive time at start
vti4: removed duplicate log message.
crypto: mxs-dcp - make symbols 'sha1_null_hash' and 'sha256_null_hash' static
drm/msm: Use the correct dma_sync calls harder
keys: Fix the use of the C++ keyword "private" in uapi/linux/keyctl.h
net: ipv4: avoid unused variable warning for sysctl
net: ipv4: emulate READ_ONCE() on ->hdrincl bit-field in raw_sendmsg()
ext4: fix extent_status fragmentation for plain files
FROMGIT: f2fs: fix missing check for f2fs_unlock_op
ANDROID: Fix kernel build regressions from virtio-gpu-next patches
ANDROID: Incremental fs: Add setattr call
ANDROID: cuttlefish_defconfig: enable LTO and CFI
ANDROID: x86: map CFI jump tables in pti_clone_entry_text
ANDROID: crypto: aesni: fix function types for aesni_(enc|dec)
ANDROID: x86: disable CFI for do_syscall_*
ANDROID: BACKPORT: x86, module: Ignore __typeid__ relocations
ANDROID: BACKPORT: x86, relocs: Ignore __typeid__ relocations
ANDROID: BACKPORT: x86/extable: Do not mark exception callback as CFI
FROMLIST: crypto, x86/sha: Eliminate casts on asm implementations
UPSTREAM: crypto: x86 - Rename functions to avoid conflict with crypto/sha256.h
BACKPORT: x86/vmlinux: Actually use _etext for the end of the text segment
ANDROID: x86: disable STACK_VALIDATION with LTO_CLANG
ANDROID: x86: add support for CONFIG_LTO_CLANG
ANDROID: x86/vdso: disable LTO only for VDSO
ANDROID: x86/cpu/vmware: use the full form of inl in VMWARE_PORT
UPSTREAM: x86/build/lto: Fix truncated .bss with -fdata-sections
ANDROID: kbuild: don't select LD_DEAD_CODE_DATA_ELIMINATION with LTO
ANDROID: kbuild: export LTO and CFI flags
ANDROID: cfi: remove unnecessary <asm/memory.h> include
ANDROID: drm/virtio: rebase to latest virgl/drm-misc-next (take 2)
UPSTREAM: sysrq: Use panic() to force a crash
ANDROID: Incremental fs: Use simple compression in log buffer
ANDROID: dm-bow: Fix not to skip trim at framented range
ANDROID: Remove VLA from uid_sys_stats.c
ANDROID: cuttlefish_defconfig: enable CONFIG_DEBUG_LIST
Linux 4.14.177
KEYS: Don't write out to userspace while holding key semaphore
KEYS: Use individual pages in big_key for crypto buffers
mtd: phram: fix a double free issue in error path
mtd: lpddr: Fix a double free in probe()
locktorture: Print ratio of acquisitions, not failures
tty: evh_bytechan: Fix out of bounds accesses
fbdev: potential information leak in do_fb_ioctl()
net: dsa: bcm_sf2: Fix overflow checks
iommu/amd: Fix the configuration of GCR3 table root pointer
libnvdimm: Out of bounds read in __nd_ioctl()
ext2: fix debug reference to ext2_xattr_cache
ext2: fix empty body warnings when -Wextra is used
iommu/vt-d: Fix mm reference leak
NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
drm/amdkfd: kfree the wrong pointer
x86: ACPI: fix CPU hotplug deadlock
KVM: s390: vsie: Fix possible race when shadowing region 3 tables
compiler.h: fix error in BUILD_BUG_ON() reporting
percpu_counter: fix a data race at vm_committed_as
include/linux/swapops.h: correct guards for non_swap_entry()
ext4: do not commit super on read-only bdev
powerpc/maple: Fix declaration made after definition
s390/cpuinfo: fix wrong output when CPU0 is offline
NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails
NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid()
rtc: 88pm860x: fix possible race condition
soc: imx: gpc: fix power up sequencing
clk: tegra: Fix Tegra PMC clock out parents
power: supply: bq27xxx_battery: Silence deferred-probe error
clk: at91: usb: continue if clk_hw_round_rate() return zero
of: unittest: kmemleak in of_unittest_platform_populate()
rbd: call rbd_dev_unprobe() after unwatching and flushing notifies
rbd: avoid a deadlock on header_rwsem when flushing notifies
of: fix missing kobject init for !SYSFS && OF_DYNAMIC config
soc: qcom: smem: Use le32_to_cpu for comparison
wil6210: abort properly in cfg suspend
wil6210: fix length check in __wmi_send
wil6210: add block size checks during FW load
wil6210: fix PCIe bus mastering in case of interface down
rpmsg: glink: smem: Ensure ordering during tx
rpmsg: glink: Fix missing mutex_init() in qcom_glink_alloc_channel()
rtc: pm8xxx: Fix issue in RTC write path
rpmsg: glink: use put_device() if device_register fail
wil6210: rate limit wil_rx_refill error
scsi: ufs: ufs-qcom: remove broken hci version quirk
scsi: ufs: make sure all interrupts are processed
wil6210: fix temperature debugfs
wil6210: increase firmware ready timeout
arch_topology: Fix section miss match warning due to free_raw_capacity()
arm64: traps: Don't print stack or raw PC/LR values in backtraces
arm64: perf: remove unsupported events for Cortex-A73
Revert "gpio: set up initial state from .get_direction()"
clk: Fix debugfs_create_*() usage
drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem
video: fbdev: sis: Remove unnecessary parentheses and commented code
lib/raid6: use vdupq_n_u8 to avoid endianness warnings
ALSA: hda: Don't release card at firmware loading error
irqchip/mbigen: Free msi_desc on device teardown
netfilter: nf_tables: report EOPNOTSUPP on unsupported flags/object type
arm, bpf: Fix bugs with ALU64 {RSH, ARSH} BPF_K shift by 0
ext4: use non-movable memory for superblock readahead
scsi: sg: add sg_remove_request in sg_common_write
objtool: Fix switch table detection in .text.unlikely
mm/vmalloc.c: move 'area->pages' after if statement
x86/resctrl: Fix invalid attempt at removing the default resource group
x86/resctrl: Preserve CDP enable over CPU hotplug
x86/intel_rdt: Enable L2 CDP in MSR IA32_L2_QOS_CFG
x86/intel_rdt: Add two new resources for L2 Code and Data Prioritization (CDP)
x86/intel_rdt: Enumerate L2 Code and Data Prioritization (CDP) feature
x86/microcode/AMD: Increase microcode PATCH_MAX_SIZE
scsi: target: fix hang when multiple threads try to destroy the same iscsi session
scsi: target: remove boilerplate code
kvm: x86: Host feature SSBD doesn't imply guest feature SPEC_CTRL_SSBD
dm flakey: check for null arg_name in parse_features()
ext4: do not zeroout extents beyond i_disksize
mac80211_hwsim: Use kstrndup() in place of kasprintf()
btrfs: check commit root generation in should_ignore_root
tracing: Fix the race between registering 'snapshot' event trigger and triggering 'snapshot' operation
ALSA: usb-audio: Don't override ignore_ctl_error value from the map
ASoC: Intel: mrfld: return error codes when an error occurs
ASoC: Intel: mrfld: fix incorrect check on p->sink
ext4: fix incorrect inodes per group in error message
ext4: fix incorrect group count in ext4_fill_super error message
pwm: pca9685: Fix PWM/GPIO inter-operation
jbd2: improve comments about freeing data buffers whose page mapping is NULL
scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes
net: revert default NAPI poll timeout to 2 jiffies
net: qrtr: send msgs from local of same id as broadcast
net: ipv6: do not consider routes via gateways for anycast address check
net: ipv4: devinet: Fix crash when add/del multicast IP with autojoin
hsr: check protocol version in hsr_newlink()
amd-xgbe: Use __napi_schedule() in BH context
mfd: dln2: Fix sanity checking for endpoints
misc: echo: Remove unnecessary parentheses and simplify check for zero
powerpc/fsl_booke: Avoid creating duplicate tlb1 entry
ipmi: fix hung processes in __get_guid()
ftrace/kprobe: Show the maxactive number on kprobe_events
drm: Remove PageReserved manipulation from drm_pci_alloc
drm/dp_mst: Fix clearing payload state on topology disable
crypto: caam - update xts sector size for large input length
dm zoned: remove duplicate nr_rnd_zones increase in dmz_init_zone()
btrfs: use nofs allocations for running delayed items
Btrfs: fix crash during unmount due to race with delayed inode workers
powerpc: Make setjmp/longjmp signature standard
powerpc: Add attributes for setjmp/longjmp
scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug
powerpc/kprobes: Ignore traps that happened in real mode
powerpc/xive: Use XIVE_BAD_IRQ instead of zero to catch non configured IPIs
powerpc/hash64/devmap: Use H_PAGE_THP_HUGE when setting up huge devmap PTE entries
powerpc/64/tm: Don't let userspace set regs->trap via sigreturn
powerpc/powernv/idle: Restore AMR/UAMOR/AMOR after idle
libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set
hfsplus: fix crash and filesystem corruption when deleting files
cpufreq: powernv: Fix use-after-free
kmod: make request_module() return an error when autoloading is disabled
Input: i8042 - add Acer Aspire 5738z to nomux list
s390/diag: fix display of diagnose call statistics
perf tools: Support Python 3.8+ in Makefile
ocfs2: no need try to truncate file beyond i_size
fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
ext4: fix a data race at inode->i_blocks
NFS: Fix a page leak in nfs_destroy_unlinked_subrequests()
rtc: omap: Use define directive for PIN_CONFIG_ACTIVE_HIGH
arm64: armv8_deprecated: Fix undef_hook mask for thumb setend
scsi: zfcp: fix missing erp_lock in port recovery trigger for point-to-point
dm verity fec: fix memory leak in verity_fec_dtr
mm: Use fixed constant in page_frag_alloc instead of size + 1
tools: gpio: Fix out-of-tree build regression
x86/speculation: Remove redundant arch_smt_update() invocation
powerpc/pseries: Drop pointless static qualifier in vpa_debugfs_init()
net: rtnl_configure_link: fix dev flags changes arg to __dev_notify_flags
ALSA: hda: Initialize power_state field properly
crypto: mxs-dcp - fix scatterlist linearization for hash
btrfs: drop block from cache on error in relocation
CIFS: Fix bug which the return value by asynchronous read is error
KVM: VMX: fix crash cleanup when KVM wasn't used
KVM: VMX: Always VMCLEAR in-use VMCSes during crash with kexec support
KVM: x86: Allocate new rmap and large page tracking when moving memslot
KVM: s390: vsie: Fix delivery of addressing exceptions
KVM: s390: vsie: Fix region 1 ASCE sanity shadow address checks
KVM: nVMX: Properly handle userspace interrupt window request
x86/entry/32: Add missing ASM_CLAC to general_protection entry
signal: Extend exec_id to 64bits
ath9k: Handle txpower changes even when TPC is disabled
MIPS: OCTEON: irq: Fix potential NULL pointer dereference
irqchip/versatile-fpga: Apply clear-mask earlier
KEYS: reaching the keys quotas correctly
PCI: endpoint: Fix for concurrent memory allocation in OB address region
PCI/ASPM: Clear the correct bits when enabling L1 substates
nvme-fc: Revert "add module to ops template to allow module references"
thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n
acpi/x86: ignore unspecified bit positions in the ACPI global lock field
media: ti-vpe: cal: fix disable_irqs to only the intended target
ALSA: hda/realtek - Set principled PC Beep configuration for ALC256
ALSA: doc: Document PC Beep Hidden Register on Realtek ALC256
ALSA: pcm: oss: Fix regression by buffer overflow fix
ALSA: ice1724: Fix invalid access for enumerated ctl items
ALSA: hda: Fix potential access overflow in beep helper
ALSA: hda: Add driver blacklist
ALSA: usb-audio: Add mixer workaround for TRX40 and co
usb: gadget: composite: Inform controller driver of self-powered
usb: gadget: f_fs: Fix use after free issue as part of queue failure
ASoC: topology: use name_prefix for new kcontrol
ASoC: dpcm: allow start or stop during pause for backend
ASoC: dapm: connect virtual mux with default value
ASoC: fix regwmask
slub: improve bit diffusion for freelist ptr obfuscation
misc: rtsx: set correct pcr_ops for rts522A
uapi: rename ext2_swab() to swab() and share globally in swab.h
btrfs: track reloc roots based on their commit root bytenr
btrfs: remove a BUG_ON() from merge_reloc_roots()
block, bfq: fix use-after-free in bfq_idle_slice_timer_body
locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency
usb: dwc3: core: add support for disabling SS instances in park mode
block: Fix use-after-free issue accessing struct io_cq
genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()
efi/x86: Ignore the memory attributes table on i386
x86/boot: Use unsigned comparison for addresses
gfs2: Don't demote a glock until its revokes are written
libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()
PCI/switchtec: Fix init_completion race condition with poll_wait()
selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault
sched: Avoid scale real weight down to zero
irqchip/versatile-fpga: Handle chained IRQs properly
block: keep bdi->io_pages in sync with max_sectors_kb for stacked devices
x86: Don't let pgprot_modify() change the page encryption bit
null_blk: fix spurious IO errors after failed past-wp access
null_blk: Handle null_add_dev() failures properly
null_blk: Fix the null_add_dev() error path
i2c: st: fix missing struct parameter description
qlcnic: Fix bad kzalloc null test
cxgb4/ptp: pass the sign of offset delta in FW CMD
hinic: fix wrong para of wait_for_completion_timeout
hinic: fix a bug of waitting for IO stopped
net: vxge: fix wrong __VA_ARGS__ usage
bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads
f2fs: fix missing check for f2fs_unlock_op
f2fs: refactor resize_fs to avoid meta updates in progress
ANDROID: fix wakeup reason findings
UPSTREAM: gpu/trace: add a gpu total memory usage tracepoint
CHROMIUM: drm/virtio: rebase zero-copy patches to virgl/drm-misc-next
CHROMIUM: virtio-gpu: add VIRTIO_GPU_F_RESOURCE_UUID feature
CHROMIUM: drm/virtgpu: add legacy VIRTIO_GPU_* values for non-upstream variants
CHROMIUM: drm/virtgpu: fix various warnings
CHROMIUM: drm/virtgpu: implement metadata allocation ioctl
CHROMIUM: drm/virtgpu: introduce request IDRs
CHROMIUM: drm/virtgpu: implement DRM_VIRTGPU_RESOURCE_CREATE_V2
CHROMIUM: drm/virtgpu: add stub ioctl implementation
CHROMIUM: drm/virtgpu: check for revelant capabilites
CHROMIUM: drm/virtgpu: add memory type to virtio_gpu_object_params
CHROMIUM: drm/virtgpu: make memory and resource creation opaque
CHROMIUM: virtio-gpu api: VIRTIO_GPU_F_MEMORY
CHROMIUM: virtwl: store plane info per virtio_gpu_object
CHROMIUM: drm/virtgpu: expose new ioctls to userspace
BACKPORT: drm/virtio: move virtio_gpu_object_{attach, detach} calls.
ANDROID: drm: ttm: Add ttm_tt_create2 driver hook
UPSTREAM: virtio-gpu api: comment feature flags
UPSTREAM: drm/virtio: module_param_named() requires linux/moduleparam.h
BACKPORT: drm/virtio: fix resource id creation race
BACKPORT: drm/virtio: make resource id workaround runtime switchable.
BACKPORT: drm/virtio: do NOT reuse resource ids
BACKPORT: drm/virtio: Drop deprecated load/unload initialization
f2fs: fix quota_sync failure due to f2fs_lock_op
f2fs: support read iostat
f2fs: Fix the accounting of dcc->undiscard_blks
f2fs: fix to handle error path of f2fs_ra_meta_pages()
f2fs: report the discard cmd errors properly
f2fs: fix long latency due to discard during umount
f2fs: add tracepoint for f2fs iostat
f2fs: introduce sysfs/data_io_flag to attach REQ_META/FUA
UPSTREAM: kheaders: include only headers into kheaders_data.tar.xz
UPSTREAM: kheaders: remove meaningless -R option of 'ls'
ANDROID: Incremental fs: Fix create_file performance
ANDROID: Incremental fs: Fix compound page usercopy crash
ANDROID: Incremental fs: Clean up incfs_test build process
ANDROID: Incremental fs: make remount log buffer change atomic
ANDROID: Incremental fs: Optimize get_filled_block
ANDROID: Incremental fs: Fix mislabeled __user ptrs
ANDROID: Incremental fs: Use 64-bit int for file_size when writing hash blocks
Revert "ANDROID: Incremental fs: Fix initialization, use of bitfields"
Linux 4.14.176
drm/msm: Use the correct dma_sync calls in msm_gem
rpmsg: glink: smem: Support rx peak for size less than 4 bytes
drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read()
usb: dwc3: don't set gadget->is_otg flag
rpmsg: glink: Remove chunk size word align warning
arm64: Fix size of __early_cpu_boot_status
drm/msm: stop abusing dma_map/unmap for cache
clk: qcom: rcg: Return failure for RCG update
acpi/nfit: Fix bus command validation
fbcon: fix null-ptr-deref in fbcon_switch
RDMA/cm: Update num_paths in cma_resolve_iboe_route error flow
Bluetooth: RFCOMM: fix ODEBUG bug in rfcomm_dev_ioctl
ceph: canonicalize server path in place
ceph: remove the extra slashes in the server path
IB/hfi1: Fix memory leaks in sysfs registration and unregistration
IB/hfi1: Call kobject_put() when kobject_init_and_add() fails
ASoC: jz4740-i2s: Fix divider written at incorrect offset in register
hwrng: imx-rngc - fix an error path
tools/accounting/getdelays.c: fix netlink attribute length
random: always use batched entropy for get_random_u{32,64}
mlxsw: spectrum_flower: Do not stop at FLOW_ACTION_VLAN_MANGLE
slcan: Don't transmit uninitialized stack data in padding
net: stmmac: dwmac1000: fix out-of-bounds mac address reg setting
net: phy: micrel: kszphy_resume(): add delay after genphy_resume() before accessing PHY registers
net: dsa: bcm_sf2: Ensure correct sub-node is parsed
ipv6: don't auto-add link-local address to lag ports
mm: mempolicy: require at least one nodeid for MPOL_PREFERRED
padata: always acquire cpu_hotplug_lock before pinst->lock
coresight: do not use the BIT() macro in the UAPI header
misc: pci_endpoint_test: Fix to support > 10 pci-endpoint-test devices
blk-mq: Allow blocking queue tag iter callbacks
blk-mq: sync the update nr_hw_queues with blk_mq_queue_tag_busy_iter
drm/etnaviv: replace MMU flush marker with flush sequence
tools/power turbostat: Fix gcc build warnings
initramfs: restore default compression behavior
drm/bochs: downgrade pci_request_region failure from error to warning
sctp: fix possibly using a bad saddr with a given dst
sctp: fix refcount bug in sctp_wfree
net, ip_tunnel: fix interface lookup with no key
ipv4: fix a RCU-list lock in fib_triestat_seq_show
ANDROID: power: wakeup_reason: wake reason enhancements
FROMLIST: power_supply: Add additional health properties to the header
UPSTREAM: power: supply: core: Update sysfs-class-power ABI document
BACKPORT: FROMGIT: kbuild: mkcompile_h: Include $LD version in /proc/version
ANDROID: fscrypt: fall back to filesystem-layer crypto when needed
ANDROID: block: require drivers to declare supported crypto key type(s)
ANDROID: block: make blk_crypto_start_using_mode() properly check for support
FROMLIST: kmod: make request_module() return an error when autoloading is disabled
UPSTREAM: loop: Only freeze block queue when needed.
UPSTREAM: loop: Only change blocksize when needed.
ANDROID: Incremental fs: Fix remount
ANDROID: Incremental fs: Protect get_fill_block, and add a field
ANDROID: Incremental fs: Fix crash polling 0 size read_log
ANDROID: Incremental fs: get_filled_blocks: better index_out
ANDROID: Fix wq fp check for CFI builds
ANDROID: Incremental fs: Fix four resource bugs
ANDROID: kbuild: ensure __cfi_check is correctly aligned
ANDROID: kbuild: fix module linker script flags for LTO
Linux 4.14.175
arm64: dts: ls1046ardb: set RGMII interfaces to RGMII_ID mode
arm64: dts: ls1043a-rdb: correct RGMII delay mode to rgmii-id
ARM: bcm2835-rpi-zero-w: Add missing pinctrl name
ARM: dts: oxnas: Fix clear-mask property
perf map: Fix off by one in strncpy() size argument
arm64: alternative: fix build with clang integrated assembler
net: ks8851-ml: Fix IO operations, again
gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 CHT + AXP288 model
bpf: Explicitly memset some bpf info structures declared on the stack
bpf: Explicitly memset the bpf_attr structure
platform/x86: pmc_atom: Add Lex 2I385SW to critclk_systems DMI table
vt: vt_ioctl: fix use-after-free in vt_in_use()
vt: vt_ioctl: fix VT_DISALLOCATE freeing in-use virtual console
vt: vt_ioctl: remove unnecessary console allocation checks
vt: switch vt_dont_switch to bool
vt: ioctl, switch VT_IS_IN_USE and VT_BUSY to inlines
vt: selection, introduce vc_is_sel
mac80211: fix authentication with iwlwifi/mvm
mac80211: Check port authorization in the ieee80211_tx_dequeue() case
media: xirlink_cit: add missing descriptor sanity checks
media: stv06xx: add missing descriptor sanity checks
media: dib0700: fix rc endpoint lookup
media: ov519: add missing endpoint sanity checks
libfs: fix infoleak in simple_attr_read()
staging: wlan-ng: fix use-after-free Read in hfa384x_usbin_callback
staging: wlan-ng: fix ODEBUG bug in prism2sta_disconnect_usb
staging: rtl8188eu: Add ASUS USB-N10 Nano B1 to device table
media: usbtv: fix control-message timeouts
media: flexcop-usb: fix endpoint sanity check
usb: musb: fix crash with highmen PIO and usbmon
USB: serial: io_edgeport: fix slab-out-of-bounds read in edge_interrupt_callback
USB: cdc-acm: restore capability check order
USB: serial: option: add Wistron Neweb D19Q1
USB: serial: option: add BroadMobi BM806U
USB: serial: option: add support for ASKEY WWHC050
afs: Fix some tracing details
Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()
Input: raydium_i2c_ts - use true and false for boolean values
vti6: Fix memory leak of skb if input policy check fails
netfilter: nft_fwd_netdev: validate family and chain type
xfrm: policy: Fix doulbe free in xfrm_policy_timer
xfrm: add the missing verify_sec_ctx_len check in xfrm_add_acquire
xfrm: fix uctx len check in verify_sec_ctx_len
RDMA/mlx5: Block delay drop to unprivileged users
vti[6]: fix packet tx through bpf_redirect() in XinY cases
xfrm: handle NETDEV_UNREGISTER for xfrm device
genirq: Fix reference leaks on irq affinity notifiers
RDMA/core: Ensure security pkey modify is not lost
gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 BYT + AXP288 model
gpiolib: acpi: Rework honor_wakeup option into an ignore_wake option
gpiolib: acpi: Correct comment for HP x2 10 honor_wakeup quirk
mac80211: mark station unauthorized before key removal
scsi: sd: Fix optimal I/O size for devices that change reported values
scripts/dtc: Remove redundant YYLOC global declaration
tools: Let O= makes handle a relative path with -C option
perf probe: Do not depend on dwfl_module_addrsym()
ARM: dts: omap5: Add bus_dma_limit for L3 bus
ARM: dts: dra7: Add bus_dma_limit for L3 bus
Input: avoid BIT() macro usage in the serio.h UAPI header
Input: synaptics - enable RMI on HP Envy 13-ad105ng
i2c: hix5hd2: add missed clk_disable_unprepare in remove
ftrace/x86: Anotate text_mutex split between ftrace_arch_code_modify_post_process() and ftrace_arch_code_modify_prepare()
arm64: compat: map SPSR_ELx<->PSR for signals
arm64: ptrace: map SPSR_ELx<->PSR for compat tasks
sxgbe: Fix off by one in samsung driver strncpy size arg
dpaa_eth: Remove unnecessary boolean expression in dpaa_get_headroom
mac80211: Do not send mesh HWMP PREQ if HWMP is disabled
scsi: ipr: Fix softlockup when rescanning devices in petitboot
fsl/fman: detect FMan erratum A050385
arm64: dts: ls1043a: FMan erratum A050385
dt-bindings: net: FMan erratum A050385
cgroup1: don't call release_agent when it is ""
drivers/of/of_mdio.c:fix of_mdiobus_register()
cpupower: avoid multiple definition with gcc -fno-common
cgroup-v1: cgroup_pidlist_next should update position index
net: ipv4: don't let PMTU updates increase route MTU
hsr: set .netnsok flag
hsr: add restart routine into hsr_get_node_list()
hsr: use rcu_read_lock() in hsr_get_node_{list/status}()
vxlan: check return value of gro_cells_init()
net: dsa: mt7530: Change the LINK bit to reflect the link status
bnxt_en: fix memory leaks in bnxt_dcbnl_ieee_getets()
slcan: not call free_netdev before rtnl_unlock in slcan_open
NFC: fdp: Fix a signedness bug in fdp_nci_send_patch()
net: stmmac: dwmac-rk: fix error path in rk_gmac_probe
net_sched: keep alloc_hash updated after hash allocation
net_sched: cls_route: remove the right filter from hashtable
net: qmi_wwan: add support for ASKEY WWHC050
net/packet: tpacket_rcv: avoid a producer race condition
net: mvneta: Fix the case where the last poll did not process all rx
net: dsa: Fix duplicate frames flooded by learning
macsec: restrict to ethernet devices
hsr: fix general protection fault in hsr_addr_is_self()
Revert "drm/dp_mst: Skip validating ports during destruction, just ref"
staging: greybus: loopback_test: fix potential path truncations
staging: greybus: loopback_test: fix potential path truncation
drm/bridge: dw-hdmi: fix AVI frame colorimetry
arm64: smp: fix crash_smp_send_stop() behaviour
arm64: smp: fix smp_send_stop() behaviour
ALSA: hda/realtek: Fix pop noise on ALC225
Revert "ipv6: Fix handling of LLA with VRF and sockets bound to VRF"
Revert "vrf: mark skb for multicast or link-local as enslaved to VRF"
futex: Unbreak futex hashing
futex: Fix inode life-time issue
kbuild: Disable -Wpointer-to-enum-cast
iio: adc: at91-sama5d2_adc: fix differential channels in triggered mode
iio: adc: at91-sama5d2_adc: fix channel configuration for differential channels
USB: cdc-acm: fix rounding error in TIOCSSERIAL
USB: cdc-acm: fix close_delay and closing_wait units in TIOCSSERIAL
x86/mm: split vmalloc_sync_all()
page-flags: fix a crash at SetPageError(THP_SWAP)
mm, slub: prevent kmalloc_node crashes and memory leaks
mm: slub: be more careful about the double cmpxchg of freelist
memcg: fix NULL pointer dereference in __mem_cgroup_usage_unregister_event
xhci: Do not open code __print_symbolic() in xhci trace events
rtc: max8907: add missing select REGMAP_IRQ
intel_th: pci: Add Elkhart Lake CPU support
intel_th: Fix user-visible error codes
staging/speakup: fix get_word non-space look-ahead
staging: rtl8188eu: Add device id for MERCUSYS MW150US v2
mmc: sdhci-of-at91: fix cd-gpios for SAMA5D2
iio: magnetometer: ak8974: Fix negative raw values in sysfs
iio: trigger: stm32-timer: disable master mode when stopping
ALSA: pcm: oss: Remove WARNING from snd_pcm_plug_alloc() checks
ALSA: pcm: oss: Avoid plugin buffer overflow
ALSA: seq: oss: Fix running status after receiving sysex
ALSA: seq: virmidi: Fix running status after receiving sysex
ALSA: line6: Fix endless MIDI read loop
usb: xhci: apply XHCI_SUSPEND_DELAY to AMD XHCI controller 1022:145c
USB: serial: pl2303: add device-id for HP LD381
usb: host: xhci-plat: add a shutdown
USB: serial: option: add ME910G1 ECM composition 0x110b
usb: quirks: add NO_LPM quirk for RTL8153 based ethernet adapters
USB: Disable LPM on WD19's Realtek Hub
parse-maintainers: Mark as executable
block, bfq: fix overwrite of bfq_group pointer in bfq_find_set_group()
xenbus: req->err should be updated before req->state
xenbus: req->body should be updated before req->state
dm bio record: save/restore bi_end_io and bi_integrity
altera-stapl: altera_get_note: prevent write beyond end of 'key'
drivers/perf: arm_pmu_acpi: Fix incorrect checking of gicc pointer
drm/exynos: dsi: fix workaround for the legacy clock name
drm/exynos: dsi: propagate error value and silence meaningless warning
spi/zynqmp: remove entry that causes a cs glitch
spi: pxa2xx: Add CS control clock quirk
ARM: dts: dra7: Add "dma-ranges" property to PCIe RC DT nodes
powerpc: Include .BTF section
spi: qup: call spi_qup_pm_resume_runtime before suspending
UPSTREAM: ubifs: wire up FS_IOC_GET_ENCRYPTION_NONCE
UPSTREAM: f2fs: wire up FS_IOC_GET_ENCRYPTION_NONCE
UPSTREAM: ext4: wire up FS_IOC_GET_ENCRYPTION_NONCE
UPSTREAM: fscrypt: add FS_IOC_GET_ENCRYPTION_NONCE ioctl
UPSTREAM: usb: raw_gadget: fix compilation warnings in uapi headers
BACKPORT: usb: gadget: add raw-gadget interface
UPSTREAM: usb: gadget: move choice ... endchoice to legacy/Kconfig
ANDROID: clang: update to 10.0.5
FROMLIST: arm64: define __alloc_zeroed_user_highpage
ANDROID: Incremental fs: Add INCFS_IOC_GET_FILLED_BLOCKS
ANDROID: Incremental fs: Fix two typos
UPSTREAM: ipv6: ndisc: add support for 'PREF64' dns64 prefix identifier
UPSTREAM: ipv6: ndisc: add support for 'PREF64' dns64 prefix identifier
ANDROID: dm-bow: Fix free_show value is incorrect
UPSTREAM: coresight: Potential uninitialized variable in probe()
ANDROID: kbuild: do not merge .section..* into .section in modules
ANDROID: scsi: ufs: add ->map_sg_crypto() variant op
UPSTREAM: bpf: Explicitly memset some bpf info structures declared on the stack
UPSTREAM: bpf: Explicitly memset the bpf_attr structure
Linux 4.14.174
ipv4: ensure rcu_read_lock() in cipso_v4_error()
mm: slub: add missing TID bump in kmem_cache_alloc_bulk()
ARM: 8958/1: rename missed uaccess .fixup section
ARM: 8957/1: VDSO: Match ARMv8 timer in cntvct_functional()
jbd2: fix data races at struct journal_head
net: rmnet: fix NULL pointer dereference in rmnet_newlink()
hinic: fix a bug of setting hw_ioctxt
slip: not call free_netdev before rtnl_unlock in slip_open
signal: avoid double atomic counter increments for user accounting
mac80211: rx: avoid RCU list traversal under mutex
net: ks8851-ml: Fix IRQ handling and locking
net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch
scsi: libfc: free response frame from GPN_ID
cfg80211: check reg_rule for NULL in handle_channel_custom()
HID: i2c-hid: add Trekstor Surfbook E11B to descriptor override
HID: apple: Add support for recent firmware on Magic Keyboards
ACPI: watchdog: Allow disabling WDAT at boot
perf/amd/uncore: Replace manual sampling check with CAP_NO_INTERRUPT flag
batman-adv: Don't schedule OGM for disabled interface
batman-adv: Avoid free/alloc race when handling OGM buffer
batman-adv: Avoid free/alloc race when handling OGM2 buffer
batman-adv: Fix duplicated OGMs on NETDEV_UP
batman-adv: Fix debugfs path for renamed softif
batman-adv: Fix debugfs path for renamed hardif
batman-adv: prevent TT request storms by not sending inconsistent TT TLVLs
batman-adv: Fix TT sync flags for intermediate TT responses
batman-adv: Avoid race in TT TVLV allocator helper
batman-adv: update data pointers after skb_cow()
batman-adv: Fix internal interface indices types
batman-adv: Fix lock for ogm cnt access in batadv_iv_ogm_calc_tq
batman-adv: Fix check of retrieved orig_gw in batadv_v_gw_is_eligible
batman-adv: Always initialize fragment header priority
batman-adv: Avoid spurious warnings from bat_v neigh_cmp implementation
efi: Add a sanity check to efivar_store_raw()
net/smc: check for valid ib_client_data
ipv6: restrict IPV6_ADDRFORM operation
i2c: acpi: put device when verifying client fails
iommu/vt-d: Ignore devices with out-of-spec domain number
iommu/vt-d: Fix the wrong printing in RHSA parsing
netfilter: nft_payload: add missing attribute validation for payload csum flags
netfilter: cthelper: add missing attribute validation for cthelper
nl80211: add missing attribute validation for channel switch
nl80211: add missing attribute validation for beacon report scanning
nl80211: add missing attribute validation for critical protocol indication
pinctrl: core: Remove extra kref_get which blocks hogs being freed
pinctrl: meson-gxl: fix GPIOX sdio pins
iommu/vt-d: Fix a bug in intel_iommu_iova_to_phys() for huge page
iommu/vt-d: dmar: replace WARN_TAINT with pr_warn + add_taint
iommu/dma: Fix MSI reservation allocation
x86/mce: Fix logic and comments around MSR_PPIN_CTL
efi: Fix a race and a buffer overflow while reading efivars via sysfs
ARC: define __ALIGN_STR and __ALIGN symbols for ARC
KVM: x86: clear stale x86_emulate_ctxt->intercept value
gfs2_atomic_open(): fix O_EXCL|O_CREAT handling on cold dcache
cifs_atomic_open(): fix double-put on late allocation failure
ktest: Add timeout for ssh sync testing
drm/amd/display: remove duplicated assignment to grph_obj_type
workqueue: don't use wq_select_unbound_cpu() for bound works
iommu/vt-d: quirk_ioat_snb_local_iommu: replace WARN_TAINT with pr_warn + add_taint
virtio-blk: fix hw_queue stopped on arbitrary error
iwlwifi: mvm: Do not require PHY_SKU NVM section for 3168 devices
cgroup: Iterate tasks that did not finish do_exit()
cgroup: cgroup_procs_next should increase position index
ipvlan: don't deref eth hdr before checking it's set
ipvlan: egress mcast packets are not exceptional
ipvlan: do not add hardware address of master to its unicast filter list
inet_diag: return classid for all socket types
macvlan: add cond_resched() during multicast processing
net: fec: validate the new settings in fec_enet_set_coalesce()
slip: make slhc_compress() more robust against malicious packets
bonding/alb: make sure arp header is pulled before accessing it
net: phy: fix MDIO bus PM PHY resuming
nfc: add missing attribute validation for vendor subcommand
nfc: add missing attribute validation for SE API
team: add missing attribute validation for array index
team: add missing attribute validation for port ifindex
net: fq: add missing attribute validation for orphan mask
macsec: add missing attribute validation for port
can: add missing attribute validation for termination
nl802154: add missing attribute validation for dev_type
nl802154: add missing attribute validation
fib: add missing attribute validation for tun_id
net: memcg: fix lockdep splat in inet_csk_accept()
net: memcg: late association of sock to memcg
cgroup: memcg: net: do not associate sock with unrelated cgroup
bnxt_en: reinitialize IRQs when MTU is modified
sfc: detach from cb_page in efx_copy_channel()
r8152: check disconnect status after long sleep
net/packet: tpacket_rcv: do not increment ring index on drop
net: nfc: fix bounds checking bugs on "pipe"
net: macsec: update SCI upon MAC address change.
netlink: Use netlink header as base to calculate bad attribute offset
ipvlan: do not use cond_resched_rcu() in ipvlan_process_multicast()
ipvlan: add cond_resched_rcu() while processing muticast backlog
ipv6/addrconf: call ipv6_mc_up() for non-Ethernet interface
gre: fix uninit-value in __iptunnel_pull_header
cgroup, netclassid: periodically release file_lock on classid updating
net: phy: Avoid multiple suspends
phy: Revert toggling reset changes.
ANDROID: Incremental fs: Add INCFS_IOC_PERMIT_FILL
ANDROID: Incremental fs: Remove signature checks from kernel
ANDROID: Incremental fs: Pad hash blocks
ANDROID: Incremental fs: Make fill block an ioctl
ANDROID: Incremental fs: Remove all access_ok checks
UPSTREAM: cgroup: Iterate tasks that did not finish do_exit()
UPSTREAM: arm64: memory: Add missing brackets to untagged_addr() macro
UPSTREAM: mm: Avoid creating virtual address aliases in brk()/mmap()/mremap()
ANDROID: Add TPM support and the vTPM proxy to Cuttlefish.
ANDROID: serdev: restrict claim of platform devices
UPSTREAM: fscrypt: don't evict dirty inodes after removing key
Linux 4.14.173
ASoC: topology: Fix memleak in soc_tplg_manifest_load()
xhci: handle port status events for removed USB3 hcd
dm integrity: fix a deadlock due to offloading to an incorrect workqueue
powerpc: fix hardware PMU exception bug on PowerVM compatibility mode systems
dmaengine: coh901318: Fix a double lock bug in dma_tc_handle()
hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT()
ARM: imx: build v7_cpu_resume() unconditionally
IB/hfi1, qib: Ensure RCU is locked when accessing list
RMDA/cm: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen()
RDMA/iwcm: Fix iwcm work deallocation
ASoC: dapm: Correct DAPM handling of active widgets during shutdown
ASoC: pcm512x: Fix unbalanced regulator enable call in probe error path
ASoC: pcm: Fix possible buffer overflow in dpcm state sysfs output
ASoC: intel: skl: Fix possible buffer overflow in debug outputs
ASoC: intel: skl: Fix pin debug prints
ASoC: topology: Fix memleak in soc_tplg_link_elems_load()
ARM: dts: ls1021a: Restore MDIO compatible to gianfar
dm cache: fix a crash due to incorrect work item cancelling
dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list
dmaengine: tegra-apb: Fix use-after-free
x86/pkeys: Manually set X86_FEATURE_OSPKE to preserve existing changes
vt: selection, push sel_lock up
vt: selection, push console lock down
vt: selection, close sel_buffer race
serial: 8250_exar: add support for ACCES cards
tty:serial:mvebu-uart:fix a wrong return
arm: dts: dra76x: Fix mmc3 max-frequency
fat: fix uninit-memory access for partial initialized inode
mm, numa: fix bad pmd by atomically check for pmd_trans_huge when marking page tables prot_numa
vgacon: Fix a UAF in vgacon_invert_region
usb: core: port: do error out if usb_autopm_get_interface() fails
usb: core: hub: do error out if usb_autopm_get_interface() fails
usb: core: hub: fix unhandled return by employing a void function
usb: quirks: add NO_LPM quirk for Logitech Screen Share
usb: storage: Add quirk for Samsung Fit flash
cifs: don't leak -EAGAIN for stat() during reconnect
net: thunderx: workaround BGX TX Underflow issue
x86/xen: Distribute switch variables for initialization
nvme: Fix uninitialized-variable warning
x86/boot/compressed: Don't declare __force_order in kaslr_64.c
s390/cio: cio_ignore_proc_seq_next should increase position index
watchdog: da9062: do not ping the hw during stop()
net: ks8851-ml: Fix 16-bit IO operation
net: ks8851-ml: Fix 16-bit data access
net: ks8851-ml: Remove 8-bit bus accessors
drm/msm/dsi: save pll state before dsi host is powered off
drm: msm: Fix return type of dsi_mgr_connector_mode_valid for kCFI
drm/msm/mdp5: rate limit pp done timeout warnings
usb: gadget: serial: fix Tx stall after buffer overflow
usb: gadget: ffs: ffs_aio_cancel(): Save/restore IRQ flags
usb: gadget: composite: Support more than 500mA MaxPower
selftests: fix too long argument
serial: ar933x_uart: set UART_CS_{RX,TX}_READY_ORIDE
kprobes: Fix optimize_kprobe()/unoptimize_kprobe() cancellation logic
RDMA/core: Fix use of logical OR in get_new_pps
RDMA/core: Fix pkey and port assignment in get_new_pps
net: dsa: bcm_sf2: Forcibly configure IMP port for 1Gb/sec
EDAC/amd64: Set grain per DIMM
x86/mce: Handle varying MCA bank counts
vhost: Check docket sk_family instead of call getname
audit: always check the netlink payload length in audit_receive_msg()
Revert "char/random: silence a lockdep splat with printk()"
mm, thp: fix defrag setting if newline is not used
mm/huge_memory.c: use head to check huge zero page
perf hists browser: Restore ESC as "Zoom out" of DSO/thread/etc
kprobes: Set unoptimized flag after unoptimizing code
drivers: net: xgene: Fix the order of the arguments of 'alloc_etherdev_mqs()'
tuntap: correctly set SOCKWQ_ASYNC_NOSPACE
KVM: Check for a bad hva before dropping into the ghc slow path
KVM: SVM: Override default MMIO mask if memory encryption is enabled
mwifiex: drop most magic numbers from mwifiex_process_tdls_action_frame()
namei: only return -ECHILD from follow_dotdot_rcu()
net: ena: make ena rxfh support ETH_RSS_HASH_NO_CHANGE
net: atlantic: fix potential error handling
net: netlink: cap max groups which will be considered in netlink_bind()
include/linux/bitops.h: introduce BITS_PER_TYPE
ecryptfs: Fix up bad backport of fe2e082f5da5b4a0a92ae32978f81507ef37ec66
usb: charger: assign specific number for enum value
drm/i915/gvt: Separate display reset from ALL_ENGINES reset
i2c: jz4780: silence log flood on txabrt
i2c: altera: Fix potential integer overflow
MIPS: VPE: Fix a double free and a memory leak in 'release_vpe()'
HID: hiddev: Fix race in in hiddev_disconnect()
Revert "PM / devfreq: Modify the device name as devfreq(X) for sysfs"
tracing: Disable trace_printk() on post poned tests
HID: core: increase HID report buffer size to 8KiB
HID: core: fix off-by-one memset in hid_report_raw_event()
HID: ite: Only bind to keyboard USB interface on Acer SW5-012 keyboard dock
KVM: VMX: check descriptor table exits on instruction emulation
ACPI: watchdog: Fix gas->access_width usage
ACPICA: Introduce ACPI_ACCESS_BYTE_WIDTH() macro
audit: fix error handling in audit_data_to_entry()
ext4: potential crash on allocation error in ext4_alloc_flex_bg_array()
net: sched: correct flower port blocking
qede: Fix race between rdma destroy workqueue and link change event
ipv6: Fix route replacement with dev-only route
ipv6: Fix nlmsg_flags when splitting a multipath route
sctp: move the format error check out of __sctp_sf_do_9_1_abort
nfc: pn544: Fix occasional HW initialization failure
net: phy: restore mdio regs in the iproc mdio driver
net: fib_rules: Correctly set table field when table number exceeds 8 bits
sysrq: Remove duplicated sysrq message
sysrq: Restore original console_loglevel when sysrq disabled
cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE
cifs: Fix mode output in debugging statements
net: ena: ena-com.c: prevent NULL pointer dereference
net: ena: ethtool: use correct value for crc32 hash
net: ena: fix incorrectly saving queue numbers when setting RSS indirection table
net: ena: rss: store hash function as values and not bits
net: ena: rss: fix failure to get indirection table
net: ena: fix incorrect default RSS key
net: ena: add missing ethtool TX timestamping indication
net: ena: fix uses of round_jiffies()
net: ena: fix potential crash when rxfh key is NULL
qmi_wwan: unconditionally reject 2 ep interfaces
qmi_wwan: re-add DW5821e pre-production variant
cfg80211: check wiphy driver existence for drvinfo report
mac80211: consider more elements in parsing CRC
dax: pass NOWAIT flag to iomap_apply
drm/msm: Set dma maximum segment size for mdss
ipmi:ssif: Handle a possible NULL pointer reference
ext4: fix potential race between s_group_info online resizing and access
ext4: fix potential race between s_flex_groups online resizing and access
ext4: fix potential race between online resizing and write operations
netfilter: nf_conntrack: resolve clash for matching conntracks
iwlwifi: pcie: fix rb_allocator workqueue allocation
FROMLIST: f2fs: fix wrong check on F2FS_IOC_FSSETXATTR
UPSTREAM: binder: prevent UAF for binderfs devices II
UPSTREAM: binder: prevent UAF for binderfs devices
FROMLIST: lib: test_stackinit.c: XFAIL switch variable init tests
ANDROID: cuttlefish: disable KPROBES
ANDROID: scsi: ufs: allow ufs variants to override sg entry size
FROMLIST: ufs: fix a bug on printing PRDT
BACKPORT: loop: Add LOOP_SET_BLOCK_SIZE in compat ioctl
ANDROID: fix build issue in security/selinux/avc.c
ANDROID: cuttlefish_defconfig: Disable CONFIG_RT_GROUP_SCHED
ANDROID: Enable HID_NINTENDO as y
FROMLIST: HID: nintendo: add nintendo switch controller driver
Linux 4.14.172
s390/mm: Explicitly compare PAGE_DEFAULT_KEY against zero in storage_key_init_range
xen: Enable interrupts when calling _cond_resched()
ata: ahci: Add shutdown to freeze hardware resources of ahci
netfilter: xt_hashlimit: limit the max size of hashtable
ALSA: seq: Fix concurrent access to queue current tick/time
ALSA: seq: Avoid concurrent access to queue flags
ALSA: rawmidi: Avoid bit fields for state flags
genirq/proc: Reject invalid affinity masks (again)
iommu/vt-d: Fix compile warning from intel-svm.h
ecryptfs: replace BUG_ON with error handling code
staging: greybus: use after free in gb_audio_manager_remove_all()
staging: rtl8723bs: fix copy of overlapping memory
usb: gadget: composite: Fix bMaxPower for SuperSpeedPlus
scsi: Revert "target: iscsi: Wait for all commands to finish before freeing a session"
scsi: Revert "RDMA/isert: Fix a recently introduced regression related to logout"
Btrfs: fix btrfs_wait_ordered_range() so that it waits for all ordered extents
btrfs: do not check delayed items are empty for single transaction cleanup
btrfs: fix bytes_may_use underflow in prealloc error condtition
KVM: apic: avoid calculating pending eoi from an uninitialized val
KVM: nVMX: handle nested posted interrupts when apicv is disabled for L1
KVM: nVMX: Check IO instruction VM-exit conditions
KVM: nVMX: Refactor IO bitmap checks into helper function
ext4: fix race between writepages and enabling EXT4_EXTENTS_FL
ext4: rename s_journal_flag_rwsem to s_writepages_rwsem
ext4: fix mount failure with quota configured as module
ext4: add cond_resched() to __ext4_find_entry()
ext4: fix a data race in EXT4_I(inode)->i_disksize
KVM: nVMX: Don't emulate instructions in guest mode
lib/stackdepot.c: fix global out-of-bounds in stack_slabs
serial: 8250: Check UPF_IRQ_SHARED in advance
vt: vt_ioctl: fix race in VT_RESIZEX
VT_RESIZEX: get rid of field-by-field copyin
xhci: apply XHCI_PME_STUCK_QUIRK to Intel Comet Lake platforms
KVM: x86: don't notify userspace IOAPIC on edge-triggered interrupt EOI
drm/amdgpu/soc15: fix xclk for raven
mm/vmscan.c: don't round up scan size for online memory cgroup
Revert "ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem()"
MAINTAINERS: Update drm/i915 bug filing URL
serdev: ttyport: restore client ops on deregistration
tty: serial: imx: setup the correct sg entry for tx dma
tty/serial: atmel: manage shutdown in case of RS485 or ISO7816 mode
x86/mce/amd: Fix kobject lifetime
x86/mce/amd: Publish the bank pointer only after setup has succeeded
staging: rtl8723bs: Fix potential overuse of kernel memory
staging: rtl8723bs: Fix potential security hole
staging: rtl8188eu: Fix potential overuse of kernel memory
staging: rtl8188eu: Fix potential security hole
USB: hub: Fix the broken detection of USB3 device in SMSC hub
USB: hub: Don't record a connect-change event during reset-resume
USB: Fix novation SourceControl XL after suspend
usb: uas: fix a plug & unplug racing
usb: host: xhci: update event ring dequeue pointer on purpose
xhci: fix runtime pm enabling for quirky Intel hosts
xhci: Force Maximum Packet size for Full-speed bulk devices to valid range.
staging: vt6656: fix sign of rx_dbm to bb_pre_ed_rssi.
staging: android: ashmem: Disallow ashmem memory from being remapped
vt: selection, handle pending signals in paste_selection
floppy: check FDC index for errors before assigning it
USB: misc: iowarrior: add support for the 100 device
USB: misc: iowarrior: add support for the 28 and 28L devices
USB: misc: iowarrior: add support for 2 OEMed devices
thunderbolt: Prevent crash if non-active NVMem file is read
net/smc: fix leak of kernel memory to user space
net/sched: flower: add missing validation of TCA_FLOWER_FLAGS
net/sched: matchall: add missing validation of TCA_MATCHALL_FLAGS
net: dsa: tag_qca: Make sure there is headroom for tag
enic: prevent waking up stopped tx queues over watchdog reset
selinux: ensure we cleanup the internal AVC counters on error in avc_update()
mlxsw: spectrum_dpipe: Add missing error path
virtio_balloon: prevent pfn array overflow
help_next should increase position index
brd: check and limit max_part par
microblaze: Prevent the overflow of the start
iwlwifi: mvm: Fix thermal zone registration
irqchip/gic-v3-its: Reference to its_invall_cmd descriptor when building INVALL
bcache: explicity type cast in bset_bkey_last()
reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()
lib/scatterlist.c: adjust indentation in __sg_alloc_table
ocfs2: fix a NULL pointer dereference when call ocfs2_update_inode_fsync_trans()
radeon: insert 10ms sleep in dce5_crtc_load_lut
trigger_next should increase position index
ftrace: fpid_next() should increase position index
drm/nouveau/disp/nv50-: prevent oops when no channel method map provided
irqchip/gic-v3: Only provision redistributors that are enabled in ACPI
ceph: check availability of mds cluster on mount after wait timeout
cifs: fix NULL dereference in match_prepath
iwlegacy: ensure loop counter addr does not wrap and cause an infinite loop
hostap: Adjust indentation in prism2_hostapd_add_sta
ARM: 8951/1: Fix Kexec compilation issue.
jbd2: make sure ESHUTDOWN to be recorded in the journal superblock
jbd2: switch to use jbd2_journal_abort() when failed to submit the commit record
powerpc/sriov: Remove VF eeh_dev state when disabling SR-IOV
ALSA: hda - Add docking station support for Lenovo Thinkpad T420s
driver core: platform: fix u32 greater or equal to zero comparison
s390/ftrace: generate traced function stack frame
x86/decoder: Add TEST opcode to Group3-2
ALSA: hda/hdmi - add retry logic to parse_intel_hdmi()
irqchip/mbigen: Set driver .suppress_bind_attrs to avoid remove problems
remoteproc: Initialize rproc_class before use
btrfs: device stats, log when stats are zeroed
btrfs: safely advance counter when looking up bio csums
btrfs: fix possible NULL-pointer dereference in integrity checks
pwm: Remove set but not set variable 'pwm'
ide: serverworks: potential overflow in svwks_set_pio_mode()
cmd64x: potential buffer overflow in cmd64x_program_timings()
pwm: omap-dmtimer: Remove PWM chip in .remove before making it unfunctional
x86/mm: Fix NX bit clearing issue in kernel_map_pages_in_pgd
f2fs: fix memleak of kobject
watchdog/softlockup: Enforce that timestamp is valid on boot
arm64: fix alternatives with LLVM's integrated assembler
scsi: iscsi: Don't destroy session if there are outstanding connections
f2fs: free sysfs kobject
iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an STE
usb: musb: omap2430: Get rid of musb .set_vbus for omap2430 glue
drm/vmwgfx: prevent memory leak in vmw_cmdbuf_res_add
drm/nouveau: Fix copy-paste error in nouveau_fence_wait_uevent_handler
drm/nouveau/gr/gk20a,gm200-: add terminators to method lists read from fw
drm/nouveau/secboot/gm20b: initialize pointer in gm20b_secboot_new()
vme: bridges: reduce stack usage
driver core: Print device when resources present in really_probe()
driver core: platform: Prevent resouce overflow from causing infinite loops
tty: synclink_gt: Adjust indentation in several functions
tty: synclinkmp: Adjust indentation in several functions
ASoC: atmel: fix build error with CONFIG_SND_ATMEL_SOC_DMA=m
wan: ixp4xx_hss: fix compile-testing on 64-bit
Input: edt-ft5x06 - work around first register access error
rcu: Use WRITE_ONCE() for assignments to ->pprev for hlist_nulls
efi/x86: Don't panic or BUG() on non-critical error conditions
soc/tegra: fuse: Correct straps' address for older Tegra124 device trees
IB/hfi1: Add software counter for ctxt0 seq drop
udf: Fix free space reporting for metadata and virtual partitions
usbip: Fix unsafe unaligned pointer usage
drm: remove the newline for CRC source name.
tools lib api fs: Fix gcc9 stringop-truncation compilation error
ALSA: sh: Fix compile warning wrt const
ALSA: sh: Fix unused variable warnings
clk: sunxi-ng: add mux and pll notifiers for A64 CPU clock
RDMA/rxe: Fix error type of mmap_offset
pinctrl: sh-pfc: sh7269: Fix CAN function GPIOs
PM / devfreq: rk3399_dmc: Add COMPILE_TEST and HAVE_ARM_SMCCC dependency
x86/vdso: Provide missing include file
dmaengine: Store module owner in dma_device struct
ARM: dts: r8a7779: Add device node for ARM global timer
drm/mediatek: handle events when enabling/disabling crtc
scsi: aic7xxx: Adjust indentation in ahc_find_syncrate
scsi: ufs: Complete pending requests in host reset and restore path
ACPICA: Disassembler: create buffer fields in ACPI_PARSE_LOAD_PASS1
orinoco: avoid assertion in case of NULL pointer
rtlwifi: rtl_pci: Fix -Wcast-function-type
iwlegacy: Fix -Wcast-function-type
ipw2x00: Fix -Wcast-function-type
b43legacy: Fix -Wcast-function-type
ALSA: usx2y: Adjust indentation in snd_usX2Y_hwdep_dsp_status
fore200e: Fix incorrect checks of NULL pointer dereference
reiserfs: Fix spurious unlock in reiserfs_fill_super() error handling
media: v4l2-device.h: Explicitly compare grp{id,mask} to zero in v4l2_device macros
ARM: dts: imx6: rdu2: Disable WP for USDHC2 and USDHC3
arm64: dts: qcom: msm8996: Disable USB2 PHY suspend by core
NFC: port100: Convert cpu_to_le16(le16_to_cpu(E1) + E2) to use le16_add_cpu().
PCI/IOV: Fix memory leak in pci_iov_add_virtfn()
net/wan/fsl_ucc_hdlc: reject muram offsets above 64K
regulator: rk808: Lower log level on optional GPIOs being not available
drm/amdgpu: remove 4 set but not used variable in amdgpu_atombios_get_connector_info_from_object_table
clk: qcom: rcg2: Don't crash if our parent can't be found; return an error
kconfig: fix broken dependency in randconfig-generated .config
KVM: s390: ENOTSUPP -> EOPNOTSUPP fixups
nbd: add a flush_workqueue in nbd_start_device
ext4, jbd2: ensure panic when aborting with zero errno
tracing: Fix very unlikely race of registering two stat tracers
tracing: Fix tracing_stat return values in error handling paths
x86/sysfb: Fix check for bad VRAM size
jbd2: clear JBD2_ABORT flag before journal_reset to update log tail info when load journal
kselftest: Minimise dependency of get_size on C library interfaces
clocksource/drivers/bcm2835_timer: Fix memory leak of timer
usb: dwc2: Fix IN FIFO allocation
usb: gadget: udc: fix possible sleep-in-atomic-context bugs in gr_probe()
uio: fix a sleep-in-atomic-context bug in uio_dmem_genirq_irqcontrol()
sparc: Add .exit.data section.
MIPS: Loongson: Fix potential NULL dereference in loongson3_platform_init()
efi/x86: Map the entire EFI vendor string before copying it
pinctrl: baytrail: Do not clear IRQ flags on direct-irq enabled pins
media: sti: bdisp: fix a possible sleep-in-atomic-context bug in bdisp_device_run()
char/random: silence a lockdep splat with printk()
gpio: gpio-grgpio: fix possible sleep-in-atomic-context bugs in grgpio_irq_map/unmap()
powerpc/powernv/iov: Ensure the pdn for VFs always contains a valid PE number
media: i2c: mt9v032: fix enum mbus codes and frame sizes
pxa168fb: Fix the function used to release some memory in an error handling path
pinctrl: sh-pfc: sh7264: Fix CAN function GPIOs
gianfar: Fix TX timestamping with a stacked DSA driver
ALSA: ctl: allow TLV read operation for callback type of element in locked case
ext4: fix ext4_dax_read/write inode locking sequence for IOCB_NOWAIT
leds: pca963x: Fix open-drain initialization
brcmfmac: Fix use after free in brcmf_sdio_readframes()
cpu/hotplug, stop_machine: Fix stop_machine vs hotplug order
drm/gma500: Fixup fbdev stolen size usage evaluation
KVM: nVMX: Use correct root level for nested EPT shadow page tables
Revert "KVM: VMX: Add non-canonical check on writes to RTIT address MSRs"
Revert "KVM: nVMX: Use correct root level for nested EPT shadow page tables"
scsi: qla2xxx: fix a potential NULL pointer dereference
jbd2: do not clear the BH_Mapped flag when forgetting a metadata buffer
jbd2: move the clearing of b_modified flag to the journal_unmap_buffer()
hwmon: (pmbus/ltc2978) Fix PMBus polling of MFR_COMMON definitions.
perf/x86/intel: Fix inaccurate period in context switch for auto-reload
s390/time: Fix clk type in get_tod_clock
RDMA/core: Fix protection fault in get_pkey_idx_qp_list
IB/hfi1: Close window for pq and request coliding
serial: imx: Only handle irqs that are actually enabled
serial: imx: ensure that RX irqs are off if RX is off
padata: Remove broken queue flushing
perf/x86/amd: Add missing L2 misses event spec to AMD Family 17h's event map
KVM: nVMX: Use correct root level for nested EPT shadow page tables
arm64: ssbs: Fix context-switch when SSBS is present on all CPUs
btrfs: log message when rw remount is attempted with unclean tree-log
btrfs: print message when tree-log replay starts
Btrfs: fix race between using extent maps and merging them
ext4: improve explanation of a mount failure caused by a misconfigured kernel
ext4: fix checksum errors with indexed dirs
ext4: fix support for inode sizes > 1024 bytes
ext4: don't assume that mmp_nodename/bdevname have NUL
ARM: 8723/2: always assume the "unified" syntax for assembly code
arm64: nofpsimd: Handle TIF_FOREIGN_FPSTATE flag cleanly
arm64: ptrace: nofpsimd: Fail FP/SIMD regset operations
arm64: cpufeature: Set the FP/SIMD compat HWCAP bits properly
ALSA: usb-audio: Apply sample rate quirk for Audioengine D1
Input: synaptics - remove the LEN0049 dmi id from topbuttonpad list
Input: synaptics - enable SMBus on ThinkPad L470
Input: synaptics - switch T470s to RMI4 by default
ecryptfs: fix a memory leak bug in ecryptfs_init_messaging()
ecryptfs: fix a memory leak bug in parse_tag_1_packet()
ASoC: sun8i-codec: Fix setting DAI data format
ALSA: hda: Use scnprintf() for printing texts for sysfs/procfs
iommu/qcom: Fix bogus detach logic
KVM: x86: emulate RDPID
UPSTREAM: sched/psi: Fix OOB write when writing 0 bytes to PSI files
UPSTREAM: psi: Fix a division error in psi poll()
UPSTREAM: sched/psi: Fix sampling error and rare div0 crashes with cgroups and high uptime
UPSTREAM: sched/psi: Correct overly pessimistic size calculation
FROMLIST: f2fs: Handle casefolding with Encryption
FROMLIST: fscrypt: Have filesystems handle their d_ops
FROMLIST: ext4: Use generic casefolding support
FROMLIST: f2fs: Use generic casefolding support
FROMLIST: Add standard casefolding support
FROMLIST: unicode: Add utf8_casefold_hash
ANDROID: cuttlefish_defconfig: Add CONFIG_UNICODE
ANDROID: sdcardfs: fix -ENOENT lookup race issue
ANDROID: gki_defconfig: Enable CONFIG_RD_LZ4
ANDROID: dm: Add wrapped key support in dm-default-key
ANDROID: dm: add support for passing through derive_raw_secret
ANDROID: block: Prevent crypto fallback for wrapped keys
ANDROID: Disable wq fp check in CFI builds
ANDROID: increase limit on sched-tune boost groups
ANDROID: ufs, block: fix crypto power management and move into block layer
ANDROID: Incremental fs: Support xattrs
ANDROID: test_stackinit: work around LLVM PR44916
ANDROID: clang: update to 10.0.4
ANDROID: cuttlefish_defconfig: Enable CONFIG_NET_NS
ANDROID: virtio: virtio_input: pass _DIRECT only if the device advertises _DIRECT
ANDROID: net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head
ANDROID: Add INIT_STACK_ALL to the list of Clang-specific options
Linux 4.14.171
libertas: make lbs_ibss_join_existing() return error code on rates overflow
libertas: don't exit from lbs_ibss_join_existing() with RCU read lock held
mwifiex: Fix possible buffer overflows in mwifiex_cmd_append_vsie_tlv()
mwifiex: Fix possible buffer overflows in mwifiex_ret_wmm_get_status()
serial: uartps: Move the spinlock after the read of the tx empty
dm: fix potential for q->make_request_fn NULL pointer
scsi: megaraid_sas: Do not initiate OCR if controller is not in ready state
pinctrl: sh-pfc: r8a7778: Fix duplicate SDSELF_B and SD1_CLK_B
media: i2c: adv748x: Fix unsafe macros
crypto: atmel-sha - fix error handling when setting hmac key
crypto: artpec6 - return correct error code for failed setkey()
KVM: arm/arm64: Fix young bit from mmu notifier
arm64: cpufeature: Fix the type of no FP/SIMD capability
ARM: 8949/1: mm: mark free_memmap as __init
KVM: arm/arm64: vgic-its: Fix restoration of unmapped collections
powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce for DDW
powerpc/pseries/vio: Fix iommu_table use-after-free refcount warning
tools/power/acpi: fix compilation error
ARM: dts: at91: sama5d3: define clock rate range for tcb1
ARM: dts: at91: sama5d3: fix maximum peripheral clock rates
platform/x86: intel_mid_powerbtn: Take a copy of ddata
ARC: [plat-axs10x]: Add missing multicast filter number to GMAC node
rtc: cmos: Stop using shared IRQ
rtc: hym8563: Return -EINVAL if the time is known to be invalid
serial: uartps: Add a timeout to the tx empty wait
NFSv4: try lease recovery on NFS4ERR_EXPIRED
NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes()
nfs: NFS_SWAP should depend on SWAP
PCI: Don't disable bridge BARs when assigning bus resources
PCI/switchtec: Fix vep_vector_number ioread width
scsi: ufs: Fix ufshcd_probe_hba() reture value in case ufshcd_scsi_add_wlus() fails
RDMA/netlink: Do not always generate an ACK for some netlink operations
hv_sock: Remove the accept port restriction
ASoC: pcm: update FE/BE trigger order based on the command
rxrpc: Fix service call disconnection
perf/core: Fix mlock accounting in perf_mmap()
clocksource: Prevent double add_timer_on() for watchdog_timer
cifs: fail i/o on soft mounts if sessionsetup errors out
KVM: s390: do not clobber registers during guest reset/store status
KVM: Play nice with read-only memslots when querying host page size
KVM: Use vcpu-specific gva->hva translation when querying host page size
KVM: nVMX: vmread should not set rflags to specify success in case of #PF
KVM: VMX: Add non-canonical check on writes to RTIT address MSRs
KVM: x86/mmu: Apply max PA check for MMIO sptes to 32-bit KVM
KVM: x86: Fix potential put_fpu() w/o load_fpu() on MPX platform
btrfs: flush write bio if we loop in extent_write_cache_pages
KVM: x86: Protect pmu_intel.c from Spectre-v1/L1TF attacks
drm: atmel-hlcdc: enable clock before configuring timing engine
Btrfs: fix race between adding and putting tree mod seq elements and nodes
btrfs: remove trivial locking wrappers of tree mod log
btrfs: free block groups after free'ing fs trees
btrfs: use bool argument in free_root_pointers()
Btrfs: fix missing hole after hole punching and fsync when using NO_HOLES
Btrfs: fix assertion failure on fsync with NO_HOLES enabled
btrfs: Get rid of the confusing btrfs_file_extent_inline_len
ext4: fix deadlock allocating crypto bounce page from mempool
bonding/alb: properly access headers in bond_alb_xmit()
net: macb: Limit maximum GEM TX length in TSO
net: macb: Remove unnecessary alignment check for TSO
net: systemport: Avoid RBUF stuck in Wake-on-LAN mode
net_sched: fix a resource leak in tcindex_set_parms()
net: dsa: bcm_sf2: Only 7278 supports 2Gb/sec IMP port
mfd: rn5t618: Mark ADC control register volatile
mfd: da9062: Fix watchdog compatible string
ubi: Fix an error pointer dereference in error handling code
ubi: fastmap: Fix inverted logic in seen selfcheck
nfsd: fix jiffies/time_t mixup in LRU list
nfsd: fix delay timer on 32-bit architectures
IB/core: Fix ODP get user pages flow
IB/mlx5: Fix outstanding_pi index for GSI qps
net: tulip: Adjust indentation in {dmfe, uli526x}_init_module
net: smc911x: Adjust indentation in smc911x_phy_configure
ppp: Adjust indentation into ppp_async_input
NFC: pn544: Adjust indentation in pn544_hci_check_presence
powerpc/44x: Adjust indentation in ibm4xx_denali_fixup_memsize
ext2: Adjust indentation in ext2_fill_super
phy: qualcomm: Adjust indentation in read_poll_timeout
scsi: ufs: Recheck bkops level if bkops is disabled
scsi: qla4xxx: Adjust indentation in qla4xxx_mem_free
scsi: csiostor: Adjust indentation in csio_device_reset
scsi: qla2xxx: Fix the endianness of the qla82xx_get_fw_size() return type
clk: tegra: Mark fuse clock as critical
KVM: x86: Free wbinvd_dirty_mask if vCPU creation fails
KVM: PPC: Book3S PR: Free shared page if mmu initialization fails
KVM: PPC: Book3S HV: Uninit vCPU if vcore creation fails
KVM: x86: Protect MSR-based index computations in fixed_msr_to_seg_unit() from Spectre-v1/L1TF attacks
KVM: x86: Protect x86_decode_insn from Spectre-v1/L1TF attacks
KVM: x86: Protect MSR-based index computations from Spectre-v1/L1TF attacks in x86.c
KVM: x86: Protect ioapic_read_indirect() from Spectre-v1/L1TF attacks
KVM: x86: Protect MSR-based index computations in pmu.h from Spectre-v1/L1TF attacks
KVM: x86: Protect ioapic_write_indirect() from Spectre-v1/L1TF attacks
KVM: x86: Protect kvm_hv_msr_[get|set]_crash_data() from Spectre-v1/L1TF attacks
KVM: x86: Protect kvm_lapic_reg_write() from Spectre-v1/L1TF attacks
KVM: x86: Protect DR-based index computations from Spectre-v1/L1TF attacks
KVM: x86: Refactor prefix decoding to prevent Spectre-v1/L1TF attacks
KVM: x86: Refactor picdev_write() to prevent Spectre-v1/L1TF attacks
xen/balloon: Support xend-based toolstack take two
tools/kvm_stat: Fix kvm_exit filter name
sunrpc: expiry_time should be seconds not timeval
mwifiex: fix unbalanced locking in mwifiex_process_country_ie()
iwlwifi: don't throw error when trying to remove IGTK
ARM: tegra: Enable PLLP bypass during Tegra124 LP1
btrfs: set trans->drity in btrfs_commit_transaction
NFS: Directory page cache pages need to be locked when read
NFS: Fix memory leaks and corruption in readdir
scsi: qla2xxx: Fix unbound NVME response length
crypto: picoxcell - adjust the position of tasklet_init and fix missed tasklet_kill
crypto: api - Fix race condition in crypto_spawn_alg
crypto: atmel-aes - Fix counter overflow in CTR mode
crypto: pcrypt - Do not clear MAY_SLEEP flag in original request
crypto: ccp - set max RSA modulus size for v3 platform devices as well
samples/bpf: Don't try to remove user's homedir on clean
ftrace: Protect ftrace_graph_hash with ftrace_sync
ftrace: Add comment to why rcu_dereference_sched() is open coded
tracing: Annotate ftrace_graph_notrace_hash pointer with __rcu
tracing: Annotate ftrace_graph_hash pointer with __rcu
dm crypt: fix benbi IV constructor crash if used in authenticated mode
dm space map common: fix to ensure new block isn't already in use
dm zoned: support zone sizes smaller than 128MiB
of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc
PM: core: Fix handling of devices deleted during system-wide resume
f2fs: code cleanup for f2fs_statfs_project()
f2fs: fix miscounted block limit in f2fs_statfs_project()
f2fs: choose hardlimit when softlimit is larger than hardlimit in f2fs_statfs_project()
power: supply: ltc2941-battery-gauge: fix use-after-free
scsi: qla2xxx: Fix mtcp dump collection failure
crypto: api - Check spawn->alg under lock in crypto_drop_spawn
hv_balloon: Balloon up according to request page number
ubifs: don't trigger assertion on invalid no-key filename
mmc: sdhci-of-at91: fix memleak on clk_get failure
PCI: keystone: Fix link training retries initiation
ubifs: Fix deadlock in concurrent bulk-read and writepage
ubifs: Fix FS_IOC_SETFLAGS unexpectedly clearing encrypt flag
ubifs: Reject unsupported ioctl flags explicitly
alarmtimer: Unregister wakeup source when module get fails
ACPI: video: Do not export a non working backlight interface on MSI MS-7721 boards
mmc: spi: Toggle SPI polarity, do not hardcode it
powerpc/pseries: Advance pfn if section is not present in lmb_is_removable()
powerpc/xmon: don't access ASDR in VMs
s390/mm: fix dynamic pagetable upgrade for hugetlbfs
MIPS: fix indentation of the 'RELOCS' message
KVM: arm64: Only sign-extend MMIO up to register width
platform/x86: intel_scu_ipc: Fix interrupt support
irqdomain: Fix a memory leak in irq_domain_push_irq()
lib/test_kasan.c: fix memory leak in kmalloc_oob_krealloc_more()
media: v4l2-rect.h: fix v4l2_rect_map_inside() top/left adjustments
media/v4l2-core: set pages dirty upon releasing DMA buffers
ALSA: dummy: Fix PCM format loop in proc output
usb: gadget: f_ecm: Use atomic_t to track in-flight request
usb: gadget: f_ncm: Use atomic_t to track in-flight request
usb: gadget: legacy: set max_speed to super-speed
brcmfmac: Fix memory leak in brcmf_usbdev_qinit
tracing: Fix sched switch start/stop refcount racy updates
mfd: dln2: More sanity checking for endpoints
media: uvcvideo: Avoid cyclic entity chains due to malformed USB descriptors
rxrpc: Fix NULL pointer deref due to call->conn being cleared on disconnect
rxrpc: Fix insufficient receive notification generation
tcp: clear tp->segs_{in|out} in tcp_disconnect()
tcp: clear tp->data_segs{in|out} in tcp_disconnect()
tcp: clear tp->delivered in tcp_disconnect()
tcp: clear tp->total_retrans in tcp_disconnect()
bnxt_en: Fix TC queue mapping.
net_sched: fix an OOB access in cls_tcindex
net: hsr: fix possible NULL deref in hsr_handle_frame()
l2tp: Allow duplicate session creation with UDP
gtp: use __GFP_NOWARN to avoid memalloc warning
cls_rsvp: fix rsvp_policy
sparc32: fix struct ipc64_perm type definition
iwlwifi: mvm: fix NVM check for 3168 devices
x86/cpu: Update cached HLE state on write to TSX_CTRL_CPUID_CLEAR
media: iguanair: fix endpoint sanity check
kernel/module: Fix memleak in module_add_modinfo_attrs()
ANDROID: make memory initialization tests panic on failure
ANDROID: added memory initialization tests to cuttlefish config
UPSTREAM: lib/test_stackinit: Handle Clang auto-initialization pattern
UPSTREAM: lib: Introduce test_stackinit module
FROMLIST: rename missed uaccess .fixup section
ANDROID: cuttlefish_defconfig: enable heap and stack initialization.
ANDROID: f2fs: fix missing blk-crypto changes
ANDROID: update x86_64_cuttlefish_defconfig
BACKPORT: tracing: Remove unnecessary DEBUG_FS dependency
BACKPORT: debugfs: Fix !DEBUG_FS debugfs_create_automount
UPSTREAM: dynamic_debug: allow to work if debugfs is disabled
UPSTREAM: lib: dynamic_debug: no need to check return value of debugfs_create functions
ANDROID: f2fs: fix build error on PAGE_KERNEL_RO
ANDROID: Revert "ANDROID: gki_defconfig: removed CONFIG_PM_WAKELOCKS"
ANDROID: Set CONFIG_ANDROID_BINDERFS=y
ANDROID: dm: prevent default-key from being enabled without needed hooks
ANDROID: cf: disable virtio crypto
ANDROID: Incremental fs: Fix initialization, use of bitfields
ANDROID: cuttlefish_defconfig: enable dm-default-key
ANDROID: dm: add dm-default-key target for metadata encryption
ANDROID: dm: enable may_passthrough_inline_crypto on some targets
ANDROID: dm: add support for passing through inline crypto support
ANDROID: block: Introduce passthrough keyslot manager
ANDROID: ext4, f2fs: enable direct I/O with inline encryption
BACKPORT: FROMLIST: scsi: ufs: add program_key() variant op
ANDROID: block: export symbols needed for modules to use inline crypto
ANDROID: block: fix some inline crypto bugs
ANDROID: fscrypt: add support for hardware-wrapped keys
ANDROID: block: add KSM op to derive software secret from wrapped key
ANDROID: block: provide key size as input to inline crypto APIs
ANDROID: ufshcd-crypto: export cap find API
ANDROID: scsi: ufs-qcom: Enable BROKEN_CRYPTO quirk flag
ANDROID: scsi: ufs: Add quirk bit for controllers that don't play well with inline crypto
ANDROID: cuttlefish_defconfig: Enable blk-crypto fallback
BACKPORT: FROMLIST: Update Inline Encryption from v5 to v6 of patch series
ANDROID: scsi: ufs: UFS init should not require inline crypto
ANDROID: scsi: ufs: UFS crypto variant operations API
ANDROID: cuttlefish_defconfig: enable inline encryption
BACKPORT: FROMLIST: ext4: add inline encryption support
BACKPORT: FROMLIST: f2fs: add inline encryption support
BACKPORT: FROMLIST: fscrypt: add inline encryption support
BACKPORT: FROMLIST: scsi: ufs: Add inline encryption support to UFS
BACKPORT: FROMLIST: scsi: ufs: UFS crypto API
BACKPORT: FROMLIST: scsi: ufs: UFS driver v2.1 spec crypto additions
BACKPORT: FROMLIST: block: blk-crypto for Inline Encryption
ANDROID: block: Fix bio_crypt_should_process WARN_ON
BACKPORT: FROMLIST: block: Add encryption context to struct bio
BACKPORT: FROMLIST: block: Keyslot Manager for Inline Encryption
BACKPORT: atomic: Add irqsave variant of atomic_dec_and_lock()
ANDROID: Incremental fs: Fix crash on failed lookup
ANDROID: Incremental fs: Make files writeable
ANDROID: Incremental fs: Remove C++-style comments
Linux 4.14.170
perf report: Fix no libunwind compiled warning break s390 issue
btrfs: do not zero f_bavail if we have available space
net: Fix skb->csum update in inet_proto_csum_replace16().
l2t_seq_next should increase position index
seq_tab_next() should increase position index
net/sonic: Quiesce SONIC before re-initializing descriptor memory
net/sonic: Fix receive buffer handling
net/sonic: Use MMIO accessors
net/sonic: Add mutual exclusion for accessing shared state
net: fsl/fman: rename IF_MODE_XGMII to IF_MODE_10G
net/fsl: treat fsl,erratum-a011043
powerpc/fsl/dts: add fsl,erratum-a011043
qlcnic: Fix CPU soft lockup while collecting firmware dump
r8152: get default setting of WOL before initializing
airo: Add missing CAP_NET_ADMIN check in AIROOLDIOCTL/SIOCDEVPRIVATE
airo: Fix possible info leak in AIROOLDIOCTL/SIOCDEVPRIVATE
tee: optee: Fix compilation issue with nommu
ARM: 8955/1: virt: Relax arch timer version check during early boot
scsi: fnic: do not queue commands during fwreset
vti[6]: fix packet tx through bpf_redirect()
ARM: dts: am335x-boneblack-common: fix memory size
bnxt_en: Fix ipv6 RFS filter matching logic.
net: dsa: bcm_sf2: Configure IMP port for 2Gb/sec
wireless: wext: avoid gcc -O3 warning
mac80211: Fix TKIP replay protection immediately after key setup
cfg80211: Fix radar event during another phy CAC
wireless: fix enabling channel 12 for custom regulatory domain
qmi_wwan: Add support for Quectel RM500Q
ASoC: sti: fix possible sleep-in-atomic
igb: Fix SGMII SFP module discovery for 100FX/LX.
ixgbe: Fix calculation of queue with VFs and flow director on interface flap
ixgbevf: Remove limit of 10 entries for unicast filter list
clk: mmp2: Fix the order of timer mux parents
mac80211: mesh: restrict airtime metric to peered established plinks
soc: ti: wkup_m3_ipc: Fix race condition with rproc_boot
ARM: dts: beagle-x15-common: Model 5V0 regulator
ARM: dts: sun8i: a83t: Correct USB3503 GPIOs polarity
media: si470x-i2c: Move free() past last use of 'radio'
cgroup: Prevent double killing of css when enabling threaded cgroup
Bluetooth: Fix race condition in hci_release_sock()
ttyprintk: fix a potential deadlock in interrupt context issue
media: dvb-usb/dvb-usb-urb.c: initialize actlen to 0
media: gspca: zero usb_buf
media: af9005: uninitialized variable printked
media: digitv: don't continue if remote control state can't be read
reiserfs: Fix memory leak of journal device string
mm/mempolicy.c: fix out of bounds write in mpol_parse_str()
ext4: validate the debug_want_extra_isize mount option at parse time
arm64: kbuild: remove compressed images on 'make ARCH=arm64 (dist)clean'
tools lib: Fix builds when glibc contains strlcpy()
PM / devfreq: Add new name attribute for sysfs
perf c2c: Fix return type for histogram sorting comparision functions
crypto: pcrypt - Fix user-after-free on module unload
x86/resctrl: Fix a deadlock due to inaccurate reference
x86/resctrl: Fix use-after-free due to inaccurate refcount of rdtgroup
x86/resctrl: Fix use-after-free when deleting resource groups
vfs: fix do_last() regression
crypto: af_alg - Use bh_lock_sock in sk_destruct
rsi: fix use-after-free on probe errors
net_sched: ematch: reject invalid TCF_EM_SIMPLE
usb-storage: Disable UAS on JMicron SATA enclosure
PCI: Add DMA alias quirk for Intel VCA NTB
atm: eni: fix uninitialized variable warning
gpio: max77620: Add missing dependency on GPIOLIB_IRQCHIP
net: wan: sdla: Fix cast from pointer to integer of different size
drivers/net/b44: Change to non-atomic bit operations on pwol_mask
spi: spi-dw: Add lock protect dw_spi rx/tx to prevent concurrent calls
watchdog: rn5t618_wdt: fix module aliases
watchdog: max77620_wdt: fix potential build errors
phy: cpcap-usb: Prevent USB line glitches from waking up modem
HID: ite: Add USB id match for Acer SW5-012 keyboard dock
arc: eznps: fix allmodconfig kconfig warning
zd1211rw: fix storage endpoint lookup
rtl8xxxu: fix interface sanity check
brcmfmac: fix interface sanity check
ath9k: fix storage endpoint lookup
crypto: chelsio - fix writing tfm flags to wrong place
serial: 8250_bcm2835aux: Fix line mismatch on driver unbind
staging: vt6656: Fix false Tx excessive retries reporting.
staging: vt6656: use NULLFUCTION stack on mac80211
staging: vt6656: correct packet types for CTS protect, mode.
staging: wlan-ng: ensure error return is actually returned
staging: most: net: fix buffer overflow
usb: dwc3: turn off VBUS when leaving host mode
USB: serial: ir-usb: fix IrLAP framing
USB: serial: ir-usb: fix link-speed handling
USB: serial: ir-usb: add missing endpoint sanity check
rsi_91x_usb: fix interface sanity check
orinoco_usb: fix interface sanity check
ANDROID: cf_defconfig: Remove VIRTIO_CONSOLE
ANDROID: cf_defconfig: removed CONFIG_CAN
ANDROID: cf_defconfig: removed old VIRTIO configs
ANDROID: kallsyms: strip hashes from function names with ThinLTO
ANDROID: Incremental fs: Enable incremental-fs in cuttlefish_defconfig
ANDROID: fix bpf jit + cfi interactions
ANDROID: cuttlefish_defconfig: set CONFIG_IKHEADERS to y
UPSTREAM: UAPI: ndctl: Remove use of PAGE_SIZE
UPSTREAM: libnvdimm, namespace: make min namespace size 4K
ANDROID: Incremental fs: Fix sparse errors
Linux 4.14.169
net/x25: fix nonblocking connect
netfilter: ipset: use bitmap infrastructure completely
bitmap: Add bitmap_alloc(), bitmap_zalloc() and bitmap_free()
md: Avoid namespace collision with bitmap API
scsi: iscsi: Avoid potential deadlock in iscsi_if_rx func
media: v4l2-ioctl.c: zero reserved fields for S/TRY_FMT
libertas: Fix two buffer overflows at parsing bss descriptor
coresight: tmc-etf: Do not call smp_processor_id from preemptible
coresight: etb10: Do not call smp_processor_id from preemptible
sd: Fix REQ_OP_ZONE_REPORT completion handling
do_last(): fetch directory ->i_mode and ->i_uid before it's too late
tracing: xen: Ordered comparison of function pointers
scsi: RDMA/isert: Fix a recently introduced regression related to logout
hwmon: (nct7802) Fix voltage limits to wrong registers
Input: sun4i-ts - add a check for devm_thermal_zone_of_sensor_register
Input: pegasus_notetaker - fix endpoint sanity check
Input: aiptek - fix endpoint sanity check
Input: gtco - fix endpoint sanity check
Input: sur40 - fix interface sanity checks
Input: pm8xxx-vib - fix handling of separate enable register
Documentation: Document arm64 kpti control
mmc: sdhci: fix minimum clock rate for v3 controller
mmc: tegra: fix SDR50 tuning override
ARM: 8950/1: ftrace/recordmcount: filter relocation types
Revert "Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers"
Input: keyspan-remote - fix control-message timeouts
hwmon: (core) Do not use device managed functions for memory allocations
hwmon: (core) Fix double-free in __hwmon_device_register()
hwmon: Deal with errors from the thermal subsystem
hwmon: (adt7475) Make volt2reg return same reg as reg2volt input
net: rtnetlink: validate IFLA_MTU attribute in rtnl_create_link()
tcp_bbr: improve arithmetic division in bbr_update_bw()
net: usb: lan78xx: Add .ndo_features_check
net-sysfs: Fix reference count leak
net-sysfs: Call dev_hold always in rx_queue_add_kobject
net-sysfs: Call dev_hold always in netdev_queue_add_kobject
net-sysfs: fix netdev_queue_add_kobject() breakage
net-sysfs: Fix reference count leak in rx|netdev_queue_add_kobject
net_sched: fix datalen for ematch
net, ip_tunnel: fix namespaces move
net, ip6_tunnel: fix namespaces move
net: cxgb3_main: Add CAP_NET_ADMIN check to CHELSIO_GET_MEM
ipv6: sr: remove SKB_GSO_IPXIP6 on End.D* actions
gtp: make sure only SOCK_DGRAM UDP sockets are accepted
firestream: fix memory leaks
can, slip: Protect tty->disc_data in write_wakeup and close with RCU
UPSTREAM: staging: most: net: fix buffer overflow
ANDROID: Fixing incremental fs style issues
ANDROID: Make incfs selftests pass
ANDROID: Initial commit of Incremental FS
ANDROID: cuttlefish_defconfig: Enable CONFIG_BTT
Linux 4.14.168
m68k: Call timer_interrupt() with interrupts disabled
serial: stm32: fix clearing interrupt error flags
IB/iser: Fix dma_nents type definition
arm64: dts: juno: Fix UART frequency
drm/radeon: fix bad DMA from INTERRUPT_CNTL2
dmaengine: ti: edma: fix missed failure handling
affs: fix a memory leak in affs_remount
mmc: core: fix wl1251 sdio quirks
mmc: sdio: fix wl1251 vendor id
packet: fix data-race in fanout_flow_is_huge()
net: neigh: use long type to store jiffies delta
hv_netvsc: flag software created hash value
MIPS: Loongson: Fix return value of loongson_hwmon_init
afs: Fix large file support
net: qca_spi: Move reset_count to struct qcaspi
net: netem: correct the parent's backlog when corrupted packet was dropped
net: netem: fix error path for corrupted GSO frames
dmaengine: imx-sdma: fix size check for sdma script_number
drm/msm/dsi: Implement reset correctly
tcp: annotate lockless access to tcp_memory_pressure
net: add {READ|WRITE}_ONCE() annotations on ->rskq_accept_head
net: avoid possible false sharing in sk_leave_memory_pressure()
act_mirred: Fix mirred_init_module error handling
net: stmmac: fix length of PTP clock's name string
llc: fix sk_buff refcounting in llc_conn_state_process()
llc: fix another potential sk_buff leak in llc_ui_sendmsg()
mac80211: accept deauth frames in IBSS mode
net: stmmac: gmac4+: Not all Unicast addresses may be available
nvme: retain split access workaround for capability reads
net: ethernet: stmmac: Fix signedness bug in ipq806x_gmac_of_parse()
of: mdio: Fix a signedness bug in of_phy_get_and_connect()
net: axienet: fix a signedness bug in probe
net: stmmac: dwmac-meson8b: Fix signedness bug in probe
net: broadcom/bcmsysport: Fix signedness in bcm_sysport_probe()
net: hisilicon: Fix signedness bug in hix5hd2_dev_probe()
net: aquantia: Fix aq_vec_isr_legacy() return value
iommu/amd: Wait for completion of IOTLB flush in attach_device
net/rds: Fix 'ib_evt_handler_call' element in 'rds_ib_stat_names'
RDMA/cma: Fix false error message
ath10k: adjust skb length in ath10k_sdio_mbox_rx_packet
pinctrl: iproc-gpio: Fix incorrect pinconf configurations
net: sonic: replace dev_kfree_skb in sonic_send_packet
hwmon: (shtc1) fix shtc1 and shtw1 id mask
ixgbe: sync the first fragment unconditionally
btrfs: use correct count in btrfs_file_write_iter()
Btrfs: fix inode cache waiters hanging on path allocation failure
Btrfs: fix inode cache waiters hanging on failure to start caching thread
Btrfs: fix hang when loading existing inode cache off disk
scsi: fnic: fix msix interrupt allocation
net: sonic: return NETDEV_TX_OK if failed to map buffer
tty: serial: fsl_lpuart: Use appropriate lpuart32_* I/O funcs
ath9k: dynack: fix possible deadlock in ath_dynack_node_{de}init
iio: dac: ad5380: fix incorrect assignment to val
bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA
irqdomain: Add the missing assignment of domain->fwnode for named fwnode
staging: greybus: light: fix a couple double frees
x86, perf: Fix the dependency of the x86 insn decoder selftest
power: supply: Init device wakeup after device_add()
hwmon: (lm75) Fix write operations for negative temperatures
Partially revert "kfifo: fix kfifo_alloc() and kfifo_init()"
ahci: Do not export local variable ahci_em_messages
iommu/mediatek: Fix iova_to_phys PA start for 4GB mode
mips: avoid explicit UB in assignment of mips_io_port_base
rtc: pcf2127: bugfix: read rtc disables watchdog
media: atmel: atmel-isi: fix timeout value for stop streaming
mac80211: minstrel_ht: fix per-group max throughput rate initialization
dmaengine: dw: platform: Switch to acpi_dma_controller_register()
ASoC: sun4i-i2s: RX and TX counter registers are swapped
signal: Allow cifs and drbd to receive their terminating signals
bnxt_en: Fix handling FRAG_ERR when NVM_INSTALL_UPDATE cmd fails
net/rds: Add a few missing rds_stat_names entries
ASoC: wm8737: Fix copy-paste error in wm8737_snd_controls
ASoC: cs4349: Use PM ops 'cs4349_runtime_pm'
ASoC: es8328: Fix copy-paste error in es8328_right_line_controls
ext4: set error return correctly when ext4_htree_store_dirent fails
crypto: caam - free resources in case caam_rng registration failed
cifs: fix rmmod regression in cifs.ko caused by force_sig changes
net/mlx5: Fix mlx5_ifc_query_lag_out_bits
ARM: dts: stm32: add missing vdda-supply to adc on stm32h743i-eval
tipc: reduce risk of wakeup queue starvation
ALSA: aoa: onyx: always initialize register read value
crypto: ccp - Reduce maximum stack usage
x86/kgbd: Use NMI_VECTOR not APIC_DM_NMI
mic: avoid statically declaring a 'struct device'.
usb: host: xhci-hub: fix extra endianness conversion
qed: reduce maximum stack frame size
libertas_tf: Use correct channel range in lbtf_geo_init
PM: sleep: Fix possible overflow in pm_system_cancel_wakeup()
clk: sunxi-ng: v3s: add the missing PLL_DDR1
scsi: libfc: fix null pointer dereference on a null lport
net: pasemi: fix an use-after-free in pasemi_mac_phy_init()
RDMA/hns: Fixs hw access invalid dma memory error
devres: allow const resource arguments
rxrpc: Fix uninitialized error code in rxrpc_send_data_packet()
mfd: intel-lpss: Release IDA resources
iommu/amd: Make iommu_disable safer
bnxt_en: Fix ethtool selftest crash under error conditions.
nvmem: imx-ocotp: Ensure WAIT bits are preserved when setting timing
clk: qcom: Fix -Wunused-const-variable
dmaengine: hsu: Revert "set HSU_CH_MTSR to memory width"
perf/ioctl: Add check for the sample_period value
drm/msm/a3xx: remove TPL1 regs from snapshot
rtc: pcf8563: Clear event flags and disable interrupts before requesting irq
rtc: pcf8563: Fix interrupt trigger method
ASoC: ti: davinci-mcasp: Fix slot mask settings when using multiple AXRs
net/af_iucv: always register net_device notifier
net: netem: fix backlog accounting for corrupted GSO frames
drm/msm/mdp5: Fix mdp5_cfg_init error return
powerpc/pseries/mobility: rebuild cacheinfo hierarchy post-migration
powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild
qed: iWARP - Use READ_ONCE and smp_store_release to access ep->state
iommu/vt-d: Duplicate iommu_resv_region objects per device list
mpls: fix warning with multi-label encap
media: vivid: fix incorrect assignment operation when setting video mode
cpufreq: brcmstb-avs-cpufreq: Fix types for voltage/frequency
cpufreq: brcmstb-avs-cpufreq: Fix initial command check
netvsc: unshare skb in VF rx handler
inet: frags: call inet_frags_fini() after unregister_pernet_subsys()
signal/cifs: Fix cifs_put_tcp_session to call send_sig instead of force_sig
iommu: Use right function to get group for device
misc: sgi-xp: Properly initialize buf in xpc_get_rsvd_page_pa
serial: stm32: fix wakeup source initialization
serial: stm32: Add support of TC bit status check
serial: stm32: fix transmit_chars when tx is stopped
serial: stm32: fix rx error handling
crypto: ccp - Fix 3DES complaint from ccp-crypto module
crypto: ccp - fix AES CFB error exposed by new test vectors
spi: spi-fsl-spi: call spi_finalize_current_message() at the end
RDMA/qedr: Fix incorrect device rate.
arm64: dts: meson: libretech-cc: set eMMC as removable
dmaengine: tegra210-adma: Fix crash during probe
ARM: dts: sun8i-h3: Fix wifi in Beelink X2 DT
EDAC/mc: Fix edac_mc_find() in case no device is found
thermal: cpu_cooling: Actually trace CPU load in thermal_power_cpu_get_power
backlight: lm3630a: Return 0 on success in update_status functions
kdb: do a sanity check on the cpu in kdb_per_cpu()
ARM: riscpc: fix lack of keyboard interrupts after irq conversion
pwm: meson: Don't disable PWM when setting duty repeatedly
pwm: meson: Consider 128 a valid pre-divider
netfilter: ebtables: CONFIG_COMPAT: reject trailing data after last rule
crypto: caam - fix caam_dump_sg that iterates through scatterlist
platform/x86: alienware-wmi: printing the wrong error code
media: davinci/vpbe: array underflow in vpbe_enum_outputs()
media: omap_vout: potential buffer overflow in vidioc_dqbuf()
l2tp: Fix possible NULL pointer dereference
vfio/mdev: Fix aborting mdev child device removal if one fails
vfio/mdev: Avoid release parent reference during error path
afs: Fix the afs.cell and afs.volume xattr handlers
lightnvm: pblk: fix lock order in pblk_rb_tear_down_check
mmc: core: fix possible use after free of host
dmaengine: tegra210-adma: restore channel status
net: ena: fix ena_com_fill_hash_function() implementation
net: ena: fix incorrect test of supported hash function
net: ena: fix: Free napi resources when ena_up() fails
net: ena: fix swapped parameters when calling ena_com_indirect_table_fill_entry
iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU
IB/mlx5: Add missing XRC options to QP optional params mask
dwc2: gadget: Fix completed transfer size calculation in DDMA
usb: gadget: fsl: fix link error against usb-gadget module
ASoC: fix valid stream condition
packet: in recvmsg msg_name return at least sizeof sockaddr_ll
scsi: qla2xxx: Avoid that qlt_send_resp_ctio() corrupts memory
scsi: qla2xxx: Fix a format specifier
irqchip/gic-v3-its: fix some definitions of inner cacheability attributes
NFS: Don't interrupt file writeout due to fatal errors
ALSA: usb-audio: Handle the error from snd_usb_mixer_apply_create_quirk()
dmaengine: axi-dmac: Don't check the number of frames for alignment
6lowpan: Off by one handling ->nexthdr
media: ov2659: fix unbalanced mutex_lock/unlock
ARM: dts: ls1021: Fix SGMII PCS link remaining down after PHY disconnect
powerpc: vdso: Make vdso32 installation conditional in vdso_install
selftests/ipc: Fix msgque compiler warnings
tipc: set sysctl_tipc_rmem and named_timeout right range
platform/x86: alienware-wmi: fix kfree on potentially uninitialized pointer
hwmon: (w83627hf) Use request_muxed_region for Super-IO accesses
net: hns3: fix for vport->bw_limit overflow problem
ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data"
scsi: target/core: Fix a race condition in the LUN lookup code
scsi: qla2xxx: Unregister chrdev if module initialization fails
ehea: Fix a copy-paste err in ehea_init_port_res
spi: bcm2835aux: fix driver to not allow 65535 (=-1) cs-gpios
soc/fsl/qe: Fix an error code in qe_pin_request()
spi: tegra114: configure dma burst size to fifo trig level
spi: tegra114: flush fifos
spi: tegra114: terminate dma and reset on transfer timeout
spi: tegra114: fix for unpacked mode transfers
spi: tegra114: clear packed bit for unpacked mode
media: tw5864: Fix possible NULL pointer dereference in tw5864_handle_frame
media: davinci-isif: avoid uninitialized variable use
ARM: OMAP2+: Fix potentially uninitialized return value for _setup_reset()
arm64: dts: allwinner: a64: Add missing PIO clocks
m68k: mac: Fix VIA timer counter accesses
tipc: tipc clang warning
jfs: fix bogus variable self-initialization
regulator: tps65086: Fix tps65086_ldoa1_ranges for selector 0xB
media: cx23885: check allocation return
media: wl128x: Fix an error code in fm_download_firmware()
media: cx18: update *pos correctly in cx18_read_pos()
media: ivtv: update *pos correctly in ivtv_read_pos()
regulator: lp87565: Fix missing register for LP87565_BUCK_0
net: sh_eth: fix a missing check of of_get_phy_mode
xen, cpu_hotplug: Prevent an out of bounds access
drivers/rapidio/rio_cm.c: fix potential oops in riocm_ch_listen()
scsi: megaraid_sas: reduce module load time
x86/mm: Remove unused variable 'cpu'
nios2: ksyms: Add missing symbol exports
powerpc/mm: Check secondary hash page table
net: aquantia: fixed instack structure overflow
NFSv4/flexfiles: Fix invalid deref in FF_LAYOUT_DEVID_NODE()
netfilter: nft_set_hash: fix lookups with fixed size hash on big endian
regulator: wm831x-dcdc: Fix list of wm831x_dcdc_ilim from mA to uA
ARM: 8848/1: virt: Align GIC version check with arm64 counterpart
ARM: 8847/1: pm: fix HYP/SVC mode mismatch when MCPM is used
mmc: sdhci-brcmstb: handle mmc_of_parse() errors during probe
NFS/pnfs: Bulk destroy of layouts needs to be safe w.r.t. umount
platform/x86: wmi: fix potential null pointer dereference
clocksource/drivers/exynos_mct: Fix error path in timer resources initialization
clocksource/drivers/sun5i: Fail gracefully when clock rate is unavailable
NFS: Fix a soft lockup in the delegation recovery code
powerpc/64s: Fix logic when handling unknown CPU features
staging: rtlwifi: Use proper enum for return in halmac_parse_psd_data_88xx
fs/nfs: Fix nfs_parse_devname to not modify it's argument
ASoC: qcom: Fix of-node refcount unbalance in apq8016_sbc_parse_of()
drm/nouveau/pmu: don't print reply values if exec is false
drm/nouveau/bios/ramcfg: fix missing parentheses when calculating RON
net: dsa: qca8k: Enable delay for RGMII_ID mode
regulator: pv88090: Fix array out-of-bounds access
regulator: pv88080: Fix array out-of-bounds access
regulator: pv88060: Fix array out-of-bounds access
cdc-wdm: pass return value of recover_from_urb_loss
dmaengine: mv_xor: Use correct device for DMA API
staging: r8822be: check kzalloc return or bail
KVM: PPC: Release all hardware TCE tables attached to a group
hwmon: (pmbus/tps53679) Fix driver info initialization in probe routine
vfio_pci: Enable memory accesses before calling pci_map_rom
keys: Timestamp new keys
block: don't use bio->bi_vcnt to figure out segment number
usb: phy: twl6030-usb: fix possible use-after-free on remove
PCI: endpoint: functions: Use memcpy_fromio()/memcpy_toio()
pinctrl: sh-pfc: sh73a0: Fix fsic_spdif pin groups
pinctrl: sh-pfc: r8a7792: Fix vin1_data18_b pin group
pinctrl: sh-pfc: r8a7791: Fix scifb2_data_c pin group
pinctrl: sh-pfc: emev2: Add missing pinmux functions
drm/etnaviv: potential NULL dereference
iw_cxgb4: use tos when finding ipv6 routes
iw_cxgb4: use tos when importing the endpoint
fbdev: chipsfb: remove set but not used variable 'size'
rtc: pm8xxx: fix unintended sign extension
rtc: 88pm80x: fix unintended sign extension
rtc: 88pm860x: fix unintended sign extension
rtc: ds1307: rx8130: Fix alarm handling
net: phy: fixed_phy: Fix fixed_phy not checking GPIO
thermal: mediatek: fix register index error
rtc: ds1672: fix unintended sign extension
staging: most: cdev: add missing check for cdev_add failure
iwlwifi: mvm: fix RSS config command
ARM: dts: lpc32xx: phy3250: fix SD card regulator voltage
ARM: dts: lpc32xx: fix ARM PrimeCell LCD controller clocks property
ARM: dts: lpc32xx: fix ARM PrimeCell LCD controller variant
ARM: dts: lpc32xx: reparent keypad controller to SIC1
ARM: dts: lpc32xx: add required clocks property to keypad device node
driver core: Do not resume suppliers under device_links_write_lock()
crypto: crypto4xx - Fix wrong ppc4xx_trng_probe()/ppc4xx_trng_remove() arguments
driver: uio: fix possible use-after-free in __uio_register_device
driver: uio: fix possible memory leak in __uio_register_device
tty: ipwireless: Fix potential NULL pointer dereference
iwlwifi: mvm: fix A-MPDU reference assignment
net/mlx5: Take lock with IRQs disabled to avoid deadlock
iwlwifi: mvm: avoid possible access out of array.
clk: sunxi-ng: sun8i-a23: Enable PLL-MIPI LDOs when ungating it
spi/topcliff_pch: Fix potential NULL dereference on allocation error
rtc: cmos: ignore bogus century byte
IB/iser: Pass the correct number of entries for dma mapped SGL
ASoC: imx-sgtl5000: put of nodes if finding codec fails
crypto: tgr192 - fix unaligned memory access
crypto: brcm - Fix some set-but-not-used warning
kbuild: mark prepare0 as PHONY to fix external module build
media: s5p-jpeg: Correct step and max values for V4L2_CID_JPEG_RESTART_INTERVAL
drm/etnaviv: NULL vs IS_ERR() buf in etnaviv_core_dump()
RDMA/iw_cxgb4: Fix the unchecked ep dereference
spi: cadence: Correct initialisation of runtime PM
arm64: dts: apq8016-sbc: Increase load on l11 for SDCARD
drm/shmob: Fix return value check in shmob_drm_probe
RDMA/qedr: Fix out of bounds index check in query pkey
RDMA/ocrdma: Fix out of bounds index check in query pkey
IB/usnic: Fix out of bounds index check in query pkey
MIPS: BCM63XX: drop unused and broken DSP platform device
clk: dove: fix refcount leak in dove_clk_init()
clk: mv98dx3236: fix refcount leak in mv98dx3236_clk_init()
clk: armada-xp: fix refcount leak in axp_clk_init()
clk: kirkwood: fix refcount leak in kirkwood_clk_init()
clk: armada-370: fix refcount leak in a370_clk_init()
clk: vf610: fix refcount leak in vf610_clocks_init()
clk: imx7d: fix refcount leak in imx7d_clocks_init()
clk: imx6sx: fix refcount leak in imx6sx_clocks_init()
clk: imx6q: fix refcount leak in imx6q_clocks_init()
clk: samsung: exynos4: fix refcount leak in exynos4_get_xom()
clk: socfpga: fix refcount leak
clk: qoriq: fix refcount leak in clockgen_init()
clk: highbank: fix refcount leak in hb_clk_init()
Input: nomadik-ske-keypad - fix a loop timeout test
vxlan: changelink: Fix handling of default remotes
pinctrl: sh-pfc: sh7734: Remove bogus IPSR10 value
pinctrl: sh-pfc: sh7269: Add missing PCIOR0 field
pinctrl: sh-pfc: r8a77995: Remove bogus SEL_PWM[0-3]_3 configurations
pinctrl: sh-pfc: sh7734: Add missing IPSR11 field
pinctrl: sh-pfc: r8a7794: Remove bogus IPSR9 field
pinctrl: sh-pfc: sh73a0: Add missing TO pin to tpu4_to3 group
pinctrl: sh-pfc: r8a7791: Remove bogus marks from vin1_b_data18 group
pinctrl: sh-pfc: r8a7791: Remove bogus ctrl marks from qspi_data4_b group
pinctrl: sh-pfc: r8a7740: Add missing LCD0 marks to lcd0_data24_1 group
pinctrl: sh-pfc: r8a7740: Add missing REF125CK pin to gether_gmii group
switchtec: Remove immediate status check after submitting MRPC command
staging: bcm2835-camera: Abort probe if there is no camera
IB/rxe: Fix incorrect cache cleanup in error flow
net: phy: Fix not to call phy_resume() if PHY is not attached
drm/dp_mst: Skip validating ports during destruction, just ref
exportfs: fix 'passing zero to ERR_PTR()' warning
pcrypt: use format specifier in kobject_add
NTB: ntb_hw_idt: replace IS_ERR_OR_NULL with regular NULL checks
mlxsw: reg: QEEC: Add minimum shaper fields
drm/sun4i: hdmi: Fix double flag assignation
pwm: lpss: Release runtime-pm reference from the driver's remove callback
staging: comedi: ni_mio_common: protect register write overflow
ALSA: usb-audio: update quirk for B&W PX to remove microphone
IB/hfi1: Add mtu check for operational data VLs
IB/rxe: replace kvfree with vfree
drm/hisilicon: hibmc: Don't overwrite fb helper surface depth
PCI: iproc: Remove PAXC slot check to allow VF support
apparmor: don't try to replace stale label in ptrace access check
ALSA: hda: fix unused variable warning
drm/virtio: fix bounds check in virtio_gpu_cmd_get_capset()
drm/sti: do not remove the drm_bridge that was never added
crypto: sun4i-ss - fix big endian issues
mt7601u: fix bbp version check in mt7601u_wait_bbp_ready
tipc: fix wrong timeout input for tipc_wait_for_cond()
powerpc/archrandom: fix arch_get_random_seed_int()
mfd: intel-lpss: Add default I2C device properties for Gemini Lake
xfs: Sanity check flags of Q_XQUOTARM call
FROMGIT: ext4: Add EXT4_IOC_FSGETXATTR/EXT4_IOC_FSSETXATTR to compat_ioctl.
ANDROID: cuttlefish_defconfig: enable CONFIG_IKHEADERS as m
ANDROID: cuttlefish_defconfig: enable NVDIMM/PMEM options
UPSTREAM: virtio-pmem: Add virtio pmem driver
BACKPORT: libnvdimm: nd_region flush callback support
UPSTREAM: libnvdimm/of_pmem: Provide a unique name for bus provider
UPSTREAM: libnvdimm/of_pmem: Fix platform_no_drv_owner.cocci warnings
UPSTREAM: libnvdimm, of_pmem: use dev_to_node() instead of of_node_to_nid()
UPSTREAM: libnvdimm: Add device-tree based driver
UPSTREAM: libnvdimm: Add of_node to region and bus descriptors
FROMLIST: security: selinux: allow per-file labelling for binderfs
UPSTREAM: mm/page_io.c: annotate refault stalls from swap_readpage
Revert "ANDROID: security,perf: Allow further restriction of perf_event_open"
ANDROID: selinux: modify RTM_GETLINK permission
UPSTREAM: lib/test_meminit.c: add bulk alloc/free tests
UPSTREAM: lib/test_meminit: add a kmem_cache_alloc_bulk() test
UPSTREAM: mm: slub: really fix slab walking for init_on_free
UPSTREAM: mm/slub.c: init_on_free=1 should wipe freelist ptr for bulk allocations
Linux 4.14.167
regulator: ab8500: Remove SYSCLKREQ from enum ab8505_regulator_id
perf probe: Fix wrong address verification
scsi: core: scsi_trace: Use get_unaligned_be*()
scsi: qla2xxx: fix rports not being mark as lost in sync fabric scan
scsi: qla2xxx: Fix qla2x00_request_irqs() for MSI
scsi: target: core: Fix a pr_debug() argument
scsi: bnx2i: fix potential use after free
scsi: qla4xxx: fix double free bug
scsi: esas2r: unlock on error in esas2r_nvram_read_direct()
reiserfs: fix handling of -EOPNOTSUPP in reiserfs_for_each_xattr
Revert "arm64: dts: juno: add dma-ranges property"
tick/sched: Annotate lockless access to last_jiffies_update
cfg80211: check for set_wiphy_params
arm64: dts: meson-gxl-s905x-khadas-vim: fix gpio-keys-polled node
cw1200: Fix a signedness bug in cw1200_load_firmware()
xen/blkfront: Adjust indentation in xlvbd_alloc_gendisk
tcp: fix marked lost packets not being retransmitted
r8152: add missing endpoint sanity check
ptp: free ptp device pin descriptors properly
net/wan/fsl_ucc_hdlc: fix out of bounds write on array utdm_info
net: usb: lan78xx: limit size of local TSO packets
net: hns: fix soft lockup when there is not enough memory
net: dsa: tag_qca: fix doubled Tx statistics
hv_netvsc: Fix memory leak when removing rndis device
macvlan: use skb_reset_mac_header() in macvlan_queue_xmit()
batman-adv: Fix DAT candidate selection on little endian systems
NFC: pn533: fix bulk-message timeout
netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct
netfilter: fix a use-after-free in mtype_destroy()
cfg80211: fix page refcount issue in A-MSDU decap
arm64: dts: agilex/stratix10: fix pmu interrupt numbers
mm/huge_memory.c: thp: fix conflict of above-47bit hint address and PMD alignment
mm/huge_memory.c: make __thp_get_unmapped_area static
USB: serial: io_edgeport: handle unbound ports on URB completion
USB: serial: io_edgeport: use irqsave() in USB's complete callback
net: stmmac: Enable 16KB buffer size
net: stmmac: 16KB buffer must be 16 byte aligned
mm/page-writeback.c: avoid potential division by zero in wb_min_max_ratio()
btrfs: fix memory leak in qgroup accounting
mm/shmem.c: thp, shmem: fix conflict of above-47bit hint address and PMD alignment
perf report: Fix incorrectly added dimensions as switch perf data file
perf hists: Fix variable name's inconsistency in hists__for_each() macro
x86/efistub: Disable paging at mixed mode entry
x86/resctrl: Fix an imbalance in domain_remove_cpu()
usb: core: hub: Improved device recognition on remote wakeup
ptrace: reintroduce usage of subjective credentials in ptrace_has_cap()
scsi: mptfusion: Fix double fetch bug in ioctl
scsi: fnic: fix invalid stack access
USB: serial: quatech2: handle unbound ports
USB: serial: keyspan: handle unbound ports
USB: serial: io_edgeport: add missing active-port sanity check
USB: serial: ch341: handle unbound port at reset_resume
USB: serial: suppress driver bind attributes
USB: serial: option: add support for Quectel RM500Q in QDL mode
USB: serial: opticon: fix control-message timeouts
USB: serial: option: Add support for Quectel RM500Q
USB: serial: simple: Add Motorola Solutions TETRA MTP3xxx and MTP85xx
iio: buffer: align the size of scan bytes to size of the largest element
ARM: dts: am571x-idk: Fix gpios property to have the correct gpio number
block: fix an integer overflow in logical block size
Fix built-in early-load Intel microcode alignment
ALSA: seq: Fix racy access for queue timer in proc read
ASoC: msm8916-wcd-analog: Fix selected events for MIC BIAS External1
clk: Don't try to enable critical clocks if prepare failed
dt-bindings: reset: meson8b: fix duplicate reset IDs
Linux 4.14.166
ocfs2: call journal flush to mark journal as empty after journal recovery when mount
hexagon: work around compiler crash
hexagon: parenthesize registers in asm predicates
ioat: ioat_alloc_ring() failure handling.
dmaengine: k3dma: Avoid null pointer traversal
MIPS: Prevent link failure with kcov instrumentation
mips: cacheinfo: report shared CPU map
rseq/selftests: Turn off timeout setting
scsi: libcxgbi: fix NULL pointer dereference in cxgbi_device_destroy()
gpio: mpc8xxx: Add platform device to gpiochip->parent
rtc: msm6242: Fix reading of 10-hour digit
f2fs: fix potential overflow
rtlwifi: Remove unnecessary NULL check in rtl_regd_init
spi: atmel: fix handling of cs_change set on non-last xfer
mtd: spi-nor: fix silent truncation in spi_nor_read_raw()
mtd: spi-nor: fix silent truncation in spi_nor_read()
media: exynos4-is: Fix recursive locking in isp_video_release()
media: ov6650: Fix .get_fmt() V4L2_SUBDEV_FORMAT_TRY support
media: ov6650: Fix some format attributes not under control
media: ov6650: Fix incorrect use of JPEG colorspace
tty: serial: pch_uart: correct usage of dma_unmap_sg
tty: serial: imx: use the sg count from dma_map_sg
powerpc/powernv: Disable native PCIe port management
PCI/PTM: Remove spurious "d" from granularity message
compat_ioctl: handle SIOCOUTQNSD
af_unix: add compat_ioctl support
arm64: dts: apq8096-db820c: Increase load on l21 for SDCARD
scsi: sd: enable compat ioctls for sed-opal
pinctrl: lewisburg: Update pin list according to v1.1v6
pinctl: ti: iodelay: fix error checking on pinctrl_count_index_with_args call
clk: samsung: exynos5420: Preserve CPU clocks configuration during suspend/resume
mei: fix modalias documentation
iio: imu: adis16480: assign bias value only if operation succeeded
NFSv4.x: Drop the slot if nfs4_delegreturn_prepare waits for layoutreturn
xprtrdma: Fix completion wait during device removal
platform/x86: asus-wmi: Fix keyboard brightness cannot be set to 0
scsi: sd: Clear sdkp->protection_type if disk is reformatted without PI
scsi: enclosure: Fix stale device oops with hot replug
arm64: Check for errata before evaluating cpu features
arm64: add sentinel to kpti_safe_list
RDMA/srpt: Report the SCSI residual to the initiator
RDMA/mlx5: Return proper error value
btrfs: simplify inode locking for RWF_NOWAIT
cifs: Adjust indentation in smb2_open_file
hsr: reset network header when supervision frame is created
gpio: Fix error message on out-of-range GPIO in lookup table
iommu: Remove device link to group on failure
gpio: zynq: Fix for bug in zynq_gpio_restore_context API
ASoC: stm32: spdifrx: fix race condition in irq handler
ASoC: stm32: spdifrx: fix inconsistent lock state
RDMA/bnxt_re: Fix Send Work Entry state check while polling completions
rtc: mt6397: fix alarm register overwrite
drm/i915: Fix use-after-free when destroying GEM context
dccp: Fix memleak in __feat_register_sp
iwlwifi: dbg_ini: fix memory leak in alloc_sgtable
wimax: i2400: Fix memory leak in i2400m_op_rfkill_sw_toggle
wimax: i2400: fix memory leak
cifs: Fix lease buffer length error
media: usb:zr364xx:Fix KASAN:null-ptr-deref Read in zr364xx_vidioc_querycap
mac80211: Do not send Layer 2 Update frame before authorization
cfg80211/mac80211: make ieee80211_send_layer2_update a public function
arm64: Make sure permission updates happen for pmd/pud
arm64: Enforce BBM for huge IO/VMAP mappings
arm64: mm: Change page table pointer name in p[md]_set_huge()
arm64: don't open code page table entry creation
rsi: add fix for crash during assertions
fs/select: avoid clang stack usage warning
ethtool: reduce stack usage with clang
HID: hidraw, uhid: Always report EPOLLOUT
HID: hidraw: Fix returning EPOLLOUT from hidraw_poll
hidraw: Return EPOLLOUT from hidraw_poll
cuttlefish: enable CONFIG_DUMMY=y
cuttlefish - enable CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y
ANDROID: Enable HID_STEAM as y
Linux 4.14.165
drm/i915/gen9: Clear residual context state on context switch
netfilter: ipset: avoid null deref when IPSET_ATTR_LINENO is present
netfilter: arp_tables: init netns pointer in xt_tgchk_param struct
phy: cpcap-usb: Fix flakey host idling and enumerating of devices
phy: cpcap-usb: Fix error path when no host driver is loaded
USB: Fix: Don't skip endpoint descriptors with maxpacket=0
HID: hiddev: fix mess in hiddev_open()
arm64: cpufeature: Avoid warnings due to unused symbols
ath10k: fix memory leak
rtl8xxxu: prevent leaking urb
scsi: bfa: release allocated memory in case of error
mwifiex: pcie: Fix memory leak in mwifiex_pcie_alloc_cmdrsp_buf
mwifiex: fix possible heap overflow in mwifiex_process_country_ie()
tty: always relink the port
tty: link tty and port before configuring it as console
staging: rtl8188eu: Add device code for TP-Link TL-WN727N v5.21
drm/dp_mst: correct the shifting in DP_REMOTE_I2C_READ
drm/fb-helper: Round up bits_per_pixel if possible
Input: add safety guards to input_set_keycode()
HID: hid-input: clear unmapped usages
staging: comedi: adv_pci1710: fix AI channels 16-31 for PCI-1713
usb: musb: dma: Correct parameter passed to IRQ handler
usb: musb: Disable pullup at init
usb: musb: fix idling for suspend after disconnect interrupt
USB: serial: option: add ZLP support for 0x1bc7/0x9010
staging: vt6656: set usb_set_intfdata on driver fail.
gpiolib: acpi: Add honor_wakeup module-option + quirk mechanism
gpiolib: acpi: Turn dmi_system_id table into a generic quirk table
can: can_dropped_invalid_skb(): ensure an initialized headroom in outgoing CAN sk_buffs
can: mscan: mscan_rx_poll(): fix rx path lockup when returning from polling to irq mode
can: gs_usb: gs_usb_probe(): use descriptors of current altsetting
HID: uhid: Fix returning EPOLLOUT from uhid_char_poll
HID: Fix slab-out-of-bounds read in hid_field_extract
tracing: Have stack tracer compile when MCOUNT_INSN_SIZE is not defined
kernel/trace: Fix do not unregister tracepoints when register sched_migrate_task fail
ALSA: hda/realtek - Set EAPD control to default for ALC222
ALSA: hda/realtek - Add new codec supported for ALCS1200A
ALSA: usb-audio: Apply the sample rate quirk for Bose Companion 5
usb: chipidea: host: Disable port power only if previously enabled
chardev: Avoid potential use-after-free in 'chrdev_open()'
UPSTREAM: kcov: fix struct layout for kcov_remote_arg
UPSTREAM: vhost, kcov: collect coverage from vhost_worker
UPSTREAM: usb, kcov: collect coverage from hub_event
BACKPORT: kcov: remote coverage support
UPSTREAM: kcov: improve CONFIG_ARCH_HAS_KCOV help text
UPSTREAM: kcov: convert kcov.refcount to refcount_t
UPSTREAM: kcov: no need to check return value of debugfs_create functions
UPSTREAM: kernel/kcov.c: mark write_comp_data() as notrace
UPSTREAM: kernel/kcov.c: mark funcs in __sanitizer_cov_trace_pc() as notrace
BACKPORT: sched/core / kcov: avoid kcov_area during task switch
UPSTREAM: kcov: prefault the kcov_area
BACKPORT: kcov: test compiler capability in Kconfig and correct dependency
UPSTREAM: gcc-plugins: fix build condition of SANCOV plugin
UPSTREAM: kcov: fix comparison callback signature
UPSTREAM: kcov: update documentation
BACKPORT: Makefile: support flag -fsanitizer-coverage=trace-cmp
BACKPORT: kcov: support comparison operands collection
UPSTREAM: kcov: remove pointless current != NULL check
Linux 4.14.164
vlan: fix memory leak in vlan_dev_set_egress_priority
net: sch_prio: When ungrafting, replace with FIFO
vlan: vlan_changelink() should propagate errors
vxlan: fix tos value before xmit
tcp: fix "old stuff" D-SACK causing SACK to be treated as D-SACK
sctp: free cmd->obj.chunk for the unprocessed SCTP_CMD_REPLY
USB: serial: option: add Telit ME910G1 0x110a composition
USB: core: fix check for duplicate endpoints
pkt_sched: fq: do not accept silly TCA_FQ_QUANTUM
net: usb: lan78xx: fix possible skb leak
net: stmmac: dwmac-sunxi: Allow all RGMII modes
net: stmmac: dwmac-sun8i: Allow all RGMII modes
net: dsa: mv88e6xxx: Preserve priority when setting CPU port.
macvlan: do not assume mac_header is set in macvlan_broadcast()
gtp: fix bad unlock balance in gtp_encap_enable_socket
mmc: block: propagate correct returned value in mmc_rpmb_ioctl
mmc: core: Prevent bus reference leak in mmc_blk_init()
mmc: block: Fix bug when removing RPMB chardev
mmc: block: Delete mmc_access_rpmb()
mmc: block: Convert RPMB to a character device
PCI/switchtec: Read all 64 bits of part_event_bitmap
bpf: Fix passing modified ctx to ld/abs/ind instruction
bpf: reject passing modified ctx to helper functions
hv_netvsc: Fix unwanted rx_table reset
llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and _test_c)
parisc: Fix compiler warnings in debug_core.c
block: fix memleak when __blk_rq_map_user_iov() is failed
s390/dasd: fix memleak in path handling error case
s390/dasd/cio: Interpret ccw_device_get_mdc return value correctly
net: stmmac: RX buffer size must be 16 byte aligned
net: stmmac: Do not accept invalid MTU values
fs: avoid softlockups in s_inodes iterators
perf/x86/intel: Fix PT PMI handling
kconfig: don't crash on NULL expressions in expr_eq()
regulator: rn5t618: fix module aliases
ASoC: wm8962: fix lambda value
rfkill: Fix incorrect check to avoid NULL pointer dereference
net: usb: lan78xx: Fix error message format specifier
bnx2x: Fix logic to get total no. of PFs per engine
bnx2x: Do not handle requests from VFs after parity
powerpc: Ensure that swiotlb buffer is allocated from low memory
samples: bpf: fix syscall_tp due to unused syscall
samples: bpf: Replace symbol compare of trace_event
ARM: dts: am437x-gp/epos-evm: fix panel compatible
bpf, mips: Limit to 33 tail calls
ARM: dts: bcm283x: Fix critical trip point
ASoC: topology: Check return value for soc_tplg_pcm_create()
spi: spi-cavium-thunderx: Add missing pci_release_regions()
ARM: dts: Cygnus: Fix MDIO node address/size cells
netfilter: nf_tables: validate NFT_SET_ELEM_INTERVAL_END
netfilter: uapi: Avoid undefined left-shift in xt_sctp.h
ARM: vexpress: Set-up shared OPP table instead of individual for each CPU
efi/gop: Fix memory leak in __gop_query32/64()
efi/gop: Return EFI_SUCCESS if a usable GOP was found
efi/gop: Return EFI_NOT_FOUND if there are no usable GOPs
x86/efi: Update e820 with reserved EFI boot services data to fix kexec breakage
libtraceevent: Fix lib installation with O=
mwifiex: Fix heap overflow in mmwifiex_process_tdls_action_frame()
netfilter: ctnetlink: netns exit must wait for callbacks
locking/spinlock/debug: Fix various data races
USB: dummy-hcd: increase max number of devices to 32
USB: dummy-hcd: use usb_urb_dir_in instead of usb_pipein
UPSTREAM: USB: dummy-hcd: use usb_urb_dir_in instead of usb_pipein
UPSTREAM: USB: dummy-hcd: increase max number of devices to 32
UPSTREAM: USB: dummy-hcd: Fix failure to give back unlinked URBs
UPSTREAM: USB: dummy-hcd: bandwidth limits for non-bulk transfers
BACKPORT: perf_event: Add support for LSM and SELinux checks
ANDROID: cuttlefish_defconfig: remove 80211_HWSIM
Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
UtsavBalar1231: adapt inline encryption support with caf
Conflicts:
arch/arm64/boot/Makefile
arch/arm64/kernel/cpufeature.c
arch/arm64/kernel/smp.c
arch/arm64/kernel/traps.c
arch/arm64/mm/mmu.c
drivers/base/power/wakeup.c
drivers/block/virtio_blk.c
drivers/clk/clk.c
drivers/clk/qcom/clk-rcg2.c
drivers/gpu/Makefile
drivers/gpu/drm/msm/msm_drv.c
drivers/gpu/drm/msm/msm_gem.c
drivers/hwtracing/coresight/coresight-funnel.c
drivers/irqchip/irq-gic-v3.c
drivers/md/Kconfig
drivers/md/dm-default-key.c
drivers/mmc/core/Kconfig
drivers/mmc/core/block.c
drivers/mmc/core/queue.h
drivers/mmc/core/quirks.h
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
drivers/net/ethernet/stmicro/stmmac/stmmac.h
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
drivers/net/macsec.c
drivers/net/phy/micrel.c
drivers/net/wireless/ath/wil6210/cfg80211.c
drivers/net/wireless/ath/wil6210/fw_inc.c
drivers/net/wireless/ath/wil6210/pcie_bus.c
drivers/net/wireless/ath/wil6210/pm.c
drivers/net/wireless/ath/wil6210/wil6210.h
drivers/of/Kconfig
drivers/of/base.c
drivers/power/supply/power_supply_sysfs.c
drivers/rpmsg/qcom_glink_smem.c
drivers/scsi/sd.c
drivers/scsi/ufs/Kconfig
drivers/scsi/ufs/Makefile
drivers/scsi/ufs/ufs-qcom.c
drivers/scsi/ufs/ufshcd.c
drivers/scsi/ufs/ufshcd.h
drivers/scsi/ufs/ufshci.h
drivers/usb/dwc3/core.c
drivers/usb/dwc3/gadget.c
drivers/usb/gadget/Kconfig
drivers/usb/gadget/composite.c
drivers/usb/gadget/function/f_fs.c
drivers/usb/gadget/legacy/Makefile
drivers/usb/host/xhci-mem.c
fs/crypto/fscrypt_private.h
fs/crypto/keysetup.c
fs/ext4/inode.c
fs/ext4/page-io.c
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/sdcardfs/lookup.c
include/linux/mmc/host.h
include/linux/power_supply.h
include/uapi/linux/coresight-stm.h
include/uapi/linux/fscrypt.h
include/uapi/linux/virtio_ids.h
kernel/events/core.c
kernel/locking/spinlock_debug.c
kernel/time/alarmtimer.c
net/core/ethtool.c
net/qrtr/qrtr.c
net/wireless/util.c
sound/core/rawmidi.c
This commit is contained in:
@@ -4,7 +4,7 @@ KernelVersion: 3.10
|
|||||||
Contact: Samuel Ortiz <sameo@linux.intel.com>
|
Contact: Samuel Ortiz <sameo@linux.intel.com>
|
||||||
linux-mei@linux.intel.com
|
linux-mei@linux.intel.com
|
||||||
Description: Stores the same MODALIAS value emitted by uevent
|
Description: Stores the same MODALIAS value emitted by uevent
|
||||||
Format: mei:<mei device name>:<device uuid>:
|
Format: mei:<mei device name>:<device uuid>:<protocol version>
|
||||||
|
|
||||||
What: /sys/bus/mei/devices/.../name
|
What: /sys/bus/mei/devices/.../name
|
||||||
Date: May 2015
|
Date: May 2015
|
||||||
|
|||||||
@@ -7,6 +7,13 @@ Description:
|
|||||||
The name of devfreq object denoted as ... is same as the
|
The name of devfreq object denoted as ... is same as the
|
||||||
name of device using devfreq.
|
name of device using devfreq.
|
||||||
|
|
||||||
|
What: /sys/class/devfreq/.../name
|
||||||
|
Date: November 2019
|
||||||
|
Contact: Chanwoo Choi <cw00.choi@samsung.com>
|
||||||
|
Description:
|
||||||
|
The /sys/class/devfreq/.../name shows the name of device
|
||||||
|
of the corresponding devfreq object.
|
||||||
|
|
||||||
What: /sys/class/devfreq/.../governor
|
What: /sys/class/devfreq/.../governor
|
||||||
Date: September 2011
|
Date: September 2011
|
||||||
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
||||||
|
|||||||
@@ -1,3 +1,459 @@
|
|||||||
|
===== General Properties =====
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/manufacturer
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the name of the device manufacturer.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented as string
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/model_name
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the name of the device model.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented as string
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/serial_number
|
||||||
|
Date: January 2008
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the serial number of the device.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented as string
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/type
|
||||||
|
Date: May 2010
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Describes the main type of the supply.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: "Battery", "UPS", "Mains", "USB"
|
||||||
|
|
||||||
|
===== Battery Properties =====
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/capacity
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Fine grain representation of battery capacity.
|
||||||
|
Access: Read
|
||||||
|
Valid values: 0 - 100 (percent)
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/capacity_alert_max
|
||||||
|
Date: July 2012
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Maximum battery capacity trip-wire value where the supply will
|
||||||
|
notify user-space of the event. This is normally used for the
|
||||||
|
battery discharging scenario where user-space needs to know the
|
||||||
|
battery has dropped to an upper level so it can take
|
||||||
|
appropriate action (e.g. warning user that battery level is
|
||||||
|
low).
|
||||||
|
|
||||||
|
Access: Read, Write
|
||||||
|
Valid values: 0 - 100 (percent)
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/capacity_alert_min
|
||||||
|
Date: July 2012
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Minimum battery capacity trip-wire value where the supply will
|
||||||
|
notify user-space of the event. This is normally used for the
|
||||||
|
battery discharging scenario where user-space needs to know the
|
||||||
|
battery has dropped to a lower level so it can take
|
||||||
|
appropriate action (e.g. warning user that battery level is
|
||||||
|
critically low).
|
||||||
|
|
||||||
|
Access: Read, Write
|
||||||
|
Valid values: 0 - 100 (percent)
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/capacity_level
|
||||||
|
Date: June 2009
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Coarse representation of battery capacity.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: "Unknown", "Critical", "Low", "Normal", "High",
|
||||||
|
"Full"
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/current_avg
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports an average IBAT current reading for the battery, over a
|
||||||
|
fixed period. Normally devices will provide a fixed interval in
|
||||||
|
which they average readings to smooth out the reported value.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microamps
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/current_max
|
||||||
|
Date: October 2010
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the maximum IBAT current allowed into the battery.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microamps
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/current_now
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports an instant, single IBAT current reading for the battery.
|
||||||
|
This value is not averaged/smoothed.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microamps
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/charge_type
|
||||||
|
Date: July 2009
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Represents the type of charging currently being applied to the
|
||||||
|
battery.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: "Unknown", "N/A", "Trickle", "Fast"
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/charge_term_current
|
||||||
|
Date: July 2014
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the charging current value which is used to determine
|
||||||
|
when the battery is considered full and charging should end.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microamps
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/health
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the health of the battery or battery side of charger
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: "Unknown", "Good", "Overheat", "Dead",
|
||||||
|
"Over voltage", "Unspecified failure", "Cold",
|
||||||
|
"Watchdog timer expire", "Safety timer expire",
|
||||||
|
"Over current", "Warm", "Cool", "Hot"
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/precharge_current
|
||||||
|
Date: June 2017
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the charging current applied during pre-charging phase
|
||||||
|
for a battery charge cycle.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microamps
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/present
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports whether a battery is present or not in the system.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values:
|
||||||
|
0: Absent
|
||||||
|
1: Present
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/status
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Represents the charging status of the battery. Normally this
|
||||||
|
is read-only reporting although for some supplies this can be
|
||||||
|
used to enable/disable charging to the battery.
|
||||||
|
|
||||||
|
Access: Read, Write
|
||||||
|
Valid values: "Unknown", "Charging", "Discharging",
|
||||||
|
"Not charging", "Full"
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/technology
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Describes the battery technology supported by the supply.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: "Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe",
|
||||||
|
"NiCd", "LiMn"
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the current TBAT battery temperature reading.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp_alert_max
|
||||||
|
Date: July 2012
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Maximum TBAT temperature trip-wire value where the supply will
|
||||||
|
notify user-space of the event. This is normally used for the
|
||||||
|
battery charging scenario where user-space needs to know the
|
||||||
|
battery temperature has crossed an upper threshold so it can
|
||||||
|
take appropriate action (e.g. warning user that battery level is
|
||||||
|
critically high, and charging has stopped).
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp_alert_min
|
||||||
|
Date: July 2012
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Minimum TBAT temperature trip-wire value where the supply will
|
||||||
|
notify user-space of the event. This is normally used for the
|
||||||
|
battery charging scenario where user-space needs to know the
|
||||||
|
battery temperature has crossed a lower threshold so it can take
|
||||||
|
appropriate action (e.g. warning user that battery level is
|
||||||
|
high, and charging current has been reduced accordingly to
|
||||||
|
remedy the situation).
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp_max
|
||||||
|
Date: July 2014
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the maximum allowed TBAT battery temperature for
|
||||||
|
charging.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp_min
|
||||||
|
Date: July 2014
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the minimum allowed TBAT battery temperature for
|
||||||
|
charging.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/voltage_avg,
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports an average VBAT voltage reading for the battery, over a
|
||||||
|
fixed period. Normally devices will provide a fixed interval in
|
||||||
|
which they average readings to smooth out the reported value.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microvolts
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/voltage_max,
|
||||||
|
Date: January 2008
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the maximum safe VBAT voltage permitted for the battery,
|
||||||
|
during charging.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microvolts
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/voltage_min,
|
||||||
|
Date: January 2008
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the minimum safe VBAT voltage permitted for the battery,
|
||||||
|
during discharging.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microvolts
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/voltage_now,
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports an instant, single VBAT voltage reading for the battery.
|
||||||
|
This value is not averaged/smoothed.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microvolts
|
||||||
|
|
||||||
|
===== USB Properties =====
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/current_avg
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports an average IBUS current reading over a fixed period.
|
||||||
|
Normally devices will provide a fixed interval in which they
|
||||||
|
average readings to smooth out the reported value.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microamps
|
||||||
|
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/current_max
|
||||||
|
Date: October 2010
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the maximum IBUS current the supply can support.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microamps
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/current_now
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the IBUS current supplied now. This value is generally
|
||||||
|
read-only reporting, unless the 'online' state of the supply
|
||||||
|
is set to be programmable, in which case this value can be set
|
||||||
|
within the reported min/max range.
|
||||||
|
|
||||||
|
Access: Read, Write
|
||||||
|
Valid values: Represented in microamps
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/input_current_limit
|
||||||
|
Date: July 2014
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Details the incoming IBUS current limit currently set in the
|
||||||
|
supply. Normally this is configured based on the type of
|
||||||
|
connection made (e.g. A configured SDP should output a maximum
|
||||||
|
of 500mA so the input current limit is set to the same value).
|
||||||
|
|
||||||
|
Access: Read, Write
|
||||||
|
Valid values: Represented in microamps
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/online,
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Indicates if VBUS is present for the supply. When the supply is
|
||||||
|
online, and the supply allows it, then it's possible to switch
|
||||||
|
between online states (e.g. Fixed -> Programmable for a PD_PPS
|
||||||
|
USB supply so voltage and current can be controlled).
|
||||||
|
|
||||||
|
Access: Read, Write
|
||||||
|
Valid values:
|
||||||
|
0: Offline
|
||||||
|
1: Online Fixed - Fixed Voltage Supply
|
||||||
|
2: Online Programmable - Programmable Voltage Supply
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the current supply temperature reading. This would
|
||||||
|
normally be the internal temperature of the device itself (e.g
|
||||||
|
TJUNC temperature of an IC)
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp_alert_max
|
||||||
|
Date: July 2012
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Maximum supply temperature trip-wire value where the supply will
|
||||||
|
notify user-space of the event. This is normally used for the
|
||||||
|
charging scenario where user-space needs to know the supply
|
||||||
|
temperature has crossed an upper threshold so it can take
|
||||||
|
appropriate action (e.g. warning user that the supply
|
||||||
|
temperature is critically high, and charging has stopped to
|
||||||
|
remedy the situation).
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp_alert_min
|
||||||
|
Date: July 2012
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Minimum supply temperature trip-wire value where the supply will
|
||||||
|
notify user-space of the event. This is normally used for the
|
||||||
|
charging scenario where user-space needs to know the supply
|
||||||
|
temperature has crossed a lower threshold so it can take
|
||||||
|
appropriate action (e.g. warning user that the supply
|
||||||
|
temperature is high, and charging current has been reduced
|
||||||
|
accordingly to remedy the situation).
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp_max
|
||||||
|
Date: July 2014
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the maximum allowed supply temperature for operation.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/temp_min
|
||||||
|
Date: July 2014
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the mainimum allowed supply temperature for operation.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in 1/10 Degrees Celsius
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/usb_type
|
||||||
|
Date: March 2018
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports what type of USB connection is currently active for
|
||||||
|
the supply, for example it can show if USB-PD capable source
|
||||||
|
is attached.
|
||||||
|
|
||||||
|
Access: Read-Only
|
||||||
|
Valid values: "Unknown", "SDP", "DCP", "CDP", "ACA", "C", "PD",
|
||||||
|
"PD_DRP", "PD_PPS", "BrickID"
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/voltage_max
|
||||||
|
Date: January 2008
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the maximum VBUS voltage the supply can support.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microvolts
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/voltage_min
|
||||||
|
Date: January 2008
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the minimum VBUS voltage the supply can support.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
Valid values: Represented in microvolts
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/<supply_name>/voltage_now
|
||||||
|
Date: May 2007
|
||||||
|
Contact: linux-pm@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reports the VBUS voltage supplied now. This value is generally
|
||||||
|
read-only reporting, unless the 'online' state of the supply
|
||||||
|
is set to be programmable, in which case this value can be set
|
||||||
|
within the reported min/max range.
|
||||||
|
|
||||||
|
Access: Read, Write
|
||||||
|
Valid values: Represented in microvolts
|
||||||
|
|
||||||
|
===== Device Specific Properties =====
|
||||||
|
|
||||||
What: /sys/class/power/ds2760-battery.*/charge_now
|
What: /sys/class/power/ds2760-battery.*/charge_now
|
||||||
Date: May 2010
|
Date: May 2010
|
||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
|
|||||||
@@ -323,3 +323,18 @@ What: /sys/fs/f2fs/<disk>/mounted_time_sec
|
|||||||
Date: February 2020
|
Date: February 2020
|
||||||
Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
|
Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
|
||||||
Description: Show the mounted time in secs of this partition.
|
Description: Show the mounted time in secs of this partition.
|
||||||
|
|
||||||
|
What: /sys/fs/f2fs/<disk>/data_io_flag
|
||||||
|
Date: April 2020
|
||||||
|
Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
|
||||||
|
Description: Give a way to attach REQ_META|FUA to data writes
|
||||||
|
given temperature-based bits. Now the bits indicate:
|
||||||
|
* REQ_META | REQ_FUA |
|
||||||
|
* 5 | 4 | 3 | 2 | 1 | 0 |
|
||||||
|
* Cold | Warm | Hot | Cold | Warm | Hot |
|
||||||
|
|
||||||
|
What: /sys/fs/f2fs/<disk>/iostat_period_ms
|
||||||
|
Date: April 2020
|
||||||
|
Contact: "Daeho Jeong" <daehojeong@google.com>
|
||||||
|
Description: Give a way to change iostat_period time. 3secs by default.
|
||||||
|
The new iostat trace gives stats gap given the period.
|
||||||
|
|||||||
@@ -54,6 +54,9 @@ If you make a mistake with the syntax, the write will fail thus::
|
|||||||
<debugfs>/dynamic_debug/control
|
<debugfs>/dynamic_debug/control
|
||||||
-bash: echo: write error: Invalid argument
|
-bash: echo: write error: Invalid argument
|
||||||
|
|
||||||
|
Note, for systems without 'debugfs' enabled, the control file can be
|
||||||
|
found in ``/proc/dynamic_debug/control``.
|
||||||
|
|
||||||
Viewing Dynamic Debug Behaviour
|
Viewing Dynamic Debug Behaviour
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
|
|||||||
@@ -137,6 +137,10 @@
|
|||||||
dynamic table installation which will install SSDT
|
dynamic table installation which will install SSDT
|
||||||
tables to /sys/firmware/acpi/tables/dynamic.
|
tables to /sys/firmware/acpi/tables/dynamic.
|
||||||
|
|
||||||
|
acpi_no_watchdog [HW,ACPI,WDT]
|
||||||
|
Ignore the ACPI-based watchdog interface (WDAT) and let
|
||||||
|
a native driver control the watchdog device instead.
|
||||||
|
|
||||||
acpi_rsdp= [ACPI,EFI,KEXEC]
|
acpi_rsdp= [ACPI,EFI,KEXEC]
|
||||||
Pass the RSDP address to the kernel, mostly used
|
Pass the RSDP address to the kernel, mostly used
|
||||||
on machines running EFI runtime service to boot the
|
on machines running EFI runtime service to boot the
|
||||||
@@ -1867,6 +1871,12 @@
|
|||||||
Built with CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y,
|
Built with CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y,
|
||||||
the default is off.
|
the default is off.
|
||||||
|
|
||||||
|
kpti= [ARM64] Control page table isolation of user
|
||||||
|
and kernel address spaces.
|
||||||
|
Default: enabled on cores which need mitigation.
|
||||||
|
0: force disabled
|
||||||
|
1: force enabled
|
||||||
|
|
||||||
kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.
|
kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.
|
||||||
Default is 0 (don't ignore, but inject #GP)
|
Default is 0 (don't ignore, but inject #GP)
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,15 @@ The AArch64 Tagged Address ABI has two stages of relaxation depending
|
|||||||
how the user addresses are used by the kernel:
|
how the user addresses are used by the kernel:
|
||||||
|
|
||||||
1. User addresses not accessed by the kernel but used for address space
|
1. User addresses not accessed by the kernel but used for address space
|
||||||
management (e.g. ``mmap()``, ``mprotect()``, ``madvise()``). The use
|
management (e.g. ``mprotect()``, ``madvise()``). The use of valid
|
||||||
of valid tagged pointers in this context is always allowed.
|
tagged pointers in this context is allowed with the exception of
|
||||||
|
``brk()``, ``mmap()`` and the ``new_address`` argument to
|
||||||
|
``mremap()`` as these have the potential to alias with existing
|
||||||
|
user addresses.
|
||||||
|
|
||||||
|
NOTE: This behaviour changed in v5.6 and so some earlier kernels may
|
||||||
|
incorrectly accept valid tagged pointers for the ``brk()``,
|
||||||
|
``mmap()`` and ``mremap()`` system calls.
|
||||||
|
|
||||||
2. User addresses accessed by the kernel (e.g. ``write()``). This ABI
|
2. User addresses accessed by the kernel (e.g. ``write()``). This ABI
|
||||||
relaxation is disabled by default and the application thread needs to
|
relaxation is disabled by default and the application thread needs to
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ data-integrity.txt
|
|||||||
- Block data integrity
|
- Block data integrity
|
||||||
deadline-iosched.txt
|
deadline-iosched.txt
|
||||||
- Deadline IO scheduler tunables
|
- Deadline IO scheduler tunables
|
||||||
|
inline-encryption.rst
|
||||||
|
- Blk-crypto internals and inline encryption
|
||||||
ioprio.txt
|
ioprio.txt
|
||||||
- Block io priorities (in CFQ scheduler)
|
- Block io priorities (in CFQ scheduler)
|
||||||
pr.txt
|
pr.txt
|
||||||
|
|||||||
26
Documentation/block/index.rst
Normal file
26
Documentation/block/index.rst
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
=====
|
||||||
|
Block
|
||||||
|
=====
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
bfq-iosched
|
||||||
|
biodoc
|
||||||
|
biovecs
|
||||||
|
capability
|
||||||
|
cmdline-partition
|
||||||
|
data-integrity
|
||||||
|
deadline-iosched
|
||||||
|
inline-encryption
|
||||||
|
ioprio
|
||||||
|
kyber-iosched
|
||||||
|
null_blk
|
||||||
|
pr
|
||||||
|
queue-sysfs
|
||||||
|
request
|
||||||
|
stat
|
||||||
|
switching-sched
|
||||||
|
writeback_cache_control
|
||||||
183
Documentation/block/inline-encryption.rst
Normal file
183
Documentation/block/inline-encryption.rst
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
=================
|
||||||
|
Inline Encryption
|
||||||
|
=================
|
||||||
|
|
||||||
|
Objective
|
||||||
|
=========
|
||||||
|
|
||||||
|
We want to support inline encryption (IE) in the kernel.
|
||||||
|
To allow for testing, we also want a crypto API fallback when actual
|
||||||
|
IE hardware is absent. We also want IE to work with layered devices
|
||||||
|
like dm and loopback (i.e. we want to be able to use the IE hardware
|
||||||
|
of the underlying devices if present, or else fall back to crypto API
|
||||||
|
en/decryption).
|
||||||
|
|
||||||
|
|
||||||
|
Constraints and notes
|
||||||
|
=====================
|
||||||
|
|
||||||
|
- IE hardware have a limited number of "keyslots" that can be programmed
|
||||||
|
with an encryption context (key, algorithm, data unit size, etc.) at any time.
|
||||||
|
One can specify a keyslot in a data request made to the device, and the
|
||||||
|
device will en/decrypt the data using the encryption context programmed into
|
||||||
|
that specified keyslot. When possible, we want to make multiple requests with
|
||||||
|
the same encryption context share the same keyslot.
|
||||||
|
|
||||||
|
- We need a way for filesystems to specify an encryption context to use for
|
||||||
|
en/decrypting a struct bio, and a device driver (like UFS) needs to be able
|
||||||
|
to use that encryption context when it processes the bio.
|
||||||
|
|
||||||
|
- We need a way for device drivers to expose their capabilities in a unified
|
||||||
|
way to the upper layers.
|
||||||
|
|
||||||
|
|
||||||
|
Design
|
||||||
|
======
|
||||||
|
|
||||||
|
We add a struct bio_crypt_ctx to struct bio that can represent an
|
||||||
|
encryption context, because we need to be able to pass this encryption
|
||||||
|
context from the FS layer to the device driver to act upon.
|
||||||
|
|
||||||
|
While IE hardware works on the notion of keyslots, the FS layer has no
|
||||||
|
knowledge of keyslots - it simply wants to specify an encryption context to
|
||||||
|
use while en/decrypting a bio.
|
||||||
|
|
||||||
|
We introduce a keyslot manager (KSM) that handles the translation from
|
||||||
|
encryption contexts specified by the FS to keyslots on the IE hardware.
|
||||||
|
This KSM also serves as the way IE hardware can expose their capabilities to
|
||||||
|
upper layers. The generic mode of operation is: each device driver that wants
|
||||||
|
to support IE will construct a KSM and set it up in its struct request_queue.
|
||||||
|
Upper layers that want to use IE on this device can then use this KSM in
|
||||||
|
the device's struct request_queue to translate an encryption context into
|
||||||
|
a keyslot. The presence of the KSM in the request queue shall be used to mean
|
||||||
|
that the device supports IE.
|
||||||
|
|
||||||
|
On the device driver end of the interface, the device driver needs to tell the
|
||||||
|
KSM how to actually manipulate the IE hardware in the device to do things like
|
||||||
|
programming the crypto key into the IE hardware into a particular keyslot. All
|
||||||
|
this is achieved through the :c:type:`struct keyslot_mgmt_ll_ops` that the
|
||||||
|
device driver passes to the KSM when creating it.
|
||||||
|
|
||||||
|
It uses refcounts to track which keyslots are idle (either they have no
|
||||||
|
encryption context programmed, or there are no in-flight struct bios
|
||||||
|
referencing that keyslot). When a new encryption context needs a keyslot, it
|
||||||
|
tries to find a keyslot that has already been programmed with the same
|
||||||
|
encryption context, and if there is no such keyslot, it evicts the least
|
||||||
|
recently used idle keyslot and programs the new encryption context into that
|
||||||
|
one. If no idle keyslots are available, then the caller will sleep until there
|
||||||
|
is at least one.
|
||||||
|
|
||||||
|
|
||||||
|
Blk-crypto
|
||||||
|
==========
|
||||||
|
|
||||||
|
The above is sufficient for simple cases, but does not work if there is a
|
||||||
|
need for a crypto API fallback, or if we are want to use IE with layered
|
||||||
|
devices. To these ends, we introduce blk-crypto. Blk-crypto allows us to
|
||||||
|
present a unified view of encryption to the FS (so FS only needs to specify
|
||||||
|
an encryption context and not worry about keyslots at all), and blk-crypto
|
||||||
|
can decide whether to delegate the en/decryption to IE hardware or to the
|
||||||
|
crypto API. Blk-crypto maintains an internal KSM that serves as the crypto
|
||||||
|
API fallback.
|
||||||
|
|
||||||
|
Blk-crypto needs to ensure that the encryption context is programmed into the
|
||||||
|
"correct" keyslot manager for IE. If a bio is submitted to a layered device
|
||||||
|
that eventually passes the bio down to a device that really does support IE, we
|
||||||
|
want the encryption context to be programmed into a keyslot for the KSM of the
|
||||||
|
device with IE support. However, blk-crypto does not know a priori whether a
|
||||||
|
particular device is the final device in the layering structure for a bio or
|
||||||
|
not. So in the case that a particular device does not support IE, since it is
|
||||||
|
possibly the final destination device for the bio, if the bio requires
|
||||||
|
encryption (i.e. the bio is doing a write operation), blk-crypto must fallback
|
||||||
|
to the crypto API *before* sending the bio to the device.
|
||||||
|
|
||||||
|
Blk-crypto ensures that:
|
||||||
|
|
||||||
|
- The bio's encryption context is programmed into a keyslot in the KSM of the
|
||||||
|
request queue that the bio is being submitted to (or the crypto API fallback
|
||||||
|
KSM if the request queue doesn't have a KSM), and that the ``bc_ksm``
|
||||||
|
in the ``bi_crypt_context`` is set to this KSM
|
||||||
|
|
||||||
|
- That the bio has its own individual reference to the keyslot in this KSM.
|
||||||
|
Once the bio passes through blk-crypto, its encryption context is programmed
|
||||||
|
in some KSM. The "its own individual reference to the keyslot" ensures that
|
||||||
|
keyslots can be released by each bio independently of other bios while
|
||||||
|
ensuring that the bio has a valid reference to the keyslot when, for e.g., the
|
||||||
|
crypto API fallback KSM in blk-crypto performs crypto on the device's behalf.
|
||||||
|
The individual references are ensured by increasing the refcount for the
|
||||||
|
keyslot in the ``bc_ksm`` when a bio with a programmed encryption
|
||||||
|
context is cloned.
|
||||||
|
|
||||||
|
|
||||||
|
What blk-crypto does on bio submission
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
**Case 1:** blk-crypto is given a bio with only an encryption context that hasn't
|
||||||
|
been programmed into any keyslot in any KSM (for e.g. a bio from the FS).
|
||||||
|
In this case, blk-crypto will program the encryption context into the KSM of the
|
||||||
|
request queue the bio is being submitted to (and if this KSM does not exist,
|
||||||
|
then it will program it into blk-crypto's internal KSM for crypto API
|
||||||
|
fallback). The KSM that this encryption context was programmed into is stored
|
||||||
|
as the ``bc_ksm`` in the bio's ``bi_crypt_context``.
|
||||||
|
|
||||||
|
**Case 2:** blk-crypto is given a bio whose encryption context has already been
|
||||||
|
programmed into a keyslot in the *crypto API fallback* KSM.
|
||||||
|
In this case, blk-crypto does nothing; it treats the bio as not having
|
||||||
|
specified an encryption context. Note that we cannot do here what we will do
|
||||||
|
in Case 3 because we would have already encrypted the bio via the crypto API
|
||||||
|
by this point.
|
||||||
|
|
||||||
|
**Case 3:** blk-crypto is given a bio whose encryption context has already been
|
||||||
|
programmed into a keyslot in some KSM (that is *not* the crypto API fallback
|
||||||
|
KSM).
|
||||||
|
In this case, blk-crypto first releases that keyslot from that KSM and then
|
||||||
|
treats the bio as in Case 1.
|
||||||
|
|
||||||
|
This way, when a device driver is processing a bio, it can be sure that
|
||||||
|
the bio's encryption context has been programmed into some KSM (either the
|
||||||
|
device driver's request queue's KSM, or blk-crypto's crypto API fallback KSM).
|
||||||
|
It then simply needs to check if the bio's ``bc_ksm`` is the device's
|
||||||
|
request queue's KSM. If so, then it should proceed with IE. If not, it should
|
||||||
|
simply do nothing with respect to crypto, because some other KSM (perhaps the
|
||||||
|
blk-crypto crypto API fallback KSM) is handling the en/decryption.
|
||||||
|
|
||||||
|
Blk-crypto will release the keyslot that is being held by the bio (and also
|
||||||
|
decrypt it if the bio is using the crypto API fallback KSM) once
|
||||||
|
``bio_remaining_done`` returns true for the bio.
|
||||||
|
|
||||||
|
|
||||||
|
Layered Devices
|
||||||
|
===============
|
||||||
|
|
||||||
|
Layered devices that wish to support IE need to create their own keyslot
|
||||||
|
manager for their request queue, and expose whatever functionality they choose.
|
||||||
|
When a layered device wants to pass a bio to another layer (either by
|
||||||
|
resubmitting the same bio, or by submitting a clone), it doesn't need to do
|
||||||
|
anything special because the bio (or the clone) will once again pass through
|
||||||
|
blk-crypto, which will work as described in Case 3. If a layered device wants
|
||||||
|
for some reason to do the IO by itself instead of passing it on to a child
|
||||||
|
device, but it also chose to expose IE capabilities by setting up a KSM in its
|
||||||
|
request queue, it is then responsible for en/decrypting the data itself. In
|
||||||
|
such cases, the device can choose to call the blk-crypto function
|
||||||
|
``blk_crypto_fallback_to_kernel_crypto_api`` (TODO: Not yet implemented), which will
|
||||||
|
cause the en/decryption to be done via the crypto API fallback.
|
||||||
|
|
||||||
|
|
||||||
|
Future Optimizations for layered devices
|
||||||
|
========================================
|
||||||
|
|
||||||
|
Creating a keyslot manager for the layered device uses up memory for each
|
||||||
|
keyslot, and in general, a layered device (like dm-linear) merely passes the
|
||||||
|
request on to a "child" device, so the keyslots in the layered device itself
|
||||||
|
might be completely unused. We can instead define a new type of KSM; the
|
||||||
|
"passthrough KSM", that layered devices can use to let blk-crypto know that
|
||||||
|
this layered device *will* pass the bio to some child device (and hence
|
||||||
|
through blk-crypto again, at which point blk-crypto can program the encryption
|
||||||
|
context, instead of programming it into the layered device's KSM). Again, if
|
||||||
|
the device "lies" and decides to do the IO itself instead of passing it on to
|
||||||
|
a child device, it is responsible for doing the en/decryption (and can choose
|
||||||
|
to call ``blk_crypto_fallback_to_kernel_crypto_api``). Another use case for the
|
||||||
|
"passthrough KSM" is for IE devices that want to manage their own keyslots/do
|
||||||
|
not have a limited number of keyslots.
|
||||||
@@ -12,19 +12,31 @@ To achieve this goal it does not collect coverage in soft/hard interrupts
|
|||||||
and instrumentation of some inherently non-deterministic parts of kernel is
|
and instrumentation of some inherently non-deterministic parts of kernel is
|
||||||
disabled (e.g. scheduler, locking).
|
disabled (e.g. scheduler, locking).
|
||||||
|
|
||||||
Usage
|
kcov is also able to collect comparison operands from the instrumented code
|
||||||
-----
|
(this feature currently requires that the kernel is compiled with clang).
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
-------------
|
||||||
|
|
||||||
Configure the kernel with::
|
Configure the kernel with::
|
||||||
|
|
||||||
CONFIG_KCOV=y
|
CONFIG_KCOV=y
|
||||||
|
|
||||||
CONFIG_KCOV requires gcc built on revision 231296 or later.
|
CONFIG_KCOV requires gcc built on revision 231296 or later.
|
||||||
|
|
||||||
|
If the comparison operands need to be collected, set::
|
||||||
|
|
||||||
|
CONFIG_KCOV_ENABLE_COMPARISONS=y
|
||||||
|
|
||||||
Profiling data will only become accessible once debugfs has been mounted::
|
Profiling data will only become accessible once debugfs has been mounted::
|
||||||
|
|
||||||
mount -t debugfs none /sys/kernel/debug
|
mount -t debugfs none /sys/kernel/debug
|
||||||
|
|
||||||
The following program demonstrates kcov usage from within a test program:
|
Coverage collection
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The following program demonstrates coverage collection from within a test
|
||||||
|
program using kcov:
|
||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
@@ -44,6 +56,9 @@ The following program demonstrates kcov usage from within a test program:
|
|||||||
#define KCOV_DISABLE _IO('c', 101)
|
#define KCOV_DISABLE _IO('c', 101)
|
||||||
#define COVER_SIZE (64<<10)
|
#define COVER_SIZE (64<<10)
|
||||||
|
|
||||||
|
#define KCOV_TRACE_PC 0
|
||||||
|
#define KCOV_TRACE_CMP 1
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
@@ -64,7 +79,7 @@ The following program demonstrates kcov usage from within a test program:
|
|||||||
if ((void*)cover == MAP_FAILED)
|
if ((void*)cover == MAP_FAILED)
|
||||||
perror("mmap"), exit(1);
|
perror("mmap"), exit(1);
|
||||||
/* Enable coverage collection on the current thread. */
|
/* Enable coverage collection on the current thread. */
|
||||||
if (ioctl(fd, KCOV_ENABLE, 0))
|
if (ioctl(fd, KCOV_ENABLE, KCOV_TRACE_PC))
|
||||||
perror("ioctl"), exit(1);
|
perror("ioctl"), exit(1);
|
||||||
/* Reset coverage from the tail of the ioctl() call. */
|
/* Reset coverage from the tail of the ioctl() call. */
|
||||||
__atomic_store_n(&cover[0], 0, __ATOMIC_RELAXED);
|
__atomic_store_n(&cover[0], 0, __ATOMIC_RELAXED);
|
||||||
@@ -111,3 +126,208 @@ The interface is fine-grained to allow efficient forking of test processes.
|
|||||||
That is, a parent process opens /sys/kernel/debug/kcov, enables trace mode,
|
That is, a parent process opens /sys/kernel/debug/kcov, enables trace mode,
|
||||||
mmaps coverage buffer and then forks child processes in a loop. Child processes
|
mmaps coverage buffer and then forks child processes in a loop. Child processes
|
||||||
only need to enable coverage (disable happens automatically on thread end).
|
only need to enable coverage (disable happens automatically on thread end).
|
||||||
|
|
||||||
|
Comparison operands collection
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Comparison operands collection is similar to coverage collection:
|
||||||
|
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
/* Same includes and defines as above. */
|
||||||
|
|
||||||
|
/* Number of 64-bit words per record. */
|
||||||
|
#define KCOV_WORDS_PER_CMP 4
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The format for the types of collected comparisons.
|
||||||
|
*
|
||||||
|
* Bit 0 shows whether one of the arguments is a compile-time constant.
|
||||||
|
* Bits 1 & 2 contain log2 of the argument size, up to 8 bytes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define KCOV_CMP_CONST (1 << 0)
|
||||||
|
#define KCOV_CMP_SIZE(n) ((n) << 1)
|
||||||
|
#define KCOV_CMP_MASK KCOV_CMP_SIZE(3)
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
uint64_t *cover, type, arg1, arg2, is_const, size;
|
||||||
|
unsigned long n, i;
|
||||||
|
|
||||||
|
fd = open("/sys/kernel/debug/kcov", O_RDWR);
|
||||||
|
if (fd == -1)
|
||||||
|
perror("open"), exit(1);
|
||||||
|
if (ioctl(fd, KCOV_INIT_TRACE, COVER_SIZE))
|
||||||
|
perror("ioctl"), exit(1);
|
||||||
|
/*
|
||||||
|
* Note that the buffer pointer is of type uint64_t*, because all
|
||||||
|
* the comparison operands are promoted to uint64_t.
|
||||||
|
*/
|
||||||
|
cover = (uint64_t *)mmap(NULL, COVER_SIZE * sizeof(unsigned long),
|
||||||
|
PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||||
|
if ((void*)cover == MAP_FAILED)
|
||||||
|
perror("mmap"), exit(1);
|
||||||
|
/* Note KCOV_TRACE_CMP instead of KCOV_TRACE_PC. */
|
||||||
|
if (ioctl(fd, KCOV_ENABLE, KCOV_TRACE_CMP))
|
||||||
|
perror("ioctl"), exit(1);
|
||||||
|
__atomic_store_n(&cover[0], 0, __ATOMIC_RELAXED);
|
||||||
|
read(-1, NULL, 0);
|
||||||
|
/* Read number of comparisons collected. */
|
||||||
|
n = __atomic_load_n(&cover[0], __ATOMIC_RELAXED);
|
||||||
|
for (i = 0; i < n; i++) {
|
||||||
|
type = cover[i * KCOV_WORDS_PER_CMP + 1];
|
||||||
|
/* arg1 and arg2 - operands of the comparison. */
|
||||||
|
arg1 = cover[i * KCOV_WORDS_PER_CMP + 2];
|
||||||
|
arg2 = cover[i * KCOV_WORDS_PER_CMP + 3];
|
||||||
|
/* ip - caller address. */
|
||||||
|
ip = cover[i * KCOV_WORDS_PER_CMP + 4];
|
||||||
|
/* size of the operands. */
|
||||||
|
size = 1 << ((type & KCOV_CMP_MASK) >> 1);
|
||||||
|
/* is_const - true if either operand is a compile-time constant.*/
|
||||||
|
is_const = type & KCOV_CMP_CONST;
|
||||||
|
printf("ip: 0x%lx type: 0x%lx, arg1: 0x%lx, arg2: 0x%lx, "
|
||||||
|
"size: %lu, %s\n",
|
||||||
|
ip, type, arg1, arg2, size,
|
||||||
|
is_const ? "const" : "non-const");
|
||||||
|
}
|
||||||
|
if (ioctl(fd, KCOV_DISABLE, 0))
|
||||||
|
perror("ioctl"), exit(1);
|
||||||
|
/* Free resources. */
|
||||||
|
if (munmap(cover, COVER_SIZE * sizeof(unsigned long)))
|
||||||
|
perror("munmap"), exit(1);
|
||||||
|
if (close(fd))
|
||||||
|
perror("close"), exit(1);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Note that the kcov modes (coverage collection or comparison operands) are
|
||||||
|
mutually exclusive.
|
||||||
|
|
||||||
|
Remote coverage collection
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
With KCOV_ENABLE coverage is collected only for syscalls that are issued
|
||||||
|
from the current process. With KCOV_REMOTE_ENABLE it's possible to collect
|
||||||
|
coverage for arbitrary parts of the kernel code, provided that those parts
|
||||||
|
are annotated with kcov_remote_start()/kcov_remote_stop().
|
||||||
|
|
||||||
|
This allows to collect coverage from two types of kernel background
|
||||||
|
threads: the global ones, that are spawned during kernel boot in a limited
|
||||||
|
number of instances (e.g. one USB hub_event() worker thread is spawned per
|
||||||
|
USB HCD); and the local ones, that are spawned when a user interacts with
|
||||||
|
some kernel interface (e.g. vhost workers).
|
||||||
|
|
||||||
|
To enable collecting coverage from a global background thread, a unique
|
||||||
|
global handle must be assigned and passed to the corresponding
|
||||||
|
kcov_remote_start() call. Then a userspace process can pass a list of such
|
||||||
|
handles to the KCOV_REMOTE_ENABLE ioctl in the handles array field of the
|
||||||
|
kcov_remote_arg struct. This will attach the used kcov device to the code
|
||||||
|
sections, that are referenced by those handles.
|
||||||
|
|
||||||
|
Since there might be many local background threads spawned from different
|
||||||
|
userspace processes, we can't use a single global handle per annotation.
|
||||||
|
Instead, the userspace process passes a non-zero handle through the
|
||||||
|
common_handle field of the kcov_remote_arg struct. This common handle gets
|
||||||
|
saved to the kcov_handle field in the current task_struct and needs to be
|
||||||
|
passed to the newly spawned threads via custom annotations. Those threads
|
||||||
|
should in turn be annotated with kcov_remote_start()/kcov_remote_stop().
|
||||||
|
|
||||||
|
Internally kcov stores handles as u64 integers. The top byte of a handle
|
||||||
|
is used to denote the id of a subsystem that this handle belongs to, and
|
||||||
|
the lower 4 bytes are used to denote the id of a thread instance within
|
||||||
|
that subsystem. A reserved value 0 is used as a subsystem id for common
|
||||||
|
handles as they don't belong to a particular subsystem. The bytes 4-7 are
|
||||||
|
currently reserved and must be zero. In the future the number of bytes
|
||||||
|
used for the subsystem or handle ids might be increased.
|
||||||
|
|
||||||
|
When a particular userspace proccess collects coverage by via a common
|
||||||
|
handle, kcov will collect coverage for each code section that is annotated
|
||||||
|
to use the common handle obtained as kcov_handle from the current
|
||||||
|
task_struct. However non common handles allow to collect coverage
|
||||||
|
selectively from different subsystems.
|
||||||
|
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
struct kcov_remote_arg {
|
||||||
|
__u32 trace_mode;
|
||||||
|
__u32 area_size;
|
||||||
|
__u32 num_handles;
|
||||||
|
__aligned_u64 common_handle;
|
||||||
|
__aligned_u64 handles[0];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
|
||||||
|
#define KCOV_DISABLE _IO('c', 101)
|
||||||
|
#define KCOV_REMOTE_ENABLE _IOW('c', 102, struct kcov_remote_arg)
|
||||||
|
|
||||||
|
#define COVER_SIZE (64 << 10)
|
||||||
|
|
||||||
|
#define KCOV_TRACE_PC 0
|
||||||
|
|
||||||
|
#define KCOV_SUBSYSTEM_COMMON (0x00ull << 56)
|
||||||
|
#define KCOV_SUBSYSTEM_USB (0x01ull << 56)
|
||||||
|
|
||||||
|
#define KCOV_SUBSYSTEM_MASK (0xffull << 56)
|
||||||
|
#define KCOV_INSTANCE_MASK (0xffffffffull)
|
||||||
|
|
||||||
|
static inline __u64 kcov_remote_handle(__u64 subsys, __u64 inst)
|
||||||
|
{
|
||||||
|
if (subsys & ~KCOV_SUBSYSTEM_MASK || inst & ~KCOV_INSTANCE_MASK)
|
||||||
|
return 0;
|
||||||
|
return subsys | inst;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define KCOV_COMMON_ID 0x42
|
||||||
|
#define KCOV_USB_BUS_NUM 1
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
unsigned long *cover, n, i;
|
||||||
|
struct kcov_remote_arg *arg;
|
||||||
|
|
||||||
|
fd = open("/sys/kernel/debug/kcov", O_RDWR);
|
||||||
|
if (fd == -1)
|
||||||
|
perror("open"), exit(1);
|
||||||
|
if (ioctl(fd, KCOV_INIT_TRACE, COVER_SIZE))
|
||||||
|
perror("ioctl"), exit(1);
|
||||||
|
cover = (unsigned long*)mmap(NULL, COVER_SIZE * sizeof(unsigned long),
|
||||||
|
PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||||
|
if ((void*)cover == MAP_FAILED)
|
||||||
|
perror("mmap"), exit(1);
|
||||||
|
|
||||||
|
/* Enable coverage collection via common handle and from USB bus #1. */
|
||||||
|
arg = calloc(1, sizeof(*arg) + sizeof(uint64_t));
|
||||||
|
if (!arg)
|
||||||
|
perror("calloc"), exit(1);
|
||||||
|
arg->trace_mode = KCOV_TRACE_PC;
|
||||||
|
arg->area_size = COVER_SIZE;
|
||||||
|
arg->num_handles = 1;
|
||||||
|
arg->common_handle = kcov_remote_handle(KCOV_SUBSYSTEM_COMMON,
|
||||||
|
KCOV_COMMON_ID);
|
||||||
|
arg->handles[0] = kcov_remote_handle(KCOV_SUBSYSTEM_USB,
|
||||||
|
KCOV_USB_BUS_NUM);
|
||||||
|
if (ioctl(fd, KCOV_REMOTE_ENABLE, arg))
|
||||||
|
perror("ioctl"), free(arg), exit(1);
|
||||||
|
free(arg);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Here the user needs to trigger execution of a kernel code section
|
||||||
|
* that is either annotated with the common handle, or to trigger some
|
||||||
|
* activity on USB bus #1.
|
||||||
|
*/
|
||||||
|
sleep(2);
|
||||||
|
|
||||||
|
n = __atomic_load_n(&cover[0], __ATOMIC_RELAXED);
|
||||||
|
for (i = 0; i < n; i++)
|
||||||
|
printf("0x%lx\n", cover[i + 1]);
|
||||||
|
if (ioctl(fd, KCOV_DISABLE, 0))
|
||||||
|
perror("ioctl"), exit(1);
|
||||||
|
if (munmap(cover, COVER_SIZE * sizeof(unsigned long)))
|
||||||
|
perror("munmap"), exit(1);
|
||||||
|
if (close(fd))
|
||||||
|
perror("close"), exit(1);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|||||||
@@ -110,6 +110,13 @@ PROPERTIES
|
|||||||
Usage: required
|
Usage: required
|
||||||
Definition: See soc/fsl/qman.txt and soc/fsl/bman.txt
|
Definition: See soc/fsl/qman.txt and soc/fsl/bman.txt
|
||||||
|
|
||||||
|
- fsl,erratum-a050385
|
||||||
|
Usage: optional
|
||||||
|
Value type: boolean
|
||||||
|
Definition: A boolean property. Indicates the presence of the
|
||||||
|
erratum A050385 which indicates that DMA transactions that are
|
||||||
|
split can result in a FMan lock.
|
||||||
|
|
||||||
=============================================================================
|
=============================================================================
|
||||||
FMan MURAM Node
|
FMan MURAM Node
|
||||||
|
|
||||||
|
|||||||
@@ -292,8 +292,22 @@ files' data differently, inode numbers are included in the IVs.
|
|||||||
Consequently, shrinking the filesystem may not be allowed.
|
Consequently, shrinking the filesystem may not be allowed.
|
||||||
|
|
||||||
This format is optimized for use with inline encryption hardware
|
This format is optimized for use with inline encryption hardware
|
||||||
compliant with the UFS or eMMC standards, which support only 64 IV
|
compliant with the UFS standard, which supports only 64 IV bits per
|
||||||
bits per I/O request and may have only a small number of keyslots.
|
I/O request and may have only a small number of keyslots.
|
||||||
|
|
||||||
|
IV_INO_LBLK_32 policies
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
IV_INO_LBLK_32 policies work like IV_INO_LBLK_64, except that for
|
||||||
|
IV_INO_LBLK_32, the inode number is hashed with SipHash-2-4 (where the
|
||||||
|
SipHash key is derived from the master key) and added to the file
|
||||||
|
logical block number mod 2^32 to produce a 32-bit IV.
|
||||||
|
|
||||||
|
This format is optimized for use with inline encryption hardware
|
||||||
|
compliant with the eMMC v5.2 standard, which supports only 32 IV bits
|
||||||
|
per I/O request and may have only a small number of keyslots. This
|
||||||
|
format results in some level of IV reuse, so it should only be used
|
||||||
|
when necessary due to hardware limitations.
|
||||||
|
|
||||||
Key identifiers
|
Key identifiers
|
||||||
---------------
|
---------------
|
||||||
@@ -369,6 +383,10 @@ a little endian number, except that:
|
|||||||
to 32 bits and is placed in bits 0-31 of the IV. The inode number
|
to 32 bits and is placed in bits 0-31 of the IV. The inode number
|
||||||
(which is also limited to 32 bits) is placed in bits 32-63.
|
(which is also limited to 32 bits) is placed in bits 32-63.
|
||||||
|
|
||||||
|
- With `IV_INO_LBLK_32 policies`_, the logical block number is limited
|
||||||
|
to 32 bits and is placed in bits 0-31 of the IV. The inode number
|
||||||
|
is then hashed and added mod 2^32.
|
||||||
|
|
||||||
Note that because file logical block numbers are included in the IVs,
|
Note that because file logical block numbers are included in the IVs,
|
||||||
filesystems must enforce that blocks are never shifted around within
|
filesystems must enforce that blocks are never shifted around within
|
||||||
encrypted files, e.g. via "collapse range" or "insert range".
|
encrypted files, e.g. via "collapse range" or "insert range".
|
||||||
@@ -465,8 +483,15 @@ This structure must be initialized as follows:
|
|||||||
(0x3).
|
(0x3).
|
||||||
- FSCRYPT_POLICY_FLAG_DIRECT_KEY: See `DIRECT_KEY policies`_.
|
- FSCRYPT_POLICY_FLAG_DIRECT_KEY: See `DIRECT_KEY policies`_.
|
||||||
- FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64: See `IV_INO_LBLK_64
|
- FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64: See `IV_INO_LBLK_64
|
||||||
policies`_. This is mutually exclusive with DIRECT_KEY and is not
|
policies`_.
|
||||||
supported on v1 policies.
|
- FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32: See `IV_INO_LBLK_32
|
||||||
|
policies`_.
|
||||||
|
|
||||||
|
v1 encryption policies only support the PAD_* and DIRECT_KEY flags.
|
||||||
|
The other flags are only supported by v2 encryption policies.
|
||||||
|
|
||||||
|
The DIRECT_KEY, IV_INO_LBLK_64, and IV_INO_LBLK_32 flags are
|
||||||
|
mutually exclusive.
|
||||||
|
|
||||||
- For v2 encryption policies, ``__reserved`` must be zeroed.
|
- For v2 encryption policies, ``__reserved`` must be zeroed.
|
||||||
|
|
||||||
|
|||||||
@@ -606,3 +606,10 @@ in your dentry operations instead.
|
|||||||
dentry separately, and it now has request_mask and query_flags arguments
|
dentry separately, and it now has request_mask and query_flags arguments
|
||||||
to specify the fields and sync type requested by statx. Filesystems not
|
to specify the fields and sync type requested by statx. Filesystems not
|
||||||
supporting any statx-specific features may ignore the new arguments.
|
supporting any statx-specific features may ignore the new arguments.
|
||||||
|
--
|
||||||
|
[mandatory]
|
||||||
|
|
||||||
|
[should've been added in 2016] stale comment in finish_open()
|
||||||
|
nonwithstanding, failure exits in ->atomic_open() instances should
|
||||||
|
*NOT* fput() the file, no matter what. Everything is handled by the
|
||||||
|
caller.
|
||||||
|
|||||||
@@ -8,3 +8,4 @@ HD-Audio
|
|||||||
models
|
models
|
||||||
controls
|
controls
|
||||||
dp-mst
|
dp-mst
|
||||||
|
realtek-pc-beep
|
||||||
|
|||||||
129
Documentation/sound/hd-audio/realtek-pc-beep.rst
Normal file
129
Documentation/sound/hd-audio/realtek-pc-beep.rst
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
===============================
|
||||||
|
Realtek PC Beep Hidden Register
|
||||||
|
===============================
|
||||||
|
|
||||||
|
This file documents the "PC Beep Hidden Register", which is present in certain
|
||||||
|
Realtek HDA codecs and controls a muxer and pair of passthrough mixers that can
|
||||||
|
route audio between pins but aren't themselves exposed as HDA widgets. As far
|
||||||
|
as I can tell, these hidden routes are designed to allow flexible PC Beep output
|
||||||
|
for codecs that don't have mixer widgets in their output paths. Why it's easier
|
||||||
|
to hide a mixer behind an undocumented vendor register than to just expose it
|
||||||
|
as a widget, I have no idea.
|
||||||
|
|
||||||
|
Register Description
|
||||||
|
====================
|
||||||
|
|
||||||
|
The register is accessed via processing coefficient 0x36 on NID 20h. Bits not
|
||||||
|
identified below have no discernible effect on my machine, a Dell XPS 13 9350::
|
||||||
|
|
||||||
|
MSB LSB
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| |h|S|L| | B |R| | Known bits
|
||||||
|
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||||
|
|0|0|1|1| 0x7 |0|0x0|1| 0x7 | Reset value
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
|
||||||
|
1Ah input select (B): 2 bits
|
||||||
|
When zero, expose the PC Beep line (from the internal beep generator, when
|
||||||
|
enabled with the Set Beep Generation verb on NID 01h, or else from the
|
||||||
|
external PCBEEP pin) on the 1Ah pin node. When nonzero, expose the headphone
|
||||||
|
jack (or possibly Line In on some machines) input instead. If PC Beep is
|
||||||
|
selected, the 1Ah boost control has no effect.
|
||||||
|
|
||||||
|
Amplify 1Ah loopback, left (L): 1 bit
|
||||||
|
Amplify the left channel of 1Ah before mixing it into outputs as specified
|
||||||
|
by h and S bits. Does not affect the level of 1Ah exposed to other widgets.
|
||||||
|
|
||||||
|
Amplify 1Ah loopback, right (R): 1 bit
|
||||||
|
Amplify the right channel of 1Ah before mixing it into outputs as specified
|
||||||
|
by h and S bits. Does not affect the level of 1Ah exposed to other widgets.
|
||||||
|
|
||||||
|
Loopback 1Ah to 21h [active low] (h): 1 bit
|
||||||
|
When zero, mix 1Ah (possibly with amplification, depending on L and R bits)
|
||||||
|
into 21h (headphone jack on my machine). Mixed signal respects the mute
|
||||||
|
setting on 21h.
|
||||||
|
|
||||||
|
Loopback 1Ah to 14h (S): 1 bit
|
||||||
|
When one, mix 1Ah (possibly with amplification, depending on L and R bits)
|
||||||
|
into 14h (internal speaker on my machine). Mixed signal **ignores** the mute
|
||||||
|
setting on 14h and is present whenever 14h is configured as an output.
|
||||||
|
|
||||||
|
Path diagrams
|
||||||
|
=============
|
||||||
|
|
||||||
|
1Ah input selection (DIV is the PC Beep divider set on NID 01h)::
|
||||||
|
|
||||||
|
<Beep generator> <PCBEEP pin> <Headphone jack>
|
||||||
|
| | |
|
||||||
|
+--DIV--+--!DIV--+ {1Ah boost control}
|
||||||
|
| |
|
||||||
|
+--(b == 0)--+--(b != 0)--+
|
||||||
|
|
|
||||||
|
>1Ah (Beep/Headphone Mic/Line In)<
|
||||||
|
|
||||||
|
Loopback of 1Ah to 21h/14h::
|
||||||
|
|
||||||
|
<1Ah (Beep/Headphone Mic/Line In)>
|
||||||
|
|
|
||||||
|
{amplify if L/R}
|
||||||
|
|
|
||||||
|
+-----!h-----+-----S-----+
|
||||||
|
| |
|
||||||
|
{21h mute control} |
|
||||||
|
| |
|
||||||
|
>21h (Headphone)< >14h (Internal Speaker)<
|
||||||
|
|
||||||
|
Background
|
||||||
|
==========
|
||||||
|
|
||||||
|
All Realtek HDA codecs have a vendor-defined widget with node ID 20h which
|
||||||
|
provides access to a bank of registers that control various codec functions.
|
||||||
|
Registers are read and written via the standard HDA processing coefficient
|
||||||
|
verbs (Set/Get Coefficient Index, Set/Get Processing Coefficient). The node is
|
||||||
|
named "Realtek Vendor Registers" in public datasheets' verb listings and,
|
||||||
|
apart from that, is entirely undocumented.
|
||||||
|
|
||||||
|
This particular register, exposed at coefficient 0x36 and named in commits from
|
||||||
|
Realtek, is of note: unlike most registers, which seem to control detailed
|
||||||
|
amplifier parameters not in scope of the HDA specification, it controls audio
|
||||||
|
routing which could just as easily have been defined using standard HDA mixer
|
||||||
|
and selector widgets.
|
||||||
|
|
||||||
|
Specifically, it selects between two sources for the input pin widget with Node
|
||||||
|
ID (NID) 1Ah: the widget's signal can come either from an audio jack (on my
|
||||||
|
laptop, a Dell XPS 13 9350, it's the headphone jack, but comments in Realtek
|
||||||
|
commits indicate that it might be a Line In on some machines) or from the PC
|
||||||
|
Beep line (which is itself multiplexed between the codec's internal beep
|
||||||
|
generator and external PCBEEP pin, depending on if the beep generator is
|
||||||
|
enabled via verbs on NID 01h). Additionally, it can mix (with optional
|
||||||
|
amplification) that signal onto the 21h and/or 14h output pins.
|
||||||
|
|
||||||
|
The register's reset value is 0x3717, corresponding to PC Beep on 1Ah that is
|
||||||
|
then amplified and mixed into both the headphones and the speakers. Not only
|
||||||
|
does this violate the HDA specification, which says that "[a vendor defined
|
||||||
|
beep input pin] connection may be maintained *only* while the Link reset
|
||||||
|
(**RST#**) is asserted", it means that we cannot ignore the register if we care
|
||||||
|
about the input that 1Ah would otherwise expose or if the PCBEEP trace is
|
||||||
|
poorly shielded and picks up chassis noise (both of which are the case on my
|
||||||
|
machine).
|
||||||
|
|
||||||
|
Unfortunately, there are lots of ways to get this register configuration wrong.
|
||||||
|
Linux, it seems, has gone through most of them. For one, the register resets
|
||||||
|
after S3 suspend: judging by existing code, this isn't the case for all vendor
|
||||||
|
registers, and it's led to some fixes that improve behavior on cold boot but
|
||||||
|
don't last after suspend. Other fixes have successfully switched the 1Ah input
|
||||||
|
away from PC Beep but have failed to disable both loopback paths. On my
|
||||||
|
machine, this means that the headphone input is amplified and looped back to
|
||||||
|
the headphone output, which uses the exact same pins! As you might expect, this
|
||||||
|
causes terrible headphone noise, the character of which is controlled by the
|
||||||
|
1Ah boost control. (If you've seen instructions online to fix XPS 13 headphone
|
||||||
|
noise by changing "Headphone Mic Boost" in ALSA, now you know why.)
|
||||||
|
|
||||||
|
The information here has been obtained through black-box reverse engineering of
|
||||||
|
the ALC256 codec's behavior and is not guaranteed to be correct. It likely
|
||||||
|
also applies for the ALC255, ALC257, ALC235, and ALC236, since those codecs
|
||||||
|
seem to be close relatives of the ALC256. (They all share one initialization
|
||||||
|
function.) Additionally, other codecs like the ALC225 and ALC285 also have this
|
||||||
|
register, judging by existing fixups in ``patch_realtek.c``, but specific
|
||||||
|
data (e.g. node IDs, bit positions, pin mappings) for those codecs may differ
|
||||||
|
from what I've described here.
|
||||||
@@ -678,8 +678,7 @@ allowed to execute.
|
|||||||
perf_event_paranoid:
|
perf_event_paranoid:
|
||||||
|
|
||||||
Controls use of the performance events system by unprivileged
|
Controls use of the performance events system by unprivileged
|
||||||
users (without CAP_SYS_ADMIN). The default value is 3 if
|
users (without CAP_SYS_ADMIN). The default value is 2.
|
||||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT is set, or 2 otherwise.
|
|
||||||
|
|
||||||
-1: Allow use of (almost) all events by all users
|
-1: Allow use of (almost) all events by all users
|
||||||
Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
|
Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
|
||||||
@@ -687,7 +686,6 @@ CONFIG_SECURITY_PERF_EVENTS_RESTRICT is set, or 2 otherwise.
|
|||||||
Disallow raw tracepoint access by users without CAP_SYS_ADMIN
|
Disallow raw tracepoint access by users without CAP_SYS_ADMIN
|
||||||
>=1: Disallow CPU event access by users without CAP_SYS_ADMIN
|
>=1: Disallow CPU event access by users without CAP_SYS_ADMIN
|
||||||
>=2: Disallow kernel profiling by users without CAP_SYS_ADMIN
|
>=2: Disallow kernel profiling by users without CAP_SYS_ADMIN
|
||||||
>=3: Disallow all event access by users without CAP_SYS_ADMIN
|
|
||||||
|
|
||||||
==============================================================
|
==============================================================
|
||||||
|
|
||||||
|
|||||||
84
Documentation/usb/raw-gadget.rst
Normal file
84
Documentation/usb/raw-gadget.rst
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
==============
|
||||||
|
USB Raw Gadget
|
||||||
|
==============
|
||||||
|
|
||||||
|
USB Raw Gadget is a kernel module that provides a userspace interface for
|
||||||
|
the USB Gadget subsystem. Essentially it allows to emulate USB devices
|
||||||
|
from userspace. Enabled with CONFIG_USB_RAW_GADGET. Raw Gadget is
|
||||||
|
currently a strictly debugging feature and shouldn't be used in
|
||||||
|
production, use GadgetFS instead.
|
||||||
|
|
||||||
|
Comparison to GadgetFS
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Raw Gadget is similar to GadgetFS, but provides a more low-level and
|
||||||
|
direct access to the USB Gadget layer for the userspace. The key
|
||||||
|
differences are:
|
||||||
|
|
||||||
|
1. Every USB request is passed to the userspace to get a response, while
|
||||||
|
GadgetFS responds to some USB requests internally based on the provided
|
||||||
|
descriptors. However note, that the UDC driver might respond to some
|
||||||
|
requests on its own and never forward them to the Gadget layer.
|
||||||
|
|
||||||
|
2. GadgetFS performs some sanity checks on the provided USB descriptors,
|
||||||
|
while Raw Gadget allows you to provide arbitrary data as responses to
|
||||||
|
USB requests.
|
||||||
|
|
||||||
|
3. Raw Gadget provides a way to select a UDC device/driver to bind to,
|
||||||
|
while GadgetFS currently binds to the first available UDC.
|
||||||
|
|
||||||
|
4. Raw Gadget explicitly exposes information about endpoints addresses and
|
||||||
|
capabilities allowing a user to write UDC-agnostic gadgets.
|
||||||
|
|
||||||
|
5. Raw Gadget has ioctl-based interface instead of a filesystem-based one.
|
||||||
|
|
||||||
|
Userspace interface
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
To create a Raw Gadget instance open /dev/raw-gadget. Multiple raw-gadget
|
||||||
|
instances (bound to different UDCs) can be used at the same time. The
|
||||||
|
interaction with the opened file happens through the ioctl() calls, see
|
||||||
|
comments in include/uapi/linux/usb/raw_gadget.h for details.
|
||||||
|
|
||||||
|
The typical usage of Raw Gadget looks like:
|
||||||
|
|
||||||
|
1. Open Raw Gadget instance via /dev/raw-gadget.
|
||||||
|
2. Initialize the instance via USB_RAW_IOCTL_INIT.
|
||||||
|
3. Launch the instance with USB_RAW_IOCTL_RUN.
|
||||||
|
4. In a loop issue USB_RAW_IOCTL_EVENT_FETCH calls to receive events from
|
||||||
|
Raw Gadget and react to those depending on what kind of USB device
|
||||||
|
needs to be emulated.
|
||||||
|
|
||||||
|
Note, that some UDC drivers have fixed addresses assigned to endpoints, and
|
||||||
|
therefore arbitrary endpoint addresses can't be used in the descriptors.
|
||||||
|
Nevertheles, Raw Gadget provides a UDC-agnostic way to write USB gadgets.
|
||||||
|
Once a USB_RAW_EVENT_CONNECT event is received via USB_RAW_IOCTL_EVENT_FETCH,
|
||||||
|
the USB_RAW_IOCTL_EPS_INFO ioctl can be used to find out information about
|
||||||
|
endpoints that the UDC driver has. Based on that information, the user must
|
||||||
|
chose UDC endpoints that will be used for the gadget being emulated, and
|
||||||
|
properly assign addresses in endpoint descriptors.
|
||||||
|
|
||||||
|
You can find usage examples (along with a test suite) here:
|
||||||
|
|
||||||
|
https://github.com/xairy/raw-gadget
|
||||||
|
|
||||||
|
Internal details
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Currently every endpoint read/write ioctl submits a USB request and waits until
|
||||||
|
its completion. This is the desired mode for coverage-guided fuzzing (as we'd
|
||||||
|
like all USB request processing happen during the lifetime of a syscall),
|
||||||
|
and must be kept in the implementation. (This might be slow for real world
|
||||||
|
applications, thus the O_NONBLOCK improvement suggestion below.)
|
||||||
|
|
||||||
|
Potential future improvements
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- Report more events (suspend, resume, etc.) through USB_RAW_IOCTL_EVENT_FETCH.
|
||||||
|
|
||||||
|
- Support O_NONBLOCK I/O.
|
||||||
|
|
||||||
|
- Support USB 3 features (accept SS endpoint companion descriptor when
|
||||||
|
enabling endpoints; allow providing stream_id for bulk transfers).
|
||||||
|
|
||||||
|
- Support ISO transfer features (expose frame_number for completed requests).
|
||||||
15
MAINTAINERS
15
MAINTAINERS
@@ -6899,7 +6899,7 @@ M: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
|
|||||||
M: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
M: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
||||||
L: intel-gfx@lists.freedesktop.org
|
L: intel-gfx@lists.freedesktop.org
|
||||||
W: https://01.org/linuxgraphics/
|
W: https://01.org/linuxgraphics/
|
||||||
B: https://01.org/linuxgraphics/documentation/how-report-bugs
|
B: https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
|
||||||
C: irc://chat.freenode.net/intel-gfx
|
C: irc://chat.freenode.net/intel-gfx
|
||||||
Q: http://patchwork.freedesktop.org/project/intel-gfx/
|
Q: http://patchwork.freedesktop.org/project/intel-gfx/
|
||||||
T: git git://anongit.freedesktop.org/drm-intel
|
T: git git://anongit.freedesktop.org/drm-intel
|
||||||
@@ -7886,6 +7886,13 @@ Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
|
|||||||
S: Supported
|
S: Supported
|
||||||
F: drivers/nvdimm/pmem*
|
F: drivers/nvdimm/pmem*
|
||||||
|
|
||||||
|
LIBNVDIMM: DEVICETREE BINDINGS
|
||||||
|
M: Oliver O'Halloran <oohall@gmail.com>
|
||||||
|
L: linux-nvdimm@lists.01.org
|
||||||
|
Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
|
||||||
|
S: Supported
|
||||||
|
F: drivers/nvdimm/of_pmem.c
|
||||||
|
|
||||||
LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM
|
LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM
|
||||||
M: Dan Williams <dan.j.williams@intel.com>
|
M: Dan Williams <dan.j.williams@intel.com>
|
||||||
L: linux-nvdimm@lists.01.org
|
L: linux-nvdimm@lists.01.org
|
||||||
@@ -9584,6 +9591,12 @@ S: Maintained
|
|||||||
F: Documentation/scsi/NinjaSCSI.txt
|
F: Documentation/scsi/NinjaSCSI.txt
|
||||||
F: drivers/scsi/nsp32*
|
F: drivers/scsi/nsp32*
|
||||||
|
|
||||||
|
NINTENDO HID DRIVER
|
||||||
|
M: Daniel J. Ogorchock <djogorchock@gmail.com>
|
||||||
|
L: linux-input@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
F: drivers/hid/hid-nintendo*
|
||||||
|
|
||||||
NIOS2 ARCHITECTURE
|
NIOS2 ARCHITECTURE
|
||||||
M: Ley Foon Tan <lftan@altera.com>
|
M: Ley Foon Tan <lftan@altera.com>
|
||||||
L: nios2-dev@lists.rocketboards.org (moderated for non-subscribers)
|
L: nios2-dev@lists.rocketboards.org (moderated for non-subscribers)
|
||||||
|
|||||||
47
Makefile
47
Makefile
@@ -1,7 +1,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
VERSION = 4
|
VERSION = 4
|
||||||
PATCHLEVEL = 14
|
PATCHLEVEL = 14
|
||||||
SUBLEVEL = 163
|
SUBLEVEL = 183
|
||||||
EXTRAVERSION =
|
EXTRAVERSION =
|
||||||
NAME = Petit Gorille
|
NAME = Petit Gorille
|
||||||
|
|
||||||
@@ -666,8 +666,7 @@ KBUILD_AFLAGS += $(call cc-option,-fno-PIE)
|
|||||||
CFLAGS_GCOV := -fprofile-arcs -ftest-coverage \
|
CFLAGS_GCOV := -fprofile-arcs -ftest-coverage \
|
||||||
$(call cc-option,-fno-tree-loop-im) \
|
$(call cc-option,-fno-tree-loop-im) \
|
||||||
$(call cc-disable-warning,maybe-uninitialized,)
|
$(call cc-disable-warning,maybe-uninitialized,)
|
||||||
CFLAGS_KCOV := $(call cc-option,-fsanitize-coverage=trace-pc,)
|
export CFLAGS_GCOV
|
||||||
export CFLAGS_GCOV CFLAGS_KCOV
|
|
||||||
|
|
||||||
# Make toolchain changes before including arch/$(SRCARCH)/Makefile to ensure
|
# Make toolchain changes before including arch/$(SRCARCH)/Makefile to ensure
|
||||||
# ar/cc/ld-* macros return correct values.
|
# ar/cc/ld-* macros return correct values.
|
||||||
@@ -701,20 +700,14 @@ KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
|
|||||||
KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias)
|
KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias)
|
||||||
|
|
||||||
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
|
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
|
||||||
KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
|
KBUILD_CFLAGS += -Os
|
||||||
else
|
|
||||||
ifdef CONFIG_PROFILE_ALL_BRANCHES
|
|
||||||
KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
|
|
||||||
else
|
else
|
||||||
KBUILD_CFLAGS += -O2
|
KBUILD_CFLAGS += -O2
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \
|
|
||||||
$(call cc-disable-warning,maybe-uninitialized,))
|
|
||||||
|
|
||||||
# Tell gcc to never replace conditional load with a non-conditional one
|
# Tell gcc to never replace conditional load with a non-conditional one
|
||||||
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
|
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
|
||||||
|
KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races)
|
||||||
|
|
||||||
# check for 'asm goto'
|
# check for 'asm goto'
|
||||||
ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y)
|
ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y)
|
||||||
@@ -722,6 +715,7 @@ ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLA
|
|||||||
KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
|
KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
include scripts/Makefile.kcov
|
||||||
include scripts/Makefile.gcc-plugins
|
include scripts/Makefile.gcc-plugins
|
||||||
|
|
||||||
ifdef CONFIG_READABLE_ASM
|
ifdef CONFIG_READABLE_ASM
|
||||||
@@ -877,7 +871,7 @@ LD_FLAGS_LTO_CLANG := -mllvm -import-instr-limit=5
|
|||||||
KBUILD_LDFLAGS += $(LD_FLAGS_LTO_CLANG)
|
KBUILD_LDFLAGS += $(LD_FLAGS_LTO_CLANG)
|
||||||
KBUILD_LDFLAGS_MODULE += $(LD_FLAGS_LTO_CLANG)
|
KBUILD_LDFLAGS_MODULE += $(LD_FLAGS_LTO_CLANG)
|
||||||
|
|
||||||
KBUILD_LDS_MODULE += $(srctree)/scripts/module-lto.lds
|
KBUILD_LDFLAGS_MODULE += -T scripts/module-lto.lds
|
||||||
|
|
||||||
# allow disabling only clang LTO where needed
|
# allow disabling only clang LTO where needed
|
||||||
DISABLE_LTO_CLANG := -fno-lto
|
DISABLE_LTO_CLANG := -fno-lto
|
||||||
@@ -885,11 +879,11 @@ export DISABLE_LTO_CLANG
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_LTO
|
ifdef CONFIG_LTO
|
||||||
lto-flags := $(lto-clang-flags)
|
LTO_CFLAGS := $(lto-clang-flags)
|
||||||
KBUILD_CFLAGS += $(lto-flags)
|
KBUILD_CFLAGS += $(LTO_CFLAGS)
|
||||||
|
|
||||||
DISABLE_LTO := $(DISABLE_LTO_CLANG)
|
DISABLE_LTO := $(DISABLE_LTO_CLANG)
|
||||||
export DISABLE_LTO
|
export LTO_CFLAGS DISABLE_LTO
|
||||||
|
|
||||||
# LDFINAL_vmlinux and LDFLAGS_FINAL_vmlinux can be set to override
|
# LDFINAL_vmlinux and LDFLAGS_FINAL_vmlinux can be set to override
|
||||||
# the linker and flags for vmlinux_link.
|
# the linker and flags for vmlinux_link.
|
||||||
@@ -915,12 +909,12 @@ endif
|
|||||||
|
|
||||||
ifdef CONFIG_CFI
|
ifdef CONFIG_CFI
|
||||||
# cfi-flags are re-tested in prepare-compiler-check
|
# cfi-flags are re-tested in prepare-compiler-check
|
||||||
cfi-flags := $(cfi-clang-flags)
|
CFI_CFLAGS := $(cfi-clang-flags)
|
||||||
KBUILD_CFLAGS += $(cfi-flags)
|
KBUILD_CFLAGS += $(CFI_CFLAGS)
|
||||||
|
|
||||||
DISABLE_CFI := $(DISABLE_CFI_CLANG)
|
DISABLE_CFI := $(DISABLE_CFI_CLANG)
|
||||||
DISABLE_LTO += $(DISABLE_CFI)
|
DISABLE_LTO += $(DISABLE_CFI)
|
||||||
export DISABLE_CFI
|
export CFI_CFLAGS DISABLE_CFI
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_SHADOW_CALL_STACK
|
ifdef CONFIG_SHADOW_CALL_STACK
|
||||||
@@ -942,6 +936,17 @@ KBUILD_CFLAGS += $(call cc-disable-warning, pointer-sign)
|
|||||||
# disable stringop warnings in gcc 8+
|
# disable stringop warnings in gcc 8+
|
||||||
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
||||||
|
|
||||||
|
# We'll want to enable this eventually, but it's not going away for 5.7 at least
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, zero-length-bounds)
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-overflow)
|
||||||
|
|
||||||
|
# Another good warning that we'll want to enable eventually
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, restrict)
|
||||||
|
|
||||||
|
# Enabled with W=2, disabled by default as noisy
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
|
||||||
|
|
||||||
# disable invalid "can't wrap" optimizations for signed / pointers
|
# disable invalid "can't wrap" optimizations for signed / pointers
|
||||||
KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
|
KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
|
||||||
|
|
||||||
@@ -1110,6 +1115,7 @@ ifdef CONFIG_STACK_VALIDATION
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
PHONY += prepare0
|
||||||
|
|
||||||
ifeq ($(KBUILD_EXTMOD),)
|
ifeq ($(KBUILD_EXTMOD),)
|
||||||
core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/
|
core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/
|
||||||
@@ -1204,8 +1210,7 @@ include/config/kernel.release: include/config/auto.conf FORCE
|
|||||||
# archprepare is used in arch Makefiles and when processed asm symlink,
|
# archprepare is used in arch Makefiles and when processed asm symlink,
|
||||||
# version.h and scripts_basic is processed / created.
|
# version.h and scripts_basic is processed / created.
|
||||||
|
|
||||||
# Listed in dependency order
|
PHONY += prepare archprepare prepare1 prepare2 prepare3
|
||||||
PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3
|
|
||||||
|
|
||||||
# prepare3 is used to check if we are building in a separate output directory,
|
# prepare3 is used to check if we are building in a separate output directory,
|
||||||
# and if so do:
|
# and if so do:
|
||||||
@@ -1258,7 +1263,7 @@ endif
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Disable clang-specific config options when using a different compiler
|
# Disable clang-specific config options when using a different compiler
|
||||||
clang-specific-configs := LTO_CLANG CFI_CLANG SHADOW_CALL_STACK
|
clang-specific-configs := LTO_CLANG CFI_CLANG SHADOW_CALL_STACK INIT_STACK_ALL
|
||||||
|
|
||||||
PHONY += check-clang-specific-options
|
PHONY += check-clang-specific-options
|
||||||
check-clang-specific-options: $(KCONFIG_CONFIG) FORCE
|
check-clang-specific-options: $(KCONFIG_CONFIG) FORCE
|
||||||
|
|||||||
@@ -650,7 +650,6 @@ config LTO_CLANG
|
|||||||
depends on !KASAN
|
depends on !KASAN
|
||||||
select LTO
|
select LTO
|
||||||
select THIN_ARCHIVES
|
select THIN_ARCHIVES
|
||||||
select LD_DEAD_CODE_DATA_ELIMINATION
|
|
||||||
help
|
help
|
||||||
This option enables clang's Link Time Optimization (LTO), which allows
|
This option enables clang's Link Time Optimization (LTO), which allows
|
||||||
the compiler to optimize the kernel globally at link time. If you
|
the compiler to optimize the kernel globally at link time. If you
|
||||||
|
|||||||
@@ -70,6 +70,7 @@
|
|||||||
interrupt-names = "macirq";
|
interrupt-names = "macirq";
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
snps,pbl = < 32 >;
|
snps,pbl = < 32 >;
|
||||||
|
snps,multicast-filter-bins = <256>;
|
||||||
clocks = <&apbclk>;
|
clocks = <&apbclk>;
|
||||||
clock-names = "stmmaceth";
|
clock-names = "stmmaceth";
|
||||||
max-speed = <100>;
|
max-speed = <100>;
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
#ifdef __ASSEMBLY__
|
#ifdef __ASSEMBLY__
|
||||||
|
|
||||||
#define ASM_NL ` /* use '`' to mark new line in macro */
|
#define ASM_NL ` /* use '`' to mark new line in macro */
|
||||||
|
#define __ALIGN .align 4
|
||||||
|
#define __ALIGN_STR __stringify(__ALIGN)
|
||||||
|
|
||||||
/* annotation for data we want in DCCM - if enabled in .config */
|
/* annotation for data we want in DCCM - if enabled in .config */
|
||||||
.macro ARCFP_DATA nm
|
.macro ARCFP_DATA nm
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
menuconfig ARC_PLAT_EZNPS
|
menuconfig ARC_PLAT_EZNPS
|
||||||
bool "\"EZchip\" ARC dev platform"
|
bool "\"EZchip\" ARC dev platform"
|
||||||
select CPU_BIG_ENDIAN
|
select CPU_BIG_ENDIAN
|
||||||
select CLKSRC_NPS
|
select CLKSRC_NPS if !PHYS_ADDR_T_64BIT
|
||||||
select EZNPS_GIC
|
select EZNPS_GIC
|
||||||
select EZCHIP_NPS_MANAGEMENT_ENET if ETHERNET
|
select EZCHIP_NPS_MANAGEMENT_ENET if ETHERNET
|
||||||
help
|
help
|
||||||
|
|||||||
@@ -1566,12 +1566,10 @@ config THUMB2_KERNEL
|
|||||||
bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY
|
bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY
|
||||||
depends on (CPU_V7 || CPU_V7M) && !CPU_V6 && !CPU_V6K
|
depends on (CPU_V7 || CPU_V7M) && !CPU_V6 && !CPU_V6K
|
||||||
default y if CPU_THUMBONLY
|
default y if CPU_THUMBONLY
|
||||||
select ARM_ASM_UNIFIED
|
|
||||||
select ARM_UNWIND
|
select ARM_UNWIND
|
||||||
help
|
help
|
||||||
By enabling this option, the kernel will be compiled in
|
By enabling this option, the kernel will be compiled in
|
||||||
Thumb-2 mode. A compiler/assembler that understand the unified
|
Thumb-2 mode.
|
||||||
ARM-Thumb syntax is needed.
|
|
||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
@@ -1606,9 +1604,6 @@ config THUMB2_AVOID_R_ARM_THM_JUMP11
|
|||||||
|
|
||||||
Unless you are sure your tools don't have this problem, say Y.
|
Unless you are sure your tools don't have this problem, say Y.
|
||||||
|
|
||||||
config ARM_ASM_UNIFIED
|
|
||||||
bool
|
|
||||||
|
|
||||||
config ARM_PATCH_IDIV
|
config ARM_PATCH_IDIV
|
||||||
bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()"
|
bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()"
|
||||||
depends on CPU_32v7 && !XIP_KERNEL
|
depends on CPU_32v7 && !XIP_KERNEL
|
||||||
@@ -2130,7 +2125,7 @@ config XIP_PHYS_ADDR
|
|||||||
config KEXEC
|
config KEXEC
|
||||||
bool "Kexec system call (EXPERIMENTAL)"
|
bool "Kexec system call (EXPERIMENTAL)"
|
||||||
depends on (!SMP || PM_SLEEP_SMP)
|
depends on (!SMP || PM_SLEEP_SMP)
|
||||||
depends on !CPU_V7M
|
depends on MMU
|
||||||
select KEXEC_CORE
|
select KEXEC_CORE
|
||||||
help
|
help
|
||||||
kexec is a system call that implements the ability to shutdown your
|
kexec is a system call that implements the ability to shutdown your
|
||||||
|
|||||||
@@ -129,9 +129,11 @@ ifeq ($(cc-name),clang)
|
|||||||
CFLAGS_ABI += -meabi gnu
|
CFLAGS_ABI += -meabi gnu
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Accept old syntax despite ".syntax unified"
|
||||||
|
AFLAGS_NOWARN :=$(call as-option,-Wa$(comma)-mno-warn-deprecated,-Wa$(comma)-W)
|
||||||
|
|
||||||
ifeq ($(CONFIG_THUMB2_KERNEL),y)
|
ifeq ($(CONFIG_THUMB2_KERNEL),y)
|
||||||
AFLAGS_AUTOIT :=$(call as-option,-Wa$(comma)-mimplicit-it=always,-Wa$(comma)-mauto-it)
|
AFLAGS_AUTOIT :=$(call as-option,-Wa$(comma)-mimplicit-it=always,-Wa$(comma)-mauto-it)
|
||||||
AFLAGS_NOWARN :=$(call as-option,-Wa$(comma)-mno-warn-deprecated,-Wa$(comma)-W)
|
|
||||||
CFLAGS_ISA :=-mthumb $(AFLAGS_AUTOIT) $(AFLAGS_NOWARN)
|
CFLAGS_ISA :=-mthumb $(AFLAGS_AUTOIT) $(AFLAGS_NOWARN)
|
||||||
AFLAGS_ISA :=$(CFLAGS_ISA) -Wa$(comma)-mthumb
|
AFLAGS_ISA :=$(CFLAGS_ISA) -Wa$(comma)-mthumb
|
||||||
# Work around buggy relocation from gas if requested:
|
# Work around buggy relocation from gas if requested:
|
||||||
@@ -139,7 +141,7 @@ ifeq ($(CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11),y)
|
|||||||
CFLAGS_MODULE +=-fno-optimize-sibling-calls
|
CFLAGS_MODULE +=-fno-optimize-sibling-calls
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
CFLAGS_ISA :=$(call cc-option,-marm,)
|
CFLAGS_ISA :=$(call cc-option,-marm,) $(AFLAGS_NOWARN)
|
||||||
AFLAGS_ISA :=$(CFLAGS_ISA)
|
AFLAGS_ISA :=$(CFLAGS_ISA)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -131,6 +131,11 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
memory@80000000 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x80000000 0x20000000>; /* 512 MB */
|
||||||
|
};
|
||||||
|
|
||||||
clk_mcasp0_fixed: clk_mcasp0_fixed {
|
clk_mcasp0_fixed: clk_mcasp0_fixed {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
lcd0: display {
|
lcd0: display {
|
||||||
compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
|
compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
|
||||||
label = "lcd";
|
label = "lcd";
|
||||||
|
|
||||||
panel-timing {
|
panel-timing {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
lcd0: display {
|
lcd0: display {
|
||||||
compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
|
compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
|
||||||
label = "lcd";
|
label = "lcd";
|
||||||
|
|
||||||
panel-timing {
|
panel-timing {
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
|
|
||||||
&pcie1_rc {
|
&pcie1_rc {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&pcie1_ep {
|
&pcie1_ep {
|
||||||
|
|||||||
@@ -32,6 +32,27 @@
|
|||||||
reg = <0x0 0x80000000 0x0 0x80000000>;
|
reg = <0x0 0x80000000 0x0 0x80000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
main_12v0: fixedregulator-main_12v0 {
|
||||||
|
/* main supply */
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "main_12v0";
|
||||||
|
regulator-min-microvolt = <12000000>;
|
||||||
|
regulator-max-microvolt = <12000000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
evm_5v0: fixedregulator-evm_5v0 {
|
||||||
|
/* Output of TPS54531D */
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "evm_5v0";
|
||||||
|
regulator-min-microvolt = <5000000>;
|
||||||
|
regulator-max-microvolt = <5000000>;
|
||||||
|
vin-supply = <&main_12v0>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
|
||||||
vdd_3v3: fixedregulator-vdd_3v3 {
|
vdd_3v3: fixedregulator-vdd_3v3 {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
regulator-name = "vdd_3v3";
|
regulator-name = "vdd_3v3";
|
||||||
|
|||||||
@@ -165,8 +165,8 @@
|
|||||||
mdio: mdio@18002000 {
|
mdio: mdio@18002000 {
|
||||||
compatible = "brcm,iproc-mdio";
|
compatible = "brcm,iproc-mdio";
|
||||||
reg = <0x18002000 0x8>;
|
reg = <0x18002000 0x8>;
|
||||||
#size-cells = <1>;
|
#size-cells = <0>;
|
||||||
#address-cells = <0>;
|
#address-cells = <1>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|
||||||
gphy0: ethernet-phy@0 {
|
gphy0: ethernet-phy@0 {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
leds {
|
leds {
|
||||||
act {
|
act {
|
||||||
gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -118,6 +118,7 @@
|
|||||||
&sdhci {
|
&sdhci {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
|
pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
|
||||||
mmc-pwrseq = <&wifi_pwrseq>;
|
mmc-pwrseq = <&wifi_pwrseq>;
|
||||||
non-removable;
|
non-removable;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
trips {
|
trips {
|
||||||
cpu-crit {
|
cpu-crit {
|
||||||
temperature = <80000>;
|
temperature = <90000>;
|
||||||
hysteresis = <0>;
|
hysteresis = <0>;
|
||||||
type = "critical";
|
type = "critical";
|
||||||
};
|
};
|
||||||
@@ -454,6 +454,7 @@
|
|||||||
"dsi0_ddr2",
|
"dsi0_ddr2",
|
||||||
"dsi0_ddr";
|
"dsi0_ddr";
|
||||||
|
|
||||||
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
thermal: thermal@7e212000 {
|
thermal: thermal@7e212000 {
|
||||||
|
|||||||
@@ -137,6 +137,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges = <0x0 0x0 0x0 0xc0000000>;
|
ranges = <0x0 0x0 0x0 0xc0000000>;
|
||||||
|
dma-ranges = <0x80000000 0x0 0x80000000 0x80000000>;
|
||||||
ti,hwmods = "l3_main_1", "l3_main_2";
|
ti,hwmods = "l3_main_1", "l3_main_2";
|
||||||
reg = <0x0 0x44000000 0x0 0x1000000>,
|
reg = <0x0 0x44000000 0x0 0x1000000>,
|
||||||
<0x0 0x45000000 0x0 0x1000>;
|
<0x0 0x45000000 0x0 0x1000>;
|
||||||
@@ -288,6 +289,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
ranges = <0x51000000 0x51000000 0x3000
|
ranges = <0x51000000 0x51000000 0x3000
|
||||||
0x0 0x20000000 0x10000000>;
|
0x0 0x20000000 0x10000000>;
|
||||||
|
dma-ranges;
|
||||||
/**
|
/**
|
||||||
* To enable PCI endpoint mode, disable the pcie1_rc
|
* To enable PCI endpoint mode, disable the pcie1_rc
|
||||||
* node and enable pcie1_ep mode.
|
* node and enable pcie1_ep mode.
|
||||||
@@ -345,6 +347,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
ranges = <0x51800000 0x51800000 0x3000
|
ranges = <0x51800000 0x51800000 0x3000
|
||||||
0x0 0x30000000 0x10000000>;
|
0x0 0x30000000 0x10000000>;
|
||||||
|
dma-ranges;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
pcie@51800000 {
|
pcie@51800000 {
|
||||||
compatible = "ti,dra7-pcie";
|
compatible = "ti,dra7-pcie";
|
||||||
|
|||||||
@@ -17,3 +17,8 @@
|
|||||||
&crossbar_mpu {
|
&crossbar_mpu {
|
||||||
ti,irqs-skip = <10 67 68 133 139 140>;
|
ti,irqs-skip = <10 67 68 133 139 140>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mmc3 {
|
||||||
|
/* dra76x is not affected by i887 */
|
||||||
|
max-frequency = <96000000>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -81,8 +81,8 @@
|
|||||||
imx27-phycard-s-rdk {
|
imx27-phycard-s-rdk {
|
||||||
pinctrl_i2c1: i2c1grp {
|
pinctrl_i2c1: i2c1grp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX27_PAD_I2C2_SDA__I2C2_SDA 0x0
|
MX27_PAD_I2C_DATA__I2C_DATA 0x0
|
||||||
MX27_PAD_I2C2_SCL__I2C2_SCL 0x0
|
MX27_PAD_I2C_CLK__I2C_CLK 0x0
|
||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -65,13 +65,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&clks {
|
|
||||||
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
|
||||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>;
|
|
||||||
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
|
|
||||||
<&clks IMX6QDL_CLK_PLL3_USB_OTG>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&ldb {
|
&ldb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
|
|||||||
@@ -65,13 +65,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&clks {
|
|
||||||
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
|
||||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>;
|
|
||||||
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
|
|
||||||
<&clks IMX6QDL_CLK_PLL3_USB_OTG>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&ldb {
|
&ldb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
|
|||||||
@@ -53,17 +53,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&clks {
|
|
||||||
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
|
||||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>,
|
|
||||||
<&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
|
|
||||||
<&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
|
|
||||||
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
|
|
||||||
<&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
|
|
||||||
<&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
|
|
||||||
<&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&ldb {
|
&ldb {
|
||||||
fsl,dual-channel;
|
fsl,dual-channel;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|||||||
@@ -92,6 +92,56 @@
|
|||||||
mux-int-port = <1>;
|
mux-int-port = <1>;
|
||||||
mux-ext-port = <4>;
|
mux-ext-port = <4>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
mdio-gpio0 = &mdio0;
|
||||||
|
};
|
||||||
|
|
||||||
|
mdio0: mdio-gpio {
|
||||||
|
compatible = "virtual,mdio-gpio";
|
||||||
|
gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>, /* mdc */
|
||||||
|
<&gpio2 7 GPIO_ACTIVE_HIGH>; /* mdio */
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
switch@0 {
|
||||||
|
compatible = "marvell,mv88e6085"; /* 88e6240*/
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
switch_ports: ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
mdio {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
switchphy0: switchphy@0 {
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
switchphy1: switchphy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
switchphy2: switchphy@2 {
|
||||||
|
reg = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
switchphy3: switchphy@3 {
|
||||||
|
reg = <3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
switchphy4: switchphy@4 {
|
||||||
|
reg = <4>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&ecspi5 {
|
&ecspi5 {
|
||||||
@@ -326,3 +376,30 @@
|
|||||||
tcxo-clock-frequency = <26000000>;
|
tcxo-clock-frequency = <26000000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&pcie {
|
||||||
|
/* Synopsys, Inc. Device */
|
||||||
|
pci_root: root@0,0 {
|
||||||
|
compatible = "pci16c3,abcd";
|
||||||
|
reg = <0x00000000 0 0 0 0>;
|
||||||
|
|
||||||
|
#address-cells = <3>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&clks {
|
||||||
|
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
||||||
|
<&clks IMX6QDL_CLK_LDB_DI1_SEL>,
|
||||||
|
<&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
|
||||||
|
<&clks IMX6QDL_CLK_IPU1_DI1_PRE_SEL>,
|
||||||
|
<&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>,
|
||||||
|
<&clks IMX6QDL_CLK_IPU2_DI1_PRE_SEL>;
|
||||||
|
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
|
||||||
|
<&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
|
||||||
|
<&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
|
||||||
|
<&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
|
||||||
|
<&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
|
||||||
|
<&clks IMX6QDL_CLK_PLL2_PFD0_352M>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -587,7 +587,7 @@
|
|||||||
pinctrl-0 = <&pinctrl_usdhc2>;
|
pinctrl-0 = <&pinctrl_usdhc2>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
|
cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
|
||||||
wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
|
disable-wp;
|
||||||
vmmc-supply = <®_3p3v_sd>;
|
vmmc-supply = <®_3p3v_sd>;
|
||||||
vqmmc-supply = <®_3p3v>;
|
vqmmc-supply = <®_3p3v>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -598,7 +598,7 @@
|
|||||||
pinctrl-0 = <&pinctrl_usdhc3>;
|
pinctrl-0 = <&pinctrl_usdhc3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
|
cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
|
||||||
wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
|
disable-wp;
|
||||||
vmmc-supply = <®_3p3v_sd>;
|
vmmc-supply = <®_3p3v_sd>;
|
||||||
vqmmc-supply = <®_3p3v>;
|
vqmmc-supply = <®_3p3v>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -1001,7 +1001,6 @@
|
|||||||
MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
|
MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
|
||||||
MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
|
MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
|
||||||
MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
|
MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
|
||||||
MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x40010040
|
|
||||||
MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x40010040
|
MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x40010040
|
||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
@@ -1014,7 +1013,6 @@
|
|||||||
MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
|
MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
|
||||||
MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
|
MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
|
||||||
MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
|
MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
|
||||||
MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x40010040
|
|
||||||
MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x40010040
|
MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x40010040
|
||||||
|
|
||||||
>;
|
>;
|
||||||
|
|||||||
@@ -49,8 +49,8 @@
|
|||||||
sd_reg: regulator@2 {
|
sd_reg: regulator@2 {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
regulator-name = "sd_reg";
|
regulator-name = "sd_reg";
|
||||||
regulator-min-microvolt = <1800000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <1800000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
gpio = <&gpio 5 5 0>;
|
gpio = <&gpio 5 5 0>;
|
||||||
enable-active-high;
|
enable-active-high;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -139,11 +139,11 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
clcd: clcd@31040000 {
|
clcd: clcd@31040000 {
|
||||||
compatible = "arm,pl110", "arm,primecell";
|
compatible = "arm,pl111", "arm,primecell";
|
||||||
reg = <0x31040000 0x1000>;
|
reg = <0x31040000 0x1000>;
|
||||||
interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&clk LPC32XX_CLK_LCD>;
|
clocks = <&clk LPC32XX_CLK_LCD>, <&clk LPC32XX_CLK_LCD>;
|
||||||
clock-names = "apb_pclk";
|
clock-names = "clcdclk", "apb_pclk";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -462,7 +462,9 @@
|
|||||||
key: key@40050000 {
|
key: key@40050000 {
|
||||||
compatible = "nxp,lpc3220-key";
|
compatible = "nxp,lpc3220-key";
|
||||||
reg = <0x40050000 0x1000>;
|
reg = <0x40050000 0x1000>;
|
||||||
interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
|
clocks = <&clk LPC32XX_CLK_KEY>;
|
||||||
|
interrupt-parent = <&sic1>;
|
||||||
|
interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -143,7 +143,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&enet0 {
|
&enet0 {
|
||||||
tbi-handle = <&tbi1>;
|
tbi-handle = <&tbi0>;
|
||||||
phy-handle = <&sgmii_phy2>;
|
phy-handle = <&sgmii_phy2>;
|
||||||
phy-connection-type = "sgmii";
|
phy-connection-type = "sgmii";
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -222,6 +222,13 @@
|
|||||||
sgmii_phy2: ethernet-phy@2 {
|
sgmii_phy2: ethernet-phy@2 {
|
||||||
reg = <0x2>;
|
reg = <0x2>;
|
||||||
};
|
};
|
||||||
|
tbi0: tbi-phy@1f {
|
||||||
|
reg = <0x1f>;
|
||||||
|
device_type = "tbi-phy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mdio1 {
|
||||||
tbi1: tbi-phy@1f {
|
tbi1: tbi-phy@1f {
|
||||||
reg = <0x1f>;
|
reg = <0x1f>;
|
||||||
device_type = "tbi-phy";
|
device_type = "tbi-phy";
|
||||||
|
|||||||
@@ -569,6 +569,15 @@
|
|||||||
reg = <0x0 0x2d24000 0x0 0x4000>;
|
reg = <0x0 0x2d24000 0x0 0x4000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mdio1: mdio@2d64000 {
|
||||||
|
compatible = "gianfar";
|
||||||
|
device_type = "mdio";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
reg = <0x0 0x2d64000 0x0 0x4000>,
|
||||||
|
<0x0 0x2d50030 0x0 0x4>;
|
||||||
|
};
|
||||||
|
|
||||||
ptp_clock@2d10e00 {
|
ptp_clock@2d10e00 {
|
||||||
compatible = "fsl,etsec-ptp";
|
compatible = "fsl,etsec-ptp";
|
||||||
reg = <0x0 0x2d10e00 0x0 0xb0>;
|
reg = <0x0 0x2d10e00 0x0 0xb0>;
|
||||||
|
|||||||
@@ -131,6 +131,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges = <0 0 0 0xc0000000>;
|
ranges = <0 0 0 0xc0000000>;
|
||||||
|
dma-ranges = <0x80000000 0x0 0x80000000 0x80000000>;
|
||||||
ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
|
ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
|
||||||
reg = <0 0x44000000 0 0x2000>,
|
reg = <0 0x44000000 0 0x2000>,
|
||||||
<0 0x44800000 0 0x3000>,
|
<0 0x44800000 0 0x3000>,
|
||||||
|
|||||||
@@ -322,8 +322,8 @@
|
|||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
reg = <0 0x200>;
|
reg = <0 0x200>;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
valid-mask = <0xFFFFFFFF>;
|
valid-mask = <0xffffffff>;
|
||||||
clear-mask = <0>;
|
clear-mask = <0xffffffff>;
|
||||||
};
|
};
|
||||||
|
|
||||||
timer0: timer@200 {
|
timer0: timer@200 {
|
||||||
|
|||||||
@@ -239,8 +239,8 @@
|
|||||||
reg = <0 0x200>;
|
reg = <0 0x200>;
|
||||||
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
valid-mask = <0xFFFFFFFF>;
|
valid-mask = <0xffffffff>;
|
||||||
clear-mask = <0>;
|
clear-mask = <0xffffffff>;
|
||||||
};
|
};
|
||||||
|
|
||||||
timer0: timer@200 {
|
timer0: timer@200 {
|
||||||
|
|||||||
@@ -133,7 +133,14 @@
|
|||||||
cmt1: timer@e6130000 {
|
cmt1: timer@e6130000 {
|
||||||
compatible = "renesas,cmt-48-r8a73a4", "renesas,cmt-48-gen2";
|
compatible = "renesas,cmt-48-r8a73a4", "renesas,cmt-48-gen2";
|
||||||
reg = <0 0xe6130000 0 0x1004>;
|
reg = <0 0xe6130000 0 0x1004>;
|
||||||
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&mstp3_clks R8A73A4_CLK_CMT1>;
|
clocks = <&mstp3_clks R8A73A4_CLK_CMT1>;
|
||||||
clock-names = "fck";
|
clock-names = "fck";
|
||||||
power-domains = <&pd_c5>;
|
power-domains = <&pd_c5>;
|
||||||
|
|||||||
@@ -467,7 +467,7 @@
|
|||||||
cpg_clocks: cpg_clocks@e6150000 {
|
cpg_clocks: cpg_clocks@e6150000 {
|
||||||
compatible = "renesas,r8a7740-cpg-clocks";
|
compatible = "renesas,r8a7740-cpg-clocks";
|
||||||
reg = <0xe6150000 0x10000>;
|
reg = <0xe6150000 0x10000>;
|
||||||
clocks = <&extal1_clk>, <&extalr_clk>;
|
clocks = <&extal1_clk>, <&extal2_clk>, <&extalr_clk>;
|
||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
clock-output-names = "system", "pllc0", "pllc1",
|
clock-output-names = "system", "pllc0", "pllc1",
|
||||||
"pllc2", "r",
|
"pllc2", "r",
|
||||||
|
|||||||
@@ -67,6 +67,14 @@
|
|||||||
<0xf0000100 0x100>;
|
<0xf0000100 0x100>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
timer@f0000200 {
|
||||||
|
compatible = "arm,cortex-a9-global-timer";
|
||||||
|
reg = <0xf0000200 0x100>;
|
||||||
|
interrupts = <GIC_PPI 11
|
||||||
|
(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
|
||||||
|
clocks = <&cpg_clocks R8A7779_CLK_ZS>;
|
||||||
|
};
|
||||||
|
|
||||||
timer@f0000600 {
|
timer@f0000600 {
|
||||||
compatible = "arm,cortex-a9-twd-timer";
|
compatible = "arm,cortex-a9-twd-timer";
|
||||||
reg = <0xf0000600 0x20>;
|
reg = <0xf0000600 0x20>;
|
||||||
|
|||||||
@@ -84,7 +84,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
phy: phy@0 {
|
phy: ethernet-phy@0 {
|
||||||
compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
|
compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
clocks = <&cru SCLK_MAC_PHY>;
|
clocks = <&cru SCLK_MAC_PHY>;
|
||||||
|
|||||||
@@ -950,7 +950,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
spi-0 {
|
spi0 {
|
||||||
spi0_clk: spi0-clk {
|
spi0_clk: spi0-clk {
|
||||||
rockchip,pins = <0 9 RK_FUNC_2 &pcfg_pull_up>;
|
rockchip,pins = <0 9 RK_FUNC_2 &pcfg_pull_up>;
|
||||||
};
|
};
|
||||||
@@ -968,7 +968,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
spi-1 {
|
spi1 {
|
||||||
spi1_clk: spi1-clk {
|
spi1_clk: spi1-clk {
|
||||||
rockchip,pins = <0 23 RK_FUNC_2 &pcfg_pull_up>;
|
rockchip,pins = <0 23 RK_FUNC_2 &pcfg_pull_up>;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1185,49 +1185,49 @@
|
|||||||
usart0_clk: usart0_clk {
|
usart0_clk: usart0_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <12>;
|
reg = <12>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
usart1_clk: usart1_clk {
|
usart1_clk: usart1_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <13>;
|
reg = <13>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
usart2_clk: usart2_clk {
|
usart2_clk: usart2_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <14>;
|
reg = <14>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
usart3_clk: usart3_clk {
|
usart3_clk: usart3_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <15>;
|
reg = <15>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
uart0_clk: uart0_clk {
|
uart0_clk: uart0_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <16>;
|
reg = <16>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
twi0_clk: twi0_clk {
|
twi0_clk: twi0_clk {
|
||||||
reg = <18>;
|
reg = <18>;
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
atmel,clk-output-range = <0 16625000>;
|
atmel,clk-output-range = <0 41500000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
twi1_clk: twi1_clk {
|
twi1_clk: twi1_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <19>;
|
reg = <19>;
|
||||||
atmel,clk-output-range = <0 16625000>;
|
atmel,clk-output-range = <0 41500000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
twi2_clk: twi2_clk {
|
twi2_clk: twi2_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <20>;
|
reg = <20>;
|
||||||
atmel,clk-output-range = <0 16625000>;
|
atmel,clk-output-range = <0 41500000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
mci0_clk: mci0_clk {
|
mci0_clk: mci0_clk {
|
||||||
@@ -1243,19 +1243,19 @@
|
|||||||
spi0_clk: spi0_clk {
|
spi0_clk: spi0_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <24>;
|
reg = <24>;
|
||||||
atmel,clk-output-range = <0 133000000>;
|
atmel,clk-output-range = <0 166000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
spi1_clk: spi1_clk {
|
spi1_clk: spi1_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <25>;
|
reg = <25>;
|
||||||
atmel,clk-output-range = <0 133000000>;
|
atmel,clk-output-range = <0 166000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
tcb0_clk: tcb0_clk {
|
tcb0_clk: tcb0_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <26>;
|
reg = <26>;
|
||||||
atmel,clk-output-range = <0 133000000>;
|
atmel,clk-output-range = <0 166000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
pwm_clk: pwm_clk {
|
pwm_clk: pwm_clk {
|
||||||
@@ -1266,7 +1266,7 @@
|
|||||||
adc_clk: adc_clk {
|
adc_clk: adc_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <29>;
|
reg = <29>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
dma0_clk: dma0_clk {
|
dma0_clk: dma0_clk {
|
||||||
@@ -1297,13 +1297,13 @@
|
|||||||
ssc0_clk: ssc0_clk {
|
ssc0_clk: ssc0_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <38>;
|
reg = <38>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
ssc1_clk: ssc1_clk {
|
ssc1_clk: ssc1_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <39>;
|
reg = <39>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
sha_clk: sha_clk {
|
sha_clk: sha_clk {
|
||||||
|
|||||||
@@ -37,13 +37,13 @@
|
|||||||
can0_clk: can0_clk {
|
can0_clk: can0_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <40>;
|
reg = <40>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
can1_clk: can1_clk {
|
can1_clk: can1_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <41>;
|
reg = <41>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
tcb1_clk: tcb1_clk {
|
tcb1_clk: tcb1_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <27>;
|
reg = <27>;
|
||||||
|
atmel,clk-output-range = <0 166000000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -42,13 +42,13 @@
|
|||||||
uart0_clk: uart0_clk {
|
uart0_clk: uart0_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <16>;
|
reg = <16>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
uart1_clk: uart1_clk {
|
uart1_clk: uart1_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
reg = <17>;
|
reg = <17>;
|
||||||
atmel,clk-output-range = <0 66000000>;
|
atmel,clk-output-range = <0 83000000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -71,6 +71,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&adc_12 {
|
&adc_12 {
|
||||||
|
vdda-supply = <&vdda>;
|
||||||
vref-supply = <&vdda>;
|
vref-supply = <&vdda>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
adc1: adc@0 {
|
adc1: adc@0 {
|
||||||
|
|||||||
@@ -90,7 +90,7 @@
|
|||||||
initial-mode = <1>; /* initialize in HUB mode */
|
initial-mode = <1>; /* initialize in HUB mode */
|
||||||
disabled-ports = <1>;
|
disabled-ports = <1>;
|
||||||
intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
||||||
reset-gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */
|
reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */
|
||||||
connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
|
connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
|
||||||
refclk-frequency = <19200000>;
|
refclk-frequency = <19200000>;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -79,6 +79,8 @@
|
|||||||
wifi_pwrseq: wifi_pwrseq {
|
wifi_pwrseq: wifi_pwrseq {
|
||||||
compatible = "mmc-pwrseq-simple";
|
compatible = "mmc-pwrseq-simple";
|
||||||
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
|
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
|
||||||
|
clocks = <&rtc 1>;
|
||||||
|
clock-names = "ext_clock";
|
||||||
};
|
};
|
||||||
|
|
||||||
sound_spdif {
|
sound_spdif {
|
||||||
@@ -128,6 +130,8 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&mmc1_pins_a>;
|
pinctrl-0 = <&mmc1_pins_a>;
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
vqmmc-supply = <®_vcc3v3>;
|
||||||
|
mmc-pwrseq = <&wifi_pwrseq>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
non-removable;
|
non-removable;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|||||||
@@ -379,7 +379,7 @@ static int __init nocache_trampoline(unsigned long _arg)
|
|||||||
unsigned int cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
|
unsigned int cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
|
||||||
phys_reset_t phys_reset;
|
phys_reset_t phys_reset;
|
||||||
|
|
||||||
mcpm_set_entry_vector(cpu, cluster, cpu_resume);
|
mcpm_set_entry_vector(cpu, cluster, cpu_resume_no_hyp);
|
||||||
setup_mm_for_reboot();
|
setup_mm_for_reboot();
|
||||||
|
|
||||||
__mcpm_cpu_going_down(cpu, cluster);
|
__mcpm_cpu_going_down(cpu, cluster);
|
||||||
|
|||||||
@@ -21,11 +21,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <asm/ptrace.h>
|
#include <asm/ptrace.h>
|
||||||
#include <asm/domain.h>
|
|
||||||
#include <asm/opcodes-virt.h>
|
#include <asm/opcodes-virt.h>
|
||||||
#include <asm/asm-offsets.h>
|
#include <asm/asm-offsets.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/thread_info.h>
|
#include <asm/thread_info.h>
|
||||||
|
#include <asm/uaccess-asm.h>
|
||||||
|
|
||||||
#define IOMEM(x) (x)
|
#define IOMEM(x) (x)
|
||||||
|
|
||||||
@@ -374,9 +374,9 @@ THUMB( orr \reg , \reg , #PSR_T_BIT )
|
|||||||
.macro usraccoff, instr, reg, ptr, inc, off, cond, abort, t=TUSER()
|
.macro usraccoff, instr, reg, ptr, inc, off, cond, abort, t=TUSER()
|
||||||
9999:
|
9999:
|
||||||
.if \inc == 1
|
.if \inc == 1
|
||||||
\instr\cond\()b\()\t\().w \reg, [\ptr, #\off]
|
\instr\()b\t\cond\().w \reg, [\ptr, #\off]
|
||||||
.elseif \inc == 4
|
.elseif \inc == 4
|
||||||
\instr\cond\()\t\().w \reg, [\ptr, #\off]
|
\instr\t\cond\().w \reg, [\ptr, #\off]
|
||||||
.else
|
.else
|
||||||
.error "Unsupported inc macro argument"
|
.error "Unsupported inc macro argument"
|
||||||
.endif
|
.endif
|
||||||
@@ -415,9 +415,9 @@ THUMB( orr \reg , \reg , #PSR_T_BIT )
|
|||||||
.rept \rept
|
.rept \rept
|
||||||
9999:
|
9999:
|
||||||
.if \inc == 1
|
.if \inc == 1
|
||||||
\instr\cond\()b\()\t \reg, [\ptr], #\inc
|
\instr\()b\t\cond \reg, [\ptr], #\inc
|
||||||
.elseif \inc == 4
|
.elseif \inc == 4
|
||||||
\instr\cond\()\t \reg, [\ptr], #\inc
|
\instr\t\cond \reg, [\ptr], #\inc
|
||||||
.else
|
.else
|
||||||
.error "Unsupported inc macro argument"
|
.error "Unsupported inc macro argument"
|
||||||
.endif
|
.endif
|
||||||
@@ -447,79 +447,6 @@ THUMB( orr \reg , \reg , #PSR_T_BIT )
|
|||||||
.size \name , . - \name
|
.size \name , . - \name
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro csdb
|
|
||||||
#ifdef CONFIG_THUMB2_KERNEL
|
|
||||||
.inst.w 0xf3af8014
|
|
||||||
#else
|
|
||||||
.inst 0xe320f014
|
|
||||||
#endif
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req
|
|
||||||
#ifndef CONFIG_CPU_USE_DOMAINS
|
|
||||||
adds \tmp, \addr, #\size - 1
|
|
||||||
sbcccs \tmp, \tmp, \limit
|
|
||||||
bcs \bad
|
|
||||||
#ifdef CONFIG_CPU_SPECTRE
|
|
||||||
movcs \addr, #0
|
|
||||||
csdb
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro uaccess_mask_range_ptr, addr:req, size:req, limit:req, tmp:req
|
|
||||||
#ifdef CONFIG_CPU_SPECTRE
|
|
||||||
sub \tmp, \limit, #1
|
|
||||||
subs \tmp, \tmp, \addr @ tmp = limit - 1 - addr
|
|
||||||
addhs \tmp, \tmp, #1 @ if (tmp >= 0) {
|
|
||||||
subhss \tmp, \tmp, \size @ tmp = limit - (addr + size) }
|
|
||||||
movlo \addr, #0 @ if (tmp < 0) addr = NULL
|
|
||||||
csdb
|
|
||||||
#endif
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro uaccess_disable, tmp, isb=1
|
|
||||||
#ifdef CONFIG_CPU_SW_DOMAIN_PAN
|
|
||||||
/*
|
|
||||||
* Whenever we re-enter userspace, the domains should always be
|
|
||||||
* set appropriately.
|
|
||||||
*/
|
|
||||||
mov \tmp, #DACR_UACCESS_DISABLE
|
|
||||||
mcr p15, 0, \tmp, c3, c0, 0 @ Set domain register
|
|
||||||
.if \isb
|
|
||||||
instr_sync
|
|
||||||
.endif
|
|
||||||
#endif
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro uaccess_enable, tmp, isb=1
|
|
||||||
#ifdef CONFIG_CPU_SW_DOMAIN_PAN
|
|
||||||
/*
|
|
||||||
* Whenever we re-enter userspace, the domains should always be
|
|
||||||
* set appropriately.
|
|
||||||
*/
|
|
||||||
mov \tmp, #DACR_UACCESS_ENABLE
|
|
||||||
mcr p15, 0, \tmp, c3, c0, 0
|
|
||||||
.if \isb
|
|
||||||
instr_sync
|
|
||||||
.endif
|
|
||||||
#endif
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro uaccess_save, tmp
|
|
||||||
#ifdef CONFIG_CPU_SW_DOMAIN_PAN
|
|
||||||
mrc p15, 0, \tmp, c3, c0, 0
|
|
||||||
str \tmp, [sp, #SVC_DACR]
|
|
||||||
#endif
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro uaccess_restore
|
|
||||||
#ifdef CONFIG_CPU_SW_DOMAIN_PAN
|
|
||||||
ldr r0, [sp, #SVC_DACR]
|
|
||||||
mcr p15, 0, r0, c3, c0, 0
|
|
||||||
#endif
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.irp c,,eq,ne,cs,cc,mi,pl,vs,vc,hi,ls,ge,lt,gt,le,hs,lo
|
.irp c,,eq,ne,cs,cc,mi,pl,vs,vc,hi,ls,ge,lt,gt,le,hs,lo
|
||||||
.macro ret\c, reg
|
.macro ret\c, reg
|
||||||
#if __LINUX_ARM_ARCH__ < 6
|
#if __LINUX_ARM_ARCH__ < 6
|
||||||
|
|||||||
@@ -163,8 +163,13 @@ arch_futex_atomic_op_inuser(int op, int oparg, int *oval, u32 __user *uaddr)
|
|||||||
preempt_enable();
|
preempt_enable();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!ret)
|
/*
|
||||||
*oval = oldval;
|
* Store unconditionally. If ret != 0 the extra store is the least
|
||||||
|
* of the worries but GCC cannot figure out that __futex_atomic_op()
|
||||||
|
* is either setting ret to -EFAULT or storing the old value in
|
||||||
|
* oldval which results in a uninitialized warning at the call site.
|
||||||
|
*/
|
||||||
|
*oval = oldval;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,6 +144,11 @@ static inline bool kvm_vcpu_dabt_issext(struct kvm_vcpu *vcpu)
|
|||||||
return kvm_vcpu_get_hsr(vcpu) & HSR_SSE;
|
return kvm_vcpu_get_hsr(vcpu) & HSR_SSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool kvm_vcpu_dabt_issf(const struct kvm_vcpu *vcpu)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static inline int kvm_vcpu_dabt_get_rd(struct kvm_vcpu *vcpu)
|
static inline int kvm_vcpu_dabt_get_rd(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
return (kvm_vcpu_get_hsr(vcpu) & HSR_SRT_MASK) >> HSR_SRT_SHIFT;
|
return (kvm_vcpu_get_hsr(vcpu) & HSR_SRT_MASK) >> HSR_SRT_SHIFT;
|
||||||
|
|||||||
@@ -26,6 +26,8 @@
|
|||||||
struct kvm_decode {
|
struct kvm_decode {
|
||||||
unsigned long rt;
|
unsigned long rt;
|
||||||
bool sign_extend;
|
bool sign_extend;
|
||||||
|
/* Not used on 32-bit arm */
|
||||||
|
bool sixty_four;
|
||||||
};
|
};
|
||||||
|
|
||||||
void kvm_mmio_write_buf(void *buf, unsigned int len, unsigned long data);
|
void kvm_mmio_write_buf(void *buf, unsigned int len, unsigned long data);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ struct sleep_save_sp {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern void cpu_resume(void);
|
extern void cpu_resume(void);
|
||||||
|
extern void cpu_resume_no_hyp(void);
|
||||||
extern void cpu_resume_arm(void);
|
extern void cpu_resume_arm(void);
|
||||||
extern int cpu_suspend(unsigned long, int (*)(unsigned long));
|
extern int cpu_suspend(unsigned long, int (*)(unsigned long));
|
||||||
|
|
||||||
|
|||||||
117
arch/arm/include/asm/uaccess-asm.h
Normal file
117
arch/arm/include/asm/uaccess-asm.h
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#ifndef __ASM_UACCESS_ASM_H__
|
||||||
|
#define __ASM_UACCESS_ASM_H__
|
||||||
|
|
||||||
|
#include <asm/asm-offsets.h>
|
||||||
|
#include <asm/domain.h>
|
||||||
|
#include <asm/memory.h>
|
||||||
|
#include <asm/thread_info.h>
|
||||||
|
|
||||||
|
.macro csdb
|
||||||
|
#ifdef CONFIG_THUMB2_KERNEL
|
||||||
|
.inst.w 0xf3af8014
|
||||||
|
#else
|
||||||
|
.inst 0xe320f014
|
||||||
|
#endif
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req
|
||||||
|
#ifndef CONFIG_CPU_USE_DOMAINS
|
||||||
|
adds \tmp, \addr, #\size - 1
|
||||||
|
sbcscc \tmp, \tmp, \limit
|
||||||
|
bcs \bad
|
||||||
|
#ifdef CONFIG_CPU_SPECTRE
|
||||||
|
movcs \addr, #0
|
||||||
|
csdb
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro uaccess_mask_range_ptr, addr:req, size:req, limit:req, tmp:req
|
||||||
|
#ifdef CONFIG_CPU_SPECTRE
|
||||||
|
sub \tmp, \limit, #1
|
||||||
|
subs \tmp, \tmp, \addr @ tmp = limit - 1 - addr
|
||||||
|
addhs \tmp, \tmp, #1 @ if (tmp >= 0) {
|
||||||
|
subshs \tmp, \tmp, \size @ tmp = limit - (addr + size) }
|
||||||
|
movlo \addr, #0 @ if (tmp < 0) addr = NULL
|
||||||
|
csdb
|
||||||
|
#endif
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro uaccess_disable, tmp, isb=1
|
||||||
|
#ifdef CONFIG_CPU_SW_DOMAIN_PAN
|
||||||
|
/*
|
||||||
|
* Whenever we re-enter userspace, the domains should always be
|
||||||
|
* set appropriately.
|
||||||
|
*/
|
||||||
|
mov \tmp, #DACR_UACCESS_DISABLE
|
||||||
|
mcr p15, 0, \tmp, c3, c0, 0 @ Set domain register
|
||||||
|
.if \isb
|
||||||
|
instr_sync
|
||||||
|
.endif
|
||||||
|
#endif
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro uaccess_enable, tmp, isb=1
|
||||||
|
#ifdef CONFIG_CPU_SW_DOMAIN_PAN
|
||||||
|
/*
|
||||||
|
* Whenever we re-enter userspace, the domains should always be
|
||||||
|
* set appropriately.
|
||||||
|
*/
|
||||||
|
mov \tmp, #DACR_UACCESS_ENABLE
|
||||||
|
mcr p15, 0, \tmp, c3, c0, 0
|
||||||
|
.if \isb
|
||||||
|
instr_sync
|
||||||
|
.endif
|
||||||
|
#endif
|
||||||
|
.endm
|
||||||
|
|
||||||
|
#if defined(CONFIG_CPU_SW_DOMAIN_PAN) || defined(CONFIG_CPU_USE_DOMAINS)
|
||||||
|
#define DACR(x...) x
|
||||||
|
#else
|
||||||
|
#define DACR(x...)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Save the address limit on entry to a privileged exception.
|
||||||
|
*
|
||||||
|
* If we are using the DACR for kernel access by the user accessors
|
||||||
|
* (CONFIG_CPU_USE_DOMAINS=y), always reset the DACR kernel domain
|
||||||
|
* back to client mode, whether or not \disable is set.
|
||||||
|
*
|
||||||
|
* If we are using SW PAN, set the DACR user domain to no access
|
||||||
|
* if \disable is set.
|
||||||
|
*/
|
||||||
|
.macro uaccess_entry, tsk, tmp0, tmp1, tmp2, disable
|
||||||
|
ldr \tmp1, [\tsk, #TI_ADDR_LIMIT]
|
||||||
|
mov \tmp2, #TASK_SIZE
|
||||||
|
str \tmp2, [\tsk, #TI_ADDR_LIMIT]
|
||||||
|
DACR( mrc p15, 0, \tmp0, c3, c0, 0)
|
||||||
|
DACR( str \tmp0, [sp, #SVC_DACR])
|
||||||
|
str \tmp1, [sp, #SVC_ADDR_LIMIT]
|
||||||
|
.if \disable && IS_ENABLED(CONFIG_CPU_SW_DOMAIN_PAN)
|
||||||
|
/* kernel=client, user=no access */
|
||||||
|
mov \tmp2, #DACR_UACCESS_DISABLE
|
||||||
|
mcr p15, 0, \tmp2, c3, c0, 0
|
||||||
|
instr_sync
|
||||||
|
.elseif IS_ENABLED(CONFIG_CPU_USE_DOMAINS)
|
||||||
|
/* kernel=client */
|
||||||
|
bic \tmp2, \tmp0, #domain_mask(DOMAIN_KERNEL)
|
||||||
|
orr \tmp2, \tmp2, #domain_val(DOMAIN_KERNEL, DOMAIN_CLIENT)
|
||||||
|
mcr p15, 0, \tmp2, c3, c0, 0
|
||||||
|
instr_sync
|
||||||
|
.endif
|
||||||
|
.endm
|
||||||
|
|
||||||
|
/* Restore the user access state previously saved by uaccess_entry */
|
||||||
|
.macro uaccess_exit, tsk, tmp0, tmp1
|
||||||
|
ldr \tmp1, [sp, #SVC_ADDR_LIMIT]
|
||||||
|
DACR( ldr \tmp0, [sp, #SVC_DACR])
|
||||||
|
str \tmp1, [\tsk, #TI_ADDR_LIMIT]
|
||||||
|
DACR( mcr p15, 0, \tmp0, c3, c0, 0)
|
||||||
|
.endm
|
||||||
|
|
||||||
|
#undef DACR
|
||||||
|
|
||||||
|
#endif /* __ASM_UACCESS_ASM_H__ */
|
||||||
@@ -20,8 +20,10 @@
|
|||||||
#ifndef __ASM_UNIFIED_H
|
#ifndef __ASM_UNIFIED_H
|
||||||
#define __ASM_UNIFIED_H
|
#define __ASM_UNIFIED_H
|
||||||
|
|
||||||
#if defined(__ASSEMBLY__) && defined(CONFIG_ARM_ASM_UNIFIED)
|
#if defined(__ASSEMBLY__)
|
||||||
.syntax unified
|
.syntax unified
|
||||||
|
#else
|
||||||
|
__asm__(".syntax unified");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CPU_V7M
|
#ifdef CONFIG_CPU_V7M
|
||||||
@@ -64,77 +66,4 @@
|
|||||||
|
|
||||||
#endif /* CONFIG_THUMB2_KERNEL */
|
#endif /* CONFIG_THUMB2_KERNEL */
|
||||||
|
|
||||||
#ifndef CONFIG_ARM_ASM_UNIFIED
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If the unified assembly syntax isn't used (in ARM mode), these
|
|
||||||
* macros expand to an empty string
|
|
||||||
*/
|
|
||||||
#ifdef __ASSEMBLY__
|
|
||||||
.macro it, cond
|
|
||||||
.endm
|
|
||||||
.macro itt, cond
|
|
||||||
.endm
|
|
||||||
.macro ite, cond
|
|
||||||
.endm
|
|
||||||
.macro ittt, cond
|
|
||||||
.endm
|
|
||||||
.macro itte, cond
|
|
||||||
.endm
|
|
||||||
.macro itet, cond
|
|
||||||
.endm
|
|
||||||
.macro itee, cond
|
|
||||||
.endm
|
|
||||||
.macro itttt, cond
|
|
||||||
.endm
|
|
||||||
.macro ittte, cond
|
|
||||||
.endm
|
|
||||||
.macro ittet, cond
|
|
||||||
.endm
|
|
||||||
.macro ittee, cond
|
|
||||||
.endm
|
|
||||||
.macro itett, cond
|
|
||||||
.endm
|
|
||||||
.macro itete, cond
|
|
||||||
.endm
|
|
||||||
.macro iteet, cond
|
|
||||||
.endm
|
|
||||||
.macro iteee, cond
|
|
||||||
.endm
|
|
||||||
#else /* !__ASSEMBLY__ */
|
|
||||||
__asm__(
|
|
||||||
" .macro it, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro itt, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro ite, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro ittt, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro itte, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro itet, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro itee, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro itttt, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro ittte, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro ittet, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro ittee, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro itett, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro itete, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro iteet, cond\n"
|
|
||||||
" .endm\n"
|
|
||||||
" .macro iteee, cond\n"
|
|
||||||
" .endm\n");
|
|
||||||
#endif /* __ASSEMBLY__ */
|
|
||||||
|
|
||||||
#endif /* CONFIG_ARM_ASM_UNIFIED */
|
|
||||||
|
|
||||||
#endif /* !__ASM_UNIFIED_H */
|
#endif /* !__ASM_UNIFIED_H */
|
||||||
|
|||||||
@@ -29,13 +29,13 @@
|
|||||||
ldr \tmp, =elf_hwcap @ may not have MVFR regs
|
ldr \tmp, =elf_hwcap @ may not have MVFR regs
|
||||||
ldr \tmp, [\tmp, #0]
|
ldr \tmp, [\tmp, #0]
|
||||||
tst \tmp, #HWCAP_VFPD32
|
tst \tmp, #HWCAP_VFPD32
|
||||||
ldcnel p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31}
|
ldclne p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31}
|
||||||
addeq \base, \base, #32*4 @ step over unused register space
|
addeq \base, \base, #32*4 @ step over unused register space
|
||||||
#else
|
#else
|
||||||
VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0
|
VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0
|
||||||
and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field
|
and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field
|
||||||
cmp \tmp, #2 @ 32 x 64bit registers?
|
cmp \tmp, #2 @ 32 x 64bit registers?
|
||||||
ldceql p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31}
|
ldcleq p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31}
|
||||||
addne \base, \base, #32*4 @ step over unused register space
|
addne \base, \base, #32*4 @ step over unused register space
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@@ -53,13 +53,13 @@
|
|||||||
ldr \tmp, =elf_hwcap @ may not have MVFR regs
|
ldr \tmp, =elf_hwcap @ may not have MVFR regs
|
||||||
ldr \tmp, [\tmp, #0]
|
ldr \tmp, [\tmp, #0]
|
||||||
tst \tmp, #HWCAP_VFPD32
|
tst \tmp, #HWCAP_VFPD32
|
||||||
stcnel p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31}
|
stclne p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31}
|
||||||
addeq \base, \base, #32*4 @ step over unused register space
|
addeq \base, \base, #32*4 @ step over unused register space
|
||||||
#else
|
#else
|
||||||
VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0
|
VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0
|
||||||
and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field
|
and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field
|
||||||
cmp \tmp, #2 @ 32 x 64bit registers?
|
cmp \tmp, #2 @ 32 x 64bit registers?
|
||||||
stceql p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31}
|
stcleq p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31}
|
||||||
addne \base, \base, #32*4 @ step over unused register space
|
addne \base, \base, #32*4 @ step over unused register space
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
#include <asm/unistd.h>
|
#include <asm/unistd.h>
|
||||||
#include <asm/tls.h>
|
#include <asm/tls.h>
|
||||||
#include <asm/system_info.h>
|
#include <asm/system_info.h>
|
||||||
|
#include <asm/uaccess-asm.h>
|
||||||
|
|
||||||
#include "entry-header.S"
|
#include "entry-header.S"
|
||||||
#include <asm/entry-macro-multi.S>
|
#include <asm/entry-macro-multi.S>
|
||||||
@@ -186,15 +187,7 @@ ENDPROC(__und_invalid)
|
|||||||
stmia r7, {r2 - r6}
|
stmia r7, {r2 - r6}
|
||||||
|
|
||||||
get_thread_info tsk
|
get_thread_info tsk
|
||||||
ldr r0, [tsk, #TI_ADDR_LIMIT]
|
uaccess_entry tsk, r0, r1, r2, \uaccess
|
||||||
mov r1, #TASK_SIZE
|
|
||||||
str r1, [tsk, #TI_ADDR_LIMIT]
|
|
||||||
str r0, [sp, #SVC_ADDR_LIMIT]
|
|
||||||
|
|
||||||
uaccess_save r0
|
|
||||||
.if \uaccess
|
|
||||||
uaccess_disable r0
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if \trace
|
.if \trace
|
||||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <asm/asm-offsets.h>
|
#include <asm/asm-offsets.h>
|
||||||
#include <asm/errno.h>
|
#include <asm/errno.h>
|
||||||
#include <asm/thread_info.h>
|
#include <asm/thread_info.h>
|
||||||
|
#include <asm/uaccess-asm.h>
|
||||||
#include <asm/v7m.h>
|
#include <asm/v7m.h>
|
||||||
|
|
||||||
@ Bad Abort numbers
|
@ Bad Abort numbers
|
||||||
@@ -217,9 +218,7 @@
|
|||||||
blne trace_hardirqs_off
|
blne trace_hardirqs_off
|
||||||
#endif
|
#endif
|
||||||
.endif
|
.endif
|
||||||
ldr r1, [sp, #SVC_ADDR_LIMIT]
|
uaccess_exit tsk, r0, r1
|
||||||
uaccess_restore
|
|
||||||
str r1, [tsk, #TI_ADDR_LIMIT]
|
|
||||||
|
|
||||||
#ifndef CONFIG_THUMB2_KERNEL
|
#ifndef CONFIG_THUMB2_KERNEL
|
||||||
@ ARM mode SVC restore
|
@ ARM mode SVC restore
|
||||||
@@ -263,9 +262,7 @@
|
|||||||
@ on the stack remains correct).
|
@ on the stack remains correct).
|
||||||
@
|
@
|
||||||
.macro svc_exit_via_fiq
|
.macro svc_exit_via_fiq
|
||||||
ldr r1, [sp, #SVC_ADDR_LIMIT]
|
uaccess_exit tsk, r0, r1
|
||||||
uaccess_restore
|
|
||||||
str r1, [tsk, #TI_ADDR_LIMIT]
|
|
||||||
#ifndef CONFIG_THUMB2_KERNEL
|
#ifndef CONFIG_THUMB2_KERNEL
|
||||||
@ ARM mode restore
|
@ ARM mode restore
|
||||||
mov r0, sp
|
mov r0, sp
|
||||||
|
|||||||
@@ -159,10 +159,9 @@ ARM_BE8(orr r7, r7, #(1 << 25)) @ HSCTLR.EE
|
|||||||
#if !defined(ZIMAGE) && defined(CONFIG_ARM_ARCH_TIMER)
|
#if !defined(ZIMAGE) && defined(CONFIG_ARM_ARCH_TIMER)
|
||||||
@ make CNTP_* and CNTPCT accessible from PL1
|
@ make CNTP_* and CNTPCT accessible from PL1
|
||||||
mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1
|
mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1
|
||||||
lsr r7, #16
|
ubfx r7, r7, #16, #4
|
||||||
and r7, #0xf
|
teq r7, #0
|
||||||
cmp r7, #1
|
beq 1f
|
||||||
bne 1f
|
|
||||||
mrc p15, 4, r7, c14, c1, 0 @ CNTHCTL
|
mrc p15, 4, r7, c14, c1, 0 @ CNTHCTL
|
||||||
orr r7, r7, #3 @ PL1PCEN | PL1PCTEN
|
orr r7, r7, #3 @ PL1PCEN | PL1PCTEN
|
||||||
mcr p15, 4, r7, c14, c1, 0 @ CNTHCTL
|
mcr p15, 4, r7, c14, c1, 0 @ CNTHCTL
|
||||||
@@ -180,8 +179,8 @@ ARM_BE8(orr r7, r7, #(1 << 25)) @ HSCTLR.EE
|
|||||||
@ Check whether GICv3 system registers are available
|
@ Check whether GICv3 system registers are available
|
||||||
mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1
|
mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1
|
||||||
ubfx r7, r7, #28, #4
|
ubfx r7, r7, #28, #4
|
||||||
cmp r7, #1
|
teq r7, #0
|
||||||
bne 2f
|
beq 2f
|
||||||
|
|
||||||
@ Enable system register accesses
|
@ Enable system register accesses
|
||||||
mrc p15, 4, r7, c12, c9, 5 @ ICC_HSRE
|
mrc p15, 4, r7, c12, c9, 5 @ ICC_HSRE
|
||||||
|
|||||||
@@ -120,6 +120,14 @@ ENDPROC(cpu_resume_after_mmu)
|
|||||||
.text
|
.text
|
||||||
.align
|
.align
|
||||||
|
|
||||||
|
#ifdef CONFIG_MCPM
|
||||||
|
.arm
|
||||||
|
THUMB( .thumb )
|
||||||
|
ENTRY(cpu_resume_no_hyp)
|
||||||
|
ARM_BE8(setend be) @ ensure we are in BE mode
|
||||||
|
b no_hyp
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
.arm
|
.arm
|
||||||
ENTRY(cpu_resume_arm)
|
ENTRY(cpu_resume_arm)
|
||||||
@@ -135,6 +143,7 @@ ARM_BE8(setend be) @ ensure we are in BE mode
|
|||||||
bl __hyp_stub_install_secondary
|
bl __hyp_stub_install_secondary
|
||||||
#endif
|
#endif
|
||||||
safe_svcmode_maskall r1
|
safe_svcmode_maskall r1
|
||||||
|
no_hyp:
|
||||||
mov r1, #0
|
mov r1, #0
|
||||||
ALT_SMP(mrc p15, 0, r0, c0, c0, 5)
|
ALT_SMP(mrc p15, 0, r0, c0, c0, 5)
|
||||||
ALT_UP_B(1f)
|
ALT_UP_B(1f)
|
||||||
@@ -163,6 +172,9 @@ ENDPROC(cpu_resume)
|
|||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
ENDPROC(cpu_resume_arm)
|
ENDPROC(cpu_resume_arm)
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_MCPM
|
||||||
|
ENDPROC(cpu_resume_no_hyp)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
|
|||||||
@@ -103,6 +103,8 @@ static bool __init cntvct_functional(void)
|
|||||||
* this.
|
* this.
|
||||||
*/
|
*/
|
||||||
np = of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
|
np = of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
|
||||||
|
if (!np)
|
||||||
|
np = of_find_compatible_node(NULL, NULL, "arm,armv8-timer");
|
||||||
if (!np)
|
if (!np)
|
||||||
goto out_put;
|
goto out_put;
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
ENTRY( \name )
|
ENTRY( \name )
|
||||||
UNWIND( .fnstart )
|
UNWIND( .fnstart )
|
||||||
ands ip, r1, #3
|
ands ip, r1, #3
|
||||||
strneb r1, [ip] @ assert word-aligned
|
strbne r1, [ip] @ assert word-aligned
|
||||||
mov r2, #1
|
mov r2, #1
|
||||||
and r3, r0, #31 @ Get bit offset
|
and r3, r0, #31 @ Get bit offset
|
||||||
mov r0, r0, lsr #5
|
mov r0, r0, lsr #5
|
||||||
@@ -32,7 +32,7 @@ ENDPROC(\name )
|
|||||||
ENTRY( \name )
|
ENTRY( \name )
|
||||||
UNWIND( .fnstart )
|
UNWIND( .fnstart )
|
||||||
ands ip, r1, #3
|
ands ip, r1, #3
|
||||||
strneb r1, [ip] @ assert word-aligned
|
strbne r1, [ip] @ assert word-aligned
|
||||||
mov r2, #1
|
mov r2, #1
|
||||||
and r3, r0, #31 @ Get bit offset
|
and r3, r0, #31 @ Get bit offset
|
||||||
mov r0, r0, lsr #5
|
mov r0, r0, lsr #5
|
||||||
@@ -62,7 +62,7 @@ ENDPROC(\name )
|
|||||||
ENTRY( \name )
|
ENTRY( \name )
|
||||||
UNWIND( .fnstart )
|
UNWIND( .fnstart )
|
||||||
ands ip, r1, #3
|
ands ip, r1, #3
|
||||||
strneb r1, [ip] @ assert word-aligned
|
strbne r1, [ip] @ assert word-aligned
|
||||||
and r2, r0, #31
|
and r2, r0, #31
|
||||||
mov r0, r0, lsr #5
|
mov r0, r0, lsr #5
|
||||||
mov r3, #1
|
mov r3, #1
|
||||||
@@ -89,7 +89,7 @@ ENDPROC(\name )
|
|||||||
ENTRY( \name )
|
ENTRY( \name )
|
||||||
UNWIND( .fnstart )
|
UNWIND( .fnstart )
|
||||||
ands ip, r1, #3
|
ands ip, r1, #3
|
||||||
strneb r1, [ip] @ assert word-aligned
|
strbne r1, [ip] @ assert word-aligned
|
||||||
and r3, r0, #31
|
and r3, r0, #31
|
||||||
mov r0, r0, lsr #5
|
mov r0, r0, lsr #5
|
||||||
save_and_disable_irqs ip
|
save_and_disable_irqs ip
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ ENTRY(arm_copy_from_user)
|
|||||||
|
|
||||||
ENDPROC(arm_copy_from_user)
|
ENDPROC(arm_copy_from_user)
|
||||||
|
|
||||||
.pushsection .fixup,"ax"
|
.pushsection .text.fixup,"ax"
|
||||||
.align 0
|
.align 0
|
||||||
copy_abort_preamble
|
copy_abort_preamble
|
||||||
ldmfd sp!, {r1, r2, r3}
|
ldmfd sp!, {r1, r2, r3}
|
||||||
|
|||||||
@@ -87,6 +87,10 @@ AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
|
|||||||
obj-$(CONFIG_SOC_IMX6) += suspend-imx6.o
|
obj-$(CONFIG_SOC_IMX6) += suspend-imx6.o
|
||||||
obj-$(CONFIG_SOC_IMX53) += suspend-imx53.o
|
obj-$(CONFIG_SOC_IMX53) += suspend-imx53.o
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(CONFIG_ARM_CPU_SUSPEND),y)
|
||||||
|
AFLAGS_resume-imx6.o :=-Wa,-march=armv7-a
|
||||||
|
obj-$(CONFIG_SOC_IMX6) += resume-imx6.o
|
||||||
|
endif
|
||||||
obj-$(CONFIG_SOC_IMX6) += pm-imx6.o
|
obj-$(CONFIG_SOC_IMX6) += pm-imx6.o
|
||||||
|
|
||||||
obj-$(CONFIG_SOC_IMX1) += mach-imx1.o
|
obj-$(CONFIG_SOC_IMX1) += mach-imx1.o
|
||||||
|
|||||||
@@ -111,17 +111,17 @@ void imx_cpu_die(unsigned int cpu);
|
|||||||
int imx_cpu_kill(unsigned int cpu);
|
int imx_cpu_kill(unsigned int cpu);
|
||||||
|
|
||||||
#ifdef CONFIG_SUSPEND
|
#ifdef CONFIG_SUSPEND
|
||||||
void v7_cpu_resume(void);
|
|
||||||
void imx53_suspend(void __iomem *ocram_vbase);
|
void imx53_suspend(void __iomem *ocram_vbase);
|
||||||
extern const u32 imx53_suspend_sz;
|
extern const u32 imx53_suspend_sz;
|
||||||
void imx6_suspend(void __iomem *ocram_vbase);
|
void imx6_suspend(void __iomem *ocram_vbase);
|
||||||
#else
|
#else
|
||||||
static inline void v7_cpu_resume(void) {}
|
|
||||||
static inline void imx53_suspend(void __iomem *ocram_vbase) {}
|
static inline void imx53_suspend(void __iomem *ocram_vbase) {}
|
||||||
static const u32 imx53_suspend_sz;
|
static const u32 imx53_suspend_sz;
|
||||||
static inline void imx6_suspend(void __iomem *ocram_vbase) {}
|
static inline void imx6_suspend(void __iomem *ocram_vbase) {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void v7_cpu_resume(void);
|
||||||
|
|
||||||
void imx6_pm_ccm_init(const char *ccm_compat);
|
void imx6_pm_ccm_init(const char *ccm_compat);
|
||||||
void imx6q_pm_init(void);
|
void imx6q_pm_init(void);
|
||||||
void imx6dl_pm_init(void);
|
void imx6dl_pm_init(void);
|
||||||
|
|||||||
24
arch/arm/mach-imx/resume-imx6.S
Normal file
24
arch/arm/mach-imx/resume-imx6.S
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
* Copyright 2014 Freescale Semiconductor, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
#include <asm/asm-offsets.h>
|
||||||
|
#include <asm/hardware/cache-l2x0.h>
|
||||||
|
#include "hardware.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following code must assume it is running from physical address
|
||||||
|
* where absolute virtual addresses to the data section have to be
|
||||||
|
* turned into relative ones.
|
||||||
|
*/
|
||||||
|
|
||||||
|
ENTRY(v7_cpu_resume)
|
||||||
|
bl v7_invalidate_l1
|
||||||
|
#ifdef CONFIG_CACHE_L2X0
|
||||||
|
bl l2c310_early_resume
|
||||||
|
#endif
|
||||||
|
b cpu_resume
|
||||||
|
ENDPROC(v7_cpu_resume)
|
||||||
@@ -333,17 +333,3 @@ resume:
|
|||||||
|
|
||||||
ret lr
|
ret lr
|
||||||
ENDPROC(imx6_suspend)
|
ENDPROC(imx6_suspend)
|
||||||
|
|
||||||
/*
|
|
||||||
* The following code must assume it is running from physical address
|
|
||||||
* where absolute virtual addresses to the data section have to be
|
|
||||||
* turned into relative ones.
|
|
||||||
*/
|
|
||||||
|
|
||||||
ENTRY(v7_cpu_resume)
|
|
||||||
bl v7_invalidate_l1
|
|
||||||
#ifdef CONFIG_CACHE_L2X0
|
|
||||||
bl l2c310_early_resume
|
|
||||||
#endif
|
|
||||||
b cpu_resume
|
|
||||||
ENDPROC(v7_cpu_resume)
|
|
||||||
|
|||||||
@@ -2530,7 +2530,7 @@ static void _setup_iclk_autoidle(struct omap_hwmod *oh)
|
|||||||
*/
|
*/
|
||||||
static int _setup_reset(struct omap_hwmod *oh)
|
static int _setup_reset(struct omap_hwmod *oh)
|
||||||
{
|
{
|
||||||
int r;
|
int r = 0;
|
||||||
|
|
||||||
if (oh->_state != _HWMOD_STATE_INITIALIZED)
|
if (oh->_state != _HWMOD_STATE_INITIALIZED)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ extern unsigned char rpc_default_fiq_start, rpc_default_fiq_end;
|
|||||||
|
|
||||||
void __init rpc_init_irq(void)
|
void __init rpc_init_irq(void)
|
||||||
{
|
{
|
||||||
unsigned int irq, clr, set = 0;
|
unsigned int irq, clr, set;
|
||||||
|
|
||||||
iomd_writeb(0, IOMD_IRQMASKA);
|
iomd_writeb(0, IOMD_IRQMASKA);
|
||||||
iomd_writeb(0, IOMD_IRQMASKB);
|
iomd_writeb(0, IOMD_IRQMASKB);
|
||||||
@@ -130,6 +130,7 @@ void __init rpc_init_irq(void)
|
|||||||
|
|
||||||
for (irq = 0; irq < NR_IRQS; irq++) {
|
for (irq = 0; irq < NR_IRQS; irq++) {
|
||||||
clr = IRQ_NOREQUEST;
|
clr = IRQ_NOREQUEST;
|
||||||
|
set = 0;
|
||||||
|
|
||||||
if (irq <= 6 || (irq >= 9 && irq <= 15))
|
if (irq <= 6 || (irq >= 9 && irq <= 15))
|
||||||
clr |= IRQ_NOPROBE;
|
clr |= IRQ_NOPROBE;
|
||||||
|
|||||||
@@ -382,6 +382,14 @@ _pll_m_c_x_done:
|
|||||||
pll_locked r1, r0, CLK_RESET_PLLC_BASE
|
pll_locked r1, r0, CLK_RESET_PLLC_BASE
|
||||||
pll_locked r1, r0, CLK_RESET_PLLX_BASE
|
pll_locked r1, r0, CLK_RESET_PLLX_BASE
|
||||||
|
|
||||||
|
tegra_get_soc_id TEGRA_APB_MISC_BASE, r1
|
||||||
|
cmp r1, #TEGRA30
|
||||||
|
beq 1f
|
||||||
|
ldr r1, [r0, #CLK_RESET_PLLP_BASE]
|
||||||
|
bic r1, r1, #(1<<31) @ disable PllP bypass
|
||||||
|
str r1, [r0, #CLK_RESET_PLLP_BASE]
|
||||||
|
1:
|
||||||
|
|
||||||
mov32 r7, TEGRA_TMRUS_BASE
|
mov32 r7, TEGRA_TMRUS_BASE
|
||||||
ldr r1, [r7]
|
ldr r1, [r7]
|
||||||
add r1, r1, #LOCK_DELAY
|
add r1, r1, #LOCK_DELAY
|
||||||
@@ -641,7 +649,10 @@ tegra30_switch_cpu_to_clk32k:
|
|||||||
str r0, [r4, #PMC_PLLP_WB0_OVERRIDE]
|
str r0, [r4, #PMC_PLLP_WB0_OVERRIDE]
|
||||||
|
|
||||||
/* disable PLLP, PLLA, PLLC and PLLX */
|
/* disable PLLP, PLLA, PLLC and PLLX */
|
||||||
|
tegra_get_soc_id TEGRA_APB_MISC_BASE, r1
|
||||||
|
cmp r1, #TEGRA30
|
||||||
ldr r0, [r5, #CLK_RESET_PLLP_BASE]
|
ldr r0, [r5, #CLK_RESET_PLLP_BASE]
|
||||||
|
orrne r0, r0, #(1 << 31) @ enable PllP bypass on fast cluster
|
||||||
bic r0, r0, #(1 << 30)
|
bic r0, r0, #(1 << 30)
|
||||||
str r0, [r5, #CLK_RESET_PLLP_BASE]
|
str r0, [r5, #CLK_RESET_PLLP_BASE]
|
||||||
ldr r0, [r5, #CLK_RESET_PLLA_BASE]
|
ldr r0, [r5, #CLK_RESET_PLLA_BASE]
|
||||||
|
|||||||
@@ -555,8 +555,9 @@ static struct clk *ve_spc_clk_register(struct device *cpu_dev)
|
|||||||
|
|
||||||
static int __init ve_spc_clk_init(void)
|
static int __init ve_spc_clk_init(void)
|
||||||
{
|
{
|
||||||
int cpu;
|
int cpu, cluster;
|
||||||
struct clk *clk;
|
struct clk *clk;
|
||||||
|
bool init_opp_table[MAX_CLUSTERS] = { false };
|
||||||
|
|
||||||
if (!info)
|
if (!info)
|
||||||
return 0; /* Continue only if SPC is initialised */
|
return 0; /* Continue only if SPC is initialised */
|
||||||
@@ -582,8 +583,17 @@ static int __init ve_spc_clk_init(void)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cluster = topology_physical_package_id(cpu_dev->id);
|
||||||
|
if (init_opp_table[cluster])
|
||||||
|
continue;
|
||||||
|
|
||||||
if (ve_init_opp_table(cpu_dev))
|
if (ve_init_opp_table(cpu_dev))
|
||||||
pr_warn("failed to initialise cpu%d opp table\n", cpu);
|
pr_warn("failed to initialise cpu%d opp table\n", cpu);
|
||||||
|
else if (dev_pm_opp_set_sharing_cpus(cpu_dev,
|
||||||
|
topology_core_cpumask(cpu_dev->id)))
|
||||||
|
pr_warn("failed to mark OPPs shared for cpu%d\n", cpu);
|
||||||
|
else
|
||||||
|
init_opp_table[cluster] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0);
|
platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0);
|
||||||
|
|||||||
@@ -356,7 +356,7 @@ static inline void poison_init_mem(void *s, size_t count)
|
|||||||
*p++ = 0xe7fddef0;
|
*p++ = 0xe7fddef0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void __init
|
||||||
free_memmap(unsigned long start_pfn, unsigned long end_pfn)
|
free_memmap(unsigned long start_pfn, unsigned long end_pfn)
|
||||||
{
|
{
|
||||||
struct page *start_pg, *end_pg;
|
struct page *start_pg, *end_pg;
|
||||||
|
|||||||
@@ -796,7 +796,11 @@ static inline void emit_a32_rsh_i64(const u8 dst[], bool dstk,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Do LSR operation */
|
/* Do LSR operation */
|
||||||
if (val < 32) {
|
if (val == 0) {
|
||||||
|
/* An immediate value of 0 encodes a shift amount of 32
|
||||||
|
* for LSR. To shift by 0, don't do anything.
|
||||||
|
*/
|
||||||
|
} else if (val < 32) {
|
||||||
emit(ARM_MOV_SI(tmp2[1], rd, SRTYPE_LSR, val), ctx);
|
emit(ARM_MOV_SI(tmp2[1], rd, SRTYPE_LSR, val), ctx);
|
||||||
emit(ARM_ORR_SI(rd, tmp2[1], rm, SRTYPE_ASL, 32 - val), ctx);
|
emit(ARM_ORR_SI(rd, tmp2[1], rm, SRTYPE_ASL, 32 - val), ctx);
|
||||||
emit(ARM_MOV_SI(rm, rm, SRTYPE_LSR, val), ctx);
|
emit(ARM_MOV_SI(rm, rm, SRTYPE_LSR, val), ctx);
|
||||||
@@ -829,7 +833,11 @@ static inline void emit_a32_arsh_i64(const u8 dst[], bool dstk,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Do ARSH operation */
|
/* Do ARSH operation */
|
||||||
if (val < 32) {
|
if (val == 0) {
|
||||||
|
/* An immediate value of 0 encodes a shift amount of 32
|
||||||
|
* for ASR. To shift by 0, don't do anything.
|
||||||
|
*/
|
||||||
|
} else if (val < 32) {
|
||||||
emit(ARM_MOV_SI(tmp2[1], rd, SRTYPE_LSR, val), ctx);
|
emit(ARM_MOV_SI(tmp2[1], rd, SRTYPE_LSR, val), ctx);
|
||||||
emit(ARM_ORR_SI(rd, tmp2[1], rm, SRTYPE_ASL, 32 - val), ctx);
|
emit(ARM_ORR_SI(rd, tmp2[1], rm, SRTYPE_ASL, 32 - val), ctx);
|
||||||
emit(ARM_MOV_SI(rm, rm, SRTYPE_ASR, val), ctx);
|
emit(ARM_MOV_SI(rm, rm, SRTYPE_ASR, val), ctx);
|
||||||
|
|||||||
@@ -230,18 +230,12 @@ static int pxa_ssp_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
static int pxa_ssp_remove(struct platform_device *pdev)
|
static int pxa_ssp_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct resource *res;
|
|
||||||
struct ssp_device *ssp;
|
struct ssp_device *ssp;
|
||||||
|
|
||||||
ssp = platform_get_drvdata(pdev);
|
ssp = platform_get_drvdata(pdev);
|
||||||
if (ssp == NULL)
|
if (ssp == NULL)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
||||||
release_mem_region(res->start, resource_size(res));
|
|
||||||
|
|
||||||
clk_put(ssp->clk);
|
|
||||||
|
|
||||||
mutex_lock(&ssp_lock);
|
mutex_lock(&ssp_lock);
|
||||||
list_del(&ssp->node);
|
list_del(&ssp->node);
|
||||||
mutex_unlock(&ssp_lock);
|
mutex_unlock(&ssp_lock);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ include $(srctree)/arch/arm64/boot/dts/Makefile
|
|||||||
|
|
||||||
OBJCOPYFLAGS_Image :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
|
OBJCOPYFLAGS_Image :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
|
||||||
|
|
||||||
targets := Image Image.gz dtbo.img
|
targets := Image Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo dtbo.img
|
||||||
|
|
||||||
DTB_NAMES := $(subst $\",,$(CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES))
|
DTB_NAMES := $(subst $\",,$(CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES))
|
||||||
ifneq ($(DTB_NAMES),)
|
ifneq ($(DTB_NAMES),)
|
||||||
|
|||||||
@@ -274,7 +274,8 @@
|
|||||||
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&ccu 58>;
|
clocks = <&ccu 58>, <&osc24M>, <&rtc 0>;
|
||||||
|
clock-names = "apb", "hosc", "losc";
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
#gpio-cells = <3>;
|
#gpio-cells = <3>;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
|
|||||||
@@ -56,10 +56,10 @@
|
|||||||
|
|
||||||
pmu {
|
pmu {
|
||||||
compatible = "arm,armv8-pmuv3";
|
compatible = "arm,armv8-pmuv3";
|
||||||
interrupts = <0 120 8>,
|
interrupts = <0 170 4>,
|
||||||
<0 121 8>,
|
<0 171 4>,
|
||||||
<0 122 8>,
|
<0 172 4>,
|
||||||
<0 123 8>;
|
<0 173 4>;
|
||||||
interrupt-affinity = <&cpu0>,
|
interrupt-affinity = <&cpu0>,
|
||||||
<&cpu1>,
|
<&cpu1>,
|
||||||
<&cpu2>,
|
<&cpu2>,
|
||||||
|
|||||||
@@ -33,11 +33,9 @@
|
|||||||
|
|
||||||
gpio-keys-polled {
|
gpio-keys-polled {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
poll-interval = <100>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
button@0 {
|
power-button {
|
||||||
label = "power";
|
label = "power";
|
||||||
linux,code = <KEY_POWER>;
|
linux,code = <KEY_POWER>;
|
||||||
gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
|
gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
|
||||||
|
|||||||
@@ -226,7 +226,6 @@
|
|||||||
cap-mmc-highspeed;
|
cap-mmc-highspeed;
|
||||||
mmc-ddr-3_3v;
|
mmc-ddr-3_3v;
|
||||||
max-frequency = <50000000>;
|
max-frequency = <50000000>;
|
||||||
non-removable;
|
|
||||||
disable-wp;
|
disable-wp;
|
||||||
|
|
||||||
mmc-pwrseq = <&emmc_pwrseq>;
|
mmc-pwrseq = <&emmc_pwrseq>;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
/*
|
/*
|
||||||
* Devices shared by all Juno boards
|
* Devices shared by all Juno boards
|
||||||
*/
|
*/
|
||||||
dma-ranges = <0 0 0 0 0x100 0>;
|
|
||||||
|
|
||||||
memtimer: timer@2a810000 {
|
memtimer: timer@2a810000 {
|
||||||
compatible = "arm,armv7-timer-mem";
|
compatible = "arm,armv7-timer-mem";
|
||||||
|
|||||||
@@ -8,10 +8,10 @@
|
|||||||
*/
|
*/
|
||||||
/ {
|
/ {
|
||||||
/* SoC fixed clocks */
|
/* SoC fixed clocks */
|
||||||
soc_uartclk: refclk7273800hz {
|
soc_uartclk: refclk7372800hz {
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
clock-frequency = <7273800>;
|
clock-frequency = <7372800>;
|
||||||
clock-output-names = "juno:uartclk";
|
clock-output-names = "juno:uartclk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&fman0 {
|
&fman0 {
|
||||||
|
fsl,erratum-a050385;
|
||||||
|
|
||||||
/* these aliases provide the FMan ports mapping */
|
/* these aliases provide the FMan ports mapping */
|
||||||
enet0: ethernet@e0000 {
|
enet0: ethernet@e0000 {
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -155,12 +155,12 @@
|
|||||||
|
|
||||||
ethernet@e4000 {
|
ethernet@e4000 {
|
||||||
phy-handle = <&rgmii_phy1>;
|
phy-handle = <&rgmii_phy1>;
|
||||||
phy-connection-type = "rgmii-txid";
|
phy-connection-type = "rgmii-id";
|
||||||
};
|
};
|
||||||
|
|
||||||
ethernet@e6000 {
|
ethernet@e6000 {
|
||||||
phy-handle = <&rgmii_phy2>;
|
phy-handle = <&rgmii_phy2>;
|
||||||
phy-connection-type = "rgmii-txid";
|
phy-connection-type = "rgmii-id";
|
||||||
};
|
};
|
||||||
|
|
||||||
ethernet@e8000 {
|
ethernet@e8000 {
|
||||||
|
|||||||
@@ -162,12 +162,12 @@
|
|||||||
&fman0 {
|
&fman0 {
|
||||||
ethernet@e4000 {
|
ethernet@e4000 {
|
||||||
phy-handle = <&rgmii_phy1>;
|
phy-handle = <&rgmii_phy1>;
|
||||||
phy-connection-type = "rgmii";
|
phy-connection-type = "rgmii-id";
|
||||||
};
|
};
|
||||||
|
|
||||||
ethernet@e6000 {
|
ethernet@e6000 {
|
||||||
phy-handle = <&rgmii_phy2>;
|
phy-handle = <&rgmii_phy2>;
|
||||||
phy-connection-type = "rgmii";
|
phy-connection-type = "rgmii-id";
|
||||||
};
|
};
|
||||||
|
|
||||||
ethernet@e8000 {
|
ethernet@e8000 {
|
||||||
|
|||||||
@@ -458,6 +458,8 @@
|
|||||||
l11 {
|
l11 {
|
||||||
regulator-min-microvolt = <1750000>;
|
regulator-min-microvolt = <1750000>;
|
||||||
regulator-max-microvolt = <3337000>;
|
regulator-max-microvolt = <3337000>;
|
||||||
|
regulator-allow-set-load;
|
||||||
|
regulator-system-load = <200000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
l12 {
|
l12 {
|
||||||
|
|||||||
@@ -262,6 +262,8 @@
|
|||||||
l21 {
|
l21 {
|
||||||
regulator-min-microvolt = <2950000>;
|
regulator-min-microvolt = <2950000>;
|
||||||
regulator-max-microvolt = <2950000>;
|
regulator-max-microvolt = <2950000>;
|
||||||
|
regulator-allow-set-load;
|
||||||
|
regulator-system-load = <200000>;
|
||||||
};
|
};
|
||||||
l22 {
|
l22 {
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user