All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christopher Heiny <cheiny@synaptics.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Andrew Duggan <aduggan@synaptics.com>,
	Vincent Huang <vincent.huang@tw.synaptics.com>,
	Vivian Ly <vly@synaptics.com>,
	Daniel Rosenberg <daniel.rosenberg@synaptics.com>,
	Linus Walleij <linus.walleij@stericsson.com>,
	Benjamin Tissoires <benjamin.tissoires@redhat.com>,
	Courtney Cavin <courtney.cavin@sonymobile.com>,
	Linux Input <linux-input@vger.kernel.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 08/11] Input: synaptics-rmi4 - use rmi_read/rmi_write in F01
Date: Thu, 13 Feb 2014 13:33:11 -0800	[thread overview]
Message-ID: <52FD3A17.7040803@synaptics.com> (raw)
In-Reply-To: <1392269277-16391-8-git-send-email-dmitry.torokhov@gmail.com>

On 02/12/2014 09:27 PM, Dmitry Torokhov wrote:
> Use rmi_read()/rmi_write() for reading/writing single-byte data. Also print
> error code when IO fails.
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Acked-by: Christopher Heiny <cheiny@synaptics.com>

> ---
>   drivers/input/rmi4/rmi_f01.c | 170 ++++++++++++++++++++++---------------------
>   1 file changed, 88 insertions(+), 82 deletions(-)
>
> diff --git a/drivers/input/rmi4/rmi_f01.c b/drivers/input/rmi4/rmi_f01.c
> index 1219e0c..a2f05bc 100644
> --- a/drivers/input/rmi4/rmi_f01.c
> +++ b/drivers/input/rmi4/rmi_f01.c
> @@ -171,8 +171,9 @@ static int rmi_f01_read_properties(struct rmi_device *rmi_dev,
>
>   	error = rmi_read_block(rmi_dev, query_base_addr,
>   			       basic_query, sizeof(basic_query));
> -	if (error < 0) {
> -		dev_err(&rmi_dev->dev, "Failed to read device query registers.\n");
> +	if (error) {
> +		dev_err(&rmi_dev->dev,
> +			"Failed to read device query registers: %d\n", error);
>   		return error;
>   	}
>
> @@ -205,25 +206,25 @@ static int rmi_f01_initialize(struct rmi_function *fn)
>   {
>   	u8 temp;
>   	int error;
> -	u16 ctrl_base_addr;
>   	struct rmi_device *rmi_dev = fn->rmi_dev;
>   	struct rmi_driver_data *driver_data = dev_get_drvdata(&rmi_dev->dev);
>   	struct f01_data *f01 = fn->data;
> -	struct rmi_device_platform_data *pdata = to_rmi_platform_data(rmi_dev);
> +	const struct rmi_device_platform_data *pdata = to_rmi_platform_data(rmi_dev);
> +	u16 ctrl_base_addr = fn->fd.control_base_addr;
>   	u8 device_status;
>
>   	/*
>   	 * Set the configured bit and (optionally) other important stuff
>   	 * in the device control register.
>   	 */
> -	ctrl_base_addr = fn->fd.control_base_addr;
> -	error = rmi_read_block(rmi_dev, fn->fd.control_base_addr,
> -			&f01->device_control.ctrl0,
> -			sizeof(f01->device_control.ctrl0));
> -	if (error < 0) {
> -		dev_err(&fn->dev, "Failed to read F01 control.\n");
> +
> +	error = rmi_read(rmi_dev, fn->fd.control_base_addr,
> +			 &f01->device_control.ctrl0);
> +	if (error) {
> +		dev_err(&fn->dev, "Failed to read F01 control: %d\n", error);
>   		return error;
>   	}
> +
>   	switch (pdata->power_management.nosleep) {
>   	case RMI_F01_NOSLEEP_DEFAULT:
>   		break;
> @@ -249,11 +250,10 @@ static int rmi_f01_initialize(struct rmi_function *fn)
>
>   	f01->device_control.ctrl0 |= RMI_F01_CRTL0_CONFIGURED_BIT;
>
> -	error = rmi_write_block(rmi_dev, fn->fd.control_base_addr,
> -				&f01->device_control.ctrl0,
> -				sizeof(f01->device_control.ctrl0));
> -	if (error < 0) {
> -		dev_err(&fn->dev, "Failed to write F01 control.\n");
> +	error = rmi_write(rmi_dev, fn->fd.control_base_addr,
> +			  f01->device_control.ctrl0);
> +	if (error) {
> +		dev_err(&fn->dev, "Failed to write F01 control: %d\n", error);
>   		return error;
>   	}
>
> @@ -265,9 +265,10 @@ static int rmi_f01_initialize(struct rmi_function *fn)
>   	error = rmi_read_block(rmi_dev, ctrl_base_addr,
>   				f01->device_control.interrupt_enable,
>   				sizeof(u8) * (f01->num_of_irq_regs));
> -	if (error < 0) {
> +	if (error) {
>   		dev_err(&fn->dev,
> -			"Failed to read F01 control interrupt enable register.\n");
> +			"Failed to read F01 control interrupt enable register: %d\n",
> +			error);
>   		return error;
>   	}
>
> @@ -302,8 +303,10 @@ static int rmi_f01_initialize(struct rmi_function *fn)
>   		} else {
>   			error = rmi_read(rmi_dev, f01->doze_interval_addr,
>   					 &f01->device_control.doze_interval);
> -			if (error < 0) {
> -				dev_err(&fn->dev, "Failed to read F01 doze interval register.\n");
> +			if (error) {
> +				dev_err(&fn->dev,
> +					"Failed to read F01 doze interval register: %d\n",
> +					error);
>   				return error;
>   			}
>   		}
> @@ -318,7 +321,9 @@ static int rmi_f01_initialize(struct rmi_function *fn)
>   			error = rmi_read(rmi_dev, f01->wakeup_threshold_addr,
>   					 &f01->device_control.wakeup_threshold);
>   			if (error < 0) {
> -				dev_err(&fn->dev, "Failed to read F01 wakeup threshold register.\n");
> +				dev_err(&fn->dev,
> +					"Failed to read F01 wakeup threshold register: %d\n",
> +					error);
>   				return error;
>   			}
>   		}
> @@ -337,17 +342,19 @@ static int rmi_f01_initialize(struct rmi_function *fn)
>   		} else {
>   			error = rmi_read(rmi_dev, f01->doze_holdoff_addr,
>   					 &f01->device_control.doze_holdoff);
> -			if (error < 0) {
> -				dev_err(&fn->dev, "Failed to read F01 doze holdoff register.\n");
> +			if (error) {
> +				dev_err(&fn->dev,
> +					"Failed to read F01 doze holdoff register: %d\n",
> +					error);
>   				return error;
>   			}
>   		}
>   	}
>
> -	error = rmi_read_block(rmi_dev, fn->fd.data_base_addr,
> -		&device_status, sizeof(device_status));
> +	error = rmi_read(rmi_dev, fn->fd.data_base_addr, &device_status);
>   	if (error < 0) {
> -		dev_err(&fn->dev, "Failed to read device status.\n");
> +		dev_err(&fn->dev,
> +			"Failed to read device status: %d\n", error);
>   		return error;
>   	}
>
> @@ -364,50 +371,53 @@ static int rmi_f01_initialize(struct rmi_function *fn)
>   static int rmi_f01_config(struct rmi_function *fn)
>   {
>   	struct f01_data *f01 = fn->data;
> -	int retval;
> -
> -	retval = rmi_write_block(fn->rmi_dev, fn->fd.control_base_addr,
> -				 &f01->device_control.ctrl0,
> -				 sizeof(f01->device_control.ctrl0));
> -	if (retval < 0) {
> -		dev_err(&fn->dev, "Failed to write device_control.reg.\n");
> -		return retval;
> +	int error;
> +
> +	error = rmi_write(fn->rmi_dev, fn->fd.control_base_addr,
> +			  f01->device_control.ctrl0);
> +	if (error) {
> +		dev_err(&fn->dev,
> +			"Failed to write device_control register: %d\n", error);
> +		return error;
>   	}
>
> -	retval = rmi_write_block(fn->rmi_dev, f01->interrupt_enable_addr,
> -				 f01->device_control.interrupt_enable,
> -				 sizeof(u8) * f01->num_of_irq_regs);
> -	if (retval < 0) {
> -		dev_err(&fn->dev, "Failed to write interrupt enable.\n");
> -		return retval;
> +	error = rmi_write_block(fn->rmi_dev, f01->interrupt_enable_addr,
> +				f01->device_control.interrupt_enable,
> +				sizeof(u8) * f01->num_of_irq_regs);
> +	if (error) {
> +		dev_err(&fn->dev,
> +			"Failed to write interrupt enable: %d\n", error);
> +		return error;
>   	}
>
>   	if (f01->properties.has_adjustable_doze) {
> -		retval = rmi_write_block(fn->rmi_dev, f01->doze_interval_addr,
> -					 &f01->device_control.doze_interval,
> -					 sizeof(u8));
> -		if (retval < 0) {
> -			dev_err(&fn->dev, "Failed to write doze interval.\n");
> -			return retval;
> +		error = rmi_write(fn->rmi_dev, f01->doze_interval_addr,
> +				  f01->device_control.doze_interval);
> +		if (error) {
> +			dev_err(&fn->dev,
> +				"Failed to write doze interval: %d\n", error);
> +			return error;
>   		}
>
> -		retval = rmi_write_block(fn->rmi_dev,
> +		error = rmi_write_block(fn->rmi_dev,
>   					 f01->wakeup_threshold_addr,
>   					 &f01->device_control.wakeup_threshold,
>   					 sizeof(u8));
> -		if (retval < 0) {
> -			dev_err(&fn->dev, "Failed to write wakeup threshold.\n");
> -			return retval;
> +		if (error) {
> +			dev_err(&fn->dev,
> +				"Failed to write wakeup threshold: %d\n",
> +				error);
> +			return error;
>   		}
>   	}
>
>   	if (f01->properties.has_adjustable_doze_holdoff) {
> -		retval = rmi_write_block(fn->rmi_dev, f01->doze_holdoff_addr,
> -					 &f01->device_control.doze_holdoff,
> -					 sizeof(u8));
> -		if (retval < 0) {
> -			dev_err(&fn->dev, "Failed to write doze holdoff.\n");
> -			return retval;
> +		error = rmi_write(fn->rmi_dev, f01->doze_holdoff_addr,
> +				  f01->device_control.doze_holdoff);
> +		if (error) {
> +			dev_err(&fn->dev,
> +				"Failed to write doze holdoff: %d\n", error);
> +			return error;
>   		}
>   	}
>
> @@ -439,23 +449,19 @@ static int rmi_f01_suspend(struct device *dev)
>   	struct f01_data *f01 = fn->data;
>   	int error;
>
> -	f01->old_nosleep = f01->device_control.ctrl0 &
> -					RMI_F01_CRTL0_NOSLEEP_BIT;
> +	f01->old_nosleep =
> +		f01->device_control.ctrl0 & RMI_F01_CRTL0_NOSLEEP_BIT;
>   	f01->device_control.ctrl0 &= ~RMI_F01_CRTL0_NOSLEEP_BIT;
>
>   	f01->device_control.ctrl0 &= ~RMI_F01_CTRL0_SLEEP_MODE_MASK;
>   	f01->device_control.ctrl0 |= RMI_SLEEP_MODE_SENSOR_SLEEP;
>
> -	error = rmi_write_block(rmi_dev,
> -				fn->fd.control_base_addr,
> -				&f01->device_control.ctrl0,
> -				sizeof(f01->device_control.ctrl0));
> -	if (error < 0) {
> -		dev_err(&fn->dev, "Failed to write sleep mode. Code: %d.\n",
> -			error);
> +	error = rmi_write(rmi_dev, fn->fd.control_base_addr,
> +			  f01->device_control.ctrl0);
> +	if (error) {
> +		dev_err(&fn->dev, "Failed to write sleep mode: %d.\n", error);
>   		if (f01->old_nosleep)
> -			f01->device_control.ctrl0 |=
> -					RMI_F01_CRTL0_NOSLEEP_BIT;
> +			f01->device_control.ctrl0 |= RMI_F01_CRTL0_NOSLEEP_BIT;
>   		f01->device_control.ctrl0 &= ~RMI_F01_CTRL0_SLEEP_MODE_MASK;
>   		f01->device_control.ctrl0 |= RMI_SLEEP_MODE_NORMAL;
>   		return error;
> @@ -477,13 +483,11 @@ static int rmi_f01_resume(struct device *dev)
>   	f01->device_control.ctrl0 &= ~RMI_F01_CTRL0_SLEEP_MODE_MASK;
>   	f01->device_control.ctrl0 |= RMI_SLEEP_MODE_NORMAL;
>
> -	error = rmi_write_block(rmi_dev, fn->fd.control_base_addr,
> -				&f01->device_control.ctrl0,
> -				sizeof(f01->device_control.ctrl0));
> -	if (error < 0) {
> +	error = rmi_write(rmi_dev, fn->fd.control_base_addr,
> +			  f01->device_control.ctrl0);
> +	if (error) {
>   		dev_err(&fn->dev,
> -			"Failed to restore normal operation. Code: %d.\n",
> -			error);
> +			"Failed to restore normal operation: %d.\n", error);
>   		return error;
>   	}
>
> @@ -497,23 +501,25 @@ static int rmi_f01_attention(struct rmi_function *fn,
>   			     unsigned long *irq_bits)
>   {
>   	struct rmi_device *rmi_dev = fn->rmi_dev;
> -	int retval;
> +	int error;
>   	u8 device_status;
>
> -	retval = rmi_read_block(rmi_dev, fn->fd.data_base_addr,
> -		&device_status, sizeof(device_status));
> -	if (retval < 0) {
> -		dev_err(&fn->dev, "Failed to read device status, code: %d.\n",
> -			retval);
> -		return retval;
> +	error = rmi_read(rmi_dev, fn->fd.data_base_addr, &device_status);
> +	if (error) {
> +		dev_err(&fn->dev,
> +			"Failed to read device status: %d.\n", error);
> +		return error;
>   	}
>
>   	if (RMI_F01_STATUS_UNCONFIGURED(device_status)) {
>   		dev_warn(&fn->dev, "Device reset detected.\n");
> -		retval = rmi_dev->driver->reset_handler(rmi_dev);
> -		if (retval < 0)
> -			return retval;
> +		error = rmi_dev->driver->reset_handler(rmi_dev);
> +		if (error) {
> +			dev_err(&fn->dev, "Device reset failed: %d\n", error);
> +			return error;
> +		}
>   	}
> +
>   	return 0;
>   }
>
>


-- 

Christopher Heiny
Senior Staff Firmware Engineer
Synaptics Incorporated

  reply	other threads:[~2014-02-13 21:33 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-13  5:27 [PATCH 01/11] Input: synaptics-rmi4 - do not kfree() managed memory in F01 Dmitry Torokhov
2014-02-13  5:27 ` [PATCH 02/11] Input: synaptics-rmi4 - remove unused rmi_f01_remove() Dmitry Torokhov
2014-02-13 19:11   ` Christopher Heiny
2014-02-13  5:27 ` [PATCH 03/11] Input: synaptics-rmi4 - do not update configuration in rmi_f01_probe() Dmitry Torokhov
2014-02-13 19:23   ` Christopher Heiny
2014-02-13 21:54     ` Dmitry Torokhov
2014-02-14 23:00       ` Christopher Heiny
2014-02-17 19:23         ` Dmitry Torokhov
2014-02-18 21:32           ` Christopher Heiny
2014-03-19  0:21   ` Christopher Heiny
2014-02-13  5:27 ` [PATCH 04/11] Input: synaptics-rmi4 - fix LTS handling in F01 Dmitry Torokhov
2014-02-13 19:32   ` Christopher Heiny
2014-02-14  8:05     ` Dmitry Torokhov
2014-02-13  5:27 ` [PATCH 05/11] Input: synaptics-rmi4 - remove control_mutex from f01_data Dmitry Torokhov
2014-02-13 23:01   ` Christopher Heiny
2014-02-13  5:27 ` [PATCH 06/11] Input: synaptics-rmi4 - remove device_status form f01_data Dmitry Torokhov
2014-02-13 21:15   ` Christopher Heiny
2014-02-13  5:27 ` [PATCH 07/11] Input: synaptics-rmi4 - rename instances of f01_data from data to f01 Dmitry Torokhov
2014-02-13 21:32   ` Christopher Heiny
2014-02-13  5:27 ` [PATCH 08/11] Input: synaptics-rmi4 - use rmi_read/rmi_write in F01 Dmitry Torokhov
2014-02-13 21:33   ` Christopher Heiny [this message]
2014-02-13  5:27 ` [PATCH 09/11] Input: synaptics-rmi4 - consolidate memory allocations " Dmitry Torokhov
2014-02-13 19:52   ` Christopher Heiny
2014-02-13  5:27 ` [PATCH 10/11] Input: synaptics-rmi4 - make accessor for platform data return const pointer Dmitry Torokhov
2014-02-13 20:00   ` Christopher Heiny
2014-02-13  5:27 ` [PATCH 11/11] Input: synaptics-rmi4 - remove data pointer from RMI fucntion structure Dmitry Torokhov
2014-02-13 21:33   ` Christopher Heiny
2014-02-13 19:11 ` [PATCH 01/11] Input: synaptics-rmi4 - do not kfree() managed memory in F01 Christopher Heiny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52FD3A17.7040803@synaptics.com \
    --to=cheiny@synaptics.com \
    --cc=aduggan@synaptics.com \
    --cc=benjamin.tissoires@redhat.com \
    --cc=courtney.cavin@sonymobile.com \
    --cc=daniel.rosenberg@synaptics.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linus.walleij@stericsson.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vincent.huang@tw.synaptics.com \
    --cc=vly@synaptics.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.