Re: [PATCH v1 01/01] hwmon: (w83627ehf) Add fan debounce support for NCT6775F and NCT6776F

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

 



Hi Ian,

On Mon, Mar 07, 2011 at 03:07:29PM -0500, Ian Dobson wrote:
> Hi Guenter,
> 
> --------------------------------------------------
> From: "Guenter Roeck" <guenter.roeck@xxxxxxxxxxxx>
> Sent: Monday, March 07, 2011 8:24 PM
> To: "Ian Dobson" <i.dobson@xxxxxxxxxxxxxx>
> Cc: <lm-sensors@xxxxxxxxxxxxxx>
> Subject: Re: [PATCH v1 01/01] hwmon: (w83627ehf) Add fan debounce support 
> for NCT6775F and NCT6776F
> 
> > Hi Ian,
> >
> > On Mon, Mar 07, 2011 at 01:55:56PM -0500, Ian Dobson wrote:
> >> Hello,
> >>
> >> The nct6776f and nct6775f support debouncing the fan RPM signal, this can
> >> help improve the stability of th RPM signal for some fans (Arctic cooling
> >> fans for example).
> >> This patch adds a module parameter fan_debounce, which when set to 1 
> >> enables
> >> debounce for all fans that the chip supports.
> >> I've based this diff on the standalone w83627ehf driver from 7.3.2011 
> >> 09:54,
> >> using diff -uN standardversion  myversion
> >>
> >> Regards
> >> Ian Dobson
> >>
> >>
> >> --- w83627ehf.c.std 2011-03-04 17:01:18.630954100 +0100
> >> +++ w83627ehf.c 2011-03-07 18:22:33.878852000 +0100
> >> @@ -79,6 +79,10 @@
> >>  module_param(force_id, ushort, 0);
> >>  MODULE_PARM_DESC(force_id, "Override the detected device ID");
> >>
> >> +static unsigned short fan_debounce;
> >> +module_param(fan_debounce, ushort, 0);
> >> +MODULE_PARM_DESC(fan_debounce, "Enable de-bouncing for fan RPM signal");
> >> +
> >
> > I wanted to ask you to document the module parameter in 
> > Documentation/hwmon/w83627ehf,
> > but turns out force_id isn't documented there either. So I'll leave it up 
> > to you
> > to decide if you want to spend the effort.
> 
> If force_id isn't documented then maybe not.
> >
> >>  #define DRVNAME "w83627ehf"
> >>
> >>  /*
> >> @@ -236,6 +240,7 @@
> >>  static const u16 NCT6775_REG_FAN_STEP_OUTPUT[] = { 0x10b, 0x20b, 
> >> 0x30b };
> >>  static const u16 NCT6775_REG_FAN[] = { 0x630, 0x632, 0x634, 0x636, 
> >> 0x638 };
> >>  static const u16 NCT6776_REG_FAN_MIN[] = { 0x63a, 0x63c, 0x63e, 0x640,
> >> 0x642};
> >> +static const u8 NCT6776_REG_FAN_DEBOUNCE = 0xf0;
> >>
> > You don't need a variable here; a define is good enough. Variables are 
> > only necessary
> > for arrays. I would suggest to use
> >
> > #define NCT6775_REG_FAN_DEBOUNCE 0xf0
> >
> > May seem odd, but the convention I used is to name registers after the 
> > first chip
> > supporting it. In this case, that would be NCT6775.
> OK I'll change that, I didn't realise use use the first chip name.
> >
> >>  static const u16 NCT6775_REG_TEMP[]
> >>  = { 0x27, 0x150, 0x250, 0x73, 0x75, 0x77, 0x62b, 0x62c, 0x62d };
> >> @@ -2297,6 +2302,7 @@
> >>  static const char __initdata sio_name_NCT6776[] = "NCT6776F";
> >>
> >>  u16 val;
> >> + u8 tmp;
> >
> > Declare tmp where you need it, ie after the if() below.
> OK, I can change that, but most of the kernel code I've looked at defines 
> all variables used in a function at the start of the function.
> 
> >
> >>  const char *sio_name;
> >>
> >>  superio_enter(sioaddr);
> >> @@ -2369,6 +2375,22 @@
> >>  pr_info("Found %s chip at %#x\n", sio_name, *addr);
> >>  sio_data->sioreg = sioaddr;
> >>
> > Can you move the code below a little further up, just ahead of the 
> > previous
> > superio_exit() ?
> > This way you don't have to call superio_enter() and superio_exit() again.
> I wanted to do it like this so that you get the dmesg
> 
> [194080.788004] w83627ehf: Found NCT6776F chip at 0x290
> [194080.788024] w83627ehf: Enabling fan debounce for chip NCT6776F
> 
> and I didn't want to change too much code, but I'll have a look at it.
> 
Looking further into it, the code to enable debounce should actually be in the _probe 
function. There you also have a sequence with superio enabled. Maybe put your code
just before the superio_exit() there.

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