drm/i915: Convert pxvid to extvid lookup table to a function
The conversion table can be replaced with simple enough function. text data bss dec hex filename 839688 10987 24 850699 cfb0b drivers/gpu/drm/i915/i915.ko 839224 10987 24 850235 cf93b drivers/gpu/drm/i915/i915.ko Result is 494 saved bytes (.05525%). v2: - no run on sentences from subject (Chris, Jani) - be verbose about the savings (Chris, Daniel) Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> (v1) Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
bfc882b4e3
commit
d972d6ee55
|
@ -5681,146 +5681,27 @@ unsigned long i915_mch_val(struct drm_i915_private *dev_priv)
|
|||
return ((m * x) / 127) - b;
|
||||
}
|
||||
|
||||
static u16 pvid_to_extvid(struct drm_i915_private *dev_priv, u8 pxvid)
|
||||
static int _pxvid_to_vd(u8 pxvid)
|
||||
{
|
||||
if (pxvid == 0)
|
||||
return 0;
|
||||
|
||||
if (pxvid >= 8 && pxvid < 31)
|
||||
pxvid = 31;
|
||||
|
||||
return (pxvid + 2) * 125;
|
||||
}
|
||||
|
||||
static u32 pvid_to_extvid(struct drm_i915_private *dev_priv, u8 pxvid)
|
||||
{
|
||||
struct drm_device *dev = dev_priv->dev;
|
||||
static const struct v_table {
|
||||
u16 vd; /* in .1 mil */
|
||||
u16 vm; /* in .1 mil */
|
||||
} v_table[] = {
|
||||
{ 0, 0, },
|
||||
{ 375, 0, },
|
||||
{ 500, 0, },
|
||||
{ 625, 0, },
|
||||
{ 750, 0, },
|
||||
{ 875, 0, },
|
||||
{ 1000, 0, },
|
||||
{ 1125, 0, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4125, 3000, },
|
||||
{ 4250, 3125, },
|
||||
{ 4375, 3250, },
|
||||
{ 4500, 3375, },
|
||||
{ 4625, 3500, },
|
||||
{ 4750, 3625, },
|
||||
{ 4875, 3750, },
|
||||
{ 5000, 3875, },
|
||||
{ 5125, 4000, },
|
||||
{ 5250, 4125, },
|
||||
{ 5375, 4250, },
|
||||
{ 5500, 4375, },
|
||||
{ 5625, 4500, },
|
||||
{ 5750, 4625, },
|
||||
{ 5875, 4750, },
|
||||
{ 6000, 4875, },
|
||||
{ 6125, 5000, },
|
||||
{ 6250, 5125, },
|
||||
{ 6375, 5250, },
|
||||
{ 6500, 5375, },
|
||||
{ 6625, 5500, },
|
||||
{ 6750, 5625, },
|
||||
{ 6875, 5750, },
|
||||
{ 7000, 5875, },
|
||||
{ 7125, 6000, },
|
||||
{ 7250, 6125, },
|
||||
{ 7375, 6250, },
|
||||
{ 7500, 6375, },
|
||||
{ 7625, 6500, },
|
||||
{ 7750, 6625, },
|
||||
{ 7875, 6750, },
|
||||
{ 8000, 6875, },
|
||||
{ 8125, 7000, },
|
||||
{ 8250, 7125, },
|
||||
{ 8375, 7250, },
|
||||
{ 8500, 7375, },
|
||||
{ 8625, 7500, },
|
||||
{ 8750, 7625, },
|
||||
{ 8875, 7750, },
|
||||
{ 9000, 7875, },
|
||||
{ 9125, 8000, },
|
||||
{ 9250, 8125, },
|
||||
{ 9375, 8250, },
|
||||
{ 9500, 8375, },
|
||||
{ 9625, 8500, },
|
||||
{ 9750, 8625, },
|
||||
{ 9875, 8750, },
|
||||
{ 10000, 8875, },
|
||||
{ 10125, 9000, },
|
||||
{ 10250, 9125, },
|
||||
{ 10375, 9250, },
|
||||
{ 10500, 9375, },
|
||||
{ 10625, 9500, },
|
||||
{ 10750, 9625, },
|
||||
{ 10875, 9750, },
|
||||
{ 11000, 9875, },
|
||||
{ 11125, 10000, },
|
||||
{ 11250, 10125, },
|
||||
{ 11375, 10250, },
|
||||
{ 11500, 10375, },
|
||||
{ 11625, 10500, },
|
||||
{ 11750, 10625, },
|
||||
{ 11875, 10750, },
|
||||
{ 12000, 10875, },
|
||||
{ 12125, 11000, },
|
||||
{ 12250, 11125, },
|
||||
{ 12375, 11250, },
|
||||
{ 12500, 11375, },
|
||||
{ 12625, 11500, },
|
||||
{ 12750, 11625, },
|
||||
{ 12875, 11750, },
|
||||
{ 13000, 11875, },
|
||||
{ 13125, 12000, },
|
||||
{ 13250, 12125, },
|
||||
{ 13375, 12250, },
|
||||
{ 13500, 12375, },
|
||||
{ 13625, 12500, },
|
||||
{ 13750, 12625, },
|
||||
{ 13875, 12750, },
|
||||
{ 14000, 12875, },
|
||||
{ 14125, 13000, },
|
||||
{ 14250, 13125, },
|
||||
{ 14375, 13250, },
|
||||
{ 14500, 13375, },
|
||||
{ 14625, 13500, },
|
||||
{ 14750, 13625, },
|
||||
{ 14875, 13750, },
|
||||
{ 15000, 13875, },
|
||||
{ 15125, 14000, },
|
||||
{ 15250, 14125, },
|
||||
{ 15375, 14250, },
|
||||
{ 15500, 14375, },
|
||||
{ 15625, 14500, },
|
||||
{ 15750, 14625, },
|
||||
{ 15875, 14750, },
|
||||
{ 16000, 14875, },
|
||||
{ 16125, 15000, },
|
||||
};
|
||||
const int vd = _pxvid_to_vd(pxvid);
|
||||
const int vm = vd - 1125;
|
||||
|
||||
if (INTEL_INFO(dev)->is_mobile)
|
||||
return v_table[pxvid].vm;
|
||||
else
|
||||
return v_table[pxvid].vd;
|
||||
return vm > 0 ? vm : 0;
|
||||
|
||||
return vd;
|
||||
}
|
||||
|
||||
static void __i915_update_gfx_val(struct drm_i915_private *dev_priv)
|
||||
|
|
Loading…
Reference in New Issue