diff mbox series

[v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

Message ID 20200529124607.GA3469@cnn
State Not Applicable, archived
Headers show
Series [v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN | expand

Commit Message

Manikandan May 29, 2020, 12:46 p.m. UTC
The adm1278 temperature sysfs attribute need it for one of the openbmc platform . 
This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it.

Signed-off-by   : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>

v2:
   - Add Signed-off-by.
   - Removed ADM1278_TEMP1_EN check.
---
 drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

Comments

Guenter Roeck May 29, 2020, 5:30 p.m. UTC | #1
On 5/29/20 5:46 AM, Manikandan Elumalai wrote:
> The adm1278 temperature sysfs attribute need it for one of the openbmc platform . 
> This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it.
> 
> Signed-off-by   : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>

This is not valid.

> 
> v2:
>    - Add Signed-off-by.
>    - Removed ADM1278_TEMP1_EN check.

checkpatch reports:

> ---WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#14:
The adm1278 temperature sysfs attribute need it for one of the openbmc platform .

CHECK: Alignment should match open parenthesis
#45: FILE: drivers/hwmon/pmbus/adm1275.c:679:
+		ret = i2c_smbus_write_byte_data(client,
+					ADM1275_PMON_CONFIG,

WARNING: suspect code indent for conditional statements (16, 16)
#47: FILE: drivers/hwmon/pmbus/adm1275.c:681:
+		if (ret < 0) {
+		dev_err(&client->dev,

ERROR: Missing Signed-off-by: line(s)

total: 1 errors, 2 warnings, 1 checks, 33 lines checked

Please follow published guidelines when submitting patches.

>  drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++----
>  1 file changed, 17 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
> index 5caa37fb..ab5fceb 100644
> --- a/drivers/hwmon/pmbus/adm1275.c
> +++ b/drivers/hwmon/pmbus/adm1275.c
> @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client,
>  		tindex = 3;
>  
>  		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
> -			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
> +			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
> +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> +
> +		config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
> +		if (config < 0)
> +			return config;
> +
> +		/* Enable TEMP1 by default */
> +		config |= ADM1278_TEMP1_EN;
> +		ret = i2c_smbus_write_byte_data(client,
> +					ADM1275_PMON_CONFIG,
> +					config);
> +		if (ret < 0) {
> +		dev_err(&client->dev,
> +			"Failed to enable temperature config\n");
> +		return -ENODEV;
> +		}

This can be handled in a single operation, together with ADM1278_VOUT_EN
below. There is no need for two separate write operations.

Guenter

> 
>  		/* Enable VOUT if not enabled (it is disabled by default) */
>  		if (!(config & ADM1278_VOUT_EN)) {
> @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client,
>  			}
>  		}
>  
> -		if (config & ADM1278_TEMP1_EN)
> -			info->func[0] |=
> -				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
>  		if (config & ADM1278_VIN_EN)
>  			info->func[0] |= PMBUS_HAVE_VIN;
>  		break;
>
Patrick Williams May 29, 2020, 5:42 p.m. UTC | #2
Hi Guenter,

Thanks for the initial look at this.

One question for you below...

On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote:
> On 5/29/20 5:46 AM, Manikandan Elumalai wrote:
> > +		/* Enable TEMP1 by default */
> > +		config |= ADM1278_TEMP1_EN;
> > +		ret = i2c_smbus_write_byte_data(client,
> > +					ADM1275_PMON_CONFIG,
> > +					config);
> > +		if (ret < 0) {
> > +		dev_err(&client->dev,
> > +			"Failed to enable temperature config\n");
> > +		return -ENODEV;
> > +		}
> 
> This can be handled in a single operation, together with ADM1278_VOUT_EN
> below. There is no need for two separate write operations.

I don't know if you noticed here but the change ends up enabling
TEMP1_EN in all cases.  Is this acceptable?  If not, do you have any
preference on how it is selected for enablement?

> >  		/* Enable VOUT if not enabled (it is disabled by default) */
> >  		if (!(config & ADM1278_VOUT_EN)) {
> > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client,
> >  			}
> >  		}
> >  
> > -		if (config & ADM1278_TEMP1_EN)
> > -			info->func[0] |=
> > -				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> >  		if (config & ADM1278_VIN_EN)
> >  			info->func[0] |= PMBUS_HAVE_VIN;
> >  		break;
> > 
>
Vijay Khemka May 29, 2020, 5:57 p.m. UTC | #3
On 5/29/20, 5:47 AM, "Manikandan Elumalai" <manikandan.hcl.ers.epl@gmail.com> wrote:

    The adm1278 temperature sysfs attribute need it for one of the openbmc platform . 
    This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it.
    
    Signed-off-by   : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
    
    v2:
       - Add Signed-off-by.
       - Removed ADM1278_TEMP1_EN check.
    ---
     drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++----
     1 file changed, 17 insertions(+), 4 deletions(-)
    
    diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
    index 5caa37fb..ab5fceb 100644
    --- a/drivers/hwmon/pmbus/adm1275.c
    +++ b/drivers/hwmon/pmbus/adm1275.c
    @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client,
     		tindex = 3;
     
     		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
    -			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
    +			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
    +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
    +
    +		config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
    +		if (config < 0)
    +			return config;
    +
    +		/* Enable TEMP1 by default */
    +		config |= ADM1278_TEMP1_EN;
    +		ret = i2c_smbus_write_byte_data(client,
    +					ADM1275_PMON_CONFIG,
    +					config);
    +		if (ret < 0) {
    +		dev_err(&client->dev,
    +			"Failed to enable temperature config\n");
    +		return -ENODEV;
    +		}
You don't need this above code removing check as below should be enough  to
populate sysfs entry you need.

     		/* Enable VOUT if not enabled (it is disabled by default) */
     		if (!(config & ADM1278_VOUT_EN)) {
    @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client,
     			}
     		}
     
    -		if (config & ADM1278_TEMP1_EN)
    -			info->func[0] |=
    -				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
     		if (config & ADM1278_VIN_EN)
     			info->func[0] |= PMBUS_HAVE_VIN;
     		break;
    -- 
    2.7.4
Guenter Roeck May 29, 2020, 6:52 p.m. UTC | #4
On 5/29/20 10:42 AM, Patrick Williams wrote:
> Hi Guenter,
> 
> Thanks for the initial look at this.
> 
> One question for you below...
> 
> On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote:
>> On 5/29/20 5:46 AM, Manikandan Elumalai wrote:
>>> +		/* Enable TEMP1 by default */
>>> +		config |= ADM1278_TEMP1_EN;
>>> +		ret = i2c_smbus_write_byte_data(client,
>>> +					ADM1275_PMON_CONFIG,
>>> +					config);
>>> +		if (ret < 0) {
>>> +		dev_err(&client->dev,
>>> +			"Failed to enable temperature config\n");
>>> +		return -ENODEV;
>>> +		}
>>
>> This can be handled in a single operation, together with ADM1278_VOUT_EN
>> below. There is no need for two separate write operations.
> 
> I don't know if you noticed here but the change ends up enabling
> TEMP1_EN in all cases.  Is this acceptable?  If not, do you have any
> preference on how it is selected for enablement?
> 

I did. We are doing the same for output voltage already, so I am not that
much concerned about it. If it is, we might consider adding _enable
attribute support (see Documentation/hwmon/sysfs-interface.rst) to the
PMBus core (presumably as virtual PMBus commands) and let the user
enable/disable individual attributes as needed.

What _should_ really be done, of course, is that the BIOS/ROMMON
configures the chip as desired. Obviously that is not happening here.

Guenter

>>>  		/* Enable VOUT if not enabled (it is disabled by default) */
>>>  		if (!(config & ADM1278_VOUT_EN)) {
>>> @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client,
>>>  			}
>>>  		}
>>>  
>>> -		if (config & ADM1278_TEMP1_EN)
>>> -			info->func[0] |=
>>> -				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
>>>  		if (config & ADM1278_VIN_EN)
>>>  			info->func[0] |= PMBUS_HAVE_VIN;
>>>  		break;
>>>
>>
>
Guenter Roeck May 29, 2020, 6:55 p.m. UTC | #5
On 5/29/20 10:57 AM, Vijay Khemka wrote:
> 
> 
> On 5/29/20, 5:47 AM, "Manikandan Elumalai" <manikandan.hcl.ers.epl@gmail.com> wrote:
> 
>     The adm1278 temperature sysfs attribute need it for one of the openbmc platform . 
>     This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it.
>     
>     Signed-off-by   : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
>     
>     v2:
>        - Add Signed-off-by.
>        - Removed ADM1278_TEMP1_EN check.
>     ---
>      drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++----
>      1 file changed, 17 insertions(+), 4 deletions(-)
>     
>     diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
>     index 5caa37fb..ab5fceb 100644
>     --- a/drivers/hwmon/pmbus/adm1275.c
>     +++ b/drivers/hwmon/pmbus/adm1275.c
>     @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client,
>      		tindex = 3;
>      
>      		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
>     -			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
>     +			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
>     +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
>     +
>     +		config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
>     +		if (config < 0)
>     +			return config;
>     +
>     +		/* Enable TEMP1 by default */
>     +		config |= ADM1278_TEMP1_EN;
>     +		ret = i2c_smbus_write_byte_data(client,
>     +					ADM1275_PMON_CONFIG,
>     +					config);
>     +		if (ret < 0) {
>     +		dev_err(&client->dev,
>     +			"Failed to enable temperature config\n");
>     +		return -ENODEV;
>     +		}
> You don't need this above code removing check as below should be enough  to
> populate sysfs entry you need.
> 

You mean you are only interested in having the attribute, even if it doesn't
report anything useful because monitoring is disabled in the chip ?
Sorry, I don't understand. Can you elaborate ?

Thanks,
Guenter

>      		/* Enable VOUT if not enabled (it is disabled by default) */
>      		if (!(config & ADM1278_VOUT_EN)) {
>     @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client,
>      			}
>      		}
>      
>     -		if (config & ADM1278_TEMP1_EN)
>     -			info->func[0] |=
>     -				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
>      		if (config & ADM1278_VIN_EN)
>      			info->func[0] |= PMBUS_HAVE_VIN;
>      		break;
>     -- 
>     2.7.4
>     
>     
>
Vijay Khemka May 29, 2020, 11:47 p.m. UTC | #6
On 5/29/20, 11:56 AM, "Guenter Roeck" <groeck7@gmail.com on behalf of linux@roeck-us.net> wrote:

    On 5/29/20 10:57 AM, Vijay Khemka wrote:
    > 
    > 
    > On 5/29/20, 5:47 AM, "Manikandan Elumalai" <manikandan.hcl.ers.epl@gmail.com> wrote:
    > 
    >     The adm1278 temperature sysfs attribute need it for one of the openbmc platform . 
    >     This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it.
    >     
    >     Signed-off-by   : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
    >     
    >     v2:
    >        - Add Signed-off-by.
    >        - Removed ADM1278_TEMP1_EN check.
    >     ---
    >      drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++----
    >      1 file changed, 17 insertions(+), 4 deletions(-)
    >     
    >     diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
    >     index 5caa37fb..ab5fceb 100644
    >     --- a/drivers/hwmon/pmbus/adm1275.c
    >     +++ b/drivers/hwmon/pmbus/adm1275.c
    >     @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client,
    >      		tindex = 3;
    >      
    >      		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
    >     -			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
    >     +			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
    >     +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
    >     +
    >     +		config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
    >     +		if (config < 0)
    >     +			return config;
    >     +
    >     +		/* Enable TEMP1 by default */
    >     +		config |= ADM1278_TEMP1_EN;
    >     +		ret = i2c_smbus_write_byte_data(client,
    >     +					ADM1275_PMON_CONFIG,
    >     +					config);
    >     +		if (ret < 0) {
    >     +		dev_err(&client->dev,
    >     +			"Failed to enable temperature config\n");
    >     +		return -ENODEV;
    >     +		}
    > You don't need this above code removing check as below should be enough  to
    > populate sysfs entry you need.
    > 

    You mean you are only interested in having the attribute, even if it doesn't
    report anything useful because monitoring is disabled in the chip ?
    Sorry, I don't understand. Can you elaborate ?
Sorry for misinterpretation, No I don't mean that. This should be fine.

    Thanks,
    Guenter

    >      		/* Enable VOUT if not enabled (it is disabled by default) */
    >      		if (!(config & ADM1278_VOUT_EN)) {
    >     @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client,
    >      			}
    >      		}
    >      
    >     -		if (config & ADM1278_TEMP1_EN)
    >     -			info->func[0] |=
    >     -				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
    >      		if (config & ADM1278_VIN_EN)
    >      			info->func[0] |= PMBUS_HAVE_VIN;
    >      		break;
    >     -- 
    >     2.7.4
    >     
    >     
    >
Manikandan June 5, 2020, 4:48 p.m. UTC | #7
On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote:
> On 5/29/20 5:46 AM, Manikandan Elumalai wrote:
> > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . 
> > This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it.
> > 
> > Signed-off-by   : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
> 
> This is not valid.
> 
> > 
> > v2:
> >    - Add Signed-off-by.
> >    - Removed ADM1278_TEMP1_EN check.
> 
> checkpatch reports:
> 
> > ---WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
> #14:
> The adm1278 temperature sysfs attribute need it for one of the openbmc platform .
> 
> CHECK: Alignment should match open parenthesis
> #45: FILE: drivers/hwmon/pmbus/adm1275.c:679:
> +		ret = i2c_smbus_write_byte_data(client,
> +					ADM1275_PMON_CONFIG,
> 
> WARNING: suspect code indent for conditional statements (16, 16)
> #47: FILE: drivers/hwmon/pmbus/adm1275.c:681:
> +		if (ret < 0) {
> +		dev_err(&client->dev,
> 
> ERROR: Missing Signed-off-by: line(s)
> 
> total: 1 errors, 2 warnings, 1 checks, 33 lines checked
> 
> Please follow published guidelines when submitting patches.
> 
> >  drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++----
> >  1 file changed, 17 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
> > index 5caa37fb..ab5fceb 100644
> > --- a/drivers/hwmon/pmbus/adm1275.c
> > +++ b/drivers/hwmon/pmbus/adm1275.c
> > @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client,
> >  		tindex = 3;
> >  
> >  		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
> > -			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
> > +			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
> > +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> > +
> > +		config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
> > +		if (config < 0)
> > +			return config;
> > +
> > +		/* Enable TEMP1 by default */
> > +		config |= ADM1278_TEMP1_EN;
> > +		ret = i2c_smbus_write_byte_data(client,
> > +					ADM1275_PMON_CONFIG,
> > +					config);
> > +		if (ret < 0) {
> > +		dev_err(&client->dev,
> > +			"Failed to enable temperature config\n");
> > +		return -ENODEV;
> > +		}
> 
> This can be handled in a single operation, together with ADM1278_VOUT_EN
> below. There is no need for two separate write operations.
>
        Thanks for review Guenter, Patrick and Vijay.
        Sorry for delay response. 
        I have made changes to write ADM1278_VOUT_EN and ADM1278_TEMP1_EN in single
        operation and tested in platfrom .
        The changes given for quick look and will help if any misunderstand.

	--- a/drivers/hwmon/pmbus/adm1275.c
	+++ b/drivers/hwmon/pmbus/adm1275.c
	@@ -666,11 +666,11 @@ static int adm1275_probe(struct i2c_client *client,
 		tindex = 3;
 
 		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
	-			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
	+			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | 
        +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
 
 		/* Enable VOUT if not enabled (it is disabled by default) */
 		if (!(config & ADM1278_VOUT_EN)) {
	-			config |= ADM1278_VOUT_EN;
	+			config |= (ADM1278_VOUT_EN | ADM1278_TEMP1_EN);
 			ret = i2c_smbus_write_byte_data(client,
 							ADM1275_PMON_CONFIG,
 							config);
	@@ -680,10 +680,6 @@ static int adm1275_probe(struct i2c_client *client,
 				return -ENODEV;
 			}
 		}
	-
	-		if (config & ADM1278_TEMP1_EN)
	-			info->func[0] |=
	-				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
 		if (config & ADM1278_VIN_EN)
 			info->func[0] |= PMBUS_HAVE_VIN;
 		break; 
> Guenter
> 
> > 
> >  		/* Enable VOUT if not enabled (it is disabled by default) */
> >  		if (!(config & ADM1278_VOUT_EN)) {
> > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client,
> >  			}
> >  		}
> >  
> > -		if (config & ADM1278_TEMP1_EN)
> > -			info->func[0] |=
> > -				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> >  		if (config & ADM1278_VIN_EN)
> >  			info->func[0] |= PMBUS_HAVE_VIN;
> >  		break;
> > 
>
Guenter Roeck June 5, 2020, 6:04 p.m. UTC | #8
On Fri, Jun 05, 2020 at 10:18:21PM +0530, Manikandan wrote:
> On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote:
> > On 5/29/20 5:46 AM, Manikandan Elumalai wrote:
> > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . 
> > > This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it.
> > > 
> > > Signed-off-by   : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
> > 
> > This is not valid.
> > 
> > > 
> > > v2:
> > >    - Add Signed-off-by.
> > >    - Removed ADM1278_TEMP1_EN check.
> > 
> > checkpatch reports:
> > 
> > > ---WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
> > #14:
> > The adm1278 temperature sysfs attribute need it for one of the openbmc platform .
> > 
> > CHECK: Alignment should match open parenthesis
> > #45: FILE: drivers/hwmon/pmbus/adm1275.c:679:
> > +		ret = i2c_smbus_write_byte_data(client,
> > +					ADM1275_PMON_CONFIG,
> > 
> > WARNING: suspect code indent for conditional statements (16, 16)
> > #47: FILE: drivers/hwmon/pmbus/adm1275.c:681:
> > +		if (ret < 0) {
> > +		dev_err(&client->dev,
> > 
> > ERROR: Missing Signed-off-by: line(s)
> > 
> > total: 1 errors, 2 warnings, 1 checks, 33 lines checked
> > 
> > Please follow published guidelines when submitting patches.
> > 
> > >  drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++----
> > >  1 file changed, 17 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
> > > index 5caa37fb..ab5fceb 100644
> > > --- a/drivers/hwmon/pmbus/adm1275.c
> > > +++ b/drivers/hwmon/pmbus/adm1275.c
> > > @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client,
> > >  		tindex = 3;
> > >  
> > >  		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
> > > -			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
> > > +			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
> > > +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> > > +
> > > +		config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
> > > +		if (config < 0)
> > > +			return config;
> > > +
> > > +		/* Enable TEMP1 by default */
> > > +		config |= ADM1278_TEMP1_EN;
> > > +		ret = i2c_smbus_write_byte_data(client,
> > > +					ADM1275_PMON_CONFIG,
> > > +					config);
> > > +		if (ret < 0) {
> > > +		dev_err(&client->dev,
> > > +			"Failed to enable temperature config\n");
> > > +		return -ENODEV;
> > > +		}
> > 
> > This can be handled in a single operation, together with ADM1278_VOUT_EN
> > below. There is no need for two separate write operations.
> >
>         Thanks for review Guenter, Patrick and Vijay.
>         Sorry for delay response. 
>         I have made changes to write ADM1278_VOUT_EN and ADM1278_TEMP1_EN in single
>         operation and tested in platfrom .
>         The changes given for quick look and will help if any misunderstand.
> 
> 	--- a/drivers/hwmon/pmbus/adm1275.c
> 	+++ b/drivers/hwmon/pmbus/adm1275.c
> 	@@ -666,11 +666,11 @@ static int adm1275_probe(struct i2c_client *client,
>  		tindex = 3;
>  
>  		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
> 	-			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
> 	+			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | 
>         +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
>  
>  		/* Enable VOUT if not enabled (it is disabled by default) */
>  		if (!(config & ADM1278_VOUT_EN)) {

		if (config & (ADM1278_VOUT_EN | ADM1278_TEMP1_EN) !=
						ADM1278_VOUT_EN | ADM1278_TEMP1_EN)

> 	-			config |= ADM1278_VOUT_EN;
> 	+			config |= (ADM1278_VOUT_EN | ADM1278_TEMP1_EN);

( ) is unnecessary here.

>  			ret = i2c_smbus_write_byte_data(client,
>  							ADM1275_PMON_CONFIG,
>  							config);
> 	@@ -680,10 +680,6 @@ static int adm1275_probe(struct i2c_client *client,
>  				return -ENODEV;
>  			}
>  		}
> 	-
> 	-		if (config & ADM1278_TEMP1_EN)
> 	-			info->func[0] |=
> 	-				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
>  		if (config & ADM1278_VIN_EN)
>  			info->func[0] |= PMBUS_HAVE_VIN;
>  		break; 
> > Guenter
> > 
> > > 
> > >  		/* Enable VOUT if not enabled (it is disabled by default) */
> > >  		if (!(config & ADM1278_VOUT_EN)) {
> > > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client,
> > >  			}
> > >  		}
> > >  
> > > -		if (config & ADM1278_TEMP1_EN)
> > > -			info->func[0] |=
> > > -				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> > >  		if (config & ADM1278_VIN_EN)
> > >  			info->func[0] |= PMBUS_HAVE_VIN;
> > >  		break;
> > > 
> >
Manikandan June 6, 2020, 5:13 a.m. UTC | #9
On Fri, Jun 05, 2020 at 11:04:51AM -0700, Guenter Roeck wrote:
> On Fri, Jun 05, 2020 at 10:18:21PM +0530, Manikandan wrote:
> > On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote:
> > > On 5/29/20 5:46 AM, Manikandan Elumalai wrote:
> > > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . 
> > > > This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it.
> > > > 
> > > > Signed-off-by   : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
> > > 
> > > This is not valid.
> > > 
> > > > 
> > > > v2:
> > > >    - Add Signed-off-by.
> > > >    - Removed ADM1278_TEMP1_EN check.
> > > 
> > > checkpatch reports:
> > > 
> > > > ---WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
> > > #14:
> > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform .
> > > 
> > > CHECK: Alignment should match open parenthesis
> > > #45: FILE: drivers/hwmon/pmbus/adm1275.c:679:
> > > +		ret = i2c_smbus_write_byte_data(client,
> > > +					ADM1275_PMON_CONFIG,
> > > 
> > > WARNING: suspect code indent for conditional statements (16, 16)
> > > #47: FILE: drivers/hwmon/pmbus/adm1275.c:681:
> > > +		if (ret < 0) {
> > > +		dev_err(&client->dev,
> > > 
> > > ERROR: Missing Signed-off-by: line(s)
> > > 
> > > total: 1 errors, 2 warnings, 1 checks, 33 lines checked
> > > 
> > > Please follow published guidelines when submitting patches.
> > > 
> > > >  drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++----
> > > >  1 file changed, 17 insertions(+), 4 deletions(-)
> > > > 
> > > > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
> > > > index 5caa37fb..ab5fceb 100644
> > > > --- a/drivers/hwmon/pmbus/adm1275.c
> > > > +++ b/drivers/hwmon/pmbus/adm1275.c
> > > > @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client,
> > > >  		tindex = 3;
> > > >  
> > > >  		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
> > > > -			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
> > > > +			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
> > > > +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> > > > +
> > > > +		config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
> > > > +		if (config < 0)
> > > > +			return config;
> > > > +
> > > > +		/* Enable TEMP1 by default */
> > > > +		config |= ADM1278_TEMP1_EN;
> > > > +		ret = i2c_smbus_write_byte_data(client,
> > > > +					ADM1275_PMON_CONFIG,
> > > > +					config);
> > > > +		if (ret < 0) {
> > > > +		dev_err(&client->dev,
> > > > +			"Failed to enable temperature config\n");
> > > > +		return -ENODEV;
> > > > +		}
> > > 
> > > This can be handled in a single operation, together with ADM1278_VOUT_EN
> > > below. There is no need for two separate write operations.
> > >
> >         Thanks for review Guenter, Patrick and Vijay.
> >         Sorry for delay response. 
> >         I have made changes to write ADM1278_VOUT_EN and ADM1278_TEMP1_EN in single
> >         operation and tested in platfrom .
> >         The changes given for quick look and will help if any misunderstand.
> > 
> > 	--- a/drivers/hwmon/pmbus/adm1275.c
> > 	+++ b/drivers/hwmon/pmbus/adm1275.c
> > 	@@ -666,11 +666,11 @@ static int adm1275_probe(struct i2c_client *client,
> >  		tindex = 3;
> >  
> >  		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
> > 	-			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
> > 	+			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | 
> >         +			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> >  
> >  		/* Enable VOUT if not enabled (it is disabled by default) */
> >  		if (!(config & ADM1278_VOUT_EN)) {
> 
> 		if (config & (ADM1278_VOUT_EN | ADM1278_TEMP1_EN) !=
> 						ADM1278_VOUT_EN | ADM1278_TEMP1_EN)
> 
> > 	-			config |= ADM1278_VOUT_EN;
> > 	+			config |= (ADM1278_VOUT_EN | ADM1278_TEMP1_EN);
> 
> ( ) is unnecessary here.

        Thanks for quick review Guenter. I will submit all changes in v3.
> 
> >  			ret = i2c_smbus_write_byte_data(client,
> >  							ADM1275_PMON_CONFIG,
> >  							config);
> > 	@@ -680,10 +680,6 @@ static int adm1275_probe(struct i2c_client *client,
> >  				return -ENODEV;
> >  			}
> >  		}
> > 	-
> > 	-		if (config & ADM1278_TEMP1_EN)
> > 	-			info->func[0] |=
> > 	-				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> >  		if (config & ADM1278_VIN_EN)
> >  			info->func[0] |= PMBUS_HAVE_VIN;
> >  		break; 
> > > Guenter
> > > 
> > > > 
> > > >  		/* Enable VOUT if not enabled (it is disabled by default) */
> > > >  		if (!(config & ADM1278_VOUT_EN)) {
> > > > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client,
> > > >  			}
> > > >  		}
> > > >  
> > > > -		if (config & ADM1278_TEMP1_EN)
> > > > -			info->func[0] |=
> > > > -				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
> > > >  		if (config & ADM1278_VIN_EN)
> > > >  			info->func[0] |= PMBUS_HAVE_VIN;
> > > >  		break;
> > > > 
> > >
diff mbox series

Patch

diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
index 5caa37fb..ab5fceb 100644
--- a/drivers/hwmon/pmbus/adm1275.c
+++ b/drivers/hwmon/pmbus/adm1275.c
@@ -666,7 +666,23 @@  static int adm1275_probe(struct i2c_client *client,
 		tindex = 3;
 
 		info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
-			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
+			PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
+			PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
+
+		config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
+		if (config < 0)
+			return config;
+
+		/* Enable TEMP1 by default */
+		config |= ADM1278_TEMP1_EN;
+		ret = i2c_smbus_write_byte_data(client,
+					ADM1275_PMON_CONFIG,
+					config);
+		if (ret < 0) {
+		dev_err(&client->dev,
+			"Failed to enable temperature config\n");
+		return -ENODEV;
+		}
 
 		/* Enable VOUT if not enabled (it is disabled by default) */
 		if (!(config & ADM1278_VOUT_EN)) {
@@ -681,9 +697,6 @@  static int adm1275_probe(struct i2c_client *client,
 			}
 		}
 
-		if (config & ADM1278_TEMP1_EN)
-			info->func[0] |=
-				PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
 		if (config & ADM1278_VIN_EN)
 			info->func[0] |= PMBUS_HAVE_VIN;
 		break;