• Ben Widawsky's avatar
    drm/i915: Add setters for min/max frequency · 46ddf194
    Ben Widawsky authored
    Provide a standardized sysfs interface for setting min, and max
    frequencies.  The code which reads the limits were lifted from the
    debugfs files. As a brief explanation, the limits are similar to the CPU
    p-states. We have 3 states:
    
    RP0 - ie. max frequency
    RP1 - ie. "preferred min" frequency
    RPn - seriously lowest frequency
    
    Initially Daniel asked me to clamp the writes to supported values, but
    in conforming to the way the cpufreq drivers seem to work, instead
    return -EINVAL (noticed by Jesse in discussion).
    The values can be used by userspace wishing to control the limits of the
    GPU (see the CC list for people who care).
    
    v4: Make exceeding the soft limits return -EINVAL as well (Daniel)
    
    v3: bug fix (Ben) -  was passing the MHz value to gen6_set_rps instead of
    the step value. To fix, deal only with step values by doing the divide
    at the top.
    
    v2: add the dropped mutex_unlock in error cases (Chris)
    EINVAL on both too min, or too max (Daniel)
    
    v2 Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    CC: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    46ddf194
i915_sysfs.c 10.3 KB