16 Aug, 2018

2 commits

  • commit d90a7a0ec83fb86622cd7dae23255d3c50a99ec8 upstream

    Introduce the 'l1tf=' kernel command line option to allow for boot-time
    switching of mitigation that is used on processors affected by L1TF.

    The possible values are:

    full
    Provides all available mitigations for the L1TF vulnerability. Disables
    SMT and enables all mitigations in the hypervisors. SMT control via
    /sys/devices/system/cpu/smt/control is still possible after boot.
    Hypervisors will issue a warning when the first VM is started in
    a potentially insecure configuration, i.e. SMT enabled or L1D flush
    disabled.

    full,force
    Same as 'full', but disables SMT control. Implies the 'nosmt=force'
    command line option. sysfs control of SMT and the hypervisor flush
    control is disabled.

    flush
    Leaves SMT enabled and enables the conditional hypervisor mitigation.
    Hypervisors will issue a warning when the first VM is started in a
    potentially insecure configuration, i.e. SMT enabled or L1D flush
    disabled.

    flush,nosmt
    Disables SMT and enables the conditional hypervisor mitigation. SMT
    control via /sys/devices/system/cpu/smt/control is still possible
    after boot. If SMT is reenabled or flushing disabled at runtime
    hypervisors will issue a warning.

    flush,nowarn
    Same as 'flush', but hypervisors will not warn when
    a VM is started in a potentially insecure configuration.

    off
    Disables hypervisor mitigations and doesn't emit any warnings.

    Default is 'flush'.

    Let KVM adhere to these semantics, which means:

    - 'lt1f=full,force' : Performe L1D flushes. No runtime control
    possible.

    - 'l1tf=full'
    - 'l1tf-flush'
    - 'l1tf=flush,nosmt' : Perform L1D flushes and warn on VM start if
    SMT has been runtime enabled or L1D flushing
    has been run-time enabled

    - 'l1tf=flush,nowarn' : Perform L1D flushes and no warnings are emitted.

    - 'l1tf=off' : L1D flushes are not performed and no warnings
    are emitted.

    KVM can always override the L1D flushing behavior using its 'vmentry_l1d_flush'
    module parameter except when lt1f=full,force is set.

    This makes KVM's private 'nosmt' option redundant, and as it is a bit
    non-systematic anyway (this is something to control globally, not on
    hypervisor level), remove that option.

    Add the missing Documentation entry for the l1tf vulnerability sysfs file
    while at it.

    Signed-off-by: Jiri Kosina
    Signed-off-by: Thomas Gleixner
    Tested-by: Jiri Kosina
    Reviewed-by: Greg Kroah-Hartman
    Reviewed-by: Josh Poimboeuf
    Link: https://lkml.kernel.org/r/20180713142323.202758176@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     
  • commit 05736e4ac13c08a4a9b1ef2de26dd31a32cbee57 upstream

    Provide a command line and a sysfs knob to control SMT.

    The command line options are:

    'nosmt': Enumerate secondary threads, but do not online them

    'nosmt=force': Ignore secondary threads completely during enumeration
    via MP table and ACPI/MADT.

    The sysfs control file has the following states (read/write):

    'on': SMT is enabled. Secondary threads can be freely onlined
    'off': SMT is disabled. Secondary threads, even if enumerated
    cannot be onlined
    'forceoff': SMT is permanentely disabled. Writes to the control
    file are rejected.
    'notsupported': SMT is not supported by the CPU

    The command line option 'nosmt' sets the sysfs control to 'off'. This
    can be changed to 'on' to reenable SMT during runtime.

    The command line option 'nosmt=force' sets the sysfs control to
    'forceoff'. This cannot be changed during runtime.

    When SMT is 'on' and the control file is changed to 'off' then all online
    secondary threads are offlined and attempts to online a secondary thread
    later on are rejected.

    When SMT is 'off' and the control file is changed to 'on' then secondary
    threads can be onlined again. The 'off' -> 'on' transition does not
    automatically online the secondary threads.

    When the control file is set to 'forceoff', the behaviour is the same as
    setting it to 'off', but the operation is irreversible and later writes to
    the control file are rejected.

    When the control status is 'notsupported' then writes to the control file
    are rejected.

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Konrad Rzeszutek Wilk
    Acked-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

03 Jul, 2018

1 commit

  • commit b6c84ba22ff3a198eb8d5552cf9b8fda1d792e54 upstream.

    Currently we see a kernel-oops reported on Power-9 while attaching a
    context to an AFU, with radix-mode and sysfs attr 'prefault_mode' set
    to anything other than 'none'. The backtrace of the oops is of this
    form:

    Unable to handle kernel paging request for data at address 0x00000080
    Faulting instruction address: 0xc00800000bcf3b20
    cpu 0x1: Vector: 300 (Data Access) at [c00000037f003800]
    pc: c00800000bcf3b20: cxl_load_segment+0x178/0x290 [cxl]
    lr: c00800000bcf39f0: cxl_load_segment+0x48/0x290 [cxl]
    sp: c00000037f003a80
    msr: 9000000000009033
    dar: 80
    dsisr: 40000000
    current = 0xc00000037f280000
    paca = 0xc0000003ffffe600 softe: 3 irq_happened: 0x01
    pid = 3529, comm = afp_no_int

    cxl_prefault+0xfc/0x248 [cxl]
    process_element_entry_psl9+0xd8/0x1a0 [cxl]
    cxl_attach_dedicated_process_psl9+0x44/0x130 [cxl]
    native_attach_process+0xc0/0x130 [cxl]
    afu_ioctl+0x3f4/0x5e0 [cxl]
    do_vfs_ioctl+0xdc/0x890
    ksys_ioctl+0x68/0xf0
    sys_ioctl+0x40/0xa0
    system_call+0x58/0x6c

    The issue is caused as on Power-8 the AFU attr 'prefault_mode' was
    used to improve initial storage fault performance by prefaulting
    process segments. However on Power-9 with radix mode we don't have
    Storage-Segments that we can prefault. Also prefaulting process Pages
    will be too costly and fine-grained.

    Hence, since the prefaulting mechanism doesn't makes sense of
    radix-mode, this patch updates prefault_mode_store() to not allow any
    other value apart from CXL_PREFAULT_NONE when radix mode is enabled.

    Fixes: f24be42aab37 ("cxl: Add psl9 specific code")
    Cc: stable@vger.kernel.org # v4.12+
    Signed-off-by: Vaibhav Jain
    Acked-by: Frederic Barrat
    Acked-by: Andrew Donnellan
    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Vaibhav Jain
     

23 May, 2018

1 commit

  • commit c456442cd3a59eeb1d60293c26cbe2ff2c4e42cf upstream

    Add the sysfs file for the new vulerability. It does not do much except
    show the words 'Vulnerable' for recent x86 cores.

    Intel cores prior to family 6 are known not to be vulnerable, and so are
    some Atoms and some Xeon Phi.

    It assumes that older Cyrix, Centaur, etc. cores are immune.

    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Thomas Gleixner
    Reviewed-by: Borislav Petkov
    Reviewed-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Konrad Rzeszutek Wilk
     

29 Mar, 2018

1 commit

  • commit b9a3589332c2a25fb7edad25a26fcaada3209126 upstream.

    The name of the file is "current_timetamp_clock" not
    "timestamp_clock".

    Fixes: bc2b7dab629a ("iio:core: timestamping clock selection support")
    Cc: Gregor Boirie
    Signed-off-by: Linus Walleij
    Signed-off-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Linus Walleij
     

17 Jan, 2018

2 commits

  • commit 9ecccfaa7cb5249bd31bdceb93fcf5bedb8a24d8 upstream.

    Fixes: 87590ce6e ("sysfs/cpu: Add vulnerability folder")
    Signed-off-by: David Woodhouse
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    David Woodhouse
     
  • commit 87590ce6e373d1a5401f6539f0c59ef92dd924a9 upstream.

    As the meltdown/spectre problem affects several CPU architectures, it makes
    sense to have common way to express whether a system is affected by a
    particular vulnerability or not. If affected the way to express the
    mitigation should be common as well.

    Create /sys/devices/system/cpu/vulnerabilities folder and files for
    meltdown, spectre_v1 and spectre_v2.

    Allow architectures to override the show function.

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Greg Kroah-Hartman
    Reviewed-by: Konrad Rzeszutek Wilk
    Cc: Peter Zijlstra
    Cc: Will Deacon
    Cc: Dave Hansen
    Cc: Linus Torvalds
    Cc: Borislav Petkov
    Cc: David Woodhouse
    Link: https://lkml.kernel.org/r/20180107214913.096657732@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

04 Nov, 2017

1 commit

  • MIPS will soon not be a part of Imagination Technologies, and as such
    many @imgtec.com email addresses will no longer be valid. This patch
    updates the addresses for those who:

    - Have 10 or more patches in mainline authored using an @imgtec.com
    email address, or any patches dated within the past year.

    - Are still with Imagination but leaving as part of the MIPS business
    unit, as determined from an internal email address list.

    - Haven't already updated their email address (ie. JamesH) or expressed
    a desire to be excluded (ie. Maciej).

    - Acked v2 or earlier of this patch, which leaves Deng-Cheng, Matt &
    myself.

    New addresses are of the form firstname.lastname@mips.com, and all
    verified against an internal email address list. An entry is added to
    .mailmap for each person such that get_maintainer.pl will report the new
    addresses rather than @imgtec.com addresses which will soon be dead.

    Instances of the affected addresses throughout the tree are then
    mechanically replaced with the new @mips.com address.

    Signed-off-by: Paul Burton
    Cc: Deng-Cheng Zhu
    Cc: Deng-Cheng Zhu
    Acked-by: Dengcheng Zhu
    Cc: Matt Redfearn
    Cc: Matt Redfearn
    Acked-by: Matt Redfearn
    Cc: Andrew Morton
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: trivial@kernel.org
    Signed-off-by: Linus Torvalds

    Paul Burton
     

01 Nov, 2017

1 commit

  • This reverts commit 0cc2b4e5a020 (PM / QoS: Fix device resume latency PM
    QoS) as it introduced regressions on multiple systems and the fix-up
    in commit 2a9a86d5c813 (PM / QoS: Fix default runtime_pm device resume
    latency) does not address all of them.

    The original problem that commit 0cc2b4e5a020 was attempting to fix
    will be addressed later.

    Fixes: 0cc2b4e5a020 (PM / QoS: Fix device resume latency PM QoS)
    Reported-by: Geert Uytterhoeven
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

24 Oct, 2017

1 commit

  • The special value of 0 for device resume latency PM QoS means
    "no restriction", but there are two problems with that.

    First, device resume latency PM QoS requests with 0 as the
    value are always put in front of requests with positive
    values in the priority lists used internally by the PM QoS
    framework, causing 0 to be chosen as an effective constraint
    value. However, that 0 is then interpreted as "no restriction"
    effectively overriding the other requests with specific
    restrictions which is incorrect.

    Second, the users of device resume latency PM QoS have no
    way to specify that *any* resume latency at all should be
    avoided, which is an artificial limitation in general.

    To address these issues, modify device resume latency PM QoS to
    use S32_MAX as the "no constraint" value and 0 as the "no
    latency at all" one and rework its users (the cpuidle menu
    governor, the genpd QoS governor and the runtime PM framework)
    to follow these changes.

    Also add a special "n/a" value to the corresponding user space I/F
    to allow user space to indicate that it cannot accept any resume
    latencies at all for the given device.

    Fixes: 85dc0b8a4019 (PM / QoS: Make it possible to expose PM QoS latency constraints)
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=197323
    Reported-by: Reinette Chatre
    Tested-by: Reinette Chatre
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Alex Shi
    Cc: All applicable

    Rafael J. Wysocki
     

23 Oct, 2017

1 commit

  • Pull staging and IIO fixes from Greg KH:
    "Here are a small number of patches to resolve some reported IIO and a
    staging driver problem. Nothing major here, full details are in the
    shortlog below.

    All have been in linux-next with no reported issues"

    * tag 'staging-4.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: bcm2835-audio: Fix memory corruption
    iio: adc: at91-sama5d2_adc: fix probe error on missing trigger property
    iio: adc: dln2-adc: fix build error
    iio: dummy: events: Add missing break
    staging: iio: ade7759: fix signed extension bug on shift of a u8
    iio: pressure: zpa2326: Remove always-true check which confuses gcc
    iio: proximity: as3935: noise detection + threshold changes

    Linus Torvalds
     

15 Oct, 2017

1 commit

  • …/jic23/iio into staging-linus

    Jonathan writes:

    Second set of IIO fixes for the 4.14 cycle.

    * ade7759
    - Fix a signed extension bug.
    * as3935
    - The default noise and watch dog settings were such that the device
    was unusuable in most applications. Add device tree parameters to
    allow it to be configured to something that will actually work.
    * at91-sama5d2 adc
    - Fix handling of legacy device trees that don't provide the new
    trigger edge property.
    * dln2-adc
    - Fix a missing Kconfig dependency on IIO_TRIGGERED_BUFFER.
    * dummy driver
    - Add a missing break so that writing in_voltage0_thresh_rising_en
    doesn't always result in an error.
    * zpa2326
    - Drop a test for an always true condition so that gcc won't spit out
    and unused variable warning.

    Greg Kroah-Hartman
     

14 Oct, 2017

1 commit

  • When the VMA based swap readahead was introduced, a new knob

    /sys/kernel/mm/swap/vma_ra_max_order

    was added as the max window of VMA swap readahead. This is to make it
    possible to use different max window for VMA based readahead and
    original physical readahead. But Minchan Kim pointed out that this will
    cause a regression because setting page-cluster sysctl to zero cannot
    disable swap readahead with the change.

    To fix the regression, the page-cluster sysctl is used as the max window
    of both the VMA based swap readahead and original physical swap
    readahead. If more fine grained control is needed in the future, more
    knobs can be added as the subordinate knobs of the page-cluster sysctl.

    The vma_ra_max_order knob is deleted. Because the knob was introduced
    in v4.14-rc1, and this patch is targeting being merged before v4.14
    releasing, there should be no existing users of this newly added ABI.

    Link: http://lkml.kernel.org/r/20171011070847.16003-1-ying.huang@intel.com
    Fixes: ec560175c0b6fce ("mm, swap: VMA based swap readahead")
    Signed-off-by: "Huang, Ying"
    Reported-by: Minchan Kim
    Acked-by: Minchan Kim
    Acked-by: Michal Hocko
    Cc: Johannes Weiner
    Cc: Rik van Riel
    Cc: Shaohua Li
    Cc: Hugh Dickins
    Cc: Fengguang Wu
    Cc: Tim Chen
    Cc: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Ying
     

05 Oct, 2017

1 commit

  • Update my imgtec.com and personal email address to my kernel.org one in
    a few places as MIPS will soon no longer be part of Imagination
    Technologies, and add mappings in .mailcap so get_maintainer.pl reports
    the right address.

    Signed-off-by: James Hogan
    Signed-off-by: Linus Torvalds

    James Hogan
     

26 Sep, 2017

1 commit

  • Most applications are too noisy to allow the default noise and
    watchdog settings, and thus need to be configurable via DT
    properties.

    Also default settings to POR defaults on a reset, and register
    distuber interrupts as noise since it prevents proper usage.

    Cc: devicetree@vger.kernel.org
    Signed-off-by: Matt Ranostay
    Acked-by: Rob Herring
    Signed-off-by: Jonathan Cameron

    Matt Ranostay
     

13 Sep, 2017

1 commit

  • Pull f2fs updates from Jaegeuk Kim:
    "In this round, we've mostly tuned f2fs to provide better user
    experience for Android. Especially, we've worked on atomic write
    feature again with SQLite community in order to support it officially.
    And we added or modified several facilities to analyze and enhance IO
    behaviors.

    Major changes include:
    - add app/fs io stat
    - add inode checksum feature
    - support project/journalled quota
    - enhance atomic write with new ioctl() which exposes feature set
    - enhance background gc/discard/fstrim flows with new gc_urgent mode
    - add F2FS_IOC_FS{GET,SET}XATTR
    - fix some quota flows"

    * tag 'f2fs-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (63 commits)
    f2fs: hurry up to issue discard after io interruption
    f2fs: fix to show correct discard_granularity in sysfs
    f2fs: detect dirty inode in evict_inode
    f2fs: clear radix tree dirty tag of pages whose dirty flag is cleared
    f2fs: speed up gc_urgent mode with SSR
    f2fs: better to wait for fstrim completion
    f2fs: avoid race in between read xattr & write xattr
    f2fs: make get_lock_data_page to handle encrypted inode
    f2fs: use generic terms used for encrypted block management
    f2fs: introduce f2fs_encrypted_file for clean-up
    Revert "f2fs: add a new function get_ssr_cost"
    f2fs: constify super_operations
    f2fs: fix to wake up all sleeping flusher
    f2fs: avoid race in between atomic_read & atomic_inc
    f2fs: remove unneeded parameter of change_curseg
    f2fs: update i_flags correctly
    f2fs: don't check inode's checksum if it was dirtied or writebacked
    f2fs: don't need to update inode checksum for recovery
    f2fs: trigger fdatasync for non-atomic_write file
    f2fs: fix to avoid race in between aio and gc
    ...

    Linus Torvalds
     

08 Sep, 2017

3 commits

  • Pull dmaengine updates from Vinod Koul:
    "This one features the usual updates to the drivers and one good part
    of removing DA_SG from core as it has no users.

    Summary:

    - Remove DMA_SG support as we have no users for this feature
    - New driver for Altera / Intel mSGDMA IP core
    - Support for memset in dmatest and qcom_hidma driver
    - Update for non cyclic mode in k3dma, bunch of update in bam_dma,
    bcm sba-raid
    - Constify device ids across drivers"

    * tag 'dmaengine-4.14-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (52 commits)
    dmaengine: sun6i: support V3s SoC variant
    dmaengine: sun6i: make gate bit in sun8i's DMA engines a common quirk
    dmaengine: rcar-dmac: document R8A77970 bindings
    dmaengine: xilinx_dma: Fix error code format specifier
    dmaengine: altera: Use macros instead of structs to describe the registers
    dmaengine: ti-dma-crossbar: Fix dra7 reserve function
    dmaengine: pl330: constify amba_id
    dmaengine: pl08x: constify amba_id
    dmaengine: bcm-sba-raid: Remove redundant SBA_REQUEST_STATE_COMPLETED
    dmaengine: bcm-sba-raid: Explicitly ACK mailbox message after sending
    dmaengine: bcm-sba-raid: Add debugfs support
    dmaengine: bcm-sba-raid: Remove redundant SBA_REQUEST_STATE_RECEIVED
    dmaengine: bcm-sba-raid: Re-factor sba_process_deferred_requests()
    dmaengine: bcm-sba-raid: Pre-ack async tx descriptor
    dmaengine: bcm-sba-raid: Peek mbox when we have no free requests
    dmaengine: bcm-sba-raid: Alloc resources before registering DMA device
    dmaengine: bcm-sba-raid: Improve sba_issue_pending() run duration
    dmaengine: bcm-sba-raid: Increase number of free sba_request
    dmaengine: bcm-sba-raid: Allow arbitrary number free sba_request
    dmaengine: bcm-sba-raid: Remove reqs_free_count from sba_device
    ...

    Linus Torvalds
     
  • Pull MFD updates from Lee Jones:
    "New Drivers
    - RK805 Power Management IC (PMIC)
    - ROHM BD9571MWV-M MFD Power Management IC (PMIC)
    - Texas Instruments TPS68470 Power Management IC (PMIC) & LEDs

    New Device Support:
    - Add support for HiSilicon Hi6421v530 to hi6421-pmic-core
    - Add support for X-Powers AXP806 to axp20x
    - Add support for X-Powers AXP813 to axp20x
    - Add support for Intel Sunrise Point LPSS to intel-lpss-pci

    New Functionality:
    - Amend API to provide register layout; atmel-smc

    Fix-ups:
    - DT re-work; omap, nokia
    - Header file location change {I2C => MFD}; dm355evm_msp, tps65010
    - Fix chip ID formatting issue(s); rk808
    - Optionally register touchscreen devices; da9052-core
    - Documentation improvements; twl-core
    - Constification; rtsx_pcr, ab8500-core, da9055-i2c, da9052-spi
    - Drop unnecessary static declaration; max8925-i2c
    - Kconfig changes (missing deps and remove module support)
    - Slim down oversized licence statement; hi6421-pmic-core
    - Use managed resources (devm_*); lp87565
    - Supply proper error checking/handling; t7l66xb

    Bug Fixes:
    - Fix counter duplication issue; da9052-core
    - Fix potential NULL deference issue; max8998
    - Leave SPI-NOR write-protection bit alone; lpc_ich
    - Ensure device is put into reset during suspend; intel-lpss
    - Correct register offset variable size; omap-usb-tll"

    * tag 'mfd-next-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (61 commits)
    mfd: intel_soc_pmic: Differentiate between Bay and Cherry Trail CRC variants
    mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT
    dt-bindings: mfd: Add bindings for ZII RAVE devices
    mfd: omap-usb-tll: Fix register offsets
    mfd: da9052: Constify spi_device_id
    mfd: intel-lpss: Put I2C and SPI controllers into reset state on suspend
    mfd: da9055: Constify i2c_device_id
    mfd: intel-lpss: Add missing PCI ID for Intel Sunrise Point LPSS devices
    mfd: t7l66xb: Handle return value of clk_prepare_enable
    mfd: Add ROHM BD9571MWV-M PMIC DT bindings
    mfd: intel_soc_pmic_chtwc: Turn Kconfig option into a bool
    mfd: lp87565: Convert to use devm_mfd_add_devices()
    mfd: Add support for TPS68470 device
    mfd: lpc_ich: Do not touch SPI-NOR write protection bit on Haswell/Broadwell
    mfd: syscon: atmel-smc: Add helper to retrieve register layout
    mfd: axp20x: Use correct platform device ID for many PEK
    dt-bindings: mfd: axp20x: Introduce bindings for AXP813
    mfd: axp20x: Add support for AXP813 PMIC
    dt-bindings: mfd: axp20x: Add AXP806 to supported list of chips
    mfd: Add ROHM BD9571MWV-M MFD PMIC driver
    ...

    Linus Torvalds
     
  • Pull powerpc updates from Michael Ellerman:
    "Nothing really major this release, despite quite a lot of activity.
    Just lots of things all over the place.

    Some things of note include:

    - Access via perf to a new type of PMU (IMC) on Power9, which can
    count both core events as well as nest unit events (Memory
    controller etc).

    - Optimisations to the radix MMU TLB flushing, mostly to avoid
    unnecessary Page Walk Cache (PWC) flushes when the structure of the
    tree is not changing.

    - Reworks/cleanups of do_page_fault() to modernise it and bring it
    closer to other architectures where possible.

    - Rework of our page table walking so that THP updates only need to
    send IPIs to CPUs where the affected mm has run, rather than all
    CPUs.

    - The size of our vmalloc area is increased to 56T on 64-bit hash MMU
    systems. This avoids problems with the percpu allocator on systems
    with very sparse NUMA layouts.

    - STRICT_KERNEL_RWX support on PPC32.

    - A new sched domain topology for Power9, to capture the fact that
    pairs of cores may share an L2 cache.

    - Power9 support for VAS, which is a new mechanism for accessing
    coprocessors, and initial support for using it with the NX
    compression accelerator.

    - Major work on the instruction emulation support, adding support for
    many new instructions, and reworking it so it can be used to
    implement the emulation needed to fixup alignment faults.

    - Support for guests under PowerVM to use the Power9 XIVE interrupt
    controller.

    And probably that many things again that are almost as interesting,
    but I had to keep the list short. Plus the usual fixes and cleanups as
    always.

    Thanks to: Alexey Kardashevskiy, Alistair Popple, Andreas Schwab,
    Aneesh Kumar K.V, Anju T Sudhakar, Arvind Yadav, Balbir Singh,
    Benjamin Herrenschmidt, Bhumika Goyal, Breno Leitao, Bryant G. Ly,
    Christophe Leroy, Cédric Le Goater, Dan Carpenter, Dou Liyang,
    Frederic Barrat, Gautham R. Shenoy, Geliang Tang, Geoff Levand, Hannes
    Reinecke, Haren Myneni, Ivan Mikhaylov, John Allen, Julia Lawall,
    LABBE Corentin, Laurentiu Tudor, Madhavan Srinivasan, Markus Elfring,
    Masahiro Yamada, Matt Brown, Michael Neuling, Murilo Opsfelder Araujo,
    Nathan Fontenot, Naveen N. Rao, Nicholas Piggin, Oliver O'Halloran,
    Paul Mackerras, Rashmica Gupta, Rob Herring, Rui Teng, Sam Bobroff,
    Santosh Sivaraj, Scott Wood, Shilpasri G Bhat, Sukadev Bhattiprolu,
    Suraj Jitindar Singh, Tobin C. Harding, Victor Aoqui"

    * tag 'powerpc-4.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (321 commits)
    powerpc/xive: Fix section __init warning
    powerpc: Fix kernel crash in emulation of vector loads and stores
    powerpc/xive: improve debugging macros
    powerpc/xive: add XIVE Exploitation Mode to CAS
    powerpc/xive: introduce H_INT_ESB hcall
    powerpc/xive: add the HW IRQ number under xive_irq_data
    powerpc/xive: introduce xive_esb_write()
    powerpc/xive: rename xive_poke_esb() in xive_esb_read()
    powerpc/xive: guest exploitation of the XIVE interrupt controller
    powerpc/xive: introduce a common routine xive_queue_page_alloc()
    powerpc/sstep: Avoid used uninitialized error
    axonram: Return directly after a failed kzalloc() in axon_ram_probe()
    axonram: Improve a size determination in axon_ram_probe()
    axonram: Delete an error message for a failed memory allocation in axon_ram_probe()
    powerpc/powernv/npu: Move tlb flush before launching ATSD
    powerpc/macintosh: constify wf_sensor_ops structures
    powerpc/iommu: Use permission-specific DEVICE_ATTR variants
    powerpc/eeh: Delete an error out of memory message at init time
    powerpc/mm: Use seq_putc() in two functions
    macintosh: Convert to using %pOF instead of full_name
    ...

    Linus Torvalds
     

07 Sep, 2017

3 commits

  • /proc/pid/smaps_rollup is a new proc file that improves the performance
    of user programs that determine aggregate memory statistics (e.g., total
    PSS) of a process.

    Android regularly "samples" the memory usage of various processes in
    order to balance its memory pool sizes. This sampling process involves
    opening /proc/pid/smaps and summing certain fields. For very large
    processes, sampling memory use this way can take several hundred
    milliseconds, due mostly to the overhead of the seq_printf calls in
    task_mmu.c.

    smaps_rollup improves the situation. It contains most of the fields of
    /proc/pid/smaps, but instead of a set of fields for each VMA,
    smaps_rollup instead contains one synthetic smaps-format entry
    representing the whole process. In the single smaps_rollup synthetic
    entry, each field is the summation of the corresponding field in all of
    the real-smaps VMAs. Using a common format for smaps_rollup and smaps
    allows userspace parsers to repurpose parsers meant for use with
    non-rollup smaps for smaps_rollup, and it allows userspace to switch
    between smaps_rollup and smaps at runtime (say, based on the
    availability of smaps_rollup in a given kernel) with minimal fuss.

    By using smaps_rollup instead of smaps, a caller can avoid the
    significant overhead of formatting, reading, and parsing each of a large
    process's potentially very numerous memory mappings. For sampling
    system_server's PSS in Android, we measured a 12x speedup, representing
    a savings of several hundred milliseconds.

    One alternative to a new per-process proc file would have been including
    PSS information in /proc/pid/status. We considered this option but
    thought that PSS would be too expensive (by a few orders of magnitude)
    to collect relative to what's already emitted as part of
    /proc/pid/status, and slowing every user of /proc/pid/status for the
    sake of readers that happen to want PSS feels wrong.

    The code itself works by reusing the existing VMA-walking framework we
    use for regular smaps generation and keeping the mem_size_stats
    structure around between VMA walks instead of using a fresh one for each
    VMA. In this way, summation happens automatically. We let seq_file
    walk over the VMAs just as it does for regular smaps and just emit
    nothing to the seq_file until we hit the last VMA.

    Benchmarks:

    using smaps:
    iterations:1000 pid:1163 pss:220023808
    0m29.46s real 0m08.28s user 0m20.98s system

    using smaps_rollup:
    iterations:1000 pid:1163 pss:220702720
    0m04.39s real 0m00.03s user 0m04.31s system

    We're using the PSS samples we collect asynchronously for
    system-management tasks like fine-tuning oom_adj_score, memory use
    tracking for debugging, application-level memory-use attribution, and
    deciding whether we want to kill large processes during system idle
    maintenance windows. Android has been using PSS for these purposes for
    a long time; as the average process VMA count has increased and and
    devices become more efficiency-conscious, PSS-collection inefficiency
    has started to matter more. IMHO, it'd be a lot safer to optimize the
    existing PSS-collection model, which has been fine-tuned over the years,
    instead of changing the memory tracking approach entirely to work around
    smaps-generation inefficiency.

    Tim said:

    : There are two main reasons why Android gathers PSS information:
    :
    : 1. Android devices can show the user the amount of memory used per
    : application via the settings app. This is a less important use case.
    :
    : 2. We log PSS to help identify leaks in applications. We have found
    : an enormous number of bugs (in the Android platform, in Google's own
    : apps, and in third-party applications) using this data.
    :
    : To do this, system_server (the main process in Android userspace) will
    : sample the PSS of a process three seconds after it changes state (for
    : example, app is launched and becomes the foreground application) and about
    : every ten minutes after that. The net result is that PSS collection is
    : regularly running on at least one process in the system (usually a few
    : times a minute while the screen is on, less when screen is off due to
    : suspend). PSS of a process is an incredibly useful stat to track, and we
    : aren't going to get rid of it. We've looked at some very hacky approaches
    : using RSS ("take the RSS of the target process, subtract the RSS of the
    : zygote process that is the parent of all Android apps") to reduce the
    : accounting time, but it regularly overestimated the memory used by 20+
    : percent. Accordingly, I don't think that there's a good alternative to
    : using PSS.
    :
    : We started looking into PSS collection performance after we noticed random
    : frequency spikes while a phone's screen was off; occasionally, one of the
    : CPU clusters would ramp to a high frequency because there was 200-300ms of
    : constant CPU work from a single thread in the main Android userspace
    : process. The work causing the spike (which is reasonable governor
    : behavior given the amount of CPU time needed) was always PSS collection.
    : As a result, Android is burning more power than we should be on PSS
    : collection.
    :
    : The other issue (and why I'm less sure about improving smaps as a
    : long-term solution) is that the number of VMAs per process has increased
    : significantly from release to release. After trying to figure out why we
    : were seeing these 200-300ms PSS collection times on Android O but had not
    : noticed it in previous versions, we found that the number of VMAs in the
    : main system process increased by 50% from Android N to Android O (from
    : ~1800 to ~2700) and varying increases in every userspace process. Android
    : M to N also had an increase in the number of VMAs, although not as much.
    : I'm not sure why this is increasing so much over time, but thinking about
    : ASLR and ways to make ASLR better, I expect that this will continue to
    : increase going forward. I would not be surprised if we hit 5000 VMAs on
    : the main Android process (system_server) by 2020.
    :
    : If we assume that the number of VMAs is going to increase over time, then
    : doing anything we can do to reduce the overhead of each VMA during PSS
    : collection seems like the right way to go, and that means outputting an
    : aggregate statistic (to avoid whatever overhead there is per line in
    : writing smaps and in reading each line from userspace).

    Link: http://lkml.kernel.org/r/20170812022148.178293-1-dancol@google.com
    Signed-off-by: Daniel Colascione
    Cc: Tim Murray
    Cc: Joel Fernandes
    Cc: Al Viro
    Cc: Randy Dunlap
    Cc: Minchan Kim
    Cc: Michal Hocko
    Cc: Sonny Rao
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Colascione
     
  • The sysfs interface to control the VMA based swap readahead is added as
    follow,

    /sys/kernel/mm/swap/vma_ra_enabled

    Enable the VMA based swap readahead algorithm, or use the original
    global swap readahead algorithm.

    /sys/kernel/mm/swap/vma_ra_max_order

    Set the max order of the readahead window size for the VMA based swap
    readahead algorithm.

    The corresponding ABI documentation is added too.

    Link: http://lkml.kernel.org/r/20170807054038.1843-5-ying.huang@intel.com
    Signed-off-by: "Huang, Ying"
    Cc: Johannes Weiner
    Cc: Minchan Kim
    Cc: Rik van Riel
    Cc: Shaohua Li
    Cc: Hugh Dickins
    Cc: Fengguang Wu
    Cc: Tim Chen
    Cc: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Ying
     
  • This patch adds document and kconfig for using of writeback feature.

    Link: http://lkml.kernel.org/r/1498459987-24562-10-git-send-email-minchan@kernel.org
    Signed-off-by: Minchan Kim
    Cc: Juneho Choi
    Cc: Sergey Senozhatsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Minchan Kim
     

06 Sep, 2017

3 commits

  • Pull power management updates from Rafael Wysocki:
    "This time (again) cpufreq gets the majority of changes which mostly
    are driver updates (including a major consolidation of intel_pstate),
    some schedutil governor modifications and core cleanups.

    There also are some changes in the system suspend area, mostly related
    to diagnostics and debug messages plus some renames of things related
    to suspend-to-idle. One major change here is that suspend-to-idle is
    now going to be preferred over S3 on systems where the ACPI tables
    indicate to do so and provide requsite support (the Low Power Idle S0
    _DSM in particular). The system sleep documentation and the tools
    related to it are updated too.

    The rest is a few cpuidle changes (nothing major), devfreq updates,
    generic power domains (genpd) framework updates and a few assorted
    modifications elsewhere.

    Specifics:

    - Drop the P-state selection algorithm based on a PID controller from
    intel_pstate and make it use the same P-state selection method
    (based on the CPU load) for all types of systems in the active mode
    (Rafael Wysocki, Srinivas Pandruvada).

    - Rework the cpufreq core and governors to make it possible to take
    cross-CPU utilization updates into account and modify the schedutil
    governor to actually do so (Viresh Kumar).

    - Clean up the handling of transition latency information in the
    cpufreq core and untangle it from the information on which drivers
    cannot do dynamic frequency switching (Viresh Kumar).

    - Add support for new SoCs (MT2701/MT7623 and MT7622) to the mediatek
    cpufreq driver and update its DT bindings (Sean Wang).

    - Modify the cpufreq dt-platdev driver to autimatically create
    cpufreq devices for the new (v2) Operating Performance Points (OPP)
    DT bindings and update its whitelist of supported systems (Viresh
    Kumar, Shubhrajyoti Datta, Marc Gonzalez, Khiem Nguyen, Finley
    Xiao).

    - Add support for Ux500 to the cpufreq-dt driver and drop the
    obsolete dbx500 cpufreq driver (Linus Walleij, Arnd Bergmann).

    - Add new SoC (R8A7795) support to the cpufreq rcar driver (Khiem
    Nguyen).

    - Fix and clean up assorted issues in the cpufreq drivers and core
    (Arvind Yadav, Christophe Jaillet, Colin Ian King, Gustavo Silva,
    Julia Lawall, Leonard Crestez, Rob Herring, Sudeep Holla).

    - Update the IO-wait boost handling in the schedutil governor to make
    it less aggressive (Joel Fernandes).

    - Rework system suspend diagnostics to make it print fewer messages
    to the kernel log by default, add a sysfs knob to allow more
    suspend-related messages to be printed and add Low Power S0 Idle
    constraints checks to the ACPI suspend-to-idle code (Rafael
    Wysocki, Srinivas Pandruvada).

    - Prefer suspend-to-idle over S3 on ACPI-based systems with the
    ACPI_FADT_LOW_POWER_S0 flag set and the Low Power Idle S0 _DSM
    interface present in the ACPI tables (Rafael Wysocki).

    - Update documentation related to system sleep and rename a number of
    items in the code to make it cleare that they are related to
    suspend-to-idle (Rafael Wysocki).

    - Export a variable allowing device drivers to check the target
    system sleep state from the core system suspend code (Florian
    Fainelli).

    - Clean up the cpuidle subsystem to handle the polling state on x86
    in a more straightforward way and to use %pOF instead of full_name
    (Rafael Wysocki, Rob Herring).

    - Update the devfreq framework to fix and clean up a few minor issues
    (Chanwoo Choi, Rob Herring).

    - Extend diagnostics in the generic power domains (genpd) framework
    and clean it up slightly (Thara Gopinath, Rob Herring).

    - Fix and clean up a couple of issues in the operating performance
    points (OPP) framework (Viresh Kumar, Waldemar Rymarkiewicz).

    - Add support for RV1108 to the rockchip-io Adaptive Voltage Scaling
    (AVS) driver (David Wu).

    - Fix the usage of notifiers in CPU power management on some
    platforms (Alex Shi).

    - Update the pm-graph system suspend/hibernation and boot profiling
    utility (Todd Brandt).

    - Make it possible to run the cpupower utility without CPU0 (Prarit
    Bhargava)"

    * tag 'pm-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (87 commits)
    cpuidle: Make drivers initialize polling state
    cpuidle: Move polling state initialization code to separate file
    cpuidle: Eliminate the CPUIDLE_DRIVER_STATE_START symbol
    cpufreq: imx6q: Fix imx6sx low frequency support
    cpufreq: speedstep-lib: make several arrays static, makes code smaller
    PM: docs: Delete the obsolete states.txt document
    PM: docs: Describe high-level PM strategies and sleep states
    PM / devfreq: Fix memory leak when fail to register device
    PM / devfreq: Add dependency on PM_OPP
    PM / devfreq: Move private devfreq_update_stats() into devfreq
    PM / devfreq: Convert to using %pOF instead of full_name
    PM / AVS: rockchip-io: add io selectors and supplies for RV1108
    cpufreq: ti: Fix 'of_node_put' being called twice in error handling path
    cpufreq: dt-platdev: Drop few entries from whitelist
    cpufreq: dt-platdev: Automatically create cpufreq device with OPP v2
    ARM: ux500: don't select CPUFREQ_DT
    cpuidle: Convert to using %pOF instead of full_name
    cpufreq: Convert to using %pOF instead of full_name
    PM / Domains: Convert to using %pOF instead of full_name
    cpufreq: Cap the default transition delay value to 10 ms
    ...

    Linus Torvalds
     
  • Pull char/misc driver updates from Greg KH:
    "Here is the big char/misc driver update for 4.14-rc1.

    Lots of different stuff in here, it's been an active development cycle
    for some reason. Highlights are:

    - updated binder driver, this brings binder up to date with what
    shipped in the Android O release, plus some more changes that
    happened since then that are in the Android development trees.

    - coresight updates and fixes

    - mux driver file renames to be a bit "nicer"

    - intel_th driver updates

    - normal set of hyper-v updates and changes

    - small fpga subsystem and driver updates

    - lots of const code changes all over the driver trees

    - extcon driver updates

    - fmc driver subsystem upadates

    - w1 subsystem minor reworks and new features and drivers added

    - spmi driver updates

    Plus a smattering of other minor driver updates and fixes.

    All of these have been in linux-next with no reported issues for a
    while"

    * tag 'char-misc-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (244 commits)
    ANDROID: binder: don't queue async transactions to thread.
    ANDROID: binder: don't enqueue death notifications to thread todo.
    ANDROID: binder: Don't BUG_ON(!spin_is_locked()).
    ANDROID: binder: Add BINDER_GET_NODE_DEBUG_INFO ioctl
    ANDROID: binder: push new transactions to waiting threads.
    ANDROID: binder: remove proc waitqueue
    android: binder: Add page usage in binder stats
    android: binder: fixup crash introduced by moving buffer hdr
    drivers: w1: add hwmon temp support for w1_therm
    drivers: w1: refactor w1_slave_show to make the temp reading functionality separate
    drivers: w1: add hwmon support structures
    eeprom: idt_89hpesx: Support both ACPI and OF probing
    mcb: Fix an error handling path in 'chameleon_parse_cells()'
    MCB: add support for SC31 to mcb-lpc
    mux: make device_type const
    char: virtio: constify attribute_group structures.
    Documentation/ABI: document the nvmem sysfs files
    lkdtm: fix spelling mistake: "incremeted" -> "incremented"
    perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
    nvmem: include linux/err.h from header
    ...

    Linus Torvalds
     
  • Pull staging/IIO driver updates from Greg KH:
    "Here is the big staging and IIO driver update for 4.14-rc1.

    Lots of staging driver fixes and cleanups, including some reorginizing
    of the lustre header files to try to impose some sanity on what is,
    and what is not, the uapi for that filesystem.

    There are some tty core changes in here as well, as the speakup
    drivers need them, and that's ok with me, they are sane and the
    speakup code is getting nicer because of it.

    There is also the addition of the obiligatory new wifi driver, just
    because it has been a release or two since we added our last one...

    Other than that, lots and lots of small coding style fixes, as usual.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'staging-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (612 commits)
    staging:rtl8188eu:core Fix remove unneccessary else block
    staging: typec: fusb302: make structure fusb302_psy_desc static
    staging: unisys: visorbus: make two functions static
    staging: fsl-dpaa2/eth: fix off-by-one FD ctrl bitmaks
    staging: r8822be: Simplify deinit_priv()
    staging: r8822be: Remove some dead code
    staging: vboxvideo: Use CONFIG_DRM_KMS_FB_HELPER to check for fbdefio availability
    staging:rtl8188eu Fix comparison to NULL
    staging: rts5208: rename mmc_ddr_tunning_rx_cmd to mmc_ddr_tuning_rx_cmd
    Staging: Pi433: style fix - tabs and spaces
    staging: pi433: fix spelling mistake: "preample" -> "preamble"
    staging:rtl8188eu:core Fix Code Indent
    staging: typec: fusb302: Export current-limit through a power_supply class dev
    staging: typec: fusb302: Add support for USB2 charger detection through extcon
    staging: typec: fusb302: Use client->irq as irq if set
    staging: typec: fusb302: Get max snk mv/ma/mw from device-properties
    staging: typec: fusb302: Set max supply voltage to 5V
    staging: typec: tcpm: Add get_current_limit tcpc_dev callback
    staging:rtl8188eu Use __func__ instead of function name
    staging: lustre: coding style fixes found by checkpatch.pl
    ...

    Linus Torvalds
     

04 Sep, 2017

1 commit


28 Aug, 2017

4 commits

  • NVMEM has been in kernel since v4.2 but the ABI document was missing
    since then. userspace interface did not change since then and seems
    stable, so this patch documents the nvmem ABI.

    Signed-off-by: Srinivas Kandagatla
    Signed-off-by: Greg Kroah-Hartman

    Srinivas Kandagatla
     
  • If secure authentication of a devices fails, either because the device
    already has another key uploaded, or there is some other error sending
    challenge to the device, and the user only wants to approve the device
    just once (without a new key being uploaded to the device) the current
    implementation does not allow this because the key cannot be cleared
    once set even if we allow it to be changed.

    Make this scenario possible and allow clearing the key by writing
    empty string to the key sysfs file.

    Signed-off-by: Yehezkel Bernat
    Acked-by: Mika Westerberg
    Signed-off-by: Greg Kroah-Hartman

    Bernat, Yehezkel
     
  • CONFIG_PPC_MEMTRACE must be set to use this feature. This can only be
    used on powernv platforms.

    Signed-off-by: Rashmica Gupta
    [mpe: Update dates and kernel versions, mention size is in bytes]
    Signed-off-by: Michael Ellerman

    Rashmica Gupta
     
  • Add support for the SuperSpeed Link Layer test case TD.7.34
    which requires the operator to place the port into compliance
    mode, and to subsequently bring it out via reset. Historically
    according to the (now deprecated) USB 3.0 specification a
    SuperSpeed host downstream port would automatically transition
    to Compliance mode from the Polling state if LFPS polling times
    out. However the language in USB 3.1 as well as xHCI 1.1 states
    it may be required to explicitly enable this transition. For
    such hosts this is done by sending a SET_FEATURE(PORT_LINK_STATE)
    with the state set to Compliance to the root hub port.

    Similar to the other supported commands, to do this via sysfs:

    echo > /sys/bus/usb/devices/2-0\:1.0/enable_compliance

    According to xHCI 1.1 section 4.19.1.2.4.1, this enables the
    transition to compliance mode upon LFPS timeout. Note that this
    can only be issued when the port is in disconnected state. And
    in order to disable this behavior on subsequent transitions, a
    warm reset should be issued. So add another entry to do that:

    echo > /sys/bus/usb/devices/2-0\:1.0/warm_reset

    In general these attributes can also be useful for other USB
    SuperSpeed compliance tests such as electrical and eye diagram
    testing which require CPn patterns to be transmitted.

    Signed-off-by: Jack Pham
    Signed-off-by: Greg Kroah-Hartman

    Jack Pham
     

22 Aug, 2017

2 commits

  • Commit d618ebaf0aa8 ("f2fs: enable small discard by default") enables
    f2fs to issue 4K size discard in real-time discard mode. However, issuing
    smaller discard may cost more lifetime but releasing less free space in
    flash device. Since f2fs has ability of separating hot/cold data and
    garbage collection, we can expect that small-sized invalid region would
    expand soon with OPU, deletion or garbage collection on valid datas, so
    it's better to delay or skip issuing smaller size discards, it could help
    to reduce overmuch consumption of IO bandwidth and lifetime of flash
    storage.

    This patch makes f2fs selectng 64K size as its default minimal
    granularity, and issue discard with the size which is not smaller than
    minimal granularity. Also it exposes discard granularity as sysfs entry
    for configuration in different scenario.

    Jaegeuk Kim:
    We must issue all the accumulated discard commands when fstrim is called.
    So, I've added pend_list_tag[] to indicate whether we should issue the
    commands or not. If tag sets P_ACTIVE or P_TRIM, we have to issue them.
    P_TRIM is set once at a time, given fstrim trigger.
    In addition, issue_discard_thread is calling too much due to the number of
    discard commands remaining in the pending list. I added a timer to control
    it likewise gc_thread.

    Signed-off-by: Chao Yu
    Signed-off-by: Jaegeuk Kim

    Chao Yu
     
  • ABI document added to describe all sysfs variables
    for dma

    Signed-off-by: Ujjal Singh
    Acked-by: Dave Jiang
    Signed-off-by: Vinod Koul

    Ujjal Singh
     

16 Aug, 2017

1 commit


15 Aug, 2017

1 commit

  • This adds 3 new options to the RNDIS gadget function configs. It allows
    overriding the default USB interface class/subclass/protocol.

    The motivation for this is that if you set the values to "ef" (Misc),
    "04" (RNDIS), "01" (Ethernet) respectively, then the device will be
    recognized by the rndiscmp.inf file in Windows Vista and newer and will
    cause Windows to load the correct RNDIS driver without the need for a
    custom (signed) .inf file.

    Signed-off-by: David Lechner
    Signed-off-by: Felipe Balbi

    David Lechner
     

10 Aug, 2017

2 commits


28 Jul, 2017

1 commit

  • …/iio into staging-next

    Jonathan writes:

    First round of IIO new device support, features and cleanups for the 4.14 cycle.

    4 completely new drivers in this set and plenty of other stuff.

    One ABI change due to a silly mistake a long time back. Hopefully no
    one will notice. It effects the numerical order of consumer device
    channels which was the reverse of the obvious. It's going the slow
    way to allow us some margin to spot if we have broken userspace or
    not (seems unlikely)

    New Device Support
    * ccs811
    - new driver for the Volatile Organic Compounds (VOC) sensor.
    * dln2 adc
    - new driver for the ADC on this flexible usb board.
    * EP93xx
    - new driver for this Cirrus logic SoC ADC.
    * ltc2471
    - new ADC driver support the ltc2471 and ltc2473
    * st_accel
    - add trivial table entries to support H3LIS331DL, LIS331DL, LIS3LV02DL.
    * st_gyro
    - add L3GD20H support (again) having fixed the various things that were
    broken in the first try. Includes devicetree binding.
    * stm32 dac
    - add support for the DACs in the STM32F4 series

    Features
    * Documentation
    - add missing power attribute documentation to the ABI docs.
    * at91-sama5d2
    - add hardware trigger and buffered capture support with bindings.
    - suspend and resume functionality.
    * bmc150
    - support for the BOSC0200 ACPI device id seen on some tablets.
    * hdc100x
    - devicetree bindings
    - document supported devices
    - match table and device ids.
    * hts221
    - support active low interrupts (with bindings)
    - open drain mode with bindings.
    * htu21
    - OF match table and bindings.
    * lsm6dsx
    - open drain mode with bindings
    * ltc2497
    - add support for board file based consumer mapping.
    * ms5367
    - OF match table and bindings.
    * mt7622
    - binding document and OF match table.
    - suspend and resume support.
    * rpr0521
    - triggered buffer support.
    * tsys01
    - OF match table and bindings.

    Cleanups and minor fixes
    * core
    - fix ordering of IIO channels to entry numbers when using
    iio_map_array_register rather than reversing them.
    - use the new %pOF format specifier rather than full name for the
    device tree nodes.
    * ad7280a
    - fix potential issue with macro argument reuse.
    * ad7766
    - drop a pointless NULL value check as it's done in the gpiod code.
    * adis16400
    - unsigned -> unsigned int.
    * at91 adc
    - make some init data static to reduce code size.
    * at91-sama5d2 ADC
    - make some init data static to reduce code size.
    * da311
    - make some init data static to reduce code size.
    * hid-sensor-rotation
    - drop an unnecessary static.
    * hts221
    - refactor the write_with_mask code.
    - move the BDU configuration to probe time as there is no reason for it
    to change.
    - avoid overwriting reserved data during power-down. This is a fix, but
    the infrastructure need was too invasive to send it to mainline except
    in a merge window. It's not a regression as it was always wrong.
    - avoid reconfigure the sampling frequency multiple times by just
    doing it in the write_raw function directly.
    - refactor the power_on/off calls into a set_enable.
    - move the dry-enable logic into trig_set_state as that is the only
    place it was used.
    * ina219
    - fix polling of ina226 conversion ready flag.
    * imx7d
    - add vendor name in kconfig for consistency with similar parts.
    * mcp3422
    - Change initial channel to 0 as it feels more logical.
    - Check for some errors in probe.
    * meson-saradc
    - add a check of of_match_device return value.
    * mpu3050
    - allow open drain for any interrupt type.
    * rockchip adc
    - add check on of_match_device return value.
    * sca3000
    - drop a trailing whitespace.
    * stm32 adc
    - make array stm32h7_adc_ckmodes_spec static.
    * stm32 dac
    - fix an error message.
    * stm32 timers
    - fix clock name in docs to match reality after changes.
    * st_accel
    - explicit OF table (spi).
    - add missing entries to OF table (i2c).
    - rename of_device_id table to drop the part name.
    - adding missing lis3l02dq entry to bindings.
    - rename H3LIS331DL_DRIVER_NAME to line up with similar entries in driver.
    * st_gyro
    - explicit OF table (spi).
    * st_magn
    - explicit OF table (spi).
    - enable multiread for lis3mdl.
    * st_pressure
    - explicit OF table (spi).
    * st_sensors common.
    - move st_sensors_of_i2c_probe and rename to make it available for spi
    drivers.
    * tsc3472
    - don't write an extra byte when writing the ATIME register.
    - add a link to the datasheet.
    * tsl2x7x - continued staging cleanups
    - add of_match_table.
    - drop redundant power_state sysfs attribute.
    - drop wrapper tsl2x7x_i2c_read.
    - clean up i2c calls made in tsl2x7x_als_calibrate.
    - refactor the read and write _event_value callbacks to handle additional
    elements.
    - use usleep_range instead of mdelay.
    - check return value from tsl2x7x_invoke_change.
    * zpa2326
    - add some newline to the end of logging macros.

    Greg Kroah-Hartman
     

22 Jul, 2017

1 commit

  • Debug messages from the system suspend/hibernation infrastructure can
    fill up the entire kernel log buffer in some cases and anyway they
    are only useful for debugging. They depend on CONFIG_PM_DEBUG, but
    that is set as a rule as some generally useful diagnostic facilities
    depend on it too.

    For this reason, avoid printing those messages by default, but make
    it possible to turn them on as needed with the help of a new sysfs
    attribute under /sys/power/.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

18 Jul, 2017

1 commit


17 Jul, 2017

1 commit