[PATCH] drm: Add downclock quirk for Samsung LTN121AT10-301

Sean Paul seanpaul at chromium.org
Thu May 31 06:24:05 PDT 2012


On Thu, May 31, 2012 at 3:09 AM, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Wed, May 30, 2012 at 11:21:32AM -0400, Sean Paul wrote:
>> On Wed, May 30, 2012 at 10:16 AM, Adam Jackson <ajax at redhat.com> wrote:
>> > On 5/30/12 8:05 AM, Sean Paul wrote:
>> >
>> >> Yes, definitely. The reason I can't set it via xrandr (easily) is
>> >> because we look for lvds downclock modes (in i915) on the driver init.
>> >> Since the driver initializes way before we have a chance to add a new
>> >> mode via xrandr, the driver won't have a downclock mode.
>> >>
>> >> I suppose the other option is to hack the i915 driver to allow a
>> >> downclocked mode to be added after it's been initialized. I haven't
>> >> looked into this solution, it might be worth investigating.
>> >
>> >
>> > Just so I'm clear, is what you're looking for "I want this pair of timings,
>> > with the driver magically switching between them"?  If all you wanted was
>> > the lower clock speed all the time you could just, you know, do that, so I
>> > assume that's not what you're after.
>> >
>>
>> Yep, you got it.
>>
>> > If binding two timings together like that is what you want, then that seems
>> > like a pretty reasonable device-specific ioctl at first glance.  I think the
>> > only thing to be careful of would be copying the slower timings into the
>> > driver private of the faster, rather than keeping a pointer or copy of the
>> > object id, since modes aren't refcounted.
>> >
>> > How big of a power savings do you see with this?  Wondering if it's worth
>> > trying to make some common tooling for finding downclocked modes, if it's
>> > going to be worthwhile on multiple panels.
>> >
>>
>> I saw about 200mW savings with downclocking enabled. It's hard to say
>> how many panels this might apply to, some panels which report
>> downclocked states still flicker, and others that don't have it in the
>> EDID work just fine (like this Samsung panel).
>>
>> LVDS downclocking is enabled by default in Fedora and ChromiumOS, so
>> making this more accessible might be useful for users of these
>> distros.
>
> I think adding lvds connector properties for downclocking would make
> sense. I guess we need and enable knob and a frequency value. At boot time
> we'd fill these with the detected values, but then userspace would have
> full control (i.e. the enable knob should overwrite the i915 module
> options). That way downclocking would also be much easier to test (and
> maybe we could try to enable it by default eventually).

Excellent, thanks to everyone for the feedback! I'll put together a
patch when I get some free cycles.

Sean


> -Daniel
> --
> Daniel Vetter
> Mail: daniel at ffwll.ch
> Mobile: +41 (0)79 365 57 48


More information about the dri-devel mailing list