All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Cartwright <joshc@codeaurora.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-arm-msm@vger.kernel.org,
	Gilad Avidov <gavidov@codeaurora.org>,
	linux-kernel@vger.kernel.org,
	Rob Herring <rob.herring@calxeda.com>,
	Michael Bohan <mbohan@codeaurora.org>,
	Grant Likely <grant.likely@linaro.org>,
	Sagar Dharia <sdharia@codeaurora.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH RFC 1/3] spmi: Linux driver framework for SPMI
Date: Fri, 16 Aug 2013 14:47:15 -0500	[thread overview]
Message-ID: <20130816194714.GH4035@joshc.qualcomm.com> (raw)
In-Reply-To: <20130816184614.GA31510@kroah.com>

Hey Greg-

Thanks for the comments.

On Fri, Aug 16, 2013 at 11:46:14AM -0700, Greg Kroah-Hartman wrote:
> On Fri, Aug 09, 2013 at 01:37:09PM -0700, Josh Cartwright wrote:
> > --- /dev/null
> > +++ b/drivers/of/of_spmi.c
> > @@ -0,0 +1,74 @@
> > +/* Copyright (c) 2012,2013 The Linux Foundation. All rights reserved.
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + */
> > +#define pr_fmt(fmt) "%s: " fmt, __func__
> 
> As you never make a pr_* call in this file, this line isn't needed.

I'll clean these up for v2.

> > +static int
> > +spmi_read_data(struct spmi_device *sdev, uint8_t *buf, int offset, int cnt)
> > +{
> > +	int ret = 0;
> > +	int len;
> > +	uint16_t addr;
> > +
> > +	while (cnt > 0) {
> > +		addr = offset & 0xFFFF;
> > +		len = min(cnt, MAX_REG_PER_TRANSACTION);
> > +
> > +		ret = spmi_ext_register_readl(sdev, addr, buf, len);
> > +		if (ret < 0) {
> > +			pr_err("SPMI read failed, err = %d\n", ret);
> 
> Should be using dev_err() instead.

These too.

[..]
> > +
> > +	/* Make a copy of the user data */
> > +	char *kbuf = kmalloc(count + 1, GFP_KERNEL);
> > +	if (!kbuf)
> > +		return -ENOMEM;
> > +
> > +	ret = copy_from_user(kbuf, buf, count);
> > +	if (ret == count) {
> > +		pr_err("failed to copy data from user\n");
> 
> No need for a message here at all, you will get a message in the
> function if something happened wrong.
> 
> Also, shouldn't it just be a simple:
> 	if (copy_from_user()) {
> test?

Indeed, thanks.

[..]
> > +void __exit spmi_dfs_exit(void)
> > +{
> > +	pr_debug("de-initializing spmi debugfs ...");
> 
> Not needed, use the in-kernel trace functionality if you really want to
> know this.

Will kill these.

> > --- /dev/null
> > +++ b/drivers/spmi/spmi-dbgfs.h
> > @@ -0,0 +1,37 @@
> > +/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + */
> > +#ifndef _SPMI_DBGFS_H
> > +#define _SPMI_DBGFS_H
> > +
> > +#include <linux/spmi.h>
> > +#include <linux/debugfs.h>
> > +
> > +#ifdef CONFIG_DEBUG_FS
> 
> Why?  If debugfs isn't enabled, the functions should just compile away
> with the debugfs_() calls, so no need to do this type of thing here,
> right?

Not sure I follow you, but it may be because this is a bit misleading.

Currently CONFIG_DEBUG_FS is being extended to also mean "do you want
the SPMI core to create device entries?".  It would probably make more
sense to have a CONFIG_SPMI_DEBUG option which is def_bool DEBUG_FS, as
other busses have.

The #ifdef here would then be #ifdef CONFIG_SPMI_DEBUG, as well as in
the Makefile:

  spmi-core-$(CONFIG_SPMI_DEBUG) += spmi-dbgfs.o

> > +
> > +extern void __init spmi_dfs_init(void);
> > +extern void __exit spmi_dfs_exit(void);
> > +extern void spmi_dfs_add_controller(struct spmi_controller *ctrl);
> > +extern void spmi_dfs_del_controller(struct spmi_controller *ctrl);
> > +extern void spmi_dfs_add_device(struct spmi_device *sdev);
> > +extern void spmi_dfs_del_device(struct spmi_device *sdev);
> > +
> > +#else
> > +
> > +static inline void __init spmi_dfs_init(void) { }
> > +static inline void __exit spmi_dfs_exit(void) { }
> > +static inline void spmi_dfs_add_controller(struct spmi_controller *ctrl) { }
> > +static inline void spmi_dfs_del_controller(struct spmi_controller *ctrl) { }
> > +static inline void spmi_dfs_add_device(struct spmi_device *sdev) { }
> > +static inline void spmi_dfs_del_device(struct spmi_device *sdev) { }
> > +#endif
> > +
> > +#endif /* _SPMI_DBGFS_H */

Thanks,
  Josh

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation

WARNING: multiple messages have this Message-ID (diff)
From: Josh Cartwright <joshc@codeaurora.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Grant Likely <grant.likely@linaro.org>,
	Rob Herring <rob.herring@calxeda.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-arm-msm@vger.kernel.org,
	Sagar Dharia <sdharia@codeaurora.org>,
	Gilad Avidov <gavidov@codeaurora.org>,
	Michael Bohan <mbohan@codeaurora.org>
Subject: Re: [PATCH RFC 1/3] spmi: Linux driver framework for SPMI
Date: Fri, 16 Aug 2013 14:47:15 -0500	[thread overview]
Message-ID: <20130816194714.GH4035@joshc.qualcomm.com> (raw)
In-Reply-To: <20130816184614.GA31510@kroah.com>

Hey Greg-

Thanks for the comments.

On Fri, Aug 16, 2013 at 11:46:14AM -0700, Greg Kroah-Hartman wrote:
> On Fri, Aug 09, 2013 at 01:37:09PM -0700, Josh Cartwright wrote:
> > --- /dev/null
> > +++ b/drivers/of/of_spmi.c
> > @@ -0,0 +1,74 @@
> > +/* Copyright (c) 2012,2013 The Linux Foundation. All rights reserved.
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + */
> > +#define pr_fmt(fmt) "%s: " fmt, __func__
> 
> As you never make a pr_* call in this file, this line isn't needed.

I'll clean these up for v2.

> > +static int
> > +spmi_read_data(struct spmi_device *sdev, uint8_t *buf, int offset, int cnt)
> > +{
> > +	int ret = 0;
> > +	int len;
> > +	uint16_t addr;
> > +
> > +	while (cnt > 0) {
> > +		addr = offset & 0xFFFF;
> > +		len = min(cnt, MAX_REG_PER_TRANSACTION);
> > +
> > +		ret = spmi_ext_register_readl(sdev, addr, buf, len);
> > +		if (ret < 0) {
> > +			pr_err("SPMI read failed, err = %d\n", ret);
> 
> Should be using dev_err() instead.

These too.

[..]
> > +
> > +	/* Make a copy of the user data */
> > +	char *kbuf = kmalloc(count + 1, GFP_KERNEL);
> > +	if (!kbuf)
> > +		return -ENOMEM;
> > +
> > +	ret = copy_from_user(kbuf, buf, count);
> > +	if (ret == count) {
> > +		pr_err("failed to copy data from user\n");
> 
> No need for a message here at all, you will get a message in the
> function if something happened wrong.
> 
> Also, shouldn't it just be a simple:
> 	if (copy_from_user()) {
> test?

Indeed, thanks.

[..]
> > +void __exit spmi_dfs_exit(void)
> > +{
> > +	pr_debug("de-initializing spmi debugfs ...");
> 
> Not needed, use the in-kernel trace functionality if you really want to
> know this.

Will kill these.

> > --- /dev/null
> > +++ b/drivers/spmi/spmi-dbgfs.h
> > @@ -0,0 +1,37 @@
> > +/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + */
> > +#ifndef _SPMI_DBGFS_H
> > +#define _SPMI_DBGFS_H
> > +
> > +#include <linux/spmi.h>
> > +#include <linux/debugfs.h>
> > +
> > +#ifdef CONFIG_DEBUG_FS
> 
> Why?  If debugfs isn't enabled, the functions should just compile away
> with the debugfs_() calls, so no need to do this type of thing here,
> right?

Not sure I follow you, but it may be because this is a bit misleading.

Currently CONFIG_DEBUG_FS is being extended to also mean "do you want
the SPMI core to create device entries?".  It would probably make more
sense to have a CONFIG_SPMI_DEBUG option which is def_bool DEBUG_FS, as
other busses have.

The #ifdef here would then be #ifdef CONFIG_SPMI_DEBUG, as well as in
the Makefile:

  spmi-core-$(CONFIG_SPMI_DEBUG) += spmi-dbgfs.o

> > +
> > +extern void __init spmi_dfs_init(void);
> > +extern void __exit spmi_dfs_exit(void);
> > +extern void spmi_dfs_add_controller(struct spmi_controller *ctrl);
> > +extern void spmi_dfs_del_controller(struct spmi_controller *ctrl);
> > +extern void spmi_dfs_add_device(struct spmi_device *sdev);
> > +extern void spmi_dfs_del_device(struct spmi_device *sdev);
> > +
> > +#else
> > +
> > +static inline void __init spmi_dfs_init(void) { }
> > +static inline void __exit spmi_dfs_exit(void) { }
> > +static inline void spmi_dfs_add_controller(struct spmi_controller *ctrl) { }
> > +static inline void spmi_dfs_del_controller(struct spmi_controller *ctrl) { }
> > +static inline void spmi_dfs_add_device(struct spmi_device *sdev) { }
> > +static inline void spmi_dfs_del_device(struct spmi_device *sdev) { }
> > +#endif
> > +
> > +#endif /* _SPMI_DBGFS_H */

Thanks,
  Josh

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation

WARNING: multiple messages have this Message-ID (diff)
From: joshc@codeaurora.org (Josh Cartwright)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RFC 1/3] spmi: Linux driver framework for SPMI
Date: Fri, 16 Aug 2013 14:47:15 -0500	[thread overview]
Message-ID: <20130816194714.GH4035@joshc.qualcomm.com> (raw)
In-Reply-To: <20130816184614.GA31510@kroah.com>

Hey Greg-

Thanks for the comments.

On Fri, Aug 16, 2013 at 11:46:14AM -0700, Greg Kroah-Hartman wrote:
> On Fri, Aug 09, 2013 at 01:37:09PM -0700, Josh Cartwright wrote:
> > --- /dev/null
> > +++ b/drivers/of/of_spmi.c
> > @@ -0,0 +1,74 @@
> > +/* Copyright (c) 2012,2013 The Linux Foundation. All rights reserved.
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + */
> > +#define pr_fmt(fmt) "%s: " fmt, __func__
> 
> As you never make a pr_* call in this file, this line isn't needed.

I'll clean these up for v2.

> > +static int
> > +spmi_read_data(struct spmi_device *sdev, uint8_t *buf, int offset, int cnt)
> > +{
> > +	int ret = 0;
> > +	int len;
> > +	uint16_t addr;
> > +
> > +	while (cnt > 0) {
> > +		addr = offset & 0xFFFF;
> > +		len = min(cnt, MAX_REG_PER_TRANSACTION);
> > +
> > +		ret = spmi_ext_register_readl(sdev, addr, buf, len);
> > +		if (ret < 0) {
> > +			pr_err("SPMI read failed, err = %d\n", ret);
> 
> Should be using dev_err() instead.

These too.

[..]
> > +
> > +	/* Make a copy of the user data */
> > +	char *kbuf = kmalloc(count + 1, GFP_KERNEL);
> > +	if (!kbuf)
> > +		return -ENOMEM;
> > +
> > +	ret = copy_from_user(kbuf, buf, count);
> > +	if (ret == count) {
> > +		pr_err("failed to copy data from user\n");
> 
> No need for a message here at all, you will get a message in the
> function if something happened wrong.
> 
> Also, shouldn't it just be a simple:
> 	if (copy_from_user()) {
> test?

Indeed, thanks.

[..]
> > +void __exit spmi_dfs_exit(void)
> > +{
> > +	pr_debug("de-initializing spmi debugfs ...");
> 
> Not needed, use the in-kernel trace functionality if you really want to
> know this.

Will kill these.

> > --- /dev/null
> > +++ b/drivers/spmi/spmi-dbgfs.h
> > @@ -0,0 +1,37 @@
> > +/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + */
> > +#ifndef _SPMI_DBGFS_H
> > +#define _SPMI_DBGFS_H
> > +
> > +#include <linux/spmi.h>
> > +#include <linux/debugfs.h>
> > +
> > +#ifdef CONFIG_DEBUG_FS
> 
> Why?  If debugfs isn't enabled, the functions should just compile away
> with the debugfs_() calls, so no need to do this type of thing here,
> right?

Not sure I follow you, but it may be because this is a bit misleading.

Currently CONFIG_DEBUG_FS is being extended to also mean "do you want
the SPMI core to create device entries?".  It would probably make more
sense to have a CONFIG_SPMI_DEBUG option which is def_bool DEBUG_FS, as
other busses have.

The #ifdef here would then be #ifdef CONFIG_SPMI_DEBUG, as well as in
the Makefile:

  spmi-core-$(CONFIG_SPMI_DEBUG) += spmi-dbgfs.o

> > +
> > +extern void __init spmi_dfs_init(void);
> > +extern void __exit spmi_dfs_exit(void);
> > +extern void spmi_dfs_add_controller(struct spmi_controller *ctrl);
> > +extern void spmi_dfs_del_controller(struct spmi_controller *ctrl);
> > +extern void spmi_dfs_add_device(struct spmi_device *sdev);
> > +extern void spmi_dfs_del_device(struct spmi_device *sdev);
> > +
> > +#else
> > +
> > +static inline void __init spmi_dfs_init(void) { }
> > +static inline void __exit spmi_dfs_exit(void) { }
> > +static inline void spmi_dfs_add_controller(struct spmi_controller *ctrl) { }
> > +static inline void spmi_dfs_del_controller(struct spmi_controller *ctrl) { }
> > +static inline void spmi_dfs_add_device(struct spmi_device *sdev) { }
> > +static inline void spmi_dfs_del_device(struct spmi_device *sdev) { }
> > +#endif
> > +
> > +#endif /* _SPMI_DBGFS_H */

Thanks,
  Josh

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation

  reply	other threads:[~2013-08-16 19:47 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-15 19:50 [PATCH RFC 0/3] Add support for the System Power Management Interface (SPMI) Josh Cartwright
2013-08-15 19:50 ` Josh Cartwright
2013-08-09 20:37 ` [PATCH RFC 2/3] spmi: Add MSM PMIC Arbiter SPMI controller Josh Cartwright
2013-08-09 20:37   ` Josh Cartwright
2013-08-16 18:52   ` Greg Kroah-Hartman
2013-08-16 18:52     ` Greg Kroah-Hartman
2013-08-09 20:37 ` [PATCH RFC 1/3] spmi: Linux driver framework for SPMI Josh Cartwright
2013-08-09 20:37   ` Josh Cartwright
2013-08-16 18:46   ` Greg Kroah-Hartman
2013-08-16 18:46     ` Greg Kroah-Hartman
2013-08-16 19:47     ` Josh Cartwright [this message]
2013-08-16 19:47       ` Josh Cartwright
2013-08-16 19:47       ` Josh Cartwright
2013-08-16 19:50       ` Josh Cartwright
2013-08-16 19:50         ` Josh Cartwright
2013-08-16 19:50         ` Josh Cartwright
2013-08-16 19:58       ` Greg Kroah-Hartman
2013-08-16 19:58         ` Greg Kroah-Hartman
2013-08-16 19:58         ` Greg Kroah-Hartman
2013-08-16 20:40         ` Josh Cartwright
2013-08-16 20:40           ` Josh Cartwright
2013-08-16 20:40           ` Josh Cartwright
2013-08-16 20:50           ` Greg Kroah-Hartman
2013-08-16 20:50             ` Greg Kroah-Hartman
2013-08-16 20:50             ` Greg Kroah-Hartman
2013-08-16 18:49   ` Greg Kroah-Hartman
2013-08-16 18:49     ` Greg Kroah-Hartman
2013-08-16 20:21     ` Josh Cartwright
2013-08-16 20:21       ` Josh Cartwright
2013-08-16 20:21       ` Josh Cartwright
2013-08-16 20:28       ` Greg Kroah-Hartman
2013-08-16 20:28         ` Greg Kroah-Hartman
2013-08-16 20:28         ` Greg Kroah-Hartman
2013-08-16 19:04   ` Kumar Gala
2013-08-16 19:04     ` Kumar Gala
2013-08-16 19:04     ` Kumar Gala
     [not found] ` <b639088d50df93caaef8fe7e09c12953b1153ce8.1376596224.git.joshc@codeaurora.org>
     [not found]   ` <D1534646-7CB5-4EE7-8C1E-1C607BE22396@codeaurora.org>
2013-08-16 19:25     ` [PATCH RFC 3/3] spmi: document the PMIC arbiter SPMI bindings Josh Cartwright
2013-08-16 19:25       ` Josh Cartwright
2013-08-16 19:25       ` Josh Cartwright
2013-08-16 19:48       ` Kumar Gala
2013-08-16 19:48         ` Kumar Gala
2013-08-16 19:48         ` Kumar Gala
2013-08-16 23:17         ` Stephen Warren
2013-08-16 23:17           ` Stephen Warren
2013-08-16 23:17           ` Stephen Warren

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=20130816194714.GH4035@joshc.qualcomm.com \
    --to=joshc@codeaurora.org \
    --cc=gavidov@codeaurora.org \
    --cc=grant.likely@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbohan@codeaurora.org \
    --cc=rob.herring@calxeda.com \
    --cc=sdharia@codeaurora.org \
    /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.