Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • early-display
  • variant-emmc-nvme-boot
  • 2023-01-25
  • v3
  • variant-emmc-nvme-boot
  • 2020-06-01
7 results

video.c

Blame
  • Forked from Reform / reform-boundary-uboot
    3489 commits behind the upstream repository.
    video.c 1.42 KiB
    /*
     * SPDX-License-Identifier:	GPL-2.0+
     */
    
    #include <common.h>
    #include <linux/errno.h>
    #include <asm/mach-imx/video.h>
    
    int board_video_skip(void)
    {
    	int i;
    	int ret;
    	char const *panel = env_get("panel");
    
    	if (!panel) {
    		for (i = 0; i < display_count; i++) {
    			struct display_info_t const *dev = displays+i;
    			if (dev->detect && dev->detect(dev)) {
    				panel = dev->mode.name;
    				printf("auto-detected panel %s\n", panel);
    				break;
    			}
    		}
    		if (!panel) {
    			panel = displays[0].mode.name;
    			printf("No panel detected: default to %s\n", panel);
    			i = 0;
    		}
    	} else {
    		for (i = 0; i < display_count; i++) {
    			if (!strcmp(panel, displays[i].mode.name))
    				break;
    		}
    	}
    
    	if (i < display_count) {
    		ret = ipuv3_fb_init(&displays[i].mode, displays[i].di ? 1 : 0,
    				    displays[i].pixfmt);
    		if (!ret) {
    			if (displays[i].enable)
    				displays[i].enable(displays + i);
    
    			printf("Display: %s (%ux%u)\n",
    			       displays[i].mode.name,
    			       displays[i].mode.xres,
    			       displays[i].mode.yres);
    		} else
    			printf("LCD %s cannot be configured: %d\n",
    			       displays[i].mode.name, ret);
    	} else {
    		printf("unsupported panel %s\n", panel);
    		return -EINVAL;
    	}
    
    	return 0;
    }
    
    #ifdef CONFIG_IMX_HDMI
    #include <asm/arch/mxc_hdmi.h>
    #include <asm/io.h>
    int detect_hdmi(struct display_info_t const *dev)
    {
    	struct hdmi_regs *hdmi	= (struct hdmi_regs *)HDMI_ARB_BASE_ADDR;
    	return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT;
    }
    #endif