The LcdPlatformGetTimings interface function takes similar sets of multiple parameters for horizontal and vertical timings which can be aggregated in a common data type. This change defines a structure SCAN_TIMINGS for this which can be used to describe both horizontal and vertical scan timings, and accordingly redefines the LcdPlatformGetTiming interface, greatly reducing the amount of data passed about. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Girish Pathak <girish.pathak@arm.com> Signed-off-by: Evan Lloyd <evan.lloyd@arm.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
		
			
				
	
	
		
			152 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
 | 
						|
  Copyright (c) 2017, Linaro, Ltd. All rights reserved.
 | 
						|
  Copyright (c) 2018, Arm Limited. All rights reserved.
 | 
						|
 | 
						|
  This program and the accompanying materials
 | 
						|
  are licensed and made available under the terms and conditions of the BSD License
 | 
						|
  which accompanies this distribution.  The full text of the license may be found at
 | 
						|
  http://opensource.org/licenses/bsd-license.php
 | 
						|
 | 
						|
  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | 
						|
  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <Base.h>
 | 
						|
#include <Uefi/UefiBaseType.h>
 | 
						|
#include <Library/DebugLib.h>
 | 
						|
#include <Library/LcdPlatformLib.h>
 | 
						|
 | 
						|
/** Platform related initialization function.
 | 
						|
 | 
						|
  @param[in] Handle              Handle to the LCD device instance.
 | 
						|
 | 
						|
  @retval EFI_UNSUPPORTED        Interface is not supported.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
LcdPlatformInitializeDisplay (
 | 
						|
  IN EFI_HANDLE   Handle
 | 
						|
  )
 | 
						|
{
 | 
						|
  ASSERT (FALSE);
 | 
						|
  return EFI_UNSUPPORTED;
 | 
						|
}
 | 
						|
 | 
						|
/** Allocate VRAM memory in DRAM for the framebuffer
 | 
						|
  (unless it is reserved already).
 | 
						|
 | 
						|
  The allocated address can be used to set the framebuffer.
 | 
						|
 | 
						|
  @param[out] VramBaseAddress      A pointer to the framebuffer address.
 | 
						|
  @param[out] VramSize             A pointer to the size of the frame
 | 
						|
                                   buffer in bytes
 | 
						|
 | 
						|
  @retval EFI_UNSUPPORTED          Interface is not supported.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
LcdPlatformGetVram (
 | 
						|
  OUT EFI_PHYSICAL_ADDRESS*                 VramBaseAddress,
 | 
						|
  OUT UINTN*                                VramSize
 | 
						|
  )
 | 
						|
{
 | 
						|
  ASSERT (FALSE);
 | 
						|
  return EFI_UNSUPPORTED;
 | 
						|
}
 | 
						|
 | 
						|
/** Return total number of modes supported.
 | 
						|
 | 
						|
  Note: Valid mode numbers are 0 to MaxMode - 1
 | 
						|
  See Section 12.9 of the UEFI Specification 2.7
 | 
						|
 | 
						|
  @retval UINT32             Zero number of modes supported
 | 
						|
                             in a NULL library implementation.
 | 
						|
**/
 | 
						|
UINT32
 | 
						|
LcdPlatformGetMaxMode (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  ASSERT (FALSE);
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
/** Set the requested display mode.
 | 
						|
 | 
						|
  @param[in] ModeNumber            Mode Number.
 | 
						|
 | 
						|
  @retval EFI_UNSUPPORTED          Interface is not supported.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
LcdPlatformSetMode (
 | 
						|
  IN UINT32                                 ModeNumber
 | 
						|
  )
 | 
						|
{
 | 
						|
  ASSERT (FALSE);
 | 
						|
  return EFI_UNSUPPORTED;
 | 
						|
}
 | 
						|
 | 
						|
/** Return information for the requested mode number.
 | 
						|
 | 
						|
  @param[in]  ModeNumber         Mode Number.
 | 
						|
  @param[out] Info               Pointer for returned mode information
 | 
						|
                                 (on success).
 | 
						|
 | 
						|
  @retval EFI_UNSUPPORTED        Interface is not supported.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
LcdPlatformQueryMode (
 | 
						|
  IN  UINT32                                ModeNumber,
 | 
						|
  OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION  *Info
 | 
						|
  )
 | 
						|
{
 | 
						|
  ASSERT (FALSE);
 | 
						|
  return EFI_UNSUPPORTED;
 | 
						|
}
 | 
						|
 | 
						|
/** Return display timing information for the requested mode number.
 | 
						|
 | 
						|
  @param[in]  ModeNumber          Mode Number.
 | 
						|
 | 
						|
  @param[out] HRes                Pointer to horizontal resolution.
 | 
						|
  @param[out] HSync               Pointer to horizontal sync width.
 | 
						|
  @param[out] HBackPorch          Pointer to horizontal back porch.
 | 
						|
  @param[out] HFrontPorch         Pointer to horizontal front porch.
 | 
						|
  @param[out] VRes                Pointer to vertical resolution.
 | 
						|
  @param[out] VSync               Pointer to vertical sync width.
 | 
						|
  @param[out] VBackPorch          Pointer to vertical back porch.
 | 
						|
  @param[out] VFrontPorch         Pointer to vertical front porch.
 | 
						|
 | 
						|
  @retval EFI_UNSUPPORTED         Interface is not supported.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
LcdPlatformGetTimings (
 | 
						|
  IN  UINT32                              ModeNumber,
 | 
						|
  OUT SCAN_TIMINGS                        **Horizontal,
 | 
						|
  OUT SCAN_TIMINGS                        **Vertical
 | 
						|
  )
 | 
						|
{
 | 
						|
  ASSERT (FALSE);
 | 
						|
  return EFI_UNSUPPORTED;
 | 
						|
}
 | 
						|
 | 
						|
/** Return bits per pixel information for a mode number.
 | 
						|
 | 
						|
  @param[in]  ModeNumber          Mode Number.
 | 
						|
 | 
						|
  @param[out] Bpp                 Pointer to value bits per pixel information.
 | 
						|
 | 
						|
  @retval EFI_UNSUPPORTED         Interface is not supported.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
LcdPlatformGetBpp (
 | 
						|
  IN  UINT32                                ModeNumber,
 | 
						|
  OUT LCD_BPP*                              Bpp
 | 
						|
  )
 | 
						|
{
 | 
						|
  ASSERT (FALSE);
 | 
						|
  return EFI_UNSUPPORTED;
 | 
						|
}
 |