Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+21 −21
Original line number Diff line number Diff line
@@ -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) {