cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

backlight.c (2116B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * GMA500 Backlight Interface
      4 *
      5 * Copyright (c) 2009-2011, Intel Corporation.
      6 *
      7 * Authors: Eric Knopp
      8 */
      9
     10#include "psb_drv.h"
     11#include "psb_intel_reg.h"
     12#include "psb_intel_drv.h"
     13#include "intel_bios.h"
     14#include "power.h"
     15
     16#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
     17static void do_gma_backlight_set(struct drm_device *dev)
     18{
     19	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
     20	backlight_update_status(dev_priv->backlight_device);
     21}
     22#endif
     23
     24void gma_backlight_enable(struct drm_device *dev)
     25{
     26#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
     27	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
     28	dev_priv->backlight_enabled = true;
     29	if (dev_priv->backlight_device) {
     30		dev_priv->backlight_device->props.brightness = dev_priv->backlight_level;
     31		do_gma_backlight_set(dev);
     32	}
     33#endif	
     34}
     35
     36void gma_backlight_disable(struct drm_device *dev)
     37{
     38#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
     39	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
     40	dev_priv->backlight_enabled = false;
     41	if (dev_priv->backlight_device) {
     42		dev_priv->backlight_device->props.brightness = 0;
     43		do_gma_backlight_set(dev);
     44	}
     45#endif
     46}
     47
     48void gma_backlight_set(struct drm_device *dev, int v)
     49{
     50#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
     51	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
     52	dev_priv->backlight_level = v;
     53	if (dev_priv->backlight_device && dev_priv->backlight_enabled) {
     54		dev_priv->backlight_device->props.brightness = v;
     55		do_gma_backlight_set(dev);
     56	}
     57#endif
     58}
     59
     60int gma_backlight_init(struct drm_device *dev)
     61{
     62#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
     63	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
     64	dev_priv->backlight_enabled = true;
     65	return dev_priv->ops->backlight_init(dev);
     66#else
     67	return 0;
     68#endif
     69}
     70
     71void gma_backlight_exit(struct drm_device *dev)
     72{
     73#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
     74	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
     75	if (dev_priv->backlight_device) {
     76		dev_priv->backlight_device->props.brightness = 0;
     77		backlight_update_status(dev_priv->backlight_device);
     78		backlight_device_unregister(dev_priv->backlight_device);
     79	}
     80#endif
     81}