31 May, 2019

1 commit

  • Based on 3 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [kishon] [vijay] [abraham]
    [i] [kishon]@[ti] [com] this program is distributed in the hope that
    it will be useful but without any warranty without even the implied
    warranty of merchantability or fitness for a particular purpose see
    the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [graeme] [gregory]
    [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i]
    [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema]
    [hk] [hemahk]@[ti] [com] this program is distributed in the hope
    that it will be useful but without any warranty without even the
    implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1105 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

16 Jan, 2019

1 commit


11 Jun, 2018

1 commit


13 Aug, 2017

1 commit


18 Jul, 2017

1 commit

  • The commit b56fa687e02b ("ALSA: fm801: detect FM-only card earlier")
    rearranged initialization calls, i.e. it makes snd_fm801_chip_init() to
    be called before we register interrupt handler and set PCI bus
    mastering.

    Somehow it prevents FM801-AU to work properly. Thus, partially revert
    initialization order changed by commit mentioned above.

    Fixes: b56fa687e02b ("ALSA: fm801: detect FM-only card earlier")
    Reported-by: Émeric MASCHINO
    Tested-by: Émeric MASCHINO
    Signed-off-by: Andy Shevchenko
    Cc: # v4.5+
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     

09 Jun, 2017

1 commit


02 Sep, 2016

1 commit

  • Check for snd_pcm_ops structures that are only stored in the ops field of a
    snd_soc_platform_driver structure or passed as the third argument to
    snd_pcm_set_ops. The corresponding field or parameter is declared const,
    so snd_pcm_ops structures that have this property can be declared as const
    also.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @r disable optional_qualifier@
    identifier i;
    position p;
    @@
    static struct snd_pcm_ops i@p = { ... };

    @ok1@
    identifier r.i;
    struct snd_soc_platform_driver e;
    position p;
    @@
    e.ops = &i@p;

    @ok2@
    identifier r.i;
    expression e1, e2;
    position p;
    @@
    snd_pcm_set_ops(e1, e2, &i@p)

    @bad@
    position p != {r.p,ok1.p,ok2.p};
    identifier r.i;
    struct snd_pcm_ops e;
    @@
    e@i@p

    @depends on !bad disable optional_qualifier@
    identifier r.i;
    @@
    static
    +const
    struct snd_pcm_ops i = { ... };
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Takashi Iwai

    Julia Lawall
     

18 Jan, 2016

1 commit

  • Pull sound updates from Takashi Iwai:
    "We've had quite busy weeks in this cycle. Looking at ALSA core, the
    significant changes are a few fixes wrt timer and sequencer ioctls
    that have been revealed by fuzzer recently. Other than that, ASoC
    core got a few updates about DAI link handling, but these are rather
    straightforward refactoring.

    In drivers scene, ASoC received quite lots of new drivers in addition
    to bunch of updates for still ongoing Intel Skylake support and
    topology API. HD-audio gained a new HDMI/DP hotplug notification via
    component. FireWire got a pile of code refactoring/updates with
    SCS.1x driver integration.

    More highlights are shown below.

    [ NOTE: this contains also many commits for DRM. This is due to the
    pull of drm stable branch into sound tree, as the base of i915 audio
    component work for HD-audio. The highlights below don't contain
    these DRM changes, as these are supposed to be pulled via drm tree
    in anyway sooner or later. ]

    Core:
    - Handful fixes to harden ALSA timer and sequencer ioctls against
    races reported by syzkaller fuzzer
    - Irq description string can be unique to each card; only for
    HD-audio for now

    ASoC:
    - Conversion of the array of DAI links to a list for supporting
    dynamically adding and removing DAI links
    - Topology API enhancements to make everything more component based
    and being able to specify PCM links via topology
    - Some more fixes for the topology code, though it is still not final
    and ready for enabling in production; we really need to get to the
    point where that can be done
    - A pile of changes for Intel SkyLake drivers which hopefully deliver
    some useful initial functionality for systems with this chipset,
    though there is more work still to come
    - Lots of new features and cleanups for the Renesas drivers
    - ANC support for WM5110
    - New drivers: Imagination Technologies IPs, Atmel class D speaker,
    Cirrus CS47L24 and WM1831, Dialog DA7128, Realtek RT5659 and
    RT56156, Rockchip RK3036, TI PC3168A, and AMD ACP
    - Rename PCM1792a driver to be generic pcm179x

    HD-Audio:
    - Use audio component for i915 HDMI/DP hotplug handling
    - On-demand binding with i915 driver
    - bdl_pos_adj parameter adjustment for Baytrail controllers
    - Enable power_save_node for CX20722; this shouldn't lead to
    regression, hopefully
    - Kabylake HDMI/DP codec support
    - Quirks for Lenovo E50-80, Dell Latitude E-series, and other Dell
    machines
    - A few code refactoring

    FireWire:
    - Lots of code cleanup and refactoring
    - Integrate the support of SCS.1x devices into snd-oxfw driver;
    snd-scs1x driver is obsoleted

    USB-audio:
    - Fix possible NULL dereference at disconnection
    - A regression fix for Native Instruments devices

    Misc:
    - A few code cleanups of fm801 driver"

    * tag 'sound-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (722 commits)
    ALSA: timer: Code cleanup
    ALSA: timer: Harden slave timer list handling
    ALSA: hda - Add fixup for Dell Latitidue E6540
    ALSA: timer: Fix race among timer ioctls
    ALSA: hda - add codec support for Kabylake display audio codec
    ALSA: timer: Fix double unlink of active_list
    ALSA: usb-audio: Fix mixer ctl regression of Native Instrument devices
    ALSA: hda - fix the headset mic detection problem for a Dell laptop
    ALSA: hda - Fix white noise on Dell Latitude E5550
    ALSA: hda_intel: add card number to irq description
    ALSA: seq: Fix race at timer setup and close
    ALSA: seq: Fix missing NULL check at remove_events ioctl
    ALSA: usb-audio: Avoid calling usb_autopm_put_interface() at disconnect
    ASoC: hdac_hdmi: remove unused hdac_hdmi_query_pin_connlist
    ASoC: AMD: Add missing include file
    ALSA: hda - Fixup inverted internal mic for Lenovo E50-80
    ALSA: usb: Add native DSD support for Oppo HA-1
    ASoC: Make aux_dev more like a generic component
    ASoC: bcm2835: cleanup includes by ordering them alphabetically
    ASoC: AMD: Manage ACP 2.x SRAM banks power
    ...

    Linus Torvalds
     

22 Dec, 2015

5 commits

  • The suspend / resume cycle resets the settings of the FM tuner. Restore
    frequency settings on resume.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     
  • In symmetry we save context first before suspend and restore it last after
    resume.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     
  • In case of tuner only card there is no need to take care of the codec which is
    anyway absent.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     
  • If user does not supply tea575x_tuner parameter the driver tries to detect the
    tuner type. The failed codec initialization is considered as FM-only card
    present, however the driver still registers an IRQ handler for it.

    Move codec detection earlier to set tea575x_tuner parameter before check.

    Here the following functions are introduced
    reset_coded() resets AC97 codec
    snd_fm801_chip_multichannel_init() initializes cards with multichannel support

    Fixes: 5618955c4269 (ALSA: fm801: move to pcim_* and devm_* functions)
    Signed-off-by: Andy Shevchenko
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     
  • The commit d7ba858a7f7a (ALSA: fm801: implement TEA575x tuner autodetection)
    brings autodetection to the driver. However the autodetection algorithm misses
    the TUNER_ONLY bit if it is supplied by the user.

    Thus, user gets weird messages and no card registered.

    snd_fm801 0000:0d:01.0: detected TEA575x radio type SF64-PCR
    snd_fm801 0000:0d:01.0: AC'97 interface is busy (1)
    snd_fm801 0000:0d:01.0: AC'97 interface is busy (1)
    ...
    snd_fm801 0000:0d:01.0: AC'97 0 does not respond - RESET
    snd_fm801 0000:0d:01.0: AC'97 interface is busy (1)
    snd_fm801 0000:0d:01.0: AC'97 interface is busy (1)
    snd_fm801 0000:0d:01.0: AC'97 0 access is not valid [0x0], removing mixer.
    snd_fm801: probe of 0000:0d:01.0 failed with error -5

    Do a copy of TUNER_ONLY bit to be applied after autodetection is done.

    Fixes: d7ba858a7f7a (ALSA: fm801: implement TEA575x tuner autodetection)
    Signed-off-by: Andy Shevchenko
    Cc: Ondrej Zary
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     

21 Dec, 2015

4 commits

  • There is no need to store struct pci_dev in struct fm801. Generic struct device
    can be easily translated to struct pci_dev whenever it's needed, in particular
    for one user for now.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     
  • The compiler complains on unused condition as follows

    sound/pci/fm801.c: In function ‘snd_fm801_interrupt’:
    sound/pci/fm801.c:585:3: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]

    Put the curly braces around empty body as suggested.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     
  • The patch introduces two new helpers fm801_iowrite16() and fm801_ioread16() to
    write and read the registers by offset. Previously similar was done to access
    the hardware registers by their names.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     
  • Otherwise we will have a warning on ->remove() since device is a PCI one.

    WARNING: CPU: 4 PID: 1411 at /home/andy/prj/linux/fs/proc/generic.c:575 remove_proc_entry+0x137/0x160()
    remove_proc_entry: removing non-empty directory 'irq/21', leaking at least 'snd_fm801'

    Fixes: 5618955c4269 (ALSA: fm801: move to pcim_* and devm_* functions)
    Signed-off-by: Andy Shevchenko
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     

03 Dec, 2015

1 commit


17 Nov, 2015

1 commit

  • Let's not mix headers used by the core with those headers that
    are needed by some driver-specific interface header.

    The headers used on drivers were manually moved using:
    mkdir include/media/drv-intf/
    git mv include/media/cx2341x.h include/media/cx25840.h \
    include/media/exynos-fimc.h include/media/msp3400.h \
    include/media/s3c_camif.h include/media/saa7146.h \
    include/media/saa7146_vv.h include/media/sh_mobile_ceu.h \
    include/media/sh_mobile_csi2.h include/media/sh_vou.h \
    include/media/si476x.h include/media/soc_mediabus.h \
    include/media/tea575x.h include/media/drv-intf/

    And the references for those headers were corrected using:

    MAIN_DIR="media/"
    PREV_DIR="media/"
    DIRS="drv-intf/"

    echo "Checking affected files" >&2
    for i in $DIRS; do
    for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do
    n=`basename $j`
    git grep -l $n
    done
    done|sort|uniq >files && (
    echo "Handling files..." >&2;
    echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\";
    (
    cd include/$MAIN_DIR;
    for j in $DIRS; do
    for i in $(ls $j); do
    echo "perl -ne 's,(include [\\\"\\&2;
    echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\";
    (
    cd include/$MAIN_DIR;
    for j in $DIRS; do
    for i in $(ls $j); do
    echo " perl -ne 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\";
    done;
    done;
    echo "cat > a && mv a \$i; done"
    );
    ) >script && . ./script

    Signed-off-by: Mauro Carvalho Chehab
    Acked-by: Arnd Bergmann

    Mauro Carvalho Chehab
     

11 Jan, 2015

2 commits


08 Jan, 2015

1 commit

  • There is no need to repeat the work that is already done in the PCI
    driver core. The patch removes excerpts from suspend and resume
    callbacks.

    Note that there is no more calls performed to enable or disable a PCI
    device during suspend-resume cycle. Nowadays they seems to be
    superflous. Someone can read more in [1].

    [1] https://www.kernel.org/doc/ols/2009/ols2009-pages-319-330.pdf

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Takashi Iwai

    Andy Shevchenko
     

07 Jan, 2015

2 commits


02 Jan, 2015

1 commit

  • snd_fm801_pcm() takes a pointer to a pointer of a PCM where if this
    parameter is provided the newly allocated PCM is stored. All callers pass
    NULL though, so remove the parameter. This makes the code a bit cleaner and
    shorter.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Takashi Iwai

    Lars-Peter Clausen
     

21 Oct, 2014

1 commit


13 Aug, 2014

1 commit

  • We should prefer `struct pci_device_id` over `DEFINE_PCI_DEVICE_TABLE` to
    meet kernel coding style guidelines. This issue was reported by checkpatch.

    A simplified version of the semantic patch that makes this change is as
    follows (http://coccinelle.lip6.fr/):

    //

    @@
    identifier i;
    declarer name DEFINE_PCI_DEVICE_TABLE;
    initializer z;
    @@

    - DEFINE_PCI_DEVICE_TABLE(i)
    + const struct pci_device_id i[]
    = z;

    //

    [bhelgaas: add semantic patch]
    Signed-off-by: Benoit Taine
    Signed-off-by: Bjorn Helgaas

    Benoit Taine
     

19 May, 2014

1 commit


29 Apr, 2014

2 commits


26 Feb, 2014

1 commit


12 Feb, 2014

1 commit


18 Aug, 2013

1 commit


29 May, 2013

1 commit

  • As drvdata is cleared to NULL at probe failure or at removal by the
    driver core, we don't have to call pci_set_drvdata(pci, NULL) any
    longer in each driver.

    The only remaining pci_set_drvdata(NULL) is in azx_firmware_cb() in
    hda_intel.c. Since this function itself releases the card instance,
    we need to clear drvdata here as well, so that it won't be released
    doubly in the remove callback.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

07 Dec, 2012

1 commit

  • CONFIG_HOTPLUG is going away as an option. As result the __dev*
    markings will be going away.

    Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
    and __devexit.

    Signed-off-by: Bill Pemberton
    Signed-off-by: Takashi Iwai

    Bill Pemberton
     

14 Nov, 2012

1 commit


07 Sep, 2012

1 commit


15 Aug, 2012

1 commit


03 Jul, 2012

1 commit


26 Jun, 2012

1 commit

  • Pull media fixes from Mauro Carvalho Chehab.

    Trivial conflict due to new USB HID ID's being added next to each other
    (Baanto vs Axentia).

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (44 commits)
    [media] smia: Fix compile failures
    [media] Fix VIDIOC_DQEVENT docbook entry
    [media] s5p-fimc: Fix control creation function
    [media] s5p-mfc: Fix checkpatch error in s5p_mfc_shm.h file
    [media] s5p-mfc: Fix setting controls
    [media] v4l/s5p-mfc: added image size align in VIDIOC_TRY_FMT
    [media] v4l/s5p-mfc: corrected encoder v4l control definitions
    [media] v4l: mem2mem_testdev: Fix race conditions in driver
    [media] s5p-mfc: Bug fix of timestamp/timecode copy mechanism
    [media] cxd2820r: Fix an incorrect modulation type bitmask
    [media] em28xx: Show a warning if the board does not support remote controls
    [media] em28xx: Add remote control support for Terratec's Cinergy HTC Stick HD
    [media] USB: Staging: media: lirc: initialize spinlocks before usage
    [media] Revert "[media] media: mx2_camera: Fix mbus format handling"
    [media] bw-qcam: driver and pixfmt documentation fixes
    [media] cx88: fix firmware load on big-endian systems
    [media] cx18: support big-endian systems
    [media] ivtv: fix support for big-endian systems
    [media] tuner-core: return the frequency range of the correct tuner
    [media] v4l2-dev.c: fix g_parm regression in determine_valid_ioctls()
    ...

    Linus Torvalds