Re: [PATCH 2/4] staging: typec: fusb302: cleanup logging and error messages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 11, 2017 at 03:20:21PM +0100, Rui Miguel Silva wrote:
> This driver was using debugfs as a logging mechanism instead of the normal dev_*
> helpers. This patch changes this and move all calls to fusb302_log function to
> the correspondent dev_{err,dbg,info}.
> 
> Since the debugfs interface was only used for logging, with this patch it became
> unused, so just remove it.
> 
> Signed-off-by: Rui Miguel Silva <rmfrfs@xxxxxxxxx>

Nack, sorry.

This doesn't work; we tried it. Console logging affects timing, making
the driver unusable.

Guenter

> ---
>  drivers/staging/typec/fusb302/fusb302.c | 425 ++++++++++----------------------
>  1 file changed, 132 insertions(+), 293 deletions(-)
> 
> diff --git a/drivers/staging/typec/fusb302/fusb302.c b/drivers/staging/typec/fusb302/fusb302.c
> index 65df6407db84..40842b8075e5 100644
> --- a/drivers/staging/typec/fusb302/fusb302.c
> +++ b/drivers/staging/typec/fusb302/fusb302.c
> @@ -14,7 +14,6 @@
>   * Fairchild FUSB302 Type-C Chip Driver
>   */
>  
> -#include <linux/debugfs.h>
>  #include <linux/delay.h>
>  #include <linux/errno.h>
>  #include <linux/gpio.h>
> @@ -82,9 +81,6 @@ static const u8 rd_mda_value[] = {
>  	[SRC_CURRENT_HIGH] = 61,	/* 2604mV */
>  };
>  
> -#define LOG_BUFFER_ENTRIES	1024
> -#define LOG_BUFFER_ENTRY_SIZE	128
> -
>  struct fusb302_chip {
>  	struct device *dev;
>  	struct i2c_client *i2c_client;
> @@ -121,146 +117,8 @@ struct fusb302_chip {
>  	enum typec_cc_polarity cc_polarity;
>  	enum typec_cc_status cc1;
>  	enum typec_cc_status cc2;
> -
> -#ifdef CONFIG_DEBUG_FS
> -	struct dentry *dentry;
> -	/* lock for log buffer access */
> -	struct mutex logbuffer_lock;
> -	int logbuffer_head;
> -	int logbuffer_tail;
> -	u8 *logbuffer[LOG_BUFFER_ENTRIES];
> -#endif
> -};
> -
> -/*
> - * Logging
> - */
> -
> -#ifdef CONFIG_DEBUG_FS
> -
> -static bool fusb302_log_full(struct fusb302_chip *chip)
> -{
> -	return chip->logbuffer_tail ==
> -		(chip->logbuffer_head + 1) % LOG_BUFFER_ENTRIES;
> -}
> -
> -static void _fusb302_log(struct fusb302_chip *chip, const char *fmt,
> -			 va_list args)
> -{
> -	char tmpbuffer[LOG_BUFFER_ENTRY_SIZE];
> -	u64 ts_nsec = local_clock();
> -	unsigned long rem_nsec;
> -
> -	if (!chip->logbuffer[chip->logbuffer_head]) {
> -		chip->logbuffer[chip->logbuffer_head] =
> -				kzalloc(LOG_BUFFER_ENTRY_SIZE, GFP_KERNEL);
> -		if (!chip->logbuffer[chip->logbuffer_head])
> -			return;
> -	}
> -
> -	vsnprintf(tmpbuffer, sizeof(tmpbuffer), fmt, args);
> -
> -	mutex_lock(&chip->logbuffer_lock);
> -
> -	if (fusb302_log_full(chip)) {
> -		chip->logbuffer_head = max(chip->logbuffer_head - 1, 0);
> -		strlcpy(tmpbuffer, "overflow", sizeof(tmpbuffer));
> -	}
> -
> -	if (chip->logbuffer_head < 0 ||
> -	    chip->logbuffer_head >= LOG_BUFFER_ENTRIES) {
> -		dev_warn(chip->dev,
> -			 "Bad log buffer index %d\n", chip->logbuffer_head);
> -		goto abort;
> -	}
> -
> -	if (!chip->logbuffer[chip->logbuffer_head]) {
> -		dev_warn(chip->dev,
> -			 "Log buffer index %d is NULL\n", chip->logbuffer_head);
> -		goto abort;
> -	}
> -
> -	rem_nsec = do_div(ts_nsec, 1000000000);
> -	scnprintf(chip->logbuffer[chip->logbuffer_head],
> -		  LOG_BUFFER_ENTRY_SIZE, "[%5lu.%06lu] %s",
> -		  (unsigned long)ts_nsec, rem_nsec / 1000,
> -		  tmpbuffer);
> -	chip->logbuffer_head = (chip->logbuffer_head + 1) % LOG_BUFFER_ENTRIES;
> -
> -abort:
> -	mutex_unlock(&chip->logbuffer_lock);
> -}
> -
> -static void fusb302_log(struct fusb302_chip *chip, const char *fmt, ...)
> -{
> -	va_list args;
> -
> -	va_start(args, fmt);
> -	_fusb302_log(chip, fmt, args);
> -	va_end(args);
> -}
> -
> -static int fusb302_seq_show(struct seq_file *s, void *v)
> -{
> -	struct fusb302_chip *chip = (struct fusb302_chip *)s->private;
> -	int tail;
> -
> -	mutex_lock(&chip->logbuffer_lock);
> -	tail = chip->logbuffer_tail;
> -	while (tail != chip->logbuffer_head) {
> -		seq_printf(s, "%s\n", chip->logbuffer[tail]);
> -		tail = (tail + 1) % LOG_BUFFER_ENTRIES;
> -	}
> -	if (!seq_has_overflowed(s))
> -		chip->logbuffer_tail = tail;
> -	mutex_unlock(&chip->logbuffer_lock);
> -
> -	return 0;
> -}
> -
> -static int fusb302_debug_open(struct inode *inode, struct file *file)
> -{
> -	return single_open(file, fusb302_seq_show, inode->i_private);
> -}
> -
> -static const struct file_operations fusb302_debug_operations = {
> -	.open		= fusb302_debug_open,
> -	.llseek		= seq_lseek,
> -	.read		= seq_read,
> -	.release	= single_release,
>  };
>  
> -static struct dentry *rootdir;
> -
> -static int fusb302_debugfs_init(struct fusb302_chip *chip)
> -{
> -	mutex_init(&chip->logbuffer_lock);
> -	if (!rootdir) {
> -		rootdir = debugfs_create_dir("fusb302", NULL);
> -		if (!rootdir)
> -			return -ENOMEM;
> -	}
> -
> -	chip->dentry = debugfs_create_file(dev_name(chip->dev),
> -					   S_IFREG | 0444, rootdir,
> -					   chip, &fusb302_debug_operations);
> -
> -	return 0;
> -}
> -
> -static void fusb302_debugfs_exit(struct fusb302_chip *chip)
> -{
> -	debugfs_remove(chip->dentry);
> -}
> -
> -#else
> -
> -static void fusb302_log(const struct fusb302_chip *chip,
> -			const char *fmt, ...) { }
> -static int fusb302_debugfs_init(const struct fusb302_chip *chip) { return 0; }
> -static void fusb302_debugfs_exit(const struct fusb302_chip *chip) { }
> -
> -#endif
>  
>  #define FUSB302_RESUME_RETRY 10
>  #define FUSB302_RESUME_RETRY_SLEEP 50
> @@ -273,8 +131,8 @@ static int fusb302_i2c_write(struct fusb302_chip *chip,
>  	atomic_set(&chip->i2c_busy, 1);
>  	for (retry_cnt = 0; retry_cnt < FUSB302_RESUME_RETRY; retry_cnt++) {
>  		if (atomic_read(&chip->pm_suspend)) {
> -			pr_err("fusb302_i2c: pm suspend, retry %d/%d\n",
> -			       retry_cnt + 1, FUSB302_RESUME_RETRY);
> +			dev_info(chip->dev, "i2c: pm suspend, retry %d/%d\n",
> +				 retry_cnt + 1, FUSB302_RESUME_RETRY);
>  			msleep(FUSB302_RESUME_RETRY_SLEEP);
>  		} else {
>  			break;
> @@ -282,8 +140,8 @@ static int fusb302_i2c_write(struct fusb302_chip *chip,
>  	}
>  	ret = i2c_smbus_write_byte_data(chip->i2c_client, address, data);
>  	if (ret < 0)
> -		fusb302_log(chip, "cannot write 0x%02x to 0x%02x, ret=%d",
> -			    data, address, ret);
> +		dev_err(chip->dev, "cannot write 0x%02x to 0x%02x: %d\n", data,
> +			address, ret);
>  	atomic_set(&chip->i2c_busy, 0);
>  
>  	return ret;
> @@ -300,8 +158,8 @@ static int fusb302_i2c_block_write(struct fusb302_chip *chip, u8 address,
>  	atomic_set(&chip->i2c_busy, 1);
>  	for (retry_cnt = 0; retry_cnt < FUSB302_RESUME_RETRY; retry_cnt++) {
>  		if (atomic_read(&chip->pm_suspend)) {
> -			pr_err("fusb302_i2c: pm suspend, retry %d/%d\n",
> -			       retry_cnt + 1, FUSB302_RESUME_RETRY);
> +			dev_info(chip->dev, "i2c: pm suspend, retry %d/%d\n",
> +				 retry_cnt + 1, FUSB302_RESUME_RETRY);
>  			msleep(FUSB302_RESUME_RETRY_SLEEP);
>  		} else {
>  			break;
> @@ -310,8 +168,8 @@ static int fusb302_i2c_block_write(struct fusb302_chip *chip, u8 address,
>  	ret = i2c_smbus_write_i2c_block_data(chip->i2c_client, address,
>  					     length, data);
>  	if (ret < 0)
> -		fusb302_log(chip, "cannot block write 0x%02x, len=%d, ret=%d",
> -			    address, length, ret);
> +		dev_err(chip->dev, "cannot block write 0x%02x, len=%d: %d\n",
> +			address, length, ret);
>  	atomic_set(&chip->i2c_busy, 0);
>  
>  	return ret;
> @@ -326,8 +184,8 @@ static int fusb302_i2c_read(struct fusb302_chip *chip,
>  	atomic_set(&chip->i2c_busy, 1);
>  	for (retry_cnt = 0; retry_cnt < FUSB302_RESUME_RETRY; retry_cnt++) {
>  		if (atomic_read(&chip->pm_suspend)) {
> -			pr_err("fusb302_i2c: pm suspend, retry %d/%d\n",
> -			       retry_cnt + 1, FUSB302_RESUME_RETRY);
> +			dev_info(chip->dev, "i2c: pm suspend, retry %d/%d\n",
> +				 retry_cnt + 1, FUSB302_RESUME_RETRY);
>  			msleep(FUSB302_RESUME_RETRY_SLEEP);
>  		} else {
>  			break;
> @@ -336,7 +194,7 @@ static int fusb302_i2c_read(struct fusb302_chip *chip,
>  	ret = i2c_smbus_read_byte_data(chip->i2c_client, address);
>  	*data = (u8)ret;
>  	if (ret < 0)
> -		fusb302_log(chip, "cannot read %02x, ret=%d", address, ret);
> +		dev_err(chip->dev, "cannot read %02x: %d\n", address, ret);
>  	atomic_set(&chip->i2c_busy, 0);
>  
>  	return ret;
> @@ -353,8 +211,8 @@ static int fusb302_i2c_block_read(struct fusb302_chip *chip, u8 address,
>  	atomic_set(&chip->i2c_busy, 1);
>  	for (retry_cnt = 0; retry_cnt < FUSB302_RESUME_RETRY; retry_cnt++) {
>  		if (atomic_read(&chip->pm_suspend)) {
> -			pr_err("fusb302_i2c: pm suspend, retry %d/%d\n",
> -			       retry_cnt + 1, FUSB302_RESUME_RETRY);
> +			dev_info(chip->dev, "i2c: pm suspend, retry %d/%d\n",
> +				 retry_cnt + 1, FUSB302_RESUME_RETRY);
>  			msleep(FUSB302_RESUME_RETRY_SLEEP);
>  		} else {
>  			break;
> @@ -363,13 +221,13 @@ static int fusb302_i2c_block_read(struct fusb302_chip *chip, u8 address,
>  	ret = i2c_smbus_read_i2c_block_data(chip->i2c_client, address,
>  					    length, data);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot block read 0x%02x, len=%d, ret=%d",
> -			    address, length, ret);
> +		dev_err(chip->dev, "cannot block read 0x%02x, len=%d: %d\n",
> +			address, length, ret);
>  		return ret;
>  	}
>  	if (ret != length) {
> -		fusb302_log(chip, "only read %d/%d bytes from 0x%02x",
> -			    ret, length, address);
> +		dev_err(chip->dev, "only read %d/%d bytes from 0x%02x\n",
> +			ret, length, address);
>  		return -EIO;
>  	}
>  	atomic_set(&chip->i2c_busy, 0);
> @@ -414,9 +272,9 @@ static int fusb302_sw_reset(struct fusb302_chip *chip)
>  	ret = fusb302_i2c_write(chip, FUSB_REG_RESET,
>  				FUSB_REG_RESET_SW_RESET);
>  	if (ret < 0)
> -		fusb302_log(chip, "cannot sw reset the chip, ret=%d", ret);
> +		dev_err(chip->dev, "cannot sw reset the chip: %d\n", ret);
>  	else
> -		fusb302_log(chip, "sw reset");
> +		dev_info(chip->dev, "sw reset\n");
>  
>  	return ret;
>  }
> @@ -493,7 +351,7 @@ static int tcpm_init(struct tcpc_dev *dev)
>  	ret = fusb302_i2c_read(chip, FUSB_REG_DEVICE_ID, &data);
>  	if (ret < 0)
>  		return ret;
> -	fusb302_log(chip, "fusb302 device ID: 0x%02x", data);
> +	dev_info(chip->dev, "device ID: 0x%02x\n", data);
>  
>  	return ret;
>  }
> @@ -689,23 +547,22 @@ static int tcpm_set_cc(struct tcpc_dev *dev, enum typec_cc_status cc)
>  		pull_down = false;
>  		break;
>  	default:
> -		fusb302_log(chip, "unsupported cc value %s",
> -			    typec_cc_status_name[cc]);
> +		dev_err(chip->dev, "unsupported cc value %s\n",
> +			typec_cc_status_name[cc]);
>  		ret = -EINVAL;
>  		goto done;
>  	}
>  	ret = fusb302_set_toggling(chip, TOGGLINE_MODE_OFF);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot stop toggling, ret=%d", ret);
> +		dev_err(chip->dev, "cannot stop toggling: %d\n", ret);
>  		goto done;
>  	}
>  	ret = fusb302_set_cc_pull(chip, pull_up, pull_down);
>  	if (ret < 0) {
> -		fusb302_log(chip,
> -			    "cannot set cc pulling up %s, down %s, ret = %d",
> -			    pull_up ? "True" : "False",
> -			    pull_down ? "True" : "False",
> -			    ret);
> +		dev_err(chip->dev, "cannot set cc pulling up %s, down %s: %d\n",
> +			pull_up ? "True" : "False",
> +			pull_down ? "True" : "False",
> +			ret);
>  		goto done;
>  	}
>  	/* reset the cc status */
> @@ -715,8 +572,8 @@ static int tcpm_set_cc(struct tcpc_dev *dev, enum typec_cc_status cc)
>  	if (pull_up) {
>  		ret = fusb302_set_src_current(chip, cc_src_current[cc]);
>  		if (ret < 0) {
> -			fusb302_log(chip, "cannot set src current %s, ret=%d",
> -				    typec_cc_status_name[cc], ret);
> +			dev_err(chip->dev, "cannot set SRC current %s: %d\n",
> +				typec_cc_status_name[cc], ret);
>  			goto done;
>  		}
>  	}
> @@ -725,9 +582,8 @@ static int tcpm_set_cc(struct tcpc_dev *dev, enum typec_cc_status cc)
>  		rd_mda = rd_mda_value[cc_src_current[cc]];
>  		ret = fusb302_i2c_write(chip, FUSB_REG_MEASURE, rd_mda);
>  		if (ret < 0) {
> -			fusb302_log(chip,
> -				    "cannot set SRC measure value, ret=%d",
> -				    ret);
> +			dev_err(chip->dev, "cannot set SRC measure value: %d\n",
> +				ret);
>  			goto done;
>  		}
>  		ret = fusb302_i2c_mask_write(chip, FUSB_REG_MASK,
> @@ -735,8 +591,8 @@ static int tcpm_set_cc(struct tcpc_dev *dev, enum typec_cc_status cc)
>  					     FUSB_REG_MASK_COMP_CHNG,
>  					     FUSB_REG_MASK_COMP_CHNG);
>  		if (ret < 0) {
> -			fusb302_log(chip, "cannot set SRC interrupt, ret=%d",
> -				    ret);
> +			dev_err(chip->dev, "cannot set SRC interrupt: %d\n",
> +				ret);
>  			goto done;
>  		}
>  		chip->intr_bc_lvl = false;
> @@ -748,14 +604,15 @@ static int tcpm_set_cc(struct tcpc_dev *dev, enum typec_cc_status cc)
>  					     FUSB_REG_MASK_COMP_CHNG,
>  					     FUSB_REG_MASK_BC_LVL);
>  		if (ret < 0) {
> -			fusb302_log(chip, "cannot set SRC interrupt, ret=%d",
> -				    ret);
> +			dev_err(chip->dev, "cannot set SNK interrupt: %d\n",
> +				ret);
>  			goto done;
>  		}
>  		chip->intr_bc_lvl = true;
>  		chip->intr_comp_chng = false;
>  	}
> -	fusb302_log(chip, "cc := %s", typec_cc_status_name[cc]);
> +
> +	dev_dbg(chip->dev, "cc := %s\n", typec_cc_status_name[cc]);
>  done:
>  	mutex_unlock(&chip->lock);
>  
> @@ -771,8 +628,8 @@ static int tcpm_get_cc(struct tcpc_dev *dev, enum typec_cc_status *cc1,
>  	mutex_lock(&chip->lock);
>  	*cc1 = chip->cc1;
>  	*cc2 = chip->cc2;
> -	fusb302_log(chip, "cc1=%s, cc2=%s", typec_cc_status_name[*cc1],
> -		    typec_cc_status_name[*cc2]);
> +	dev_dbg(chip->dev, "cc1=%s, cc2=%s\n", typec_cc_status_name[*cc1],
> +		typec_cc_status_name[*cc2]);
>  	mutex_unlock(&chip->lock);
>  
>  	return 0;
> @@ -795,7 +652,7 @@ static int tcpm_set_vconn(struct tcpc_dev *dev, bool on)
>  
>  	mutex_lock(&chip->lock);
>  	if (chip->vconn_on == on) {
> -		fusb302_log(chip, "vconn is already %s", on ? "On" : "Off");
> +		dev_dbg(chip->dev, "vconn is already %s\n", on ? "On" : "Off");
>  		goto done;
>  	}
>  	if (on) {
> @@ -808,7 +665,7 @@ static int tcpm_set_vconn(struct tcpc_dev *dev, bool on)
>  	if (ret < 0)
>  		goto done;
>  	chip->vconn_on = on;
> -	fusb302_log(chip, "vconn := %s", on ? "On" : "Off");
> +	dev_dbg(chip->dev, "vconn := %s\n", on ? "On" : "Off");
>  done:
>  	mutex_unlock(&chip->lock);
>  
> @@ -823,23 +680,23 @@ static int tcpm_set_vbus(struct tcpc_dev *dev, bool on, bool charge)
>  
>  	mutex_lock(&chip->lock);
>  	if (chip->vbus_on == on) {
> -		fusb302_log(chip, "vbus is already %s", on ? "On" : "Off");
> +		dev_dbg(chip->dev, "vbus is already %s\n", on ? "On" : "Off");
>  	} else {
>  		if (on)
>  			ret = regulator_enable(chip->vbus);
>  		else
>  			ret = regulator_disable(chip->vbus);
>  		if (ret < 0) {
> -			fusb302_log(chip, "cannot %s vbus regulator, ret=%d",
> -				    on ? "enable" : "disable", ret);
> +			dev_err(chip->dev, "cannot %s vbus regulator: %d\n",
> +				on ? "enable" : "disable", ret);
>  			goto done;
>  		}
>  		chip->vbus_on = on;
> -		fusb302_log(chip, "vbus := %s", on ? "On" : "Off");
> +		dev_dbg(chip->dev, "vbus := %s\n", on ? "On" : "Off");
>  	}
>  	if (chip->charge_on == charge)
> -		fusb302_log(chip, "charge is already %s",
> -			    charge ? "On" : "Off");
> +		dev_dbg(chip->dev, "charge is already %s\n",
> +			charge ? "On" : "Off");
>  	else
>  		chip->charge_on = charge;
>  
> @@ -854,8 +711,8 @@ static int tcpm_set_current_limit(struct tcpc_dev *dev, u32 max_ma, u32 mv)
>  	struct fusb302_chip *chip = container_of(dev, struct fusb302_chip,
>  						 tcpc_dev);
>  
> -	fusb302_log(chip, "current limit: %d ma, %d mv (not implemented)",
> -		    max_ma, mv);
> +	dev_info(chip->dev, "current limit: %d ma, %d mv (not implemented)\n",
> +		 max_ma, mv);
>  
>  	return 0;
>  }
> @@ -916,27 +773,27 @@ static int tcpm_set_pd_rx(struct tcpc_dev *dev, bool on)
>  	mutex_lock(&chip->lock);
>  	ret = fusb302_pd_rx_flush(chip);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot flush pd rx buffer, ret=%d", ret);
> +		dev_err(chip->dev, "cannot flush pd rx buffer: %d\n", ret);
>  		goto done;
>  	}
>  	ret = fusb302_pd_tx_flush(chip);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot flush pd tx buffer, ret=%d", ret);
> +		dev_err(chip->dev, "cannot flush pd tx buffer: %d\n", ret);
>  		goto done;
>  	}
>  	ret = fusb302_pd_set_auto_goodcrc(chip, on);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot turn %s auto GCRC, ret=%d",
> -			    on ? "on" : "off", ret);
> +		dev_err(chip->dev, "cannot turn %s auto GCRC: %d\n",
> +			on ? "on" : "off", ret);
>  		goto done;
>  	}
>  	ret = fusb302_pd_set_interrupts(chip, on);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot turn %s pd interrupts, ret=%d",
> -			    on ? "on" : "off", ret);
> +		dev_err(chip->dev, "cannot turn %s pd interrupts: %d\n",
> +			on ? "on" : "off", ret);
>  		goto done;
>  	}
> -	fusb302_log(chip, "pd := %s", on ? "on" : "off");
> +	dev_dbg(chip->dev, "pd := %s\n", on ? "on" : "off");
>  done:
>  	mutex_unlock(&chip->lock);
>  
> @@ -971,13 +828,12 @@ static int tcpm_set_roles(struct tcpc_dev *dev, bool attached,
>  	ret = fusb302_i2c_mask_write(chip, FUSB_REG_SWITCHES1,
>  				     switches1_mask, switches1_data);
>  	if (ret < 0) {
> -		fusb302_log(chip, "unable to set pd header %s, %s, ret=%d",
> -			    typec_role_name[pwr], typec_data_role_name[data],
> -			    ret);
> +		dev_err(chip->dev, "unable to set pd header %s, %s: %d\n",
> +			typec_role_name[pwr], typec_data_role_name[data], ret);
>  		goto done;
>  	}
> -	fusb302_log(chip, "pd header := %s, %s", typec_role_name[pwr],
> -		    typec_data_role_name[data]);
> +	dev_dbg(chip->dev, "pd header := %s, %s\n", typec_role_name[pwr],
> +		typec_data_role_name[data]);
>  done:
>  	mutex_unlock(&chip->lock);
>  
> @@ -994,17 +850,16 @@ static int tcpm_start_drp_toggling(struct tcpc_dev *dev,
>  	mutex_lock(&chip->lock);
>  	ret = fusb302_set_src_current(chip, cc_src_current[cc]);
>  	if (ret < 0) {
> -		fusb302_log(chip, "unable to set src current %s, ret=%d",
> -			    typec_cc_status_name[cc], ret);
> +		dev_err(chip->dev, "unable to set SRC current %s: %d\n",
> +			typec_cc_status_name[cc], ret);
>  		goto done;
>  	}
>  	ret = fusb302_set_toggling(chip, TOGGLING_MODE_DRP);
>  	if (ret < 0) {
> -		fusb302_log(chip,
> -			    "unable to start drp toggling, ret=%d", ret);
> +		dev_err(chip->dev, "unable to start DRP toggling: %d\n", ret);
>  		goto done;
>  	}
> -	fusb302_log(chip, "start drp toggling");
> +	dev_dbg(chip->dev, "start DRP toggling\n");
>  done:
>  	mutex_unlock(&chip->lock);
>  
> @@ -1029,8 +884,7 @@ static int fusb302_pd_send_message(struct fusb302_chip *chip,
>  	/* plug 2 for header */
>  	len += 2;
>  	if (len > 0x1F) {
> -		fusb302_log(chip,
> -			    "PD message too long %d (incl. header)", len);
> +		dev_err(chip->dev, "PD message too long %d\n", len);
>  		return -EINVAL;
>  	}
>  	/* packsym tells the FUSB302 chip that the next X bytes are payload */
> @@ -1054,8 +908,8 @@ static int fusb302_pd_send_message(struct fusb302_chip *chip,
>  	ret = fusb302_i2c_block_write(chip, FUSB_REG_FIFOS, pos, buf);
>  	if (ret < 0)
>  		return ret;
> -	fusb302_log(chip, "sending PD message header: %x", msg->header);
> -	fusb302_log(chip, "sending PD message len: %d", len);
> +	dev_dbg(chip->dev, "sending PD message header: %x\n", msg->header);
> +	dev_dbg(chip->dev, "sending PD message len: %d\n", len);
>  
>  	return ret;
>  }
> @@ -1089,18 +943,16 @@ static int tcpm_pd_transmit(struct tcpc_dev *dev, enum tcpm_transmit_type type,
>  	case TCPC_TX_SOP:
>  		ret = fusb302_pd_send_message(chip, msg);
>  		if (ret < 0)
> -			fusb302_log(chip,
> -				    "cannot send PD message, ret=%d", ret);
> +			dev_err(chip->dev, "cannot send PD message: %d\n", ret);
>  		break;
>  	case TCPC_TX_HARD_RESET:
>  		ret = fusb302_pd_send_hardreset(chip);
>  		if (ret < 0)
> -			fusb302_log(chip,
> -				    "cannot send hardreset, ret=%d", ret);
> +			dev_err(chip->dev, "cannot send hardreset: %d\n", ret);
>  		break;
>  	default:
> -		fusb302_log(chip, "type %s not supported",
> -			    transmit_type_name[type]);
> +		dev_info(chip->dev, "type %s not supported\n",
> +			 transmit_type_name[type]);
>  		ret = -EINVAL;
>  	}
>  	mutex_unlock(&chip->lock);
> @@ -1130,15 +982,16 @@ static void fusb302_bc_lvl_handler_work(struct work_struct *work)
>  
>  	mutex_lock(&chip->lock);
>  	if (!chip->intr_bc_lvl) {
> -		fusb302_log(chip, "BC_LVL interrupt is turned off, abort");
> +		dev_warn(chip->dev, "BC_LVL interrupt is turned off, abort\n");
>  		goto done;
>  	}
>  	ret = fusb302_i2c_read(chip, FUSB_REG_STATUS0, &status0);
>  	if (ret < 0)
>  		goto done;
> -	fusb302_log(chip, "BC_LVL handler, status0=0x%02x", status0);
> +	dev_dbg(chip->dev, "BC_LVL handler, status0=0x%02x\n", status0);
> +
>  	if (status0 & FUSB_REG_STATUS0_ACTIVITY) {
> -		fusb302_log(chip, "CC activities detected, delay handling");
> +		dev_dbg(chip->dev, "CC activities detected, delay handling\n");
>  		mod_delayed_work(chip->wq, &chip->bc_lvl_handler,
>  				 msecs_to_jiffies(T_BC_LVL_DEBOUNCE_DELAY_MS));
>  		goto done;
> @@ -1147,17 +1000,17 @@ static void fusb302_bc_lvl_handler_work(struct work_struct *work)
>  	cc_status = fusb302_bc_lvl_to_cc(bc_lvl);
>  	if (chip->cc_polarity == TYPEC_POLARITY_CC1) {
>  		if (chip->cc1 != cc_status) {
> -			fusb302_log(chip, "cc1: %s -> %s",
> -				    typec_cc_status_name[chip->cc1],
> -				    typec_cc_status_name[cc_status]);
> +			dev_dbg(chip->dev, "cc1: %s -> %s\n",
> +				typec_cc_status_name[chip->cc1],
> +				typec_cc_status_name[cc_status]);
>  			chip->cc1 = cc_status;
>  			tcpm_cc_change(chip->tcpm_port);
>  		}
>  	} else {
>  		if (chip->cc2 != cc_status) {
> -			fusb302_log(chip, "cc2: %s -> %s",
> -				    typec_cc_status_name[chip->cc2],
> -				    typec_cc_status_name[cc_status]);
> +			dev_dbg(chip->dev, "cc2: %s -> %s\n",
> +				typec_cc_status_name[chip->cc2],
> +				typec_cc_status_name[cc_status]);
>  			chip->cc2 = cc_status;
>  			tcpm_cc_change(chip->tcpm_port);
>  		}
> @@ -1270,7 +1123,7 @@ static int fusb302_handle_togdone_snk(struct fusb302_chip *chip,
>  	/* set pull_up, pull_down */
>  	ret = fusb302_set_cc_pull(chip, false, true);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot set cc to pull down, ret=%d", ret);
> +		dev_err(chip->dev, "cannot set cc to pull down: %d\n", ret);
>  		return ret;
>  	}
>  	/* set polarity */
> @@ -1278,8 +1131,8 @@ static int fusb302_handle_togdone_snk(struct fusb302_chip *chip,
>  		      TYPEC_POLARITY_CC1 : TYPEC_POLARITY_CC2;
>  	ret = fusb302_set_cc_polarity(chip, cc_polarity);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot set cc polarity %s, ret=%d",
> -			    cc_polarity_name[cc_polarity], ret);
> +		dev_err(chip->dev, "cannot set cc polarity %s: %d\n",
> +			cc_polarity_name[cc_polarity], ret);
>  		return ret;
>  	}
>  	/* fusb302_set_cc_polarity() has set the correct measure block */
> @@ -1290,7 +1143,7 @@ static int fusb302_handle_togdone_snk(struct fusb302_chip *chip,
>  	cc_status_active = fusb302_bc_lvl_to_cc(bc_lvl);
>  	/* restart toggling if the cc status on the active line is OPEN */
>  	if (cc_status_active == TYPEC_CC_OPEN) {
> -		fusb302_log(chip, "restart toggling as CC_OPEN detected");
> +		dev_dbg(chip->dev, "restart toggling as CC_OPEN detected\n");
>  		ret = fusb302_set_toggling(chip, chip->toggling_mode);
>  		return ret;
>  	}
> @@ -1307,21 +1160,19 @@ static int fusb302_handle_togdone_snk(struct fusb302_chip *chip,
>  	/* turn off toggling */
>  	ret = fusb302_set_toggling(chip, TOGGLINE_MODE_OFF);
>  	if (ret < 0) {
> -		fusb302_log(chip,
> -			    "cannot set toggling mode off, ret=%d", ret);
> +		dev_err(chip->dev, "cannot set toggling mode off: %d\n", ret);
>  		return ret;
>  	}
>  	/* unmask bc_lvl interrupt */
>  	ret = fusb302_i2c_clear_bits(chip, FUSB_REG_MASK, FUSB_REG_MASK_BC_LVL);
>  	if (ret < 0) {
> -		fusb302_log(chip,
> -			    "cannot unmask bc_lcl interrupt, ret=%d", ret);
> +		dev_err(chip->dev, "cannot unmask bc_lcl interrupt: %d\n", ret);
>  		return ret;
>  	}
>  	chip->intr_bc_lvl = true;
> -	fusb302_log(chip, "detected cc1=%s, cc2=%s",
> -		    typec_cc_status_name[cc1],
> -		    typec_cc_status_name[cc2]);
> +	dev_dbg(chip->dev, "detected cc1=%s, cc2=%s\n",
> +		typec_cc_status_name[cc1],
> +		typec_cc_status_name[cc2]);
>  
>  	return ret;
>  }
> @@ -1346,7 +1197,7 @@ static int fusb302_handle_togdone_src(struct fusb302_chip *chip,
>  	/* set pull_up, pull_down */
>  	ret = fusb302_set_cc_pull(chip, true, false);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot set cc to pull up, ret=%d", ret);
> +		dev_err(chip->dev, "cannot set cc to pull up: %d\n", ret);
>  		return ret;
>  	}
>  	/* set polarity */
> @@ -1354,8 +1205,8 @@ static int fusb302_handle_togdone_src(struct fusb302_chip *chip,
>  		      TYPEC_POLARITY_CC1 : TYPEC_POLARITY_CC2;
>  	ret = fusb302_set_cc_polarity(chip, cc_polarity);
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot set cc polarity %s, ret=%d",
> -			    cc_polarity_name[cc_polarity], ret);
> +		dev_err(chip->dev, "cannot set cc polarity %s: %d\n",
> +			cc_polarity_name[cc_polarity], ret);
>  		return ret;
>  	}
>  	/* fusb302_set_cc_polarity() has set the correct measure block */
> @@ -1386,7 +1237,7 @@ static int fusb302_handle_togdone_src(struct fusb302_chip *chip,
>  		cc_status_active = TYPEC_CC_OPEN;
>  	/* restart toggling if the cc status on the active line is OPEN */
>  	if (cc_status_active == TYPEC_CC_OPEN) {
> -		fusb302_log(chip, "restart toggling as CC_OPEN detected");
> +		dev_warn(chip->dev, "restart toggling as CC_OPEN detected\n");
>  		ret = fusb302_set_toggling(chip, chip->toggling_mode);
>  		return ret;
>  	}
> @@ -1403,8 +1254,7 @@ static int fusb302_handle_togdone_src(struct fusb302_chip *chip,
>  	/* turn off toggling */
>  	ret = fusb302_set_toggling(chip, TOGGLINE_MODE_OFF);
>  	if (ret < 0) {
> -		fusb302_log(chip,
> -			    "cannot set toggling mode off, ret=%d", ret);
> +		dev_err(chip->dev, "cannot set toggling mode off: %d\n", ret);
>  		return ret;
>  	}
>  	/* set MDAC to Rd threshold, and unmask I_COMP for unplug detection */
> @@ -1415,14 +1265,13 @@ static int fusb302_handle_togdone_src(struct fusb302_chip *chip,
>  	ret = fusb302_i2c_clear_bits(chip, FUSB_REG_MASK,
>  				     FUSB_REG_MASK_COMP_CHNG);
>  	if (ret < 0) {
> -		fusb302_log(chip,
> -			    "cannot unmask bc_lcl interrupt, ret=%d", ret);
> +		dev_err(chip->dev, "cannot unmask bc_lcl interrupt: %d\n", ret);
>  		return ret;
>  	}
>  	chip->intr_comp_chng = true;
> -	fusb302_log(chip, "detected cc1=%s, cc2=%s",
> -		    typec_cc_status_name[cc1],
> -		    typec_cc_status_name[cc2]);
> +	dev_dbg(chip->dev, "detected cc1=%s, cc2=%s\n",
> +		typec_cc_status_name[cc1],
> +		typec_cc_status_name[cc2]);
>  
>  	return ret;
>  }
> @@ -1447,12 +1296,12 @@ static int fusb302_handle_togdone(struct fusb302_chip *chip)
>  		return fusb302_handle_togdone_src(chip, togdone_result);
>  	case FUSB_REG_STATUS1A_TOGSS_AA:
>  		/* doesn't support */
> -		fusb302_log(chip, "AudioAccessory not supported");
> +		dev_info(chip->dev, "AudioAccessory not supported\n");
>  		fusb302_set_toggling(chip, chip->toggling_mode);
>  		break;
>  	default:
> -		fusb302_log(chip, "TOGDONE with an invalid state: %d",
> -			    togdone_result);
> +		dev_warn(chip->dev, "TOGDONE with an invalid state: %d\n",
> +			 togdone_result);
>  		fusb302_set_toggling(chip, chip->toggling_mode);
>  		break;
>  	}
> @@ -1484,7 +1333,7 @@ static int fusb302_pd_read_message(struct fusb302_chip *chip,
>  	len = pd_header_cnt(msg->header) * 4;
>  	/* add 4 to length to include the CRC */
>  	if (len > PD_MAX_PAYLOAD * 4) {
> -		fusb302_log(chip, "PD message too long %d", len);
> +		dev_err(chip->dev, "PD message too long %d\n", len);
>  		return -EINVAL;
>  	}
>  	if (len > 0) {
> @@ -1497,8 +1346,8 @@ static int fusb302_pd_read_message(struct fusb302_chip *chip,
>  	ret = fusb302_i2c_block_read(chip, FUSB_REG_FIFOS, 4, crc);
>  	if (ret < 0)
>  		return ret;
> -	fusb302_log(chip, "PD message header: %x", msg->header);
> -	fusb302_log(chip, "PD message len: %d", len);
> +	dev_dbg(chip->dev, "PD message header: %x\n", msg->header);
> +	dev_dbg(chip->dev, "PD message len: %d\n", len);
>  
>  	return ret;
>  }
> @@ -1536,14 +1385,13 @@ static irqreturn_t fusb302_irq_intn(int irq, void *dev_id)
>  	ret = fusb302_i2c_read(chip, FUSB_REG_STATUS0, &status0);
>  	if (ret < 0)
>  		goto done;
> -	fusb302_log(chip,
> -		    "IRQ: 0x%02x, a: 0x%02x, b: 0x%02x, status0: 0x%02x",
> -		    interrupt, interrupta, interruptb, status0);
> +	dev_dbg(chip->dev, "IRQ: 0x%02x, a: 0x%02x, b: 0x%02x, status0: 0x%02x\n",
> +		interrupt, interrupta, interruptb, status0);
>  
>  	if (interrupt & FUSB_REG_INTERRUPT_VBUSOK) {
>  		vbus_present = !!(status0 & FUSB_REG_STATUS0_VBUSOK);
> -		fusb302_log(chip, "IRQ: VBUS_OK, vbus=%s",
> -			    vbus_present ? "On" : "Off");
> +		dev_dbg(chip->dev, "IRQ: VBUS_OK, vbus=%s\n",
> +			vbus_present ? "On" : "Off");
>  		if (vbus_present != chip->vbus_present) {
>  			chip->vbus_present = vbus_present;
>  			tcpm_vbus_change(chip->tcpm_port);
> @@ -1551,17 +1399,16 @@ static irqreturn_t fusb302_irq_intn(int irq, void *dev_id)
>  	}
>  
>  	if ((interrupta & FUSB_REG_INTERRUPTA_TOGDONE) && intr_togdone) {
> -		fusb302_log(chip, "IRQ: TOGDONE");
> +		dev_dbg(chip->dev, "IRQ: TOGDONE\n");
>  		ret = fusb302_handle_togdone(chip);
>  		if (ret < 0) {
> -			fusb302_log(chip,
> -				    "handle togdone error, ret=%d", ret);
> +			dev_err(chip->dev, "handle togdone error: %d\n", ret);
>  			goto done;
>  		}
>  	}
>  
>  	if ((interrupt & FUSB_REG_INTERRUPT_BC_LVL) && intr_bc_lvl) {
> -		fusb302_log(chip, "IRQ: BC_LVL, handler pending");
> +		dev_dbg(chip->dev, "IRQ: BC_LVL, handler pending\n");
>  		/*
>  		 * as BC_LVL interrupt can be affected by PD activity,
>  		 * apply delay to for the handler to wait for the PD
> @@ -1573,8 +1420,8 @@ static irqreturn_t fusb302_irq_intn(int irq, void *dev_id)
>  
>  	if ((interrupt & FUSB_REG_INTERRUPT_COMP_CHNG) && intr_comp_chng) {
>  		comp_result = !!(status0 & FUSB_REG_STATUS0_COMP);
> -		fusb302_log(chip, "IRQ: COMP_CHNG, comp=%s",
> -			    comp_result ? "true" : "false");
> +		dev_dbg(chip->dev, "IRQ: COMP_CHNG, comp=%s\n",
> +			comp_result ? "true" : "false");
>  		if (comp_result) {
>  			/* cc level > Rd_threashold, detach */
>  			if (chip->cc_polarity == TYPEC_POLARITY_CC1)
> @@ -1586,52 +1433,51 @@ static irqreturn_t fusb302_irq_intn(int irq, void *dev_id)
>  	}
>  
>  	if (interrupt & FUSB_REG_INTERRUPT_COLLISION) {
> -		fusb302_log(chip, "IRQ: PD collision");
> +		dev_dbg(chip->dev, "IRQ: PD collision\n");
>  		tcpm_pd_transmit_complete(chip->tcpm_port, TCPC_TX_FAILED);
>  	}
>  
>  	if (interrupta & FUSB_REG_INTERRUPTA_RETRYFAIL) {
> -		fusb302_log(chip, "IRQ: PD retry failed");
> +		dev_dbg(chip->dev, "IRQ: PD retry failed\n");
>  		tcpm_pd_transmit_complete(chip->tcpm_port, TCPC_TX_FAILED);
>  	}
>  
>  	if (interrupta & FUSB_REG_INTERRUPTA_HARDSENT) {
> -		fusb302_log(chip, "IRQ: PD hardreset sent");
> +		dev_dbg(chip->dev, "IRQ: PD hardreset sent\n");
>  		ret = fusb302_pd_reset(chip);
>  		if (ret < 0) {
> -			fusb302_log(chip, "cannot PD reset, ret=%d", ret);
> +			dev_err(chip->dev, "cannot PD reset: %d\n", ret);
>  			goto done;
>  		}
>  		tcpm_pd_transmit_complete(chip->tcpm_port, TCPC_TX_SUCCESS);
>  	}
>  
>  	if (interrupta & FUSB_REG_INTERRUPTA_TX_SUCCESS) {
> -		fusb302_log(chip, "IRQ: PD tx success");
> +		dev_dbg(chip->dev, "IRQ: PD tx success\n");
>  		/* read out the received good CRC */
>  		ret = fusb302_pd_read_message(chip, &pd_msg);
>  		if (ret < 0) {
> -			fusb302_log(chip, "cannot read in GCRC, ret=%d", ret);
> +			dev_err(chip->dev, "cannot read in GCRC: %d\n", ret);
>  			goto done;
>  		}
>  		tcpm_pd_transmit_complete(chip->tcpm_port, TCPC_TX_SUCCESS);
>  	}
>  
>  	if (interrupta & FUSB_REG_INTERRUPTA_HARDRESET) {
> -		fusb302_log(chip, "IRQ: PD received hardreset");
> +		dev_dbg(chip->dev, "IRQ: PD received hardreset\n");
>  		ret = fusb302_pd_reset(chip);
>  		if (ret < 0) {
> -			fusb302_log(chip, "cannot PD reset, ret=%d", ret);
> +			dev_err(chip->dev, "cannot PD reset: %d\n", ret);
>  			goto done;
>  		}
>  		tcpm_pd_hard_reset(chip->tcpm_port);
>  	}
>  
>  	if (interruptb & FUSB_REG_INTERRUPTB_GCRCSENT) {
> -		fusb302_log(chip, "IRQ: PD sent good CRC");
> +		dev_dbg(chip->dev, "IRQ: PD sent good CRC\n");
>  		ret = fusb302_pd_read_message(chip, &pd_msg);
>  		if (ret < 0) {
> -			fusb302_log(chip,
> -				    "cannot read in PD message, ret=%d", ret);
> +			dev_err(chip->dev, "cannot read PD message: %d\n", ret);
>  			goto done;
>  		}
>  		tcpm_pd_receive(chip->tcpm_port, &pd_msg);
> @@ -1651,24 +1497,23 @@ static int init_gpio(struct fusb302_chip *chip)
>  	chip->gpio_int_n = of_get_named_gpio(node, "fcs,int_n", 0);
>  	if (!gpio_is_valid(chip->gpio_int_n)) {
>  		ret = chip->gpio_int_n;
> -		fusb302_log(chip, "cannot get named GPIO Int_N, ret=%d", ret);
> +		dev_err(chip->dev, "cannot get named GPIO Int_N: %d\n", ret);
>  		return ret;
>  	}
>  	ret = devm_gpio_request(chip->dev, chip->gpio_int_n, "fcs,int_n");
>  	if (ret < 0) {
> -		fusb302_log(chip, "cannot request GPIO Int_N, ret=%d", ret);
> +		dev_err(chip->dev, "cannot request GPIO Int_N: %d\n", ret);
>  		return ret;
>  	}
>  	ret = gpio_direction_input(chip->gpio_int_n);
>  	if (ret < 0) {
> -		fusb302_log(chip,
> -			    "cannot set GPIO Int_N to input, ret=%d", ret);
> +		dev_err(chip->dev, "cannot set GPIO Int_N to input: %d\n", ret);
>  		return ret;
>  	}
>  	ret = gpio_to_irq(chip->gpio_int_n);
>  	if (ret < 0) {
> -		fusb302_log(chip,
> -			    "cannot request IRQ for GPIO Int_N, ret=%d", ret);
> +		dev_err(chip->dev, "cannot request IRQ for GPIO Int_N: %d\n",
> +			ret);
>  		return ret;
>  	}
>  	chip->gpio_int_n_irq = ret;
> @@ -1697,10 +1542,6 @@ static int fusb302_probe(struct i2c_client *client,
>  	chip->dev = &client->dev;
>  	mutex_init(&chip->lock);
>  
> -	ret = fusb302_debugfs_init(chip);
> -	if (ret < 0)
> -		return ret;
> -
>  	chip->wq = create_singlethread_workqueue(dev_name(chip->dev));
>  	if (!chip->wq) {
>  		ret = -ENOMEM;
> @@ -1722,7 +1563,7 @@ static int fusb302_probe(struct i2c_client *client,
>  	chip->tcpm_port = tcpm_register_port(&client->dev, &chip->tcpc_dev);
>  	if (IS_ERR(chip->tcpm_port)) {
>  		ret = PTR_ERR(chip->tcpm_port);
> -		fusb302_log(chip, "cannot register tcpm port, ret=%d", ret);
> +		dev_err(chip->dev, "cannot register tcpm port: %d\n", ret);
>  		goto destroy_workqueue;
>  	}
>  
> @@ -1731,8 +1572,8 @@ static int fusb302_probe(struct i2c_client *client,
>  					IRQF_ONESHOT | IRQF_TRIGGER_LOW,
>  					"fsc_interrupt_int_n", chip);
>  	if (ret < 0) {
> -		fusb302_log(chip,
> -			    "cannot request IRQ for GPIO Int_N, ret=%d", ret);
> +		dev_err(chip->dev, "cannot create thread IRQ for GPIO: %d\n",
> +			ret);
>  		goto tcpm_unregister_port;
>  	}
>  	enable_irq_wake(chip->gpio_int_n_irq);
> @@ -1744,7 +1585,6 @@ static int fusb302_probe(struct i2c_client *client,
>  	destroy_workqueue(chip->wq);
>  clear_client_data:
>  	i2c_set_clientdata(client, NULL);
> -	fusb302_debugfs_exit(chip);
>  
>  	return ret;
>  }
> @@ -1756,7 +1596,6 @@ static int fusb302_remove(struct i2c_client *client)
>  	tcpm_unregister_port(chip->tcpm_port);
>  	destroy_workqueue(chip->wq);
>  	i2c_set_clientdata(client, NULL);
> -	fusb302_debugfs_exit(chip);
>  
>  	return 0;
>  }
> -- 
> 2.12.2
> 
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux