Re: [alsa-devel] ASoC: codecs: Add AB8500 codec-driver
Hello Ola Lilja,
The patch 679d7abdc754: "ASoC: codecs: Add AB8500 codec-driver" from Jun 7, 2012, leads to the following Sparse warnings:
sound/soc/codecs/ab8500-codec.c:1960:53: warning: cast truncates bits from constant value (1013 becomes 13) sound/soc/codecs/ab8500-codec.c:1968:53: warning: cast truncates bits from constant value (1013 becomes 13)
sound/soc/codecs/ab8500-codec.c 1958 /* Set DMic-clocks to outputs */ 1959 status = abx500_get_register_interruptible(codec->dev, (u8)AB8500_MISC, 1960 (u8)AB8500_GPIO_DIR4_REG, ^^^^^^^^^^^^^^^^^^^^ 1961 &value8); 1962 if (status < 0) 1963 return status; 1964 value = value8 | GPIO27_DIR_OUTPUT | GPIO29_DIR_OUTPUT | 1965 GPIO31_DIR_OUTPUT; 1966 status = abx500_set_register_interruptible(codec->dev, 1967 (u8)AB8500_MISC, 1968 (u8)AB8500_GPIO_DIR4_REG, ^^^^^^^^^^^^^^^^^^^^^^^^ 1969 value);
In my quick check we only seem to use the truncated values of these defines so I'm not sure this was intended.
regards, dan carpenter
On 06/16/2012 03:19 PM, Dan Carpenter wrote:
Hello Ola Lilja,
Hi Dan!
The patch 679d7abdc754: "ASoC: codecs: Add AB8500 codec-driver" from Jun 7, 2012, leads to the following Sparse warnings:
sound/soc/codecs/ab8500-codec.c:1960:53: warning: cast truncates bits from constant value (1013 becomes 13) sound/soc/codecs/ab8500-codec.c:1968:53: warning: cast truncates bits from constant value (1013 becomes 13)
sound/soc/codecs/ab8500-codec.c 1958 /* Set DMic-clocks to outputs */ 1959 status = abx500_get_register_interruptible(codec->dev, (u8)AB8500_MISC, 1960 (u8)AB8500_GPIO_DIR4_REG, ^^^^^^^^^^^^^^^^^^^^ 1961 &value8); 1962 if (status < 0) 1963 return status; 1964 value = value8 | GPIO27_DIR_OUTPUT | GPIO29_DIR_OUTPUT | 1965 GPIO31_DIR_OUTPUT; 1966 status = abx500_set_register_interruptible(codec->dev, 1967 (u8)AB8500_MISC, 1968 (u8)AB8500_GPIO_DIR4_REG, ^^^^^^^^^^^^^^^^^^^^^^^^ 1969 value);
In my quick check we only seem to use the truncated values of these defines so I'm not sure this was intended.
The error here is that for that variable the bank-byte has (faulty) been attached to the register-byte, where the bank is 0x10. This should not have been there and the result after truncation is the correct value of 0x13. Our registers are only 8-bits. We have fixed this define in an internal patch so it will show up here eventually.
Thanks for pointing it out!
regards, dan carpenter
regards, Ola Lilja
participants (2)
-
Dan Carpenter
-
Ola Lilja