Commit accbcea3 authored by Guy Shapiro's avatar Guy Shapiro Committed by Dmitry Torokhov

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: default avatarGuy Shapiro <guy.shapiro@mobi-wize.com>
Reported-by: default avatarBjørn Forsman <bjorn.forsman@gmail.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 70f5a294
...@@ -91,9 +91,9 @@ struct imx6ul_tsc { ...@@ -91,9 +91,9 @@ struct imx6ul_tsc {
struct clk *adc_clk; struct clk *adc_clk;
struct gpio_desc *xnur_gpio; struct gpio_desc *xnur_gpio;
int measure_delay_time; u32 measure_delay_time;
int pre_charge_time; u32 pre_charge_time;
int average_samples; u32 average_samples;
struct completion completion; struct completion completion;
}; };
...@@ -104,11 +104,11 @@ struct imx6ul_tsc { ...@@ -104,11 +104,11 @@ struct imx6ul_tsc {
*/ */
static int imx6ul_adc_init(struct imx6ul_tsc *tsc) static int imx6ul_adc_init(struct imx6ul_tsc *tsc)
{ {
int adc_hc = 0; u32 adc_hc = 0;
int adc_gc; u32 adc_gc;
int adc_gs; u32 adc_gs;
int adc_cfg; u32 adc_cfg;
int timeout; unsigned long timeout;
reinit_completion(&tsc->completion); reinit_completion(&tsc->completion);
...@@ -164,7 +164,7 @@ static int imx6ul_adc_init(struct imx6ul_tsc *tsc) ...@@ -164,7 +164,7 @@ static int imx6ul_adc_init(struct imx6ul_tsc *tsc)
*/ */
static void imx6ul_tsc_channel_config(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; adc_hc0 = DISABLE_CONVERSION_INT;
writel(adc_hc0, tsc->adc_regs + REG_ADC_HC0); writel(adc_hc0, tsc->adc_regs + REG_ADC_HC0);
...@@ -189,8 +189,8 @@ static void imx6ul_tsc_channel_config(struct imx6ul_tsc *tsc) ...@@ -189,8 +189,8 @@ static void imx6ul_tsc_channel_config(struct imx6ul_tsc *tsc)
*/ */
static void imx6ul_tsc_set(struct imx6ul_tsc *tsc) static void imx6ul_tsc_set(struct imx6ul_tsc *tsc)
{ {
int basic_setting = 0; u32 basic_setting = 0;
int start; u32 start;
basic_setting |= tsc->measure_delay_time << 8; basic_setting |= tsc->measure_delay_time << 8;
basic_setting |= DETECT_4_WIRE_MODE | AUTO_MEASURE; basic_setting |= DETECT_4_WIRE_MODE | AUTO_MEASURE;
...@@ -225,8 +225,8 @@ static int imx6ul_tsc_init(struct imx6ul_tsc *tsc) ...@@ -225,8 +225,8 @@ static int imx6ul_tsc_init(struct imx6ul_tsc *tsc)
static void imx6ul_tsc_disable(struct imx6ul_tsc *tsc) static void imx6ul_tsc_disable(struct imx6ul_tsc *tsc)
{ {
int tsc_flow; u32 tsc_flow;
int adc_cfg; u32 adc_cfg;
/* TSC controller enters to idle status */ /* TSC controller enters to idle status */
tsc_flow = readl(tsc->tsc_regs + REG_TSC_FLOW_CONTROL); tsc_flow = readl(tsc->tsc_regs + REG_TSC_FLOW_CONTROL);
...@@ -243,8 +243,8 @@ static void imx6ul_tsc_disable(struct imx6ul_tsc *tsc) ...@@ -243,8 +243,8 @@ static void imx6ul_tsc_disable(struct imx6ul_tsc *tsc)
static bool tsc_wait_detect_mode(struct imx6ul_tsc *tsc) static bool tsc_wait_detect_mode(struct imx6ul_tsc *tsc)
{ {
unsigned long timeout = jiffies + msecs_to_jiffies(2); unsigned long timeout = jiffies + msecs_to_jiffies(2);
int state_machine; u32 state_machine;
int debug_mode2; u32 debug_mode2;
do { do {
if (time_after(jiffies, timeout)) if (time_after(jiffies, timeout))
...@@ -262,10 +262,10 @@ static bool tsc_wait_detect_mode(struct imx6ul_tsc *tsc) ...@@ -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) static irqreturn_t tsc_irq_fn(int irq, void *dev_id)
{ {
struct imx6ul_tsc *tsc = dev_id; struct imx6ul_tsc *tsc = dev_id;
int status; u32 status;
int value; u32 value;
int x, y; u32 x, y;
int start; u32 start;
status = readl(tsc->tsc_regs + REG_TSC_INT_STATUS); status = readl(tsc->tsc_regs + REG_TSC_INT_STATUS);
...@@ -305,8 +305,8 @@ static irqreturn_t tsc_irq_fn(int irq, void *dev_id) ...@@ -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) static irqreturn_t adc_irq_fn(int irq, void *dev_id)
{ {
struct imx6ul_tsc *tsc = dev_id; struct imx6ul_tsc *tsc = dev_id;
int coco; u32 coco;
int value; u32 value;
coco = readl(tsc->adc_regs + REG_ADC_HS); coco = readl(tsc->adc_regs + REG_ADC_HS);
if (coco & 0x01) { if (coco & 0x01) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment