drm/dsi: Implement DCS set_{column,page}_address commands
Provide small convenience wrappers to set the column and page extents of the frame memory accessed by the host processors. Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
		
							parent
							
								
									5cc0af16fc
								
							
						
					
					
						commit
						3b46d4a0de
					
				| @ -728,6 +728,54 @@ int mipi_dsi_dcs_set_display_on(struct mipi_dsi_device *dsi) | ||||
| } | ||||
| EXPORT_SYMBOL(mipi_dsi_dcs_set_display_on); | ||||
| 
 | ||||
| /**
 | ||||
|  * mipi_dsi_dcs_set_column_address() - define the column extent of the frame | ||||
|  *    memory accessed by the host processor | ||||
|  * @dsi: DSI peripheral device | ||||
|  * @start: first column of frame memory | ||||
|  * @end: last column of frame memory | ||||
|  * | ||||
|  * Return: 0 on success or a negative error code on failure. | ||||
|  */ | ||||
| int mipi_dsi_dcs_set_column_address(struct mipi_dsi_device *dsi, u16 start, | ||||
| 				    u16 end) | ||||
| { | ||||
| 	u8 payload[4] = { start >> 8, start & 0xff, end >> 8, end & 0xff }; | ||||
| 	ssize_t err; | ||||
| 
 | ||||
| 	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_COLUMN_ADDRESS, payload, | ||||
| 				 sizeof(payload)); | ||||
| 	if (err < 0) | ||||
| 		return err; | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| EXPORT_SYMBOL(mipi_dsi_dcs_set_column_address); | ||||
| 
 | ||||
| /**
 | ||||
|  * mipi_dsi_dcs_set_page_address() - define the page extent of the frame | ||||
|  *    memory accessed by the host processor | ||||
|  * @dsi: DSI peripheral device | ||||
|  * @start: first page of frame memory | ||||
|  * @end: last page of frame memory | ||||
|  * | ||||
|  * Return: 0 on success or a negative error code on failure. | ||||
|  */ | ||||
| int mipi_dsi_dcs_set_page_address(struct mipi_dsi_device *dsi, u16 start, | ||||
| 				  u16 end) | ||||
| { | ||||
| 	u8 payload[4] = { start >> 8, start & 0xff, end >> 8, end & 0xff }; | ||||
| 	ssize_t err; | ||||
| 
 | ||||
| 	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_PAGE_ADDRESS, payload, | ||||
| 				 sizeof(payload)); | ||||
| 	if (err < 0) | ||||
| 		return err; | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| EXPORT_SYMBOL(mipi_dsi_dcs_set_page_address); | ||||
| 
 | ||||
| /**
 | ||||
|  * mipi_dsi_dcs_set_tear_off() - turn off the display module's Tearing Effect | ||||
|  *    output signal on the TE signal line | ||||
|  | ||||
| @ -205,6 +205,10 @@ int mipi_dsi_dcs_enter_sleep_mode(struct mipi_dsi_device *dsi); | ||||
| int mipi_dsi_dcs_exit_sleep_mode(struct mipi_dsi_device *dsi); | ||||
| int mipi_dsi_dcs_set_display_off(struct mipi_dsi_device *dsi); | ||||
| int mipi_dsi_dcs_set_display_on(struct mipi_dsi_device *dsi); | ||||
| int mipi_dsi_dcs_set_column_address(struct mipi_dsi_device *dsi, u16 start, | ||||
| 				    u16 end); | ||||
| int mipi_dsi_dcs_set_page_address(struct mipi_dsi_device *dsi, u16 start, | ||||
| 				  u16 end); | ||||
| int mipi_dsi_dcs_set_tear_off(struct mipi_dsi_device *dsi); | ||||
| int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi, | ||||
| 			     enum mipi_dsi_dcs_tear_mode mode); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user