[PATCH 2/2] hwmon (hwmon-vid): add 6-bit vid codes for AMD NPT 0Fh cpus

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

 



Hi Frank,

On Mon, 23 Jun 2008 18:18:50 +0200, Jean Delvare wrote:
> On Mon, 23 Jun 2008 12:06:26 -0400, Frank Myhr wrote:
> > Jean,
> > 
> > Thanks for your comments. Sorry for my slow response, I was on vacation and
> > then have been getting my head around quilt. Anyway, I think the below patch
> > fixes the problems you noticed.
> 
> Time well spent, I'd say. quilt rocks.
> 
> > Signed-off-by: Frank Myhr <fmyhr at fhmtech.com>
> > ---
> > 
> > Index: linux/drivers/hwmon/hwmon-vid.c
> > ===================================================================
> > --- linux.orig/drivers/hwmon/hwmon-vid.c	2008-06-23 10:27:37.000000000 -0400
> > +++ linux/drivers/hwmon/hwmon-vid.c	2008-06-23 11:29:35.000000000 -0400
> > @@ -37,18 +37,14 @@
> >   * For VRD 10.0 and up, "VRD x.y Design Guide",
> >   * available at http://developer.intel.com/.
> >   *
> > + * AMD NPT 0Fh (Athlon64 & Opteron), AMD Publication 32559,
> > + * http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32559.pdf
> > + * Table 71. VID Code Voltages
> >   * AMD Opteron processors don't follow the Intel specifications.
> >   * I'm going to "make up" 2.4 as the spec number for the Opterons.
> >   * No good reason just a mnemonic for the 24x Opteron processor
> >   * series.
> >   *
> > - * Opteron VID encoding is:
> > - *    00000  =  1.550 V
> > - *    00001  =  1.525 V
> > - *     . . . .
> > - *    11110  =  0.800 V
> > - *    11111  =  0.000 V (off)
> > - *
> >   * The 17 specification is in fact Intel Mobile Voltage Positioning -
> >   * (IMVP-II). You can find more information in the datasheet of Max1718
> >   * http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2452
> > @@ -98,9 +94,11 @@
> >  		if (val < 0x02 || val > 0xb2)
> >  			return 0;
> >  		return((1600000 - (val - 2) * 6250 + 500) / 1000);
> > -	case 24:                /* Opteron processor */
> > -		val &= 0x1f;
> > -		return(val == 0x1f ? 0 : 1550 - val * 25);
> > +
> > +	case 24:		/* AMD NPT 0Fh (Athlon64 & Opteron) */
> > +		val &= 0x3f;
> > +		return (val < 32) ? 1550 - 25 * val
> > +			: 775 - (25 * (val - 31)) / 2;
> > 
> >  	case 91:		/* VRM 9.1 */
> >  	case 90:		/* VRM 9.0 */
> 
> Looks good to me:
> 
> Acked-by: Jean Delvare <khali at linux-fr.org>

FYI, a bug has been reported, which is most certainly caused by this
patch:
  http://bugzilla.kernel.org/show_bug.cgi?id=11329

I am waiting for additional information from the reporter. At this
point, I suspect that older CPU models only have 5 VID pins and only
newer CPU models have 6 VID pins. In that case we would need a
different "vrm" value to differentiate between old and new models.

-- 
Jean Delvare




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

  Powered by Linux