Re: [PATCH] hwmon: Driver for ADT7410

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

 



On Tue, Jul 31, 2012 at 10:17:18PM +0200, Hartmut Knaack wrote:
> Hi,
> this patch brings basic support for the Analog Devices ADT7410 temperature sensor, based on the lm75 hwmon driver and the adt7410 iio driver. The following functionality has been implemented:
> 
>   * get current temperature
>   * get/set minimum, maximum and critical temperature
>   * get/set hysteresis
>   * get alarm events for minimum, maximum and critical temperature
> 
> The ADT7410 provides some more configuration options, but would need non-standard sysfs symbols, so I prefer to get some feedback before implementing any:
> 
>   * get/set resolution (13/16 bits): temp#_resolution (13/16)?
>   * get/set event mode (comparator/interrupt): temp#_eventmode (0/1)?
>   * get/set polarity of INT pin (active-high/active-low): temp#_INT (0/1)?
>   * get/set polarity of CT pin (active-high/active-low): temp#_CT (0/1)?
>   * get/set sampling mode (continous/one sample per second/one-shot/power-down): temp#_mode (0/1/2/3)?
>   * get/set fault queue (1 to 4 faults to trigger event): temp#_faultqueue (1/2/3/4)?
>   * get device id: temp#_id?
> 
> Besides, I saw that there are several sensors (including the ADT7410) which have just one hysteresis register, that stores a delta value that applies to min, max and critical temperature. How are the chances to create a standard symbol "temp#_hyst"?
> 
> All implemented sysfs-symbols have been sucessfully tested at temperatures of 15°C to 40°C.
> 
> Signed-off-by: Hartmut Knaack <knaack.h <at> gmx.de>

Hi,

your mailer replaced all tabs with spaces, making a real review quite difficult.
Please fix that.

Couple of comments (not a complete review):

- For configuration, we commonly assume it is taken care of by the BIOS. Other
  that that, if you think anything needs to be configurable, use platform data
  and/or device tree information. No sysfs attributes, please.
- Hysteresis is an absolute temperature, not a relative one. So the question for
  a generis attribute would be what it applies to. The current approach does not
  have that problem.
- Please use devm_ functions to allocate resources.
- The wrappers for adt7410_i2c_write_byte and adt7410_i2c_read_byte are really
  unnecessary. Please drop. You don't need error messages here, hopefully.
- Use i2c_smbus_read_word_swapped and i2c_smbus_write_word_swapped for the 16
  bit functions instead of the local wrapper functions.
- Using "char" for "valid" makes the code more complex for most platforms.
  Consider bool instead.
- Your code hides error returns from i2c access functions by returning EIO
  instead of the actual error. Please don't do that.
- The access retry code in adt7410_update_device is really quite complex.
  Is this really needed ? In general, the sensor should be configured for
  continuous conversion, and it should not be necessary to wait for a conversion
  to complete. besides, we can not afford an active 240 ms wait loop, so if the
  loop should _really_ be needed, you would have to add a sleep function call.
- The detect function is quite weak. you should definitely also check bits 0..3
  of the status register (must be 0), and consider checking against known chip
  revision numbers. Question is also if the chip is expected to show up
  in a PC type system; if not, it might make sense to drop the detect function
  entirely, given its weakness.
- Use SENSOR_DEVICE_ATTR_2 to encode secondary index values (instead of multiple
  show_xxx_alarm functions).
- Don't initialize variables unnecessarily.
- set_mask and clr_mask in the probe function are really not necessary.
- Please align function parameters to the opening (.
- No unnecessary ( ), please [no, it does not make the code easier to read,
  it just hides the really important ( )s].
- Please run the patch through checkpatch.pl. I can not really say for sure
  due to the tab problem how many issues there  are, but I see at least one
  checkpatch error.

Thanks,
Guenter

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux