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

2 commits

  • 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

1 commit


16 Jun, 2015

2 commits

  • When CONFIG_SND_HDA_I915=n, we get a compile warning:
    sound/pci/hda/hda_intel.c: In function ‘azx_probe_continue’:
    sound/pci/hda/hda_intel.c:1882:2: warning: label ‘skip_i915’ defined but not used [-Wunused-label]

    Fix it by putting again ifdef to it. Sigh.

    Fixes: bf06848bdbe5 ('ALSA: hda - Continue probing even if i915 binding fails')
    Reported-by: Borislav Petkov
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The new Dell XPS13 also requires the similar quirk for fixing the
    noisy outputs. (But, as the codec was changed, now the fixup for
    Latitude is used instead.)

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

    Takashi Iwai
     

15 Jun, 2015

3 commits

  • Fix the missing dependency on PCM stuff.

    [Add the same fix for HAL2, too -- tiwai]

    Signed-off-by: Nicholas Mc Guire
    Signed-off-by: Takashi Iwai

    Nicholas Mc Guire
     
  • We still got a report that the audio crackles and noises occur with
    the recent 4.1 kernels on Dell machines. These machines seem to need
    similar workarounds that have been applied to the recent Dell XPS 13
    models. Since the codec of these machines (Dell Latitute E7240 and
    E7440) is different from XPS 13's one, we need a new fixup entry.

    Also, it was confirmed that the previous workaround to disable the
    widget power-save (commit [219f47e4f964: ALSA: hda - Disable widget
    power-saving for ALC292 & co]) is no longer needed after this fix.
    So, this patch includes the partial revert of the commit, too.

    Reported-and-tested-by: Mihai Donțu
    Tested-by: Jonathan McDowell
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • On a HP Envy TouchSmart laptop, there are 2 speakers (main speaker
    and subwoofer speaker), 1 headphone and 2 DACs, without this fixup,
    the headphone will be assigned to a DAC and the 2 speakers will be
    assigned to another DAC, this assignment makes the surround-2.1
    channels invalid.

    To fix it, here using a DAC/pin preference map to bind the main
    speaker to 1 DAC and the subwoofer speaker will be assigned to another
    DAC.

    Cc:
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     

12 Jun, 2015

1 commit

  • The previous patch tried to continue the probe if i915 binding fails.
    For for simplicity reason, we haven't implemented abort even for
    controller chips that are dedicated for HDMI/DP on HSW and BDW.
    However, Mengdong suggested that this can be dangerous; BIOS may
    disable gfx power well although the PCI entry for HD-audio is left,
    and this may result in the unexpected behavior, kernel errors, etc.

    For avoiding this situation, abort the probe at i915 binding failure
    only for HSW/BDW chips selectively. For other chips, it still
    continues.

    Fixes: bf06848bdbe5 ('ALSA: hda - Continue probing even if i915 binding fails')
    Reported-by: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

11 Jun, 2015

2 commits

  • Yet another regression by the transition to regmap cache; for better
    usability, we had the fake mute control using the zero amp value for
    Conexant codecs, and this was forgotten in the new hda core code.

    Since the bits 4-7 are unused for the amp registers (as we follow the
    syntax of AMP_GET verb), the bit 4 is now used to indicate the fake
    mute. For setting this flag, snd_hda_codec_amp_update() becomes a
    function from a simple macro. The bonus is that it gained a proper
    function description.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Currently snd-hda-intel driver aborts the probing of Intel HD-audio
    controller with i915 power well management when binding with i915
    driver via hda_i915_init() fails. This is no big problem for Haswell
    and Broadwell where the HD-audio controllers are dedicated to
    HDMI/DP, thus i915 link is mandatory. However, Skylake, Baytrail and
    Braswell have only one controller and both HDMI/DP and analog codecs
    share the same bus. Thus, even if HDMI/DP isn't usable, we should
    keep the controller working for other codecs.

    For fixing this, this patch simply allows continuing the probing even
    if hda_i915_init() call fails. This may leave stale sound components
    for HDMI/DP devices that are unbound with graphics. We could abort
    the probing selectively, but from the code simplicity POV, it's better
    to continue in all cases.

    Reported-by: Libin Yang
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

10 Jun, 2015

1 commit

  • Along with the transition to regmap for managing the cached parameter
    reads, the caps overwrite was also moved to regmap cache. The cache
    change itself works, but it still tries to write the non-existing verb
    (the HDA parameter is read-only) wrongly. It's harmless in most
    cases, but some chips are picky and may result in the codec
    communication stall.

    This patch avoids it just by adding the missing flag check in
    reg_write ops.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

09 Jun, 2015

1 commit


08 Jun, 2015

1 commit


05 Jun, 2015

1 commit


03 Jun, 2015

6 commits

  • DM_INH = 1 (stereo downmix prohibited) and CA = 0x00 (Channel
    Allocation: FR, FL) is an invalid combination according to the
    HDMI Compliance Test 7.31 "Audio InfoFrame".

    Signed-off-by: Misael Lopez Cruz
    Signed-off-by: Jyri Sarha
    Signed-off-by: Tomi Valkeinen
    Acked-by: Mark Brown

    Misael Lopez Cruz
     
  • There is a constraint in the OMAP4 HDMI IP that requires to use
    the 8-channel code when transmitting more than two channels.

    The constraint doesn't apply for OMAP5 so don't force the channel
    allocation in the sound driver as it can be done specifically for
    OMAP4 later in the hdmi4 core.

    Signed-off-by: Misael Lopez Cruz
    Signed-off-by: Jyri Sarha
    Signed-off-by: Tomi Valkeinen
    Acked-by: Mark Brown

    Misael Lopez Cruz
     
  • Nothing in uses anything from , so
    remove it from there and fix up the resulting build problems
    triggered on x86 {64|32}-bit {def|allmod|allno}configs.

    The breakages were triggering in places where x86 builds relied
    on vmalloc() facilities but did not include
    explicitly and relied on the implicit inclusion via .

    Also add:

    - to
    - to

    ... which were two other implicit header file dependencies.

    Suggested-by: David Miller
    Signed-off-by: Stephen Rothwell
    [ Tidied up the changelog. ]
    Acked-by: David Miller
    Acked-by: Takashi Iwai
    Acked-by: Viresh Kumar
    Acked-by: Vinod Koul
    Cc: Andrew Morton
    Cc: Anton Vorontsov
    Cc: Boris Ostrovsky
    Cc: Colin Cross
    Cc: David Vrabel
    Cc: H. Peter Anvin
    Cc: Haiyang Zhang
    Cc: James E.J. Bottomley
    Cc: Jaroslav Kysela
    Cc: K. Y. Srinivasan
    Cc: Kees Cook
    Cc: Konrad Rzeszutek Wilk
    Cc: Kristen Carlson Accardi
    Cc: Len Brown
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Rafael J. Wysocki
    Cc: Suma Ramars
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Signed-off-by: Ingo Molnar

    Stephen Rothwell
     
  • The driver worked around an error in the MAYA44 USB(+)'s mixer unit
    descriptor by aborting before parsing the missing field. However,
    aborting parsing too early prevented parsing of the other units
    connected to this unit, so the capture mixer controls would be missing.

    Fix this by moving the check for this descriptor error after the parsing
    of the unit's input pins.

    Reported-by: nightmixes
    Tested-by: nightmixes
    Signed-off-by: Clemens Ladisch
    Cc:
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Add mixer control names for the ESI Maya44 USB+ (which appears to be
    identical width the AudioTrak Maya44 USB).

    Reported-by: nightmixes
    Signed-off-by: Clemens Ladisch
    Cc:
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Acer Aspire 9420 with ALC883 (1025:0107) needs the fixup for EAPD to
    make the sound working like other Aspire models.

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

    Takashi Iwai
     

31 May, 2015

1 commit


30 May, 2015

1 commit

  • This quirk allows us to avoid the noisy:

    current rate 0 is different from the runtime rate

    message every time playback starts. While USB DAC in the RR2150
    supports reading the sample rate, it never returns a sample rate
    other than zero in my observation with common sample rates.

    Signed-off-by: Eric Wong
    Cc: Joe Turner
    Cc:
    Signed-off-by: Takashi Iwai

    Eric Wong
     

29 May, 2015

3 commits


28 May, 2015

2 commits

  • When headphone mic boost is above zero, some 10 - 20 second delay
    might occur before the headphone mic is operational.
    Therefore disable the headphone mic boost control (recording gain is
    sufficient even without it).

    (Note: this patch is not about the headset mic, it's about the less
    common mic-in only mode.)

    BugLink: https://bugs.launchpad.net/bugs/1454235
    Suggested-by: Kailang Yang
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     
  • We've got a regression report that 4.1-rc causes noises on a Dell
    laptop. Similar like Realtek codec, this seems also triggered by the
    recent power_save_node feature. As this kind of issue is quite hard
    to debug without actual hardware, disable the power_save_node flag for
    this codec as a workaround.

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

    Takashi Iwai
     

27 May, 2015

2 commits


26 May, 2015

1 commit


24 May, 2015

2 commits

  • This reverts commit 7290006d8c0900c56d8c58428134f02c35109d17.

    Through the regression report, it was revealed that the
    tpacpi_led_set() call to thinkpad_acpi helper doesn't only toggle the
    mute LED but actually mutes the sound. This is contradiction to the
    expectation, and rather confuses user.

    According to Henrique, it's not trivial to judge which TP model
    behaves "LED-only" and which model does whatever more intrusive, as
    Lenovo's implementations vary model by model. So, from the safety
    reason, we should revert the patch for now.

    Reported-by: Martin Steigerwald
    Cc: Pali Rohár
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Microsoft LifeCam HD-3000 (045e:0779) needs a similar quirk for
    suppressing the unsupported sample rate inquiry.

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

    Vittorio G (VittGam)
     

20 May, 2015

3 commits

  • We've got reports that ALC3226 (a Dell variant of ALC292) gives click
    noises at transition from D3 to D0 when the widget power-saving is
    enabled. Further debugging session showed that avoiding it isn't
    trivial, unfortunately, since paths are basically activated
    dynamically while the pins have been already enabled.

    This patch disables the widget power-saving for such codecs.

    Reported-by: Jonathan McDowell
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The widget (node) power-saves restore the widget states at each
    transition from D3 to D0 on each node. This was added in the commit
    [d545a57c5f84:ALSA: hda - Sync node attributes at resume from widget
    power saving]. However, the test was rater false-positive; this
    wasn't needed for any codecs.

    Since the resync may take significant number of additional verbs to be
    executed, it's better to reduce it. Let's disable it for now again.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The recently added DT support for the ac97 driver is causing
    a gcc warning:

    sound/atmel/ac97c.c: In function 'atmel_ac97c_probe_dt':
    sound/atmel/ac97c.c:919:29: warning: unused variable 'match' [-Wunused-variable]
    const struct of_device_id *match;

    The variable is clearly unused, so we can remove it.

    Signed-off-by: Arnd Bergmann
    Acked-by: Alexander Stein
    Signed-off-by: Takashi Iwai

    Arnd Bergmann
     

19 May, 2015

2 commits