15 Jun, 2017

1 commit

  • According to commit b073ed4e2126 ("ASoC: soc-pcm: DPCM cares BE format"),
    Current DPCM only care FE channel, but it will set unsupported channel to
    drivers.
    So add dpcm_merged_chan, which is used to merge the BE's codec
    channels configuration to FE if it exist in snd_soc_dai_link. And
    dpcm_runtime_base_chan function is to get the channel configuration of BE,
    which likes the dpcm_runtime_base_format function.

    Signed-off-by: Shengjiu Wang

    Shengjiu Wang
     

23 Feb, 2017

1 commit


20 Jan, 2017

1 commit

  • commit 9e4d59ada4d602e78eee9fb5f898ce61fdddb446 upstream.

    This is a fix for Linux 4.10-rc1.

    In C language specification, a bit-field is interpreted as a signed or
    unsigned integer type consisting of the specified number of bits.

    In GCC manual, the range of a signed bit field of N bits is from
    -(2^N) / 2 to ((2^N) / 2) - 1
    https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Bit-Fields

    Therefore, when defined as 1 bit-field with signed type, variables can
    represents -1 and 0.

    The snd-soc-hdmi-codec module includes a structure which has signed type
    members with bit-fields. Codes of this module assign 0 and 1 to the
    members. This seems to result in implementation-dependent behaviours.

    As of v4.10-rc1 merge window, outside of sound subsystem, this structure
    is referred by below GPU modules.
    - tda998x
    - sti-drm
    - mediatek-drm-hdmi
    - msm

    As long as I review their codes relevant to the structure, the structure
    members are used just for condition statements and printk formats.
    My proposal of change is a bit intrusive to the printk formats but this
    may be acceptable.

    Totally, it's reasonable to use unsigned type for the structure members.
    This bug is detected by Sparse, static code analyzer with below warnings.

    ./include/sound/hdmi-codec.h:39:26: error: dubious one-bit signed bitfield
    ./include/sound/hdmi-codec.h:40:28: error: dubious one-bit signed bitfield
    ./include/sound/hdmi-codec.h:41:29: error: dubious one-bit signed bitfield
    ./include/sound/hdmi-codec.h:42:31: error: dubious one-bit signed bitfield

    Fixes: 09184118a8ab ("ASoC: hdmi-codec: Add hdmi-codec for external HDMI-encoders")
    Signed-off-by: Takashi Sakamoto
    Acked-by: Arnaud Pouliquen
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Takashi Sakamoto
     

01 Oct, 2016

1 commit


30 Sep, 2016

6 commits


27 Sep, 2016

1 commit

  • Currently if AAD is enabled in the device, during system suspend
    the feature remains, regardless of whether the codec is a wake-up
    source or not. This means some additional power is being used
    which is unnecessary, and can causes issues with some platforms'
    IRQ handlers where state changes during system suspend aren't
    captured.

    This patch updates the driver to disable AAD during suspend, if
    we're not a wake-up source, and then re-enables this on resume.

    Signed-off-by: Adam Thomson
    Signed-off-by: Mark Brown

    Adam Thomson
     

26 Sep, 2016

1 commit

  • In commit bf1d1c9b6179 ("ALSA: tlv: add DECLARE_TLV_DB_RANGE()"), the new
    macro was added so that "dB range information can be specified without
    having to count the items manually for TLV_DB_RANGE_HEAD()". In short,
    TLV_DB_RANGE_HEAD macro was obsoleted.

    In commit 46e860f76804 ("ALSA: rename TLV-related macros so that they're
    friendly to user applications"), TLV-related macros are exposed for
    applications in user land to get content of data structured by
    Type/Length/Value shape. The commit managed to expose TLV-related macros
    as many as possible, while obsoleted TLV_DB_RANGE_HEAD() was included to
    the list of exposed macros.

    This situation brings some confusions to application developers because
    they might think all exposed macros have their own purpose and useful for
    applications.

    For the reason, this commit moves TLV_DB_RANGE_HEAD macro from UAPI header
    to a header for kernel land, again. The above commit is done within the
    same development period for kernel 4.9, thus not published yet. This
    commit might certainly brings no confusions to user land.

    Reference: commit bf1d1c9b6179 ("ALSA: tlv: add DECLARE_TLV_DB_RANGE()")
    Reference: commit 46e860f76804 ("ALSA: rename TLV-related macros so that they're friendly to user applications")
    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

25 Sep, 2016

1 commit


15 Sep, 2016

2 commits

  • In a previous commit, some macros newly appeared to UAPI header for TLV
    packet. These macros have short names and they easily bring name conflist
    to applications. The conflict can be avoided to rename them with a proper
    prefix.

    For this purpose, this commit renames these macros with prefix
    'SNDRV_CTL_TLVD_'.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     
  • In ALSA control interface, each element set can have threshold level
    information. This information is transferred between drivers/applications,
    in a shape of tlv packet. The layout of this packet is defined in
    'uapi/sound/asound.h' (struct snd_ctl_tlv):

    struct snd_ctl_tlv {
    unsigned int numid;
    unsigned int length;
    unsigned int tlv[0];
    };

    Data in the payload (struct snd_ctl_tlv.tlv) is expected to be filled
    according to our own protocol. This protocol is described in
    'include/sound/tlv.h'. A layout of the payload is expected as:

    struct snd_ctl_tlv.tlv[0]: one of SNDRV_CTL_TLVT_XXX
    struct snd_ctl_tlv.tlv[1]: Length of data
    struct snd_ctl_tlv.tlv[2...]: data

    Unfortunately, the macro is not exported to user land yet, thus
    applications cannot get to know the protocol.

    Additionally, ALSA control core has a feature called as 'user-defined'
    element set. This allows applications to add/remove arbitrary element sets
    with elements to control devices. Elements in the element set can be
    operated by the same way as the ones added by in-kernel implementation.

    For threshold level information of 'user-defined' element set, applications
    need to register the information to an element set. However, as described
    above, layout of the payload is closed in kernel land. This is quite
    inconvenient, too.

    This commit moves the protocol to UAPI header for TLV.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

24 Aug, 2016

2 commits


11 Aug, 2016

2 commits


09 Aug, 2016

6 commits


08 Aug, 2016

5 commits


02 Aug, 2016

1 commit

  • Merge drm updates from Dave Airlie:
    "This is the main drm pull request for 4.8.

    I'm down with a cold at the moment so hopefully this isn't in too bad
    a state, I finished pulling stuff last week mostly (nouveau fixes just
    went in today), so only this message should be influenced by illness.
    Apologies to anyone who's major feature I missed :-)

    Core:
    Lockless GEM BO freeing
    Non-blocking atomic work
    Documentation changes (rst/sphinx)
    Prep for new fencing changes
    Simple display helpers
    Master/auth changes
    Register/unregister rework
    Loads of trivial patches/fixes.

    New stuff:
    ARM Mali display driver (not the 3D chip)
    sii902x RGB->HDMI bridge

    Panel:
    Support for new panels
    Improved backlight support

    Bridge:
    Convert ADV7511 to bridge driver
    ADV7533 support
    TC358767 (DSI/DPI to eDP) encoder chip support

    i915:
    BXT support enabled by default
    GVT-g infrastructure
    GuC command submission and fixes
    BXT workarounds
    SKL/BKL workarounds
    Demidlayering device registration
    Thundering herd fixes
    Missing pci ids
    Atomic updates

    amdgpu/radeon:
    ATPX improvements for better dGPU power control on PX systems
    New power features for CZ/BR/ST
    Pipelined BO moves and evictions in TTM
    GPU scheduler improvements
    GPU reset improvements
    Overclocking on dGPUs with amdgpu
    Polaris powermanagement enabled

    nouveau:
    GK20A/GM20B volt and clock improvements.
    Initial support for GP100/GP104 GPUs, GP104 will not yet support
    acceleration due to NVIDIA having not released firmware for them as of yet.

    exynos:
    Exynos5433 SoC with IOMMU support.

    vc4:
    Shader validation for branching

    imx-drm:
    Atomic mode setting conversion
    Reworked DMFC FIFO allocation
    External bridge support

    analogix-dp:
    RK3399 eDP support
    Lots of fixes.

    rockchip:
    Lots of small fixes.

    msm:
    DT bindings cleanups
    Shrinker and madvise support
    ASoC HDMI codec support

    tegra:
    Host1x driver cleanups
    SOR reworking for DP support
    Runtime PM support

    omapdrm:
    PLL enhancements
    Header refactoring
    Gamma table support

    arcgpu:
    Simulator support

    virtio-gpu:
    Atomic modesetting fixes.

    rcar-du:
    Misc fixes.

    mediatek:
    MT8173 HDMI support

    sti:
    ASOC HDMI codec support
    Minor fixes

    fsl-dcu:
    Suspend/resume support
    Bridge support

    amdkfd:
    Minor fixes.

    etnaviv:
    Enable GPU clock gating

    hisilicon:
    Vblank and other fixes"

    * tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux: (1575 commits)
    drm/nouveau/gr/nv3x: fix instobj write offsets in gr setup
    drm/nouveau/acpi: fix lockup with PCIe runtime PM
    drm/nouveau/acpi: check for function 0x1B before using it
    drm/nouveau/acpi: return supported DSM functions
    drm/nouveau/acpi: ensure matching ACPI handle and supported functions
    drm/nouveau/fbcon: fix font width not divisible by 8
    drm/amd/powerplay: remove enable_clock_power_gatings_tasks from initialize and resume events
    drm/amd/powerplay: move clockgating to after ungating power in pp for uvd/vce
    drm/amdgpu: add query device id and revision id into system info entry at CGS
    drm/amdgpu: add new definition in bif header
    drm/amd/powerplay: rename smum header guards
    drm/amdgpu: enable UVD context buffer for older HW
    drm/amdgpu: fix default UVD context size
    drm/amdgpu: fix incorrect type of info_id
    drm/amdgpu: make amdgpu_cgs_call_acpi_method as static
    drm/amdgpu: comment out unused defaults_staturn_pro static const structure to fix the build
    drm/amdgpu: enable UVD VM only on polaris
    drm/amdgpu: increase timeout of IB test
    drm/amdgpu: add destroy session when generate VCE destroy msg.
    drm/amd: fix deadlock of job_list_lock V2
    ...

    Linus Torvalds
     

25 Jul, 2016

6 commits


16 Jul, 2016

2 commits


05 Jul, 2016

1 commit