Based on panel hardware support, display brightness levels can be very high value. This high value display brightness cooling device levels can cause exceeding PAGE_SIZE for cooling device stat buffer. It leads to buffer failure for cooling device stat feature. Limit display panel mitigation level max to 255. If hardware supports more than 255, then scale brightness levels fit into above limit. Change-Id: Ieeee4ff2aa5cd884819b30b4fd9839e48ac4d804 Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
39 lines
937 B
C
39 lines
937 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#ifndef __SDE_THERMAL_CORE_H__
|
|
#define __SDE_THERMAL_CORE_H__
|
|
|
|
#include <linux/device.h>
|
|
#include <linux/backlight.h>
|
|
#include <linux/thermal.h>
|
|
#include <linux/notifier.h>
|
|
|
|
struct sde_cdev {
|
|
struct blocking_notifier_head notifier_head;
|
|
struct thermal_cooling_device *cdev;
|
|
struct backlight_device *bd;
|
|
unsigned long thermal_state;
|
|
unsigned int cdev_sf;
|
|
};
|
|
|
|
#ifdef CONFIG_THERMAL_OF
|
|
struct sde_cdev *backlight_cdev_register(struct device *dev,
|
|
struct backlight_device *bd,
|
|
struct notifier_block *n);
|
|
void backlight_cdev_unregister(struct sde_cdev *cdev);
|
|
#else
|
|
static inline struct sde_cdev *
|
|
backlight_cdev_register(struct device *dev,
|
|
struct backlight_device *bd, struct notifier_block *n)
|
|
{
|
|
return NULL;
|
|
}
|
|
static inline void backlight_cdev_unregister(struct sde_cdev *cdev)
|
|
{ }
|
|
#endif
|
|
|
|
#endif
|