mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	drm/dsi: Implement DCS set/get display brightness
Provide a small convenience wrapper that set/get the display brightness. Cc: John Stultz <john.stultz@linaro.org> Cc: Sumit Semwal <sumit.semwal@linaro.org> Cc: Archit Taneja <archit.taneja@gmail.com> Cc: Rob Clark <robdclark@gmail.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Vinay Simha BN <simhavcs@gmail.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
		
							parent
							
								
									bbdcf516a6
								
							
						
					
					
						commit
						1a9d759331
					
				
					 2 changed files with 53 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -1041,6 +1041,55 @@ int mipi_dsi_dcs_set_tear_scanline(struct mipi_dsi_device *dsi, u16 scanline)
 | 
			
		|||
}
 | 
			
		||||
EXPORT_SYMBOL(mipi_dsi_dcs_set_tear_scanline);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * mipi_dsi_dcs_set_display_brightness() - sets the brightness value of the
 | 
			
		||||
 *    display
 | 
			
		||||
 * @dsi: DSI peripheral device
 | 
			
		||||
 * @brightness: brightness value
 | 
			
		||||
 *
 | 
			
		||||
 * Return: 0 on success or a negative error code on failure.
 | 
			
		||||
 */
 | 
			
		||||
int mipi_dsi_dcs_set_display_brightness(struct mipi_dsi_device *dsi,
 | 
			
		||||
					u16 brightness)
 | 
			
		||||
{
 | 
			
		||||
	u8 payload[2] = { brightness & 0xff, brightness >> 8 };
 | 
			
		||||
	ssize_t err;
 | 
			
		||||
 | 
			
		||||
	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_DISPLAY_BRIGHTNESS,
 | 
			
		||||
				 payload, sizeof(payload));
 | 
			
		||||
	if (err < 0)
 | 
			
		||||
		return err;
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
EXPORT_SYMBOL(mipi_dsi_dcs_set_display_brightness);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * mipi_dsi_dcs_get_display_brightness() - gets the current brightness value
 | 
			
		||||
 *    of the display
 | 
			
		||||
 * @dsi: DSI peripheral device
 | 
			
		||||
 * @brightness: brightness value
 | 
			
		||||
 *
 | 
			
		||||
 * Return: 0 on success or a negative error code on failure.
 | 
			
		||||
 */
 | 
			
		||||
int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
 | 
			
		||||
					u16 *brightness)
 | 
			
		||||
{
 | 
			
		||||
	ssize_t err;
 | 
			
		||||
 | 
			
		||||
	err = mipi_dsi_dcs_read(dsi, MIPI_DCS_GET_DISPLAY_BRIGHTNESS,
 | 
			
		||||
				brightness, sizeof(*brightness));
 | 
			
		||||
	if (err <= 0) {
 | 
			
		||||
		if (err == 0)
 | 
			
		||||
			err = -ENODATA;
 | 
			
		||||
 | 
			
		||||
		return err;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
EXPORT_SYMBOL(mipi_dsi_dcs_get_display_brightness);
 | 
			
		||||
 | 
			
		||||
static int mipi_dsi_drv_probe(struct device *dev)
 | 
			
		||||
{
 | 
			
		||||
	struct mipi_dsi_driver *drv = to_mipi_dsi_driver(dev->driver);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -270,6 +270,10 @@ int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
 | 
			
		|||
			     enum mipi_dsi_dcs_tear_mode mode);
 | 
			
		||||
int mipi_dsi_dcs_set_pixel_format(struct mipi_dsi_device *dsi, u8 format);
 | 
			
		||||
int mipi_dsi_dcs_set_tear_scanline(struct mipi_dsi_device *dsi, u16 scanline);
 | 
			
		||||
int mipi_dsi_dcs_set_display_brightness(struct mipi_dsi_device *dsi,
 | 
			
		||||
					u16 brightness);
 | 
			
		||||
int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
 | 
			
		||||
					u16 *brightness);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * struct mipi_dsi_driver - DSI driver
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue