Input: imx6ul_tsc - convert int to u32
The code uses of_property_read_u32 and expects positive values. However, the values are stored in signed int variables. Additionally, the registers values are also stored in signed variables without a good reason (readl/writel expect u32). The only time this caused a real bug was in the new average-samples property, in which the property is numerically compared and implicitly expected to be positive. I believe it's better to change all the properties and registers to u32, for consistency and warnings reduction. Signed-off-by: Guy Shapiro <guy.shapiro@mobi-wize.com> Reported-by: Bjørn Forsman <bjorn.forsman@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
70f5a294ad
commit
accbcea346
@ -91,9 +91,9 @@ struct imx6ul_tsc {
|
||||
struct clk *adc_clk;
|
||||
struct gpio_desc *xnur_gpio;
|
||||
|
||||
int measure_delay_time;
|
||||
int pre_charge_time;
|
||||
int average_samples;
|
||||
u32 measure_delay_time;
|
||||
u32 pre_charge_time;
|
||||
u32 average_samples;
|
||||
|
||||
struct completion completion;
|
||||
};
|
||||
@ -104,11 +104,11 @@ struct imx6ul_tsc {
|
||||
*/
|
||||
static int imx6ul_adc_init(struct imx6ul_tsc *tsc)
|
||||
{
|
||||
int adc_hc = 0;
|
||||
int adc_gc;
|
||||
int adc_gs;
|
||||
int adc_cfg;
|
||||
int timeout;
|
||||
u32 adc_hc = 0;
|
||||
u32 adc_gc;
|
||||
u32 adc_gs;
|
||||
u32 adc_cfg;
|
||||
unsigned long timeout;
|
||||
|
||||
reinit_completion(&tsc->completion);
|
||||
|
||||
@ -164,7 +164,7 @@ static int imx6ul_adc_init(struct imx6ul_tsc *tsc)
|
||||
*/
|
||||
static void imx6ul_tsc_channel_config(struct imx6ul_tsc *tsc)
|
||||
{
|
||||
int adc_hc0, adc_hc1, adc_hc2, adc_hc3, adc_hc4;
|
||||
u32 adc_hc0, adc_hc1, adc_hc2, adc_hc3, adc_hc4;
|
||||
|
||||
adc_hc0 = DISABLE_CONVERSION_INT;
|
||||
writel(adc_hc0, tsc->adc_regs + REG_ADC_HC0);
|
||||
@ -189,8 +189,8 @@ static void imx6ul_tsc_channel_config(struct imx6ul_tsc *tsc)
|
||||
*/
|
||||
static void imx6ul_tsc_set(struct imx6ul_tsc *tsc)
|
||||
{
|
||||
int basic_setting = 0;
|
||||
int start;
|
||||
u32 basic_setting = 0;
|
||||
u32 start;
|
||||
|
||||
basic_setting |= tsc->measure_delay_time << 8;
|
||||
basic_setting |= DETECT_4_WIRE_MODE | AUTO_MEASURE;
|
||||
@ -225,8 +225,8 @@ static int imx6ul_tsc_init(struct imx6ul_tsc *tsc)
|
||||
|
||||
static void imx6ul_tsc_disable(struct imx6ul_tsc *tsc)
|
||||
{
|
||||
int tsc_flow;
|
||||
int adc_cfg;
|
||||
u32 tsc_flow;
|
||||
u32 adc_cfg;
|
||||
|
||||
/* TSC controller enters to idle status */
|
||||
tsc_flow = readl(tsc->tsc_regs + REG_TSC_FLOW_CONTROL);
|
||||
@ -243,8 +243,8 @@ static void imx6ul_tsc_disable(struct imx6ul_tsc *tsc)
|
||||
static bool tsc_wait_detect_mode(struct imx6ul_tsc *tsc)
|
||||
{
|
||||
unsigned long timeout = jiffies + msecs_to_jiffies(2);
|
||||
int state_machine;
|
||||
int debug_mode2;
|
||||
u32 state_machine;
|
||||
u32 debug_mode2;
|
||||
|
||||
do {
|
||||
if (time_after(jiffies, timeout))
|
||||
@ -262,10 +262,10 @@ static bool tsc_wait_detect_mode(struct imx6ul_tsc *tsc)
|
||||
static irqreturn_t tsc_irq_fn(int irq, void *dev_id)
|
||||
{
|
||||
struct imx6ul_tsc *tsc = dev_id;
|
||||
int status;
|
||||
int value;
|
||||
int x, y;
|
||||
int start;
|
||||
u32 status;
|
||||
u32 value;
|
||||
u32 x, y;
|
||||
u32 start;
|
||||
|
||||
status = readl(tsc->tsc_regs + REG_TSC_INT_STATUS);
|
||||
|
||||
@ -305,8 +305,8 @@ static irqreturn_t tsc_irq_fn(int irq, void *dev_id)
|
||||
static irqreturn_t adc_irq_fn(int irq, void *dev_id)
|
||||
{
|
||||
struct imx6ul_tsc *tsc = dev_id;
|
||||
int coco;
|
||||
int value;
|
||||
u32 coco;
|
||||
u32 value;
|
||||
|
||||
coco = readl(tsc->adc_regs + REG_ADC_HS);
|
||||
if (coco & 0x01) {
|
||||
|
Loading…
Reference in New Issue
Block a user