lkml.org 
[lkml]   [2020]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 044/146] ASoC: fix regwmask
    Date
    From: 이경택 <gt82.lee@samsung.com>

    commit 0ab070917afdc93670c2d0ea02ab6defb6246a7c upstream.

    If regwshift is 32 and the selected architecture compiles '<<' operator
    for signed int literal into rotating shift, '1<<regwshift' became 1 and
    it makes regwmask to 0x0.
    The literal is set to unsigned long to get intended regwmask.

    Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com>
    Link: https://lore.kernel.org/r/001001d60665$db7af3e0$9270dba0$@samsung.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    sound/soc/soc-ops.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/sound/soc/soc-ops.c
    +++ b/sound/soc/soc-ops.c
    @@ -832,7 +832,7 @@ int snd_soc_get_xr_sx(struct snd_kcontro
    unsigned int regbase = mc->regbase;
    unsigned int regcount = mc->regcount;
    unsigned int regwshift = component->val_bytes * BITS_PER_BYTE;
    - unsigned int regwmask = (1<<regwshift)-1;
    + unsigned int regwmask = (1UL<<regwshift)-1;
    unsigned int invert = mc->invert;
    unsigned long mask = (1UL<<mc->nbits)-1;
    long min = mc->min;
    @@ -881,7 +881,7 @@ int snd_soc_put_xr_sx(struct snd_kcontro
    unsigned int regbase = mc->regbase;
    unsigned int regcount = mc->regcount;
    unsigned int regwshift = component->val_bytes * BITS_PER_BYTE;
    - unsigned int regwmask = (1<<regwshift)-1;
    + unsigned int regwmask = (1UL<<regwshift)-1;
    unsigned int invert = mc->invert;
    unsigned long mask = (1UL<<mc->nbits)-1;
    long max = mc->max;

    \
     
     \ /
      Last update: 2020-04-16 15:29    [W:4.103 / U:0.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site