25 Jul, 2015

1 commit

  • Pull sound fixes from Takashi Iwai:
    "This has been a calm week again: one minor lockdep fix for PCM core,
    and the most of the rest are HD-audio quirks and fixups for various
    chips and machines"

    * tag 'sound-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - Add headset mic pin quirk for a Dell device
    ALSA: hda - remove one pin from ALC292_STANDARD_PINS
    ALSA: hda - Add new GPU codec ID 0x10de007d to snd-hda
    ALSA: hda: add new AMD PCI IDs with proper driver caps
    ALSA: hda - Fix Skylake codec timeout
    ALSA: hda - Add headset mic support for Acer Aspire V5-573G
    ALSA: sparc: Add missing kfree in error path
    ALSA: pcm: Fix lockdep warning with nonatomic PCM ops

    Linus Torvalds
     

22 Jul, 2015

2 commits


21 Jul, 2015

1 commit


20 Jul, 2015

2 commits

  • Fixes audio problems on newer asics

    Signed-off-by: Maruthi Bayyavarapu
    Cc: stable@vger.kernel.org
    Signed-off-by: Takashi Iwai

    Maruthi Srinivas Bayyavarapu
     
  • When the controller is powered up but the HDMI codec is powered down
    on Skylake, the power well is turned off. When the codec is then
    powered up again, we need to poke the codec a little extra to make
    sure it wakes up. Otherwise we'll get sad "no response from codec"
    messages and broken audio.

    This also changes azx_runtime_resume to actually call
    snd_hdac_set_codec_wakeup for Skylake (before STATETS read).
    (Otherwise it would only have been called for Haswell and Broadwell,
    which both do not need it, so this probably was not the author's
    intention.)

    Signed-off-by: David Henningsson
    Reviewed-by: Libin Yang
    Signed-off-by: Takashi Iwai

    David Henningsson
     

19 Jul, 2015

1 commit

  • Acer Aspire V5 with the ALC282 codec is given the wrong value for the
    0x19 PIN by the laptop's BIOS. Overriding it with the correct value
    adds support for the headset microphone which would not otherwise be
    visible in the system.

    The fix is based on commit 7819717b1134 with a similar quirk for Acer
    Aspire with the ALC269 codec.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96201
    Cc:
    Signed-off-by: Mateusz Sylwestrzak
    Signed-off-by: Takashi Iwai

    Mateusz Sylwestrzak
     

18 Jul, 2015

2 commits


17 Jul, 2015

1 commit

  • With the nonatomic PCM ops, the system may spew lockdep warnings like:

    =============================================
    [ INFO: possible recursive locking detected ]
    4.2.0-rc1-jeejaval3 #12 Not tainted
    ---------------------------------------------
    aplay/4029 is trying to acquire lock:
    (snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_stream_lock+0x43/0x60

    but task is already holding lock:
    (snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_action_nonatomic+0x29/0x80

    other info that might help us debug this:
    Possible unsafe locking scenario:

    CPU0
    ----
    lock(snd_pcm_link_rwsem);
    lock(snd_pcm_link_rwsem);

    Although this is false-positive as the rwsem is taken always as
    read-only for these code paths, it's certainly annoying to see this at
    any occasion. A simple fix is to use down_read_nested() in
    snd_pcm_stream_lock() that can be called inside another lock.

    Reported-by: Vinod Koul
    Reported-by: Jeeja Kp
    Tested-by: Jeeja Kp
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

16 Jul, 2015

1 commit

  • This laptop needs GPIO4 pulled high to enable the headphone amplifier,
    and has a mute LED on GPIO3. I modelled the patch on the existing
    GPIO4 code which pulls the line low for the same purpose; this time,
    the HP amp line is pulled high.

    v2: Disable the headphone amplifier when no headphone is connected.
    Don't disable power savings to preserve the LED state.

    v3: Remove headset-specific hooks and code; this is just a headphone.

    Signed-off-by: Keith Packard
    Signed-off-by: Takashi Iwai

    Keith Packard
     

14 Jul, 2015

1 commit

  • When a monitor stream is active, the next PCM stream access results in
    EBUSY error because of the check in line6_stream_start(). Fix this by
    just skipping the submission of pending URBs when the stream is
    already running instead.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101431
    Cc: # v4.0+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

08 Jul, 2015

1 commit

  • Currently, the alt PCM open callback returns -EBUSY when an
    independent HP is turned off, supposing that it conflicts with the
    main PCM. However, obviously, this check is wrong when the
    independent HP itself isn't enabled but the alt PCM was explicitly
    created via alc_dac_nid by a codec driver.

    Reported-and-tested-by: Kailang Yang
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

06 Jul, 2015

1 commit


02 Jul, 2015

3 commits

  • Merge third patchbomb from Andrew Morton:

    - the rest of MM

    - scripts/gdb updates

    - ipc/ updates

    - lib/ updates

    - MAINTAINERS updates

    - various other misc things

    * emailed patches from Andrew Morton : (67 commits)
    genalloc: rename of_get_named_gen_pool() to of_gen_pool_get()
    genalloc: rename dev_get_gen_pool() to gen_pool_get()
    x86: opt into HAVE_COPY_THREAD_TLS, for both 32-bit and 64-bit
    MAINTAINERS: add zpool
    MAINTAINERS: BCACHE: Kent Overstreet has changed email address
    MAINTAINERS: move Jens Osterkamp to CREDITS
    MAINTAINERS: remove unused nbd.h pattern
    MAINTAINERS: update brcm gpio filename pattern
    MAINTAINERS: update brcm dts pattern
    MAINTAINERS: update sound soc intel patterns
    MAINTAINERS: remove website for paride
    MAINTAINERS: update Emulex ocrdma email addresses
    bcache: use kvfree() in various places
    libcxgbi: use kvfree() in cxgbi_free_big_mem()
    target: use kvfree() in session alloc and free
    IB/ehca: use kvfree() in ipz_queue_{cd}tor()
    drm/nouveau/gem: use kvfree() in u_free()
    drm: use kvfree() in drm_free_large()
    cxgb4: use kvfree() in t4_free_mem()
    cxgb3: use kvfree() in cxgb_free_mem()
    ...

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "Here are a bunch of small fixes, mostly for HD-audio quirks, in
    addition to a few regression fixes and trivial cleanups"

    * tag 'sound-fix-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: Fix uninintialized error return
    ALSA: hda: Delete an unnecessary check before the function call "snd_info_free_entry"
    ALSA: hda - Add a fixup for Dell E7450
    ALSA: hda - Fix the dock headphone output on Fujitsu Lifebook E780
    ALSA: hda - Add headset support to Acer Aspire V5
    ALSA: hda - restore the MIC FIXUP for some Dell machines
    ALSA: jack: Fix endless loop at unique index detection
    ALSA: hda - set proper caps for newer AMD hda audio in KB/KV
    ALSA: hda - Disable widget power-save for VIA codecs
    ALSA: hda - Fix Dock Headphone on Thinkpad X250 seen as a Line Out

    Linus Torvalds
     
  • Pull module updates from Rusty Russell:
    "Main excitement here is Peter Zijlstra's lockless rbtree optimization
    to speed module address lookup. He found some abusers of the module
    lock doing that too.

    A little bit of parameter work here too; including Dan Streetman's
    breaking up the big param mutex so writing a parameter can load
    another module (yeah, really). Unfortunately that broke the usual
    suspects, !CONFIG_MODULES and !CONFIG_SYSFS, so those fixes were
    appended too"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (26 commits)
    modules: only use mod->param_lock if CONFIG_MODULES
    param: fix module param locks when !CONFIG_SYSFS.
    rcu: merge fix for Convert ACCESS_ONCE() to READ_ONCE() and WRITE_ONCE()
    module: add per-module param_lock
    module: make perm const
    params: suppress unused variable error, warn once just in case code changes.
    modules: clarify CONFIG_MODULE_COMPRESS help, suggest 'N'.
    kernel/module.c: avoid ifdefs for sig_enforce declaration
    kernel/workqueue.c: remove ifdefs over wq_power_efficient
    kernel/params.c: export param_ops_bool_enable_only
    kernel/params.c: generalize bool_enable_only
    kernel/module.c: use generic module param operaters for sig_enforce
    kernel/params: constify struct kernel_param_ops uses
    sysfs: tightened sysfs permission checks
    module: Rework module_addr_{min,max}
    module: Use __module_address() for module_address_lookup()
    module: Make the mod_tree stuff conditional on PERF_EVENTS || TRACING
    module: Optimize __module_address() using a latched RB-tree
    rbtree: Implement generic latch_tree
    seqlock: Introduce raw_read_seqcount_latch()
    ...

    Linus Torvalds
     

01 Jul, 2015

2 commits

  • The Steinberg MI2 and MI4 interfaces are compatible with the USB class
    audio spec, but the MIDI part of the devices is reported as a vendor
    specific interface.

    This patch adds entries to quirks-table.h to recognize the MIDI
    endpoints. Audio functionality was already working and is unaffected by
    this change.

    Signed-off-by: Dominic Sacré
    Signed-off-by: Albert Huitsing
    Acked-by: Clemens Ladisch
    Cc:
    Signed-off-by: Takashi Iwai

    Dominic Sacré
     
  • To be consistent with other kernel interface namings, rename
    of_get_named_gen_pool() to of_gen_pool_get(). In the original function
    name "_named" suffix references to a device tree property, which contains
    a phandle to a device and the corresponding device driver is assumed to
    register a gen_pool object.

    Due to a weak relation and to avoid any confusion (e.g. in future
    possible scenario if gen_pool objects are named) the suffix is removed.

    [sfr@canb.auug.org.au: crypto/marvell/cesa - fix up for of_get_named_gen_pool() rename]
    Signed-off-by: Vladimir Zapolskiy
    Cc: Nicolas Ferre
    Cc: Philipp Zabel
    Cc: Shawn Guo
    Cc: Sascha Hauer
    Cc: Alexandre Belloni
    Cc: Russell King
    Cc: Mauro Carvalho Chehab
    Cc: Vinod Koul
    Cc: Takashi Iwai
    Cc: Jaroslav Kysela
    Signed-off-by: Stephen Rothwell
    Cc: Herbert Xu
    Cc: Boris BREZILLON
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Zapolskiy
     

30 Jun, 2015

1 commit

  • Static analysis with cppcheck found the following error:
    [sound/core/init.c:118]: (error) Uninitialized variable: err

    ..this was introduced by commit 2471b6c80a70e80de69f5ff4c37187c3912e5874
    ("ALSA: info: Register proc entries recursively, too") where the call
    to snd_info_card_register was removed and no longer setting the error
    return in err. When snd_info_create_card_entry fails to allocate a
    an entry, the error path exits with garbage in err. Fix is to return
    -ENOMEM if entry fails to be allocated.

    Fixes: 2471b6c80a ("ALSA: info: Register proc entries recursively, too")
    Signed-off-by: Colin Ian King
    Signed-off-by: Takashi Iwai

    Colin Ian King
     

29 Jun, 2015

3 commits


27 Jun, 2015

1 commit

  • Acer Aspire V5 with ALC282 codec needs the similar quirk like Dell
    laptops to support the headset mic. The headset mic pin is 0x19 and
    it's not exposed by BIOS, thus we need to fix the pincfg as well.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96201
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

26 Jun, 2015

3 commits

  • Those FIXUPs were applied to the machines through pin quirks, but
    recently the PCI_QUIRK makes them can't apply to the machines.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=99851
    Signed-off-by: Hui Wang
    Cc: # v4.1
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • While the commit [d0a601c278de: ALSA: jack: Fix the id uniqueness
    check] fixes the wrong string check, it leads to a worse result -- the
    loop in get_available_index() goes into an endless loop. The cause is
    that snd_ctl_find_id() returns the object assigned to the numid if
    it's set. Thus it points to the previous entry again.

    This patch clears the numid field for the next call properly.

    Reported-and-tested-by: Tomáš Pružina
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Pull sound updates from Takashi Iwai:
    "It was a busy development cycle at this time, as you can see a wide
    range of changes in diffstat. There are no big changes but many
    refactoring and improvements. Here we go some highlights:

    ALSA core:
    - Procfs codes were cleaned up to use seq_file
    - Procfs can be opt out via Kconfig (only for EXPERT)
    - Two types of jack API were unified finally; now both kctl and input
    jack devs are handled via a single function call.

    HD-audio:
    - Continued code restructuring for the future ASoC driver; now HDA
    controller driver is split to a core helper module.
    - Preliminary codes for Skylake audio support in HDA core.
    - Proper i915 gfx power well management for SKL & co
    - Enabled runtime PM as default for Intel HDMI/DP codecs
    - Newer Tegra chip supports
    - More quirks for Dell headsets, Alienware (with CA0132), etc.
    - A couple of DRM ELD helper API functions

    ASoC:
    - Support for loading ASoC topology maps from firmware, intended to
    be used to allow self-describing DSP firmware images to be built
    which can map controls added by the DSP to userspace without the
    kernel needing to know about individual DSP firmwares
    - Lots of refactoring to avoid direct access to snd_soc_codec where
    it's not needed supporting future refactoring
    - Big refactoring, cleanup and enhancement for the Wolfson ADSP
    driver
    - Cleanup series for TI TAS2552 and R-CAR drivers
    - Fixes and improvements on RT56xx codecs
    - Support for TI TAS571x power amplifiers
    - Support for Qualcomm APQ8016 and ZTE ZX296702 SoCs
    - Support for x86 systems with RT5650 and Qualcomm Storm
    - Support for Mediatek AFE (Audio Front End) unit
    - Other various small fixes to ASoC codec drivers

    Firewire:
    - Enhanced to allow non-blocking streams to use timestamp
    synchronization
    - Improve support for DM1500 and BeBoBv3

    Misc:
    - Cleanup of old pci API functions over all PCI sound drivers
    - Fix long-standing regression of the old powermac i2c setup"

    * tag 'sound-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (533 commits)
    ALSA: pcm: Fix pcm_class sysfs output
    ALSA: hda-beep: Update authors dead email address
    ASoC: wm_adsp: Move DSP Rate controls into the codec
    ASoC: wm8995: Fix setting sysclk for WM8995_SYSCLK_MCLK2 case
    ALSA: hda: provide default bus io ops extended hdac
    ALSA: hda: add hda link cleanup routine
    ALSA: hda: add hdac_ext stream creation and cleanup routines
    ASoC: rsrc-card: remove unused ret
    ALSA: HDAC: move SND_HDA_PREALLOC_SIZE to core
    ASoC: mediatek: Add machine driver for rt5650 rt5676 codec
    ASoC: mediatek: Add machine driver for MAX98090 codec
    ASoC: mediatek: Add AFE platform driver
    ASoC: rsnd: remove io from rsnd_mod
    ASoC: rsnd: move rsnd_mod_is_working() to rsnd_io_is_working()
    ASoC: rsnd: don't use rsnd_mod_to_io() on snd_kcontrol
    ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_src_xxx()
    ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_ssi_xxx()
    ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_dma_xxx()
    ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_get_adinr()
    ASoC: rsnd: add common interrupt handler for SSI/SRC/DMA
    ...

    Linus Torvalds
     

25 Jun, 2015

3 commits


24 Jun, 2015

2 commits

  • Pull fbdev updates from Tomi Valkeinen:

    - ssd1307fb: various fixes and improvements, SSD1305 support

    - use architecture agnostic functions instead of MTRR functions in
    various fbdev drivers

    - TI DRA7xx SoC display support (arch/arm/ side)

    - OMAPDSS componentization to fix probing order issues

    - OMAPDSS scaling fixes

    - msm_fb: remove obsoleted driver

    * tag 'fbdev-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (77 commits)
    msm: msm_fb: Remove dead code
    OMAPDSS: HDMI: wait for framedone when stopping video
    OMAPDSS: HDMI4: fix error handling
    OMAPDSS: DISPC: scaler debug print
    OMAPDSS: DISPC: do only y decimation on OMAP3
    OMAPDSS: DISPC: check if scaling setup failed
    OMAPDSS: DISPC: fix 64 bit issue in 5-tap
    OMAPDSS: DISPC: fix row_inc for OMAP3
    OMAPDSS: DISPC: add check for scaling limits
    OMAPDSS: DISPC: fix check_horiz_timing_omap3 args
    OMAPDSS: DISPC: fix predecimation for YUV modes
    OMAPDSS: DISPC: work-around for errata i631
    OMAPDSS: simplify submodule reg/unreg code
    OMAPDSS: componentize omapdss
    OMAPDSS: reorder uninit calls
    OMAPDSS: remove uses of __init/__exit
    OMAPDSS: fix dss_init_ports error handling
    OMAPDSS: refactor dss probe function
    OMAPDSS: move 'dss_initialized' to dss driver
    fbdev: propagate result of fb_videomode_from_videomode()
    ...

    Linus Torvalds
     
  • Pull clkdev updates from Russell King:
    "This series addresses some breakage in clkdev caused by a previous
    patch set from the clk tree which introduced per-user clk structures.
    This basically renamed the existing 'struct clk' to 'struct clk_hw',
    and introduced a new 'struct clk'.

    This change will break anyone using clk_add_alias() with the common
    clk code enabled. Thankfully, the intersection of users of
    clk_add_alias() and those using the common clk code is practically
    zero, but this is something which should be fixed to keep the code
    sane.

    The problem is that clk_add_alias() does this:

    r = clk_get(...);
    l = clkdev_alloc(r, ...);
    clk_put(...);

    which causes the alias to store a pointer to 'r', which has been
    freed.

    The original patch set tried to work around this problem incorrectly -
    at clk_get() time, it tried to convert the struct clk to a struct
    clk_hw, and then creating a new struct clk from that. Clearly, if the
    original struct clk has been freed, then we have a use-after-free bug.

    We have other places in the tree which do something similar, so this
    series also addresses those locations too.

    This series addresses this problem by converting clkdev to store and
    use the clk_hw pointer. This allows clk_get() to only have to create
    it's per-user struct clk from the clk_hw. We can also get to the
    desired clk_hw at clk_add_alias() or clk lookup creation time, when
    the struct clk is "alive".

    We also perform some cleanups of the code:

    - replacing looped calls to clkdev_add() with clkdev_add_table()

    - replacing open-coded lookup allocation (which should have been
    using clkdev_alloc()) and subsequent clkdev_add() with
    clkdev_create()

    - replacing open-coded clk_add_alias() with clk_add_alias()"

    * 'for-linus-clk' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    clk: s2mps11: use clkdev_create()
    ASoC: migor: use clkdev_create()
    ARM: omap2: use clkdev_add_alias()
    ARM: omap2: use clkdev_create()
    ARM: orion: use clkdev_create()
    ARM: lpc32xx: convert to use clkdev_add_table()
    SH: use clkdev_add_table()
    clkdev: add clkdev_create() helper
    clkdev: const-ify connection id to clk_add_alias()
    clkdev: get rid of redundant clk_add_alias() prototype in linux/clk.h
    clkdev: drop __init from clkdev_add_table()
    clk: update clk API documentation to clarify clk_round_rate()
    clkdev: use clk_hw internally

    Linus Torvalds
     

23 Jun, 2015

3 commits

  • The pcm_class sysfs of each PCM substream gives only "none" since the
    recent code change to embed the struct device. Fix the code to point
    directly to the embedded device object properly.

    Fixes: ef46c7af93f9 ('ALSA: pcm: Embed struct device')
    Cc: # v4.0+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Pull timer updates from Thomas Gleixner:
    "A rather largish update for everything time and timer related:

    - Cache footprint optimizations for both hrtimers and timer wheel

    - Lower the NOHZ impact on systems which have NOHZ or timer migration
    disabled at runtime.

    - Optimize run time overhead of hrtimer interrupt by making the clock
    offset updates smarter

    - hrtimer cleanups and removal of restrictions to tackle some
    problems in sched/perf

    - Some more leap second tweaks

    - Another round of changes addressing the 2038 problem

    - First step to change the internals of clock event devices by
    introducing the necessary infrastructure

    - Allow constant folding for usecs/msecs_to_jiffies()

    - The usual pile of clockevent/clocksource driver updates

    The hrtimer changes contain updates to sched, perf and x86 as they
    depend on them plus changes all over the tree to cleanup API changes
    and redundant code, which got copied all over the place. The y2038
    changes touch s390 to remove the last non 2038 safe code related to
    boot/persistant clock"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (114 commits)
    clocksource: Increase dependencies of timer-stm32 to limit build wreckage
    timer: Minimize nohz off overhead
    timer: Reduce timer migration overhead if disabled
    timer: Stats: Simplify the flags handling
    timer: Replace timer base by a cpu index
    timer: Use hlist for the timer wheel hash buckets
    timer: Remove FIFO "guarantee"
    timers: Sanitize catchup_timer_jiffies() usage
    hrtimer: Allow hrtimer::function() to free the timer
    seqcount: Introduce raw_write_seqcount_barrier()
    seqcount: Rename write_seqcount_barrier()
    hrtimer: Fix hrtimer_is_queued() hole
    hrtimer: Remove HRTIMER_STATE_MIGRATE
    selftest: Timers: Avoid signal deadlock in leap-a-day
    timekeeping: Copy the shadow-timekeeper over the real timekeeper last
    clockevents: Check state instead of mode in suspend/resume path
    selftests: timers: Add leap-second timer edge testing to leap-a-day.c
    ntp: Do leapsecond adjustment in adjtimex read path
    time: Prevent early expiry of hrtimers[CLOCK_REALTIME] at the leap second edge
    ntp: Introduce and use SECS_PER_DAY macro instead of 86400
    ...

    Linus Torvalds
     
  • Pull x86 core updates from Ingo Molnar:
    "There were so many changes in the x86/asm, x86/apic and x86/mm topics
    in this cycle that the topical separation of -tip broke down somewhat -
    so the result is a more traditional architecture pull request,
    collected into the 'x86/core' topic.

    The topics were still maintained separately as far as possible, so
    bisectability and conceptual separation should still be pretty good -
    but there were a handful of merge points to avoid excessive
    dependencies (and conflicts) that would have been poorly tested in the
    end.

    The next cycle will hopefully be much more quiet (or at least will
    have fewer dependencies).

    The main changes in this cycle were:

    * x86/apic changes, with related IRQ core changes: (Jiang Liu, Thomas
    Gleixner)

    - This is the second and most intrusive part of changes to the x86
    interrupt handling - full conversion to hierarchical interrupt
    domains:

    [IOAPIC domain] -----
    |
    [MSI domain] --------[Remapping domain] ----- [ Vector domain ]
    | (optional) |
    [HPET MSI domain] ----- |
    |
    [DMAR domain] -----------------------------
    |
    [Legacy domain] -----------------------------

    This now reflects the actual hardware and allowed us to distangle
    the domain specific code from the underlying parent domain, which
    can be optional in the case of interrupt remapping. It's a clear
    separation of functionality and removes quite some duct tape
    constructs which plugged the remap code between ioapic/msi/hpet
    and the vector management.

    - Intel IOMMU IRQ remapping enhancements, to allow direct interrupt
    injection into guests (Feng Wu)

    * x86/asm changes:

    - Tons of cleanups and small speedups, micro-optimizations. This
    is in preparation to move a good chunk of the low level entry
    code from assembly to C code (Denys Vlasenko, Andy Lutomirski,
    Brian Gerst)

    - Moved all system entry related code to a new home under
    arch/x86/entry/ (Ingo Molnar)

    - Removal of the fragile and ugly CFI dwarf debuginfo annotations.
    Conversion to C will reintroduce many of them - but meanwhile
    they are only getting in the way, and the upstream kernel does
    not rely on them (Ingo Molnar)

    - NOP handling refinements. (Borislav Petkov)

    * x86/mm changes:

    - Big PAT and MTRR rework: making the code more robust and
    preparing to phase out exposing direct MTRR interfaces to drivers -
    in favor of using PAT driven interfaces (Toshi Kani, Luis R
    Rodriguez, Borislav Petkov)

    - New ioremap_wt()/set_memory_wt() interfaces to support
    Write-Through cached memory mappings. This is especially
    important for good performance on NVDIMM hardware (Toshi Kani)

    * x86/ras changes:

    - Add support for deferred errors on AMD (Aravind Gopalakrishnan)

    This is an important RAS feature which adds hardware support for
    poisoned data. That means roughly that the hardware marks data
    which it has detected as corrupted but wasn't able to correct, as
    poisoned data and raises an APIC interrupt to signal that in the
    form of a deferred error. It is the OS's responsibility then to
    take proper recovery action and thus prolonge system lifetime as
    far as possible.

    - Add support for Intel "Local MCE"s: upcoming CPUs will support
    CPU-local MCE interrupts, as opposed to the traditional system-
    wide broadcasted MCE interrupts (Ashok Raj)

    - Misc cleanups (Borislav Petkov)

    * x86/platform changes:

    - Intel Atom SoC updates

    ... and lots of other cleanups, fixlets and other changes - see the
    shortlog and the Git log for details"

    * 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (222 commits)
    x86/hpet: Use proper hpet device number for MSI allocation
    x86/hpet: Check for irq==0 when allocating hpet MSI interrupts
    x86/mm/pat, drivers/infiniband/ipath: Use arch_phys_wc_add() and require PAT disabled
    x86/mm/pat, drivers/media/ivtv: Use arch_phys_wc_add() and require PAT disabled
    x86/platform/intel/baytrail: Add comments about why we disabled HPET on Baytrail
    genirq: Prevent crash in irq_move_irq()
    genirq: Enhance irq_data_to_desc() to support hierarchy irqdomain
    iommu, x86: Properly handle posted interrupts for IOMMU hotplug
    iommu, x86: Provide irq_remapping_cap() interface
    iommu, x86: Setup Posted-Interrupts capability for Intel iommu
    iommu, x86: Add cap_pi_support() to detect VT-d PI capability
    iommu, x86: Avoid migrating VT-d posted interrupts
    iommu, x86: Save the mode (posted or remapped) of an IRTE
    iommu, x86: Implement irq_set_vcpu_affinity for intel_ir_chip
    iommu: dmar: Provide helper to copy shared irte fields
    iommu: dmar: Extend struct irte for VT-d Posted-Interrupts
    iommu: Add new member capability to struct irq_remap_ops
    x86/asm/entry/64: Disentangle error_entry/exit gsbase/ebx/usermode code
    x86/asm/entry/32: Shorten __audit_syscall_entry() args preparation
    x86/asm/entry/32: Explain reloading of registers after __audit_syscall_entry()
    ...

    Linus Torvalds
     

22 Jun, 2015

5 commits