mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 11:33:58 -04:00
Merge tag 'backlight-next-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
Pull backlight updates from Lee Jones: "Fix-ups: - FB Backlight interaction overhaul - Remove superfluous code and simplify overall - Constify various structs and struct attributes Bug Fixes: - Repair LED flickering - Fix signedness bugs" * tag 'backlight-next-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: (42 commits) backlight: sky81452-backlight: Remove unnecessary call to of_node_get() backlight: mp3309c: Fix LEDs flickering in PWM mode backlight: otm3225a: Drop driver owner assignment backlight: lp8788: Drop support for platform data backlight: lcd: Make lcd_class constant backlight: Make backlight_class constant backlight: mp3309c: Fix signedness bug in mp3309c_parse_fwnode() const_structs.checkpatch: add lcd_ops fbdev: omap: lcd_ams_delta: Constify lcd_ops fbdev: imx: Constify lcd_ops fbdev: clps711x: Constify lcd_ops HID: picoLCD: Constify lcd_ops backlight: tdo24m: Constify lcd_ops backlight: platform_lcd: Constify lcd_ops backlight: otm3225a: Constify lcd_ops backlight: ltv350qv: Constify lcd_ops backlight: lms501kf03: Constify lcd_ops backlight: lms283gf05: Constify lcd_ops backlight: l4f00242t03: Constify lcd_ops backlight: jornada720_lcd: Constify lcd_ops ...
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include <linux/fb.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* enum backlight_update_reason - what method was used to update backlight
|
||||
@@ -110,7 +111,6 @@ enum backlight_scale {
|
||||
};
|
||||
|
||||
struct backlight_device;
|
||||
struct fb_info;
|
||||
|
||||
/**
|
||||
* struct backlight_ops - backlight operations
|
||||
@@ -160,18 +160,18 @@ struct backlight_ops {
|
||||
int (*get_brightness)(struct backlight_device *);
|
||||
|
||||
/**
|
||||
* @check_fb: Check the framebuffer device.
|
||||
* @controls_device: Check against the display device
|
||||
*
|
||||
* Check if given framebuffer device is the one bound to this backlight.
|
||||
* This operation is optional and if not implemented it is assumed that the
|
||||
* fbdev is always the one bound to the backlight.
|
||||
* Check if the backlight controls the given display device. This
|
||||
* operation is optional and if not implemented it is assumed that
|
||||
* the display is always the one controlled by the backlight.
|
||||
*
|
||||
* RETURNS:
|
||||
*
|
||||
* If info is NULL or the info matches the fbdev bound to the backlight return true.
|
||||
* If info does not match the fbdev bound to the backlight return false.
|
||||
* If display_dev is NULL or display_dev matches the device controlled by
|
||||
* the backlight, return true. Otherwise return false.
|
||||
*/
|
||||
int (*check_fb)(struct backlight_device *bd, struct fb_info *info);
|
||||
bool (*controls_device)(struct backlight_device *bd, struct device *display_dev);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -218,25 +218,6 @@ struct backlight_properties {
|
||||
*/
|
||||
int power;
|
||||
|
||||
/**
|
||||
* @fb_blank: The power state from the FBIOBLANK ioctl.
|
||||
*
|
||||
* When the FBIOBLANK ioctl is called @fb_blank is set to the
|
||||
* blank parameter and the update_status() operation is called.
|
||||
*
|
||||
* When the backlight device is enabled @fb_blank is set
|
||||
* to FB_BLANK_UNBLANK. When the backlight device is disabled
|
||||
* @fb_blank is set to FB_BLANK_POWERDOWN.
|
||||
*
|
||||
* Backlight drivers should avoid using this property. It has been
|
||||
* replaced by state & BL_CORE_FBLANK (although most drivers should
|
||||
* use backlight_is_blank() as the preferred means to get the blank
|
||||
* state).
|
||||
*
|
||||
* fb_blank is deprecated and will be removed.
|
||||
*/
|
||||
int fb_blank;
|
||||
|
||||
/**
|
||||
* @type: The type of backlight supported.
|
||||
*
|
||||
@@ -366,7 +347,6 @@ static inline int backlight_enable(struct backlight_device *bd)
|
||||
return 0;
|
||||
|
||||
bd->props.power = FB_BLANK_UNBLANK;
|
||||
bd->props.fb_blank = FB_BLANK_UNBLANK;
|
||||
bd->props.state &= ~BL_CORE_FBBLANK;
|
||||
|
||||
return backlight_update_status(bd);
|
||||
@@ -382,7 +362,6 @@ static inline int backlight_disable(struct backlight_device *bd)
|
||||
return 0;
|
||||
|
||||
bd->props.power = FB_BLANK_POWERDOWN;
|
||||
bd->props.fb_blank = FB_BLANK_POWERDOWN;
|
||||
bd->props.state |= BL_CORE_FBBLANK;
|
||||
|
||||
return backlight_update_status(bd);
|
||||
@@ -395,15 +374,13 @@ static inline int backlight_disable(struct backlight_device *bd)
|
||||
* Display is expected to be blank if any of these is true::
|
||||
*
|
||||
* 1) if power in not UNBLANK
|
||||
* 2) if fb_blank is not UNBLANK
|
||||
* 3) if state indicate BLANK or SUSPENDED
|
||||
* 2) if state indicate BLANK or SUSPENDED
|
||||
*
|
||||
* Returns true if display is expected to be blank, false otherwise.
|
||||
*/
|
||||
static inline bool backlight_is_blank(const struct backlight_device *bd)
|
||||
{
|
||||
return bd->props.power != FB_BLANK_UNBLANK ||
|
||||
bd->props.fb_blank != FB_BLANK_UNBLANK ||
|
||||
bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
|
||||
}
|
||||
|
||||
|
||||
@@ -742,6 +742,15 @@ extern struct fb_info *framebuffer_alloc(size_t size, struct device *dev);
|
||||
extern void framebuffer_release(struct fb_info *info);
|
||||
extern void fb_bl_default_curve(struct fb_info *fb_info, u8 off, u8 min, u8 max);
|
||||
|
||||
#if IS_ENABLED(CONFIG_FB_BACKLIGHT)
|
||||
struct backlight_device *fb_bl_device(struct fb_info *info);
|
||||
#else
|
||||
static inline struct backlight_device *fb_bl_device(struct fb_info *info)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* fbmon.c */
|
||||
#define FB_MAXTIMINGS 0
|
||||
#define FB_VSYNCTIMINGS 1
|
||||
|
||||
@@ -61,7 +61,7 @@ struct lcd_device {
|
||||
points to something in the body of that driver, it is also invalid. */
|
||||
struct mutex ops_lock;
|
||||
/* If this is NULL, the backing module is unloaded */
|
||||
struct lcd_ops *ops;
|
||||
const struct lcd_ops *ops;
|
||||
/* Serialise access to set_power method */
|
||||
struct mutex update_lock;
|
||||
/* The framebuffer notifier block */
|
||||
@@ -102,10 +102,10 @@ static inline void lcd_set_power(struct lcd_device *ld, int power)
|
||||
}
|
||||
|
||||
extern struct lcd_device *lcd_device_register(const char *name,
|
||||
struct device *parent, void *devdata, struct lcd_ops *ops);
|
||||
struct device *parent, void *devdata, const struct lcd_ops *ops);
|
||||
extern struct lcd_device *devm_lcd_device_register(struct device *dev,
|
||||
const char *name, struct device *parent,
|
||||
void *devdata, struct lcd_ops *ops);
|
||||
void *devdata, const struct lcd_ops *ops);
|
||||
extern void lcd_device_unregister(struct lcd_device *ld);
|
||||
extern void devm_lcd_device_unregister(struct device *dev,
|
||||
struct lcd_device *ld);
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#define __MFD_LP8788_H__
|
||||
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/pwm.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#define LP8788_DEV_BUCK "lp8788-buck"
|
||||
@@ -87,12 +86,6 @@ enum lp8788_charger_event {
|
||||
CHARGER_DETECTED,
|
||||
};
|
||||
|
||||
enum lp8788_bl_ctrl_mode {
|
||||
LP8788_BL_REGISTER_ONLY,
|
||||
LP8788_BL_COMB_PWM_BASED, /* PWM + I2C, changed by PWM input */
|
||||
LP8788_BL_COMB_REGISTER_BASED, /* PWM + I2C, changed by I2C */
|
||||
};
|
||||
|
||||
enum lp8788_bl_dim_mode {
|
||||
LP8788_DIM_EXPONENTIAL,
|
||||
LP8788_DIM_LINEAR,
|
||||
@@ -201,31 +194,6 @@ struct lp8788_charger_platform_data {
|
||||
enum lp8788_charger_event event);
|
||||
};
|
||||
|
||||
/*
|
||||
* struct lp8788_backlight_platform_data
|
||||
* @name : backlight driver name. (default: "lcd-backlight")
|
||||
* @initial_brightness : initial value of backlight brightness
|
||||
* @bl_mode : brightness control by pwm or lp8788 register
|
||||
* @dim_mode : dimming mode selection
|
||||
* @full_scale : full scale current setting
|
||||
* @rise_time : brightness ramp up step time
|
||||
* @fall_time : brightness ramp down step time
|
||||
* @pwm_pol : pwm polarity setting when bl_mode is pwm based
|
||||
* @period_ns : platform specific pwm period value. unit is nano.
|
||||
Only valid when bl_mode is LP8788_BL_COMB_PWM_BASED
|
||||
*/
|
||||
struct lp8788_backlight_platform_data {
|
||||
char *name;
|
||||
int initial_brightness;
|
||||
enum lp8788_bl_ctrl_mode bl_mode;
|
||||
enum lp8788_bl_dim_mode dim_mode;
|
||||
enum lp8788_bl_full_scale_current full_scale;
|
||||
enum lp8788_bl_ramp_step rise_time;
|
||||
enum lp8788_bl_ramp_step fall_time;
|
||||
enum pwm_polarity pwm_pol;
|
||||
unsigned int period_ns;
|
||||
};
|
||||
|
||||
/*
|
||||
* struct lp8788_led_platform_data
|
||||
* @name : led driver name. (default: "keyboard-backlight")
|
||||
@@ -267,7 +235,6 @@ struct lp8788_vib_platform_data {
|
||||
* @buck2_dvs : configurations for buck2 dvs
|
||||
* @chg_pdata : platform data for charger driver
|
||||
* @alarm_sel : rtc alarm selection (1 or 2)
|
||||
* @bl_pdata : configurable data for backlight driver
|
||||
* @led_pdata : configurable data for led driver
|
||||
* @vib_pdata : configurable data for vibrator driver
|
||||
* @adc_pdata : iio map data for adc driver
|
||||
@@ -289,9 +256,6 @@ struct lp8788_platform_data {
|
||||
/* rtc alarm */
|
||||
enum lp8788_alarm_sel alarm_sel;
|
||||
|
||||
/* backlight */
|
||||
struct lp8788_backlight_platform_data *bl_pdata;
|
||||
|
||||
/* current sinks */
|
||||
struct lp8788_led_platform_data *led_pdata;
|
||||
struct lp8788_vib_platform_data *vib_pdata;
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
struct omap_backlight_config {
|
||||
int default_intensity;
|
||||
int (*set_power)(struct device *dev, int state);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,7 +19,6 @@ struct platform_pwm_backlight_data {
|
||||
int (*notify)(struct device *dev, int brightness);
|
||||
void (*notify_after)(struct device *dev, int brightness);
|
||||
void (*exit)(struct device *dev);
|
||||
int (*check_fb)(struct device *dev, struct fb_info *info);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user