1
0
Fork 0

[u-boot] merge commit '7727d3b09a..0065545f0e'

Signed-off-by: hmz007 <hmz007@gmail.com>
master
hmz007 2 years ago
parent 8c37386d00
commit b9e0198c42

@ -836,12 +836,15 @@ int android_fdt_overlay_apply(void *fdt_addr)
if ((hdr->header_version == 0) || if ((hdr->header_version == 0) ||
(hdr->header_version >= 3 && !strcmp(part_boot, PART_RECOVERY))) (hdr->header_version >= 3 && !strcmp(part_boot, PART_RECOVERY)))
goto out; goto out;
}
} else { #ifdef CONFIG_VENDOR_FRIENDLYELEC
if (part_get_info_by_name(dev_desc, PART_DTBO, &part_info) < 0) if (part_get_info_by_name(dev_desc, PART_DTBO, &part_info) > 0) {
return -EINVAL;
part_dtbo = PART_DTBO; part_dtbo = PART_DTBO;
} else {
printf("No %s partition\n", PART_DTBO);
} }
#endif
ret = android_get_dtbo(&fdt_dtbo, (void *)hdr, &index, part_dtbo); ret = android_get_dtbo(&fdt_dtbo, (void *)hdr, &index, part_dtbo);
if (!ret) { if (!ret) {
@ -882,7 +885,8 @@ int android_fdt_overlay_apply(void *fdt_addr)
} }
out: out:
free(hdr); if (hdr)
free(hdr);
return 0; return 0;
} }

@ -70,8 +70,8 @@
#define EDID_QUIRK_FORCE_6BPC BIT(10) #define EDID_QUIRK_FORCE_6BPC BIT(10)
/* Force 10bpc */ /* Force 10bpc */
#define EDID_QUIRK_FORCE_10BPC BIT(11) #define EDID_QUIRK_FORCE_10BPC BIT(11)
/* Prefer the native CEA mode */ /* Prefer hight clock mode */
#define EDID_QUIRK_NATIVE_CEA_PREFERRED BIT(12) #define EDID_QUIRK_PREFER_HIGH_CLOCK BIT(12)
struct detailed_mode_closure { struct detailed_mode_closure {
struct edid *edid; struct edid *edid;
@ -134,7 +134,7 @@ static struct edid_quirk {
{ "SAM", 638, EDID_QUIRK_PREFER_LARGE_60 }, { "SAM", 638, EDID_QUIRK_PREFER_LARGE_60 },
/* Skyworth */ /* Skyworth */
{ "SKW", 1, (EDID_QUIRK_NATIVE_CEA_PREFERRED | EDID_QUIRK_PREFER_LARGE_60) }, { "SKW", 1, (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_HIGH_CLOCK) },
/* Sony PVM-2541A does up to 12 bpc, but only reports max 8 bpc */ /* Sony PVM-2541A does up to 12 bpc, but only reports max 8 bpc */
{ "SNY", 0x2541, EDID_QUIRK_FORCE_12BPC }, { "SNY", 0x2541, EDID_QUIRK_FORCE_12BPC },
@ -2690,9 +2690,6 @@ drm_display_mode_from_vic_index(const u8 *video_db, u8 video_len,
*newmode = *cea_mode_for_vic(vic); *newmode = *cea_mode_for_vic(vic);
newmode->vrefresh = 0; newmode->vrefresh = 0;
if (video_db[video_index] & 0x80)
newmode->type |= DRM_MODE_TYPE_NATIVE;
return newmode; return newmode;
} }
@ -5314,28 +5311,30 @@ static void edid_fixup_preferred(struct hdmi_edid_data *data,
if (cur_mode == preferred_mode) if (cur_mode == preferred_mode)
continue; continue;
if ((quirks & EDID_QUIRK_NATIVE_CEA_PREFERRED) &&
(cur_mode->type & DRM_MODE_TYPE_NATIVE)) {
preferred_mode = cur_mode;
break;
}
/* Largest mode is preferred */ /* Largest mode is preferred */
if (MODE_SIZE(cur_mode) > MODE_SIZE(preferred_mode)) if (MODE_SIZE(cur_mode) > MODE_SIZE(preferred_mode))
preferred_mode = cur_mode; preferred_mode = cur_mode;
cur_vrefresh = cur_mode->vrefresh ? cur_vrefresh = cur_mode->vrefresh ?
cur_mode->vrefresh : drm_get_vrefresh(cur_mode); cur_mode->vrefresh : drm_get_vrefresh(cur_mode);
preferred_vrefresh = preferred_mode->vrefresh ? preferred_vrefresh = preferred_mode->vrefresh ?
preferred_mode->vrefresh : drm_get_vrefresh(preferred_mode); preferred_mode->vrefresh : drm_get_vrefresh(preferred_mode);
/* At a given size, try to get closest to target refresh */ /* At a given size, try to get closest to target refresh */
if ((MODE_SIZE(cur_mode) == MODE_SIZE(preferred_mode)) && if ((MODE_SIZE(cur_mode) == MODE_SIZE(preferred_mode)) &&
MODE_REFRESH_DIFF(cur_vrefresh, target_refresh) < MODE_REFRESH_DIFF(cur_vrefresh, target_refresh) <
MODE_REFRESH_DIFF(preferred_vrefresh, target_refresh)) { MODE_REFRESH_DIFF(preferred_vrefresh, target_refresh)) {
preferred_mode = cur_mode; preferred_mode = cur_mode;
} }
}
/* Consider the clock like drm_mode_compare() */
if ((quirks & EDID_QUIRK_PREFER_HIGH_CLOCK) &&
(MODE_SIZE(cur_mode) == MODE_SIZE(preferred_mode)) &&
(cur_vrefresh == preferred_vrefresh) &&
(cur_mode->clock > preferred_mode->clock)) {
preferred_mode = cur_mode;
}
}
preferred_mode->type |= DRM_MODE_TYPE_PREFERRED; preferred_mode->type |= DRM_MODE_TYPE_PREFERRED;
data->preferred_mode = preferred_mode; data->preferred_mode = preferred_mode;
} }

@ -21,7 +21,6 @@
#define DRM_MODE_TYPE_DEFAULT (1<<4) #define DRM_MODE_TYPE_DEFAULT (1<<4)
#define DRM_MODE_TYPE_USERDEF (1<<5) #define DRM_MODE_TYPE_USERDEF (1<<5)
#define DRM_MODE_TYPE_DRIVER (1<<6) #define DRM_MODE_TYPE_DRIVER (1<<6)
#define DRM_MODE_TYPE_NATIVE (1<<7)
/* Video mode flags */ /* Video mode flags */
/* bit compatible with the xorg definitions. */ /* bit compatible with the xorg definitions. */

Loading…
Cancel
Save