10 Jul, 2020

1 commit

  • The "fall through" comments found in switch-cases in ALSA xen driver
    are all superfluous. The kernel coding style allows the multiple
    cases in a row. Let's remove them.

    Reviewed-by: Gustavo A. R. Silva
    Link: https://lore.kernel.org/r/20200709111750.8337-3-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

07 Jul, 2020

1 commit

  • Fix W=1 warning. Mark the 'req' variable as __always_unused.

    sound/xen/xen_snd_front.c: In function ‘xen_snd_front_stream_close’:
    sound/xen/xen_snd_front.c:117:21: warning: variable ‘req’ set but not
    used [-Wunused-but-set-variable]
    117 | struct xensnd_req *req;
    | ^~~

    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200702193604.169059-18-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Takashi Iwai

    Pierre-Louis Bossart
     

11 Dec, 2019

1 commit


08 Jul, 2019

1 commit

  • …/sound into for-linus

    ASoC: Updates for v5.3

    This is a very big update, mainly thanks to Morimoto-san's refactoring
    work and some fairly large new drivers.

    - Lots more work on moving towards a component based framework from
    Morimoto-san.
    - Support for force disconnecting muxes from Jerome Brunet.
    - New drivers for Cirrus Logic CS47L35, CS47L85 and CS47L90, Conexant
    CX2072X, Realtek RT1011 and RT1308.

    Signed-off-by: Takashi Iwai <tiwai@suse.de>

    Takashi Iwai
     

28 Jun, 2019

1 commit

  • Shifting the integer value 1 is evaluated using 32-bit
    arithmetic and then used in an expression that expects a 64-bit
    value, so there is potentially an integer overflow. Fix this
    by using the BIT_ULL macro to perform the shift.

    [ Note: as of the time being, no actual integer overflow hits because
    all values are less than 32bit, not including the extended 3-byte or
    DSD formats. But this is the right fix for future usage, of
    course. -- tiwai ]

    Addresses-Coverity: ("Unintentional integer overflow")
    Signed-off-by: Colin Ian King
    Signed-off-by: Takashi Iwai

    Colin Ian King
     

21 May, 2019

1 commit


04 Apr, 2019

1 commit


19 Dec, 2018

1 commit


20 Sep, 2018

1 commit


27 Jul, 2018

1 commit

  • The open codes with the bit shift in xen_snd_front_alsa.c give sparse
    warnings as the PCM format type is with __bitwise.
    There is already a standard macro to get the format bits, so let's use
    it instead.

    This fixes sparse warnings like:
    sound/xen/xen_snd_front_alsa.c:191:47: warning: restricted snd_pcm_format_t degrades to integer

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

31 May, 2018

1 commit

  • We want the loop to exit when "to" is set to zero, but in the current
    code it's set to -1. Also I tweaked the indenting so it doesn't look
    like we're passing "--to" to xenbus_read_unsigned().

    Fixes: cc3196ae197c ("ALSA: xen-front: Introduce Xen para-virtualized sound frontend driver")
    Signed-off-by: Dan Carpenter
    Reviewed-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     

30 May, 2018

1 commit

  • kfree() doesn't accept error pointers so I've set "str" to NULL on these
    paths.

    Fixes: fd3b36045c2c ("ALSA: xen-front: Read sound driver configuration from Xen store")
    Signed-off-by: Dan Carpenter
    Reviewed-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     

29 May, 2018

1 commit

  • gcc-8 warns that pcm_instance->name is not necessarily terminated correctly
    if the input is more than 80 characters long or lacks a termination byte
    itself:

    In function 'strncpy',
    inlined from 'cfg_device' at sound/xen/xen_snd_front_cfg.c:399:3,
    inlined from 'xen_snd_front_cfg_card' at sound/xen/xen_snd_front_cfg.c:509:9:
    include/linux/string.h:254:9: error: '__builtin_strncpy' specified bound 80 equals destination size [-Werror=stringop-truncation]
    return __builtin_strncpy(p, q, size);

    Using strlcpy() instead of strncpy() makes this a bit safer.

    Fixes: fd3b36045c2c ("ALSA: xen-front: Read sound driver configuration from Xen store")
    Signed-off-by: Arnd Bergmann
    Reviewed-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Arnd Bergmann
     

28 May, 2018

2 commits

  • The negative error return from the call to to_sndif_format is being
    assigned to an unsigned 8 bit integer and hence the check for a negative
    value is always going to be false. Fix this by using ret as the error
    return and hence the negative error can be detected and assign
    the u8 sndif_format to ret if there is no error.

    Detected by CoverityScan, CID#1469385 ("Unsigned compared against 0")

    Signed-off-by: Colin Ian King
    Reviewed-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Colin Ian King
     
  • The error for a -ve value in ret is redundant as all previous
    assignments to ret have an associated -ve check and hence it
    is impossible for ret to be less that zero at the point of the
    check. Remove this redundant error check.

    Detected by CoveritScan, CID#1469407 ("Logically Dead code")

    Signed-off-by: Colin Ian King
    Reviewed-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Colin Ian King
     

16 May, 2018

5 commits

  • Implement essential initialization of the sound driver:
    - introduce required data structures
    - handle driver registration
    - handle sound card registration
    - register sound driver on backend connection
    - remove sound driver on backend disconnect

    Initialize virtual sound card with streams according to the
    Xen store configuration.

    Implement ALSA driver operations including:
    - manage frontend/backend shared buffers
    - manage Xen bus event channel states

    Implement requests from front to back for ALSA
    PCM operations.
    - report ALSA period elapsed event: handle XENSND_EVT_CUR_POS
    notifications from the backend when stream position advances
    during playback/capture. The event carries a value of how
    many octets were played/captured at the time of the event.
    - implement explicit stream parameter negotiation between
    backend and frontend: handle XENSND_OP_HW_PARAM_QUERY request
    to read/update configuration space for the parameter given:
    request passes desired parameter interval and the response to
    this request returns min/max interval for the parameter to be used.

    Signed-off-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko
     
  • Implement shared buffer handling according to the
    para-virtualized sound device protocol at xen/interface/io/sndif.h:
    - manage buffer memory
    - handle granted references
    - handle page directories

    [ Fixed missing linux/kernel.h inclusion -- tiwai ]

    Signed-off-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko
     
  • Handle Xen event channels:
    - create for all configured streams and publish
    corresponding ring references and event channels in Xen store,
    so backend can connect
    - implement event channels interrupt handlers
    - create and destroy event channels with respect to Xen bus state

    Signed-off-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko
     
  • Read configuration values from Xen store according
    to xen/interface/io/sndif.h protocol:
    - introduce configuration structures for different
    components, e.g. sound card, device, stream
    - read PCM HW parameters, e.g rate, format etc.
    - detect stream type (capture/playback)
    - read device and card parameters

    Signed-off-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko
     
  • Introduce skeleton of the para-virtualized Xen sound
    frontend driver.

    Initial handling for Xen bus states: implement
    Xen bus state machine for the frontend driver according to
    the state diagram and recovery flow from sound para-virtualized
    protocol: xen/interface/io/sndif.h.

    Signed-off-by: Oleksandr Andrushchenko
    Reviewed-by: Juergen Gross
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko