1. 04 Dec, 2017 9 commits
    • Hans de Goede's avatar
      efifb: Set info->fbcon_rotate_hint based on drm_get_panel_orientation_quirk · 028b186f
      Hans de Goede authored
      On some hardware the LCD panel is not mounted upright in the casing,
      but rotated by 90 degrees. In this case we want the console to
      automatically be rotated to compensate.
      
      The drm subsys has a quirk table for this, use the
      drm_get_panel_orientation_quirk function to get the panel orientation
      and set info->fbcon_rotate_hint based on this, so that the fbcon console
      on top of efifb gets automatically rotated to compensate for the panel
      orientation.
      Acked-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171125193553.23986-7-hdegoede@redhat.com
      028b186f
    • Hans de Goede's avatar
      drm/i915: Add "panel orientation" property to the panel connector, v6. · 82daca29
      Hans de Goede authored
      Ideally we could use the VBT for this, that would be simple, in
      intel_dsi_init() check dev_priv->vbt.dsi.config->rotation, set
      connector->display_info.panel_orientation accordingly and call
      drm_connector_init_panel_orientation_property(), done.
      
      Unfortunately vbt.dsi.config->rotation is always 0 even on tablets
      with an upside down LCD and where the GOP is properly rotating the
      EFI fb in hardware.
      
      So instead we end up reading the rotation from the primary plane.
      
      This commit only implements the panel orientation property for DSI
      panels on BYT / CHT hardware, as all known non normal oriented panels
      sofar are only found on this hardware.
      
      Changes in v2:
      -Read back the rotation applied by the GOP from the primary plane
       instead of relying on dev_priv->vbt.dsi.config->rotation, because it
       seems that the VBT rotation filed is always 0 even on devices where the
       GOP does apply a rotation
      
      Changes in v3:
      -Rewrite the code to read back the orientation from the primary
       plane to contain all of this in intel_dsi.c instead of poking a bunch
       of holes between all the different layers
      
      Changes in v6:
      -Move hardware readout to intel_dsi_init()
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171125193553.23986-6-hdegoede@redhat.com
      82daca29
    • Hans de Goede's avatar
      drm/fb-helper: Apply panel orientation connector prop to the primary plane, v6. · 8f0cb418
      Hans de Goede authored
      Apply the "panel orientation" drm connector prop to the primary plane so
      that fbcon and fbdev using userspace programs display the right way up.
      
      Changes in v3:
      -Use a rotation member in struct drm_fb_helper_crtc and set that from
       drm_setup_crtcs instead of looping over all crtc's to find the right one
       later
      -Since we now no longer look at rotation quirks directly in the fbcon
       code, set fb_info.fbcon_rotate_hint when the panel is not mounted upright
       and we cannot use hardware rotation
      
      Changes in v4:
      -Make drm_fb_helper_init() init drm_fb_helper_crtc.rotation to
       DRM_MODE_ROTATE_0 for all crtcs, so that we do not end up setting the
       plane_state's rotation to an invalid value for disabled crtcs
       (caught by Fi.CI)
      
      Changes in v5:
      -Only use hardware (crtc primary plane) rotation for DRM_ROTATE_180,
       90 / 270 degree rotation requires special handling which we lack atm
      -Add a TODO comment for 90 / 270 degree hardware rotation
      -Add some comments to better document the default case when mapping
       sw_rotations to fbcon_rotate_hints
      
      Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=94894Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171125193553.23986-5-hdegoede@redhat.com
      8f0cb418
    • Hans de Goede's avatar
      drm: Add support for a panel-orientation connector property, v6 · 8d70f395
      Hans de Goede authored
      On some devices the LCD panel is mounted in the casing in such a way that
      the up/top side of the panel does not match with the top side of the
      device (e.g. it is mounted upside-down).
      
      This commit adds the necessary infra for lcd-panel drm_connector-s to
      have a "panel orientation" property to communicate how the panel is
      orientated vs the casing.
      
      Userspace can use this property to check for non-normal orientation and
      then adjust the displayed image accordingly by rotating it to compensate.
      
      Changes in v2:
      -Store panel_orientation in drm_display_info, so that drm_fb_helper.c can
       access it easily
      -Have a single drm_connector_init_panel_orientation_property rather then
       create and attach functions. The caller is expected to set
       drm_display_info.panel_orientation before calling this, then this will
       check for platform specific quirks overriding the panel_orientation and if
       the panel_orientation is set after this then it will attach the property.
      
      Changes in v6:
      -Use an enum (with kerneldoc) rather then #defines for
       DRM_MODE_PANEL_ORIENTATION_*
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171125193553.23986-4-hdegoede@redhat.com
      8d70f395
    • Hans de Goede's avatar
      drm: Add panel orientation quirks, v6. · 404d1a3e
      Hans de Goede authored
      Some x86 clamshell design devices use portrait tablet screens and a display
      engine which cannot rotate in hardware, so the firmware just leaves things
      as is and we cannot figure out that the display is oriented non upright
      from the hardware.
      
      So at least on x86, we need a quirk table for this. This commit adds a DMI
      based quirk table which is initially populated with 5 such devices: Asus
      T100HA, GPD Pocket, GPD win, I.T.Works TW891 and the VIOS LTH17.
      
      This quirk table will be used by the drm code to let userspace know that
      the display is not mounted upright inside the devices case through a new
      panel orientation drm-connector property, as well as to tell fbcon to
      rotate the console so that it shows the right way up.
      
      Changes in v5:
      -Add a kernel-doc comment documenting drm_get_panel_orientation_quirk()
      -Remove board_* matches from the dmi-matches for the VIOS LTH17 laptop,
       keeping only the (identical) sys_vendor and product_name matches.
       This is necessary because an older version of the bios has
       board_vendor set to VOIS instead of VIOS
      
      Changes in v6:
      -Add reference to added kernel-docs in Documentation/gpu/drm-kms-helpers.rst
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171125193553.23986-3-hdegoede@redhat.com
      404d1a3e
    • Hans de Goede's avatar
      fbcon: Add fbcon_rotate_hint to struct fb_info · c9e6a364
      Hans de Goede authored
      On some hardware the LCD panel is not mounted upright in the casing,
      but upside-down or rotated 90 degrees. In this case we want the console
      to automatically be rotated to compensate.
      
      The fbdev-driver may know about the need to rotate. Add a new
      fbcon_rotate_hint field to struct fb_info, which gets initialized to -1.
      If the fbdev-driver knows that some sort of rotation is necessary then
      it can set this field to a FB_ROTATE_* value to tell the fbcon console
      driver to rotate the console.
      Acked-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171125193553.23986-2-hdegoede@redhat.com
      c9e6a364
    • Gustavo Padovan's avatar
      Merge arlied/drm-next into drm-misc-next · 7b47c66c
      Gustavo Padovan authored
      We need to pull 66660d4c (drm: add connector info/property for
      non-desktop displays [v2]) into drm-misc-next to continue the development
      of the display rotation series.
      
      Effectively this also pulls 4.15-r2 into drm-misc-next.
      Signed-off-by: default avatarGustavo Padovan <gustavo.padovan@collabora.com>
      7b47c66c
    • Lucas Stach's avatar
      drm/prime: skip CPU sync in map/unmap dma_buf · ca0e68e2
      Lucas Stach authored
      Dma-bufs should already be device coherent, as they are only pulled in the
      CPU domain via the begin/end cpu_access calls. As we cache the mapping set
      up by dma_map_sg a CPU sync at this point will not actually guarantee proper
      coherency on non-coherent architectures, so we can as well stop pretending.
      
      This is an important performance fix for architectures which need explicit
      cache synchronization and userspace doing lots of dma-buf imports.
      Improves Weston on Etnaviv performance 5x, where before this patch > 90%
      of Weston CPU time was spent synchronizing caches for buffers which are
      already device coherent.
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171130173428.8666-1-l.stach@pengutronix.de
      ca0e68e2
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2017-11-17-1' of... · ca797d29
      Dave Airlie authored
      Merge tag 'drm-intel-next-2017-11-17-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
      
      More change sets for 4.16:
      
      - Many improvements for selftests and other igt tests (Chris)
      - Forcewake with PUNIT->PMIC bus fixes and robustness (Hans)
      - Define an engine class for uABI (Tvrtko)
      - Context switch fixes and improvements (Chris)
      - GT powersavings and power gating simplification and fixes (Chris)
      - Other general driver clean-ups (Chris, Lucas, Ville)
      - Removing old, useless and/or bad workarounds (Chris, Oscar, Radhakrishna)
      - IPS, pipe config, etc in preparation for another Fast Boot attempt (Maarten)
      - OA perf fixes and support to Coffee Lake and Cannonlake (Lionel)
      - Fixes around GPU fault registers (Michel)
      - GEM Proxy (Tina)
      - Refactor of Geminilake and Cannonlake plane color handling (James)
      - Generalize transcoder loop (Mika Kahola)
      - New HW Workaround for Cannonlake and Geminilake (Rodrigo)
      - Resume GuC before using GEM (Chris)
      - Stolen Memory handling improvements (Ville)
      - Initialize entry in PPAT for older compilers (Chris)
      - Other fixes and robustness improvements on execbuf (Chris)
      - Improve logs of GEM_BUG_ON (Mika Kuoppala)
      - Rework with massive rename of GuC functions and files (Sagar)
      - Don't sanitize frame start delay if pipe is off (Ville)
      - Cannonlake clock fixes (Rodrigo)
      - Cannonlake HDMI 2.0 support (Rodrigo)
      - Add a GuC doorbells selftest (Michel)
      - Add might_sleep() check to our wait_for() (Chris)
      
      Many GVT changes for 4.16:
      
      - CSB HWSP update support (Weinan)
      - GVT debug helpers, dyndbg and debugfs (Chuanxiao, Shuo)
      - full virtualized opregion (Xiaolin)
      - VM health check for sane fallback (Fred)
      - workload submission code refactor for future enabling (Zhi)
      - Updated repo URL in MAINTAINERS (Zhenyu)
      - other many misc fixes
      
      * tag 'drm-intel-next-2017-11-17-1' of git://anongit.freedesktop.org/drm/drm-intel: (260 commits)
        drm/i915: Update DRIVER_DATE to 20171117
        drm/i915: Add a policy note for removing workarounds
        drm/i915/selftests: Report ENOMEM clearly for an allocation failure
        Revert "drm/i915: Display WA #1133 WaFbcSkipSegments:cnl, glk"
        drm/i915: Calculate g4x intermediate watermarks correctly
        drm/i915: Calculate vlv/chv intermediate watermarks correctly, v3.
        drm/i915: Pass crtc_state to ips toggle functions, v2
        drm/i915: Pass idle crtc_state to intel_dp_sink_crc
        drm/i915: Enable FIFO underrun reporting after initial fastset, v4.
        drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM
        drm/i915: Add might_sleep() check to wait_for()
        drm/i915/selftests: Add a GuC doorbells selftest
        drm/i915/cnl: Extend HDMI 2.0 support to CNL.
        drm/i915/cnl: Simplify dco_fraction calculation.
        drm/i915/cnl: Don't blindly replace qdiv.
        drm/i915/cnl: Fix wrpll math for higher freqs.
        drm/i915/cnl: Fix, simplify and unify wrpll variable sizes.
        drm/i915/cnl: Remove useless conversion.
        drm/i915/cnl: Remove spurious central_freq.
        drm/i915/selftests: exercise_ggtt may have nothing to do
        ...
      ca797d29
  2. 03 Dec, 2017 6 commits
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-next · 2c1c55cb
      Dave Airlie authored
      Cross-subsystem Changes:
      
      - device tree doc for the Mitsubishi AA070MC01 and Tianma TM070RVHG71
      panels (Lukasz Majewski) and for a 2nd endpoint on stm32 (Philippe Cornu)
      
      Core Changes:
      
      The most important changes are:
      
      - Add drm_driver .last_close and .output_poll_changed helpers to reduce
      fbdev emulation footprint in drivers (Noralf)
      - Fix plane clipping in core and for vmwgfx (Ville)
      
      Then we have a bunch of of improvement for print and debug such as the
      addition of a framebuffer debugfs file. ELD connector, HDMI and
      improvements.  And a bunch of misc improvements, clean ups and style
      changes and doc updates
      
      [airlied: drop eld bits from amdgpu_dm]
      
      Driver Changes:
      
      - sii8620: filter unsupported modes and add DVI mode support (Maciej Purski)
      - rockchip: analogix_dp: Remove unnecessary init code (Jeffy Chen)
      - virtio, cirrus: add fb create_handle support to enable screenshots(Lepton Wu)
      - virtio: replace reference/unreference with get/put (Aastha Gupta)
      - vc4, gma500: Convert timers to use timer_setup() (Kees Cook)
      - vc4: Reject HDMI modes with too high of clocks (Eric)
      - vc4: Add support for more pixel formats (Dave Stevenson)
      - stm: dsi: Rename driver name to "stm32-display-dsi" (Philippe Cornu)
      - stm: ltdc: add a 2nd endpoint (Philippe Cornu)
      - via: use monotonic time for VIA_WAIT_IRQ (Arnd Bergmann)
      
      * tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc: (96 commits)
        drm/bridge: tc358767: add copyright lines
        MAINTAINERS: change maintainer for Rockchip drm drivers
        drm/vblank: Fix vblank timestamp debugs
        drm/via: use monotonic time for VIA_WAIT_IRQ
        dma-buf: Fix ifnullfree.cocci warnings
        drm/printer: Add drm_vprintf()
        drm/edid: Allow HDMI infoframe without VIC or S3D
        video/hdmi: Allow "empty" HDMI infoframes
        dma-buf/fence: Fix lock inversion within dma-fence-array
        drm/sti: Handle return value of platform_get_irq_byname
        drm/vc4: Add support for NV21 and NV61.
        drm/vc4: Use .pixel_order instead of custom .flip_cbcr
        drm/vc4: Add support for DRM_FORMAT_RGB888 and DRM_FORMAT_BGR888
        drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c
        drm: Check crtc_state->enable rather than crtc->enabled in drm_plane_helper_check_state()
        drm/vmwgfx: Try to fix plane clipping
        drm/vmwgfx: Use drm_plane_helper_check_state()
        drm/vmwgfx: Remove bogus crtc coords vs fb size check
        gpu: gma500: remove unneeded DRIVER_LICENSE #define
        drm: don't link DP aux i2c adapter to the hardware device node
        ...
      2c1c55cb
    • Linus Torvalds's avatar
      Linux 4.15-rc2 · ae64f9bd
      Linus Torvalds authored
      ae64f9bd
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm · 87fc5c68
      Linus Torvalds authored
      Pull ARM fix from Russell King:
       "Just one fix this time around, for the late commit in the merge window
        that triggered a problem with qemu. Qemu is apparently also going to
        receive a fix for the discovered issue"
      
      * 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: avoid faulting on qemu
      87fc5c68
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · ae4806a3
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "Here are two bugfixes for I2C, fixing a memleak in the core and irq
        allocation for i801.
      
        Also three bugfixes for the at24 eeprom driver which Bartosz collected
        while taking over maintainership for this driver"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        eeprom: at24: check at24_read/write arguments
        eeprom: at24: fix reading from 24MAC402/24MAC602
        eeprom: at24: correctly set the size for at24mac402
        i2c: i2c-boardinfo: fix memory leaks on devinfo
        i2c: i801: Fix Failed to allocate irq -2147483648 error
      ae4806a3
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.15-rc2' of... · 49a418d7
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Fixes:
      
         - Drop reference to obsolete maintainer tree
      
         - Fix overflow bug in pmbus driver
      
         - Fix SMBUS timeout problem in jc42 driver
      
        For the SMBUS timeout handling, we had a brief discussion if this
        should be considered a bug fix or a feature. Peter says "it fixes real
        problems where the application misbehave due to faulty content when
        reading from an eeprom", and he needs the patch in his company's v4.14
        images. This is good enough for me and warrants backport to stable
        kernels"
      
      * tag 'hwmon-for-linus-v4.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (jc42) optionally try to disable the SMBUS timeout
        hwmon: (pmbus) Use 64bit math for DIRECT format values
        hwmon: Drop reference to Jean's tree
      49a418d7
    • Wolfram Sang's avatar
      Merge tag 'at24-4.15-fixes-for-wolfram' of... · edef3098
      Wolfram Sang authored
      Merge tag 'at24-4.15-fixes-for-wolfram' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-current
      
      Please consider pulling the following fixes for v4.15. While it doesn't
      fix any regression introduced in the v4.15 merge window, we have a
      feature in at24 since linux v4.8 - reading the mac address block from
      at24mac series - which turned out to be not working.
      
      This pull request contains changes that fix it together with a patch
      that hardens the read and write argument sanitization with
      out-of-bounds checks that were missing.
      edef3098
  3. 02 Dec, 2017 4 commits
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.15-2' of git://git.linux-nfs.org/projects/anna/linux-nfs · 2db767d9
      Linus Torvalds authored
      Pull NFS client fixes from Anna Schumaker:
       "These patches fix a problem with compiling using an old version of
        gcc, and also fix up error handling in the SUNRPC layer.
      
         - NFSv4: Ensure gcc 4.4.4 can compile initialiser for
           "invalid_stateid"
      
         - SUNRPC: Allow connect to return EHOSTUNREACH
      
         - SUNRPC: Handle ENETDOWN errors"
      
      * tag 'nfs-for-4.15-2' of git://git.linux-nfs.org/projects/anna/linux-nfs:
        SUNRPC: Handle ENETDOWN errors
        SUNRPC: Allow connect to return EHOSTUNREACH
        NFSv4: Ensure gcc 4.4.4 can compile initialiser for "invalid_stateid"
      2db767d9
    • Linus Torvalds's avatar
      Merge tag 'xfs-4.15-fixes-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 788c1da0
      Linus Torvalds authored
      Pull xfs fixes from Darrick Wong:
       "Here are some bug fixes for 4.15-rc2.
      
         - fix memory leaks that appeared after removing ifork inline data
           buffer
      
         - recover deferred rmap update log items in correct order
      
         - fix memory leaks when buffer construction fails
      
         - fix memory leaks when bmbt is corrupt
      
         - fix some uninitialized variables and math problems in the quota
           scrubber
      
         - add some omitted attribution tags on the log replay commit
      
         - fix some UBSAN complaints about integer overflows with large sparse
           files
      
         - implement an effective inode mode check in online fsck
      
         - fix log's inability to retry quota item writeout due to transient
           errors"
      
      * tag 'xfs-4.15-fixes-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: Properly retry failed dquot items in case of error during buffer writeback
        xfs: scrub inode mode properly
        xfs: remove unused parameter from xfs_writepage_map
        xfs: ubsan fixes
        xfs: calculate correct offset in xfs_scrub_quota_item
        xfs: fix uninitialized variable in xfs_scrub_quota
        xfs: fix leaks on corruption errors in xfs_bmap.c
        xfs: fortify xfs_alloc_buftarg error handling
        xfs: log recovery should replay deferred ops in order
        xfs: always free inline data before resetting inode fork during ifree
      788c1da0
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-4.15-rc2_cleanups' of... · e1ba1c99
      Linus Torvalds authored
      Merge tag 'riscv-for-linus-4.15-rc2_cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux
      
      Pull RISC-V cleanups and ABI fixes from Palmer Dabbelt:
       "This contains a handful of small cleanups that are a result of
        feedback that didn't make it into our original patch set, either
        because the feedback hadn't been given yet, I missed the original
        emails, or we weren't ready to submit the changes yet.
      
        I've been maintaining the various cleanup patch sets I have as their
        own branches, which I then merged together and signed. Each merge
        commit has a short summary of the changes, and each branch is based on
        your latest tag (4.15-rc1, in this case). If this isn't the right way
        to do this then feel free to suggest something else, but it seems sane
        to me.
      
        Here's a short summary of the changes, roughly in order of how
        interesting they are.
      
         - libgcc.h has been moved from include/lib, where it's the only
           member, to include/linux. This is meant to avoid tab completion
           conflicts.
      
         - VDSO entries for clock_get/gettimeofday/getcpu have been added.
           These are simple syscalls now, but we want to let glibc use them
           from the start so we can make them faster later.
      
         - A VDSO entry for instruction cache flushing has been added so
           userspace can flush the instruction cache.
      
         - The VDSO symbol versions for __vdso_cmpxchg{32,64} have been
           removed, as those VDSO entries don't actually exist.
      
         - __io_writes has been corrected to respect the given type.
      
         - A new READ_ONCE in arch_spin_is_locked().
      
         - __test_and_op_bit_ord() is now actually ordered.
      
         - Various small fixes throughout the tree to enable allmodconfig to
           build cleanly.
      
         - Removal of some dead code in our atomic support headers.
      
         - Improvements to various comments in our atomic support headers"
      
      * tag 'riscv-for-linus-4.15-rc2_cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux: (23 commits)
        RISC-V: __io_writes should respect the length argument
        move libgcc.h to include/linux
        RISC-V: Clean up an unused include
        RISC-V: Allow userspace to flush the instruction cache
        RISC-V: Flush I$ when making a dirty page executable
        RISC-V: Add missing include
        RISC-V: Use define for get_cycles like other architectures
        RISC-V: Provide stub of setup_profiling_timer()
        RISC-V: Export some expected symbols for modules
        RISC-V: move empty_zero_page definition to C and export it
        RISC-V: io.h: type fixes for warnings
        RISC-V: use RISCV_{INT,SHORT} instead of {INT,SHORT} for asm macros
        RISC-V: use generic serial.h
        RISC-V: remove spin_unlock_wait()
        RISC-V: `sfence.vma` orderes the instruction cache
        RISC-V: Add READ_ONCE in arch_spin_is_locked()
        RISC-V: __test_and_op_bit_ord should be strongly ordered
        RISC-V: Remove smb_mb__{before,after}_spinlock()
        RISC-V: Remove __smp_bp__{before,after}_atomic
        RISC-V: Comment on why {,cmp}xchg is ordered how it is
        ...
      e1ba1c99
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 4b1967c9
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "The critical one here is a fix for fpsimd register corruption across
        signals which was introduced by the SVE support code (the register
        files overlap), but the others are worth having as well.
      
        Summary:
      
         - Fix FP register corruption when SVE is not available or in use
      
         - Fix out-of-tree module build failure when CONFIG_ARM64_MODULE_PLTS=y
      
         - Missing 'const' generating errors with LTO builds
      
         - Remove unsupported events from Cortex-A73 PMU description
      
         - Removal of stale and incorrect comments"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: context: Fix comments and remove pointless smp_wmb()
        arm64: cpu_ops: Add missing 'const' qualifiers
        arm64: perf: remove unsupported events for Cortex-A73
        arm64: fpsimd: Fix failure to restore FPSIMD state after signals
        arm64: pgd: Mark pgd_cache as __ro_after_init
        arm64: ftrace: emit ftrace-mod.o contents through code
        arm64: module-plts: factor out PLT generation code for ftrace
        arm64: mm: cleanup stale AIVIVT references
      4b1967c9
  4. 01 Dec, 2017 21 commits
    • Palmer Dabbelt's avatar
      RISC-V: Fixes for clean allmodconfig build · 3b62de26
      Palmer Dabbelt authored
      Olaf said: Here's a short series of patches that produces a working
      allmodconfig. Would be nice to see them go in so we can add build
      coverage.
      
      I've dropped patches 8 and 10 from the original set:
      
      * [PATCH 08/10] (RISC-V: Set __ARCH_WANT_RENAMEAT to pick up generic
        version) has a better fix that I've sent out for review, we don't want
        renameat.
      * [PATCH 10/10] (input: joystick: riscv has get_cycles) has already been
        taken into Dmitry Torokhov's tree.
      3b62de26
    • Palmer Dabbelt's avatar
      move libgcc.h to include/linux · 185e788c
      Palmer Dabbelt authored
      185e788c
    • Palmer Dabbelt's avatar
      7382fbde
    • Palmer Dabbelt's avatar
      RISC-V: User-Visible Changes · 07f8ba74
      Palmer Dabbelt authored
      This merge contains the user-visible, ABI-breaking changes that we want
      to make sure we have in Linux before our first release.   Highlights
      include:
      
      * VDSO entries for clock_get/gettimeofday/getcpu have been added.  These
        are simple syscalls now, but we want to let glibc use them from the
        start so we can make them faster later.
      * A VDSO entry for instruction cache flushing has been added so
        userspace can flush the instruction cache.
      * The VDSO symbol versions for __vdso_cmpxchg{32,64} have been removed,
        as those VDSO entries don't actually exist.
      
      Conflicts:
              arch/riscv/include/asm/tlbflush.h
      07f8ba74
    • Palmer Dabbelt's avatar
      RISC-V Atomic Cleanups · f8182f61
      Palmer Dabbelt authored
      This patch set is the result of some feedback that filtered through
      after our original patch set was reviewed, some of which was the result
      of me missing some email.  It contains:
      
      * A new READ_ONCE in arch_spin_is_locked()
      * __test_and_op_bit_ord() is now actually ordered
      * Improvements to various comments
      * Removal of some dead code
      f8182f61
    • Palmer Dabbelt's avatar
      RISC-V: __io_writes should respect the length argument · da894ff1
      Palmer Dabbelt authored
      Whoops -- I must have just been being an idiot again.  Thanks to Segher
      for finding the bug :).
      
      CC: Segher Boessenkool <segher@kernel.crashing.org>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      da894ff1
    • Christoph Hellwig's avatar
      move libgcc.h to include/linux · 4db2b604
      Christoph Hellwig authored
      Introducing a new include/lib directory just for this file totally
      messes up tab completion for include/linux, which is highly annoying.
      
      Move it to include/linux where we have headers for all kinds of other
      lib/ code as well.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      4db2b604
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · a0651c7f
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Two fixes for nasty kexec/kdump crashes in certain configurations.
      
        A couple of minor fixes for the new TIDR code.
      
        A fix for an oops in a CXL error handling path.
      
        Thanks to: Andrew Donnellan, Christophe Lombard, David Gibson, Mahesh
        Salgaonkar, Vaibhav Jain"
      
      * tag 'powerpc-4.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc: Do not assign thread.tidr if already assigned
        powerpc: Avoid signed to unsigned conversion in set_thread_tidr()
        powerpc/kexec: Fix kexec/kdump in P9 guest kernels
        powerpc/powernv: Fix kexec crashes caused by tlbie tracing
        cxl: Check if vphb exists before iterating over AFU devices
      a0651c7f
    • Linus Torvalds's avatar
      Merge tag 'afs-fixes-20171201' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · ae753ee2
      Linus Torvalds authored
      Pull AFS fixes from David Howells:
       "Two fix patches for the AFS filesystem:
      
         - Fix the refcounting on permit caching.
      
         - AFS inode (afs_vnode) fields need resetting after allocation
           because they're only initialised when slab pages are obtained from
           the page allocator"
      
      * tag 'afs-fixes-20171201' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: Properly reset afs_vnode (inode) fields
        afs: Fix permit refcounting
      ae753ee2
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 3c1c4ddf
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "MMC core:
         - Ensure that debugfs files are removed properly
         - Fix missing blk_put_request()
         - Deal with errors from blk_get_request()
         - Rewind mmc bus suspend operations at failures
         - Prepend '0x' to ocr and pre_eol_info in sysfs to identify as hex
      
        MMC host:
         - sdhci-msm: Make it optional to wait for signal level changes
         - sdhci: Avoid swiotlb buffer being full"
      
      * tag 'mmc-v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: core: prepend 0x to OCR entry in sysfs
        mmc: core: prepend 0x to pre_eol_info entry in sysfs
        mmc: sdhci: Avoid swiotlb buffer being full
        mmc: sdhci-msm: Optionally wait for signal level changes
        mmc: block: Ensure that debugfs files are removed
        mmc: core: Do not leave the block driver in a suspended state
        mmc: block: Check return value of blk_get_request()
        mmc: block: Fix missing blk_put_request()
      3c1c4ddf
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-v4.15-rc2' of git://people.freedesktop.org/~airlied/linux · 5dc9cbc4
      Linus Torvalds authored
      Pull drm fixes and cleanups from Dave Airlie:
       "The main thing are a bunch of fixes for the new amd display code, a
        bunch of smatch fixes.
      
        core:
         - Atomic helper regression fix.
         - Deferred fbdev fallout regression fix.
      
        amdgpu:
         - New display code (dc) dpms, suspend/resume and smatch fixes, along
           with some others
         - Some regression fixes for amdkfd/radeon.
         - Fix a ttm regression for swiotlb disabled
      
        bridge:
         - A bunch of fixes for the tc358767 bridge
      
        mali-dp + hdlcd:
         - some fixes and internal API catchups.
      
        imx-drm:
         -regression fix in atomic code.
      
        omapdrm:
         - platform detection regression fixes"
      
      * tag 'drm-fixes-for-v4.15-rc2' of git://people.freedesktop.org/~airlied/linux: (76 commits)
        drm/imx: always call wait_for_flip_done in commit_tail
        omapdrm: hdmi4_cec: signedness bug in hdmi4_cec_init()
        drm: omapdrm: Fix DPI on platforms using the DSI VDDS
        omapdrm: hdmi4: Correct the SoC revision matching
        drm/omap: displays: panel-dpi: add backlight dependency
        drm/omap: Fix error handling path in 'omap_dmm_probe()'
        drm/i915: Disable THP until we have a GPU read BW W/A
        drm/bridge: tc358767: fix 1-lane behavior
        drm/bridge: tc358767: fix AUXDATAn registers access
        drm/bridge: tc358767: fix timing calculations
        drm/bridge: tc358767: fix DP0_MISC register set
        drm/bridge: tc358767: filter out too high modes
        drm/bridge: tc358767: do no fail on hi-res displays
        drm/bridge: Fix lvds-encoder since the panel_bridge rework.
        drm/bridge: synopsys/dw-hdmi: Enable cec clock
        drm/bridge: adv7511/33: Fix adv7511_cec_init() failure handling
        drm/radeon: remove init of CIK VMIDs 8-16 for amdkfd
        drm/ttm: fix populate_and_map() functions once more
        drm/fb_helper: Disable all crtc's when initial setup fails.
        drm/atomic: make drm_atomic_helper_wait_for_vblanks more agressive
        ...
      5dc9cbc4
    • David Lechner's avatar
      drm/tinydrm: add driver for ILI9225 panels · b57e8b76
      David Lechner authored
      This adds a new driver for display panels based on the Ilitek ILI9225
      controller.
      
      This was developed for a no-name panel with a red PCB that is commonly
      marketed for Arduino. See <https://github.com/Nkawu/TFT_22_ILI9225>.
      Signed-off-by: default avatarDavid Lechner <david@lechnology.com>
      Reviewed-by: default avatarNoralf Trønnes <noralf@tronnes.org>
      Signed-off-by: default avatarNoralf Trønnes <noralf@tronnes.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/1511122328-31133-5-git-send-email-david@lechnology.com
      b57e8b76
    • David Lechner's avatar
      drm/tinydrm: export mipi_dbi_buf_copy and mipi_dbi_spi_cmd_max_speed · 13deee81
      David Lechner authored
      This exports the mipi_dbi_buf_copy() and mipi_dbi_spi_cmd_max_speed()
      functions so that they can be shared with other drivers.
      Signed-off-by: default avatarDavid Lechner <david@lechnology.com>
      Reviewed-by: default avatarNoralf Trønnes <noralf@tronnes.org>
      Signed-off-by: default avatarNoralf Trønnes <noralf@tronnes.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/1511122328-31133-4-git-send-email-david@lechnology.com
      13deee81
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 75f64f68
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A selection of fixes/changes that should make it into this series.
        This contains:
      
         - NVMe, two merges, containing:
              - pci-e, rdma, and fc fixes
              - Device quirks
      
         - Fix for a badblocks leak in null_blk
      
         - bcache fix from Rui Hua for a race condition regression where
           -EINTR was returned to upper layers that didn't expect it.
      
         - Regression fix for blktrace for a bug introduced in this series.
      
         - blktrace cleanup for cgroup id.
      
         - bdi registration error handling.
      
         - Small series with cleanups for blk-wbt.
      
         - Various little fixes for typos and the like.
      
        Nothing earth shattering, most important are the NVMe and bcache fixes"
      
      * 'for-linus' of git://git.kernel.dk/linux-block: (34 commits)
        nvme-pci: fix NULL pointer dereference in nvme_free_host_mem()
        nvme-rdma: fix memory leak during queue allocation
        blktrace: fix trace mutex deadlock
        nvme-rdma: Use mr pool
        nvme-rdma: Check remotely invalidated rkey matches our expected rkey
        nvme-rdma: wait for local invalidation before completing a request
        nvme-rdma: don't complete requests before a send work request has completed
        nvme-rdma: don't suppress send completions
        bcache: check return value of register_shrinker
        bcache: recover data from backing when data is clean
        bcache: Fix building error on MIPS
        bcache: add a comment in journal bucket reading
        nvme-fc: don't use bit masks for set/test_bit() numbers
        blk-wbt: fix comments typo
        blk-wbt: move wbt_clear_stat to common place in wbt_done
        blk-sysfs: remove NULL pointer checking in queue_wb_lat_store
        blk-wbt: remove duplicated setting in wbt_init
        nvme-pci: add quirk for delay before CHK RDY for WDC SN200
        block: remove useless assignment in bio_split
        null_blk: fix dev->badblocks leak
        ...
      75f64f68
    • Will Deacon's avatar
      arm64: context: Fix comments and remove pointless smp_wmb() · 3a33c760
      Will Deacon authored
      The comments in the ASID allocator incorrectly hint at an MP-style idiom
      using the asid_generation and the active_asids array. In fact, the
      synchronisation is achieved using a combination of an xchg operation
      and a spinlock, so update the comments and remove the pointless smp_wmb().
      
      Cc: James Morse <james.morse@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      3a33c760
    • Yury Norov's avatar
      arm64: cpu_ops: Add missing 'const' qualifiers · 770ba060
      Yury Norov authored
      Building the kernel with an LTO-enabled GCC spits out the following "const"
      warning for the cpu_ops code:
      
        mm/percpu.c:2168:20: error: pcpu_fc_names causes a section type conflict
        with dt_supported_cpu_ops
        const char * const pcpu_fc_names[PCPU_FC_NR] __initconst = {
                ^
        arch/arm64/kernel/cpu_ops.c:34:37: note: ‘dt_supported_cpu_ops’ was declared here
        static const struct cpu_operations *dt_supported_cpu_ops[] __initconst = {
      
      Fix it by adding missed const qualifiers.
      Signed-off-by: default avatarYury Norov <ynorov@caviumnetworks.com>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      770ba060
    • Xu YiPing's avatar
      arm64: perf: remove unsupported events for Cortex-A73 · f8ada189
      Xu YiPing authored
      bus access read/write events are not supported in A73, based on the
      Cortex-A73 TRM r0p2, section 11.9 Events (pages 11-457 to 11-460).
      
      Fixes: 5561b6c5 "arm64: perf: add support for Cortex-A73"
      Acked-by: default avatarJulien Thierry <julien.thierry@arm.com>
      Signed-off-by: default avatarXu YiPing <xuyiping@hisilicon.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      f8ada189
    • Dave Martin's avatar
      arm64: fpsimd: Fix failure to restore FPSIMD state after signals · 9de52a75
      Dave Martin authored
      The fpsimd_update_current_state() function is responsible for
      loading the FPSIMD state from the user signal frame into the
      current task during sigreturn.  When implementing support for SVE,
      conditional code was added to this function in order to handle the
      case where SVE state need to be loaded for the task and merged with
      the FPSIMD data from the signal frame; however, the FPSIMD-only
      case was unintentionally dropped.
      
      As a result of this, sigreturn does not currently restore the
      FPSIMD state of the task, except in the case where the system
      supports SVE and the signal frame contains SVE state in addition to
      FPSIMD state.
      
      This patch fixes this bug by making the copy-in of the FPSIMD data
      from the signal frame to thread_struct unconditional.
      
      This remains a performance regression from v4.14, since the FPSIMD
      state is now copied into thread_struct and then loaded back,
      instead of _only_ being loaded into the CPU FPSIMD registers.
      However, it is essential to call task_fpsimd_load() here anyway in
      order to ensure that the SVE enable bit in CPACR_EL1 is set
      correctly before returning to userspace.  This could use some
      refactoring, but since sigreturn is not a fast path I have kept
      this patch as a pure fix and left the refactoring for later.
      
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Fixes: 8cd969d2 ("arm64/sve: Signal handling support")
      Reported-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Tested-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      9de52a75
    • Jinbum Park's avatar
      arm64: pgd: Mark pgd_cache as __ro_after_init · a349b302
      Jinbum Park authored
      pgd_cache is setup once while init stage and never changed after
      that, so it is good candidate for __ro_after_init
      Signed-off-by: default avatarJinbum Park <jinb.park7@gmail.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      a349b302
    • Ard Biesheuvel's avatar
      arm64: ftrace: emit ftrace-mod.o contents through code · be0f272b
      Ard Biesheuvel authored
      When building the arm64 kernel with both CONFIG_ARM64_MODULE_PLTS and
      CONFIG_DYNAMIC_FTRACE enabled, the ftrace-mod.o object file is built
      with the kernel and contains a trampoline that is linked into each
      module, so that modules can be loaded far away from the kernel and
      still reach the ftrace entry point in the core kernel with an ordinary
      relative branch, as is emitted by the compiler instrumentation code
      dynamic ftrace relies on.
      
      In order to be able to build out of tree modules, this object file
      needs to be included into the linux-headers or linux-devel packages,
      which is undesirable, as it makes arm64 a special case (although a
      precedent does exist for 32-bit PPC).
      
      Given that the trampoline essentially consists of a PLT entry, let's
      not bother with a source or object file for it, and simply patch it
      in whenever the trampoline is being populated, using the existing
      PLT support routines.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      be0f272b
    • David Lechner's avatar
      dt-bindings: Add binding for Ilitek ILI9225 display panels · 3fd8d9e0
      David Lechner authored
      This adds a new binding for display panels that use an Ilitek ILI9225
      controller.
      
      The "ilitek,ili9225-2.2in-176x220" device listed has no identification
      markings whatsoever and an hour of googling turned up nothing, hence the use
      of the size and resolution in the name instead of a model name.
      
      An example of this nameless device can be found at:
      https://github.com/Nkawu/TFT_22_ILI9225Signed-off-by: default avatarDavid Lechner <david@lechnology.com>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarNoralf Trønnes <noralf@tronnes.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/1511122328-31133-3-git-send-email-david@lechnology.com
      3fd8d9e0