|
@@ -212,10 +212,13 @@ static ssize_t gt_cur_freq_mhz_show(struct device *kdev,
|
|
|
int ret;
|
|
|
|
|
|
mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
- if (IS_VALLEYVIEW(dev_priv->dev))
|
|
|
- ret = vlv_gpu_freq(dev_priv->mem_freq, dev_priv->rps.cur_delay);
|
|
|
- else
|
|
|
+ if (IS_VALLEYVIEW(dev_priv->dev)) {
|
|
|
+ u32 freq;
|
|
|
+ valleyview_punit_read(dev_priv, PUNIT_REG_GPU_FREQ_STS, &freq);
|
|
|
+ ret = vlv_gpu_freq(dev_priv->mem_freq, (freq >> 8) & 0xff);
|
|
|
+ } else {
|
|
|
ret = dev_priv->rps.cur_delay * GT_FREQUENCY_MULTIPLIER;
|
|
|
+ }
|
|
|
mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
|
|
|
return snprintf(buf, PAGE_SIZE, "%d\n", ret);
|