Maurizio4pastebin

FreeBSD 11-CURRENT r277961 i915_debug.c.patch

Feb 1st, 2015
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.48 KB | None | 0 0
  1. --- sys/dev/drm2/i915/i915_debug.c.orig (revision 277487)
  2. +++ sys/dev/drm2/i915/i915_debug.c      (working copy)
  3. @@ -1590,6 +1590,40 @@
  4.     return (0);
  5.  }
  6.  
  7. +static int
  8. +i915_backlight(SYSCTL_HANDLER_ARGS)
  9. +{
  10. +   struct drm_device *dev;
  11. +   drm_i915_private_t *dev_priv;
  12. +   int error;
  13. +   u32 val, min, max;
  14. +
  15. +   dev = arg1;
  16. +   dev_priv = dev->dev_private;
  17. +   if(dev_priv == NULL)
  18. +       return (EBUSY);
  19. +   DRM_LOCK(dev);
  20. +   val = intel_panel_get_backlight(dev);
  21. +   max = intel_panel_get_max_backlight(dev);
  22. +   DRM_UNLOCK(dev);
  23. +
  24. +   // XXX specific devices, works fine on ivy bridge though
  25. +   val = 0.5 + val * 100.0 / max;
  26. +   error = sysctl_handle_int(oidp, &val, 0, req);
  27. +   if (error || !req->newptr)
  28. +       return (error);
  29. +   min = 0.5 + 0.5 * max / 100.0;  // 0.5%
  30. +   val = 0.5 + val * max / 100.0;
  31. +   if (val < min)
  32. +       val = min;
  33. +   else if (val > max)
  34. +       val = max;
  35. +   DRM_LOCK(dev);
  36. +   intel_panel_set_backlight(dev, val);
  37. +   DRM_UNLOCK(dev);
  38. +   return (0);
  39. +}
  40. +
  41.  static struct i915_info_sysctl_list {
  42.     const char *name;
  43.     int (*ptr)(struct drm_device *dev, struct sbuf *m, void *data);
  44. @@ -1753,7 +1787,12 @@
  45.         CTLFLAG_RW, &i915_intr_pf, 0, NULL);
  46.     if (oid == NULL)
  47.         return (ENOMEM);
  48. -
  49. +   oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(top), OID_AUTO,
  50. +       "i915_backlight", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, dev,
  51. +       0, i915_backlight, "I", NULL);
  52. +   if (oid == NULL)
  53. +       return (ENOMEM);
  54. +
  55.     error = drm_add_busid_modesetting(dev, ctx, top);
  56.     if (error != 0)
  57.         return (error);
Add Comment
Please, Sign In to add comment