mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
Merge pull request #2118 from MilhouseVH/linux4137+
linux: update to linux-4.13.11
This commit is contained in:
commit
bb48eac8bb
@ -66,8 +66,8 @@ case "$LINUX" in
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET imx6-status-led imx6-soc-fan irqbalanced"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="4.13.6"
|
||||
PKG_SHA256="47d419ceae1d353dad565b858301ac9670c747deb37936c8a935915b3bdd6050"
|
||||
PKG_VERSION="4.13.11"
|
||||
PKG_SHA256="a4bf7238d6b1256052243462096f3cf8cca5af058928c41a6c3122264e14f4ef"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_PATCH_DIRS="default"
|
||||
;;
|
||||
|
@ -1,24 +1,8 @@
|
||||
From 81f46f38dc5b67b223774310951ad9ce444c120b Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <peter.fruehberger@gmail.com>
|
||||
Date: Sat, 16 Sep 2017 12:42:34 +0200
|
||||
Subject: [PATCH] i915: Implement uncompressed Video Range output
|
||||
|
||||
Signed-off-by: fritsch <peter.fruehberger@gmail.com>
|
||||
---
|
||||
drivers/gpu/drm/i915/i915_drv.h | 1 +
|
||||
drivers/gpu/drm/i915/intel_color.c | 11 +++++++----
|
||||
drivers/gpu/drm/i915/intel_display.c | 6 ++++--
|
||||
drivers/gpu/drm/i915/intel_dp.c | 3 ++-
|
||||
drivers/gpu/drm/i915/intel_drv.h | 11 +++++++++--
|
||||
drivers/gpu/drm/i915/intel_hdmi.c | 16 +++++++++++++---
|
||||
drivers/gpu/drm/i915/intel_modes.c | 1 +
|
||||
7 files changed, 37 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
|
||||
index 5aecbf795b55..70bd525317c8 100644
|
||||
index e1f7c97..d99e406 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_drv.h
|
||||
+++ b/drivers/gpu/drm/i915/i915_drv.h
|
||||
@@ -4230,6 +4230,7 @@ __raw_write(64, q)
|
||||
@@ -4044,6 +4044,7 @@ __raw_write(64, q)
|
||||
#define INTEL_BROADCAST_RGB_AUTO 0
|
||||
#define INTEL_BROADCAST_RGB_FULL 1
|
||||
#define INTEL_BROADCAST_RGB_LIMITED 2
|
||||
@ -26,149 +10,48 @@ index 5aecbf795b55..70bd525317c8 100644
|
||||
|
||||
static inline i915_reg_t i915_vgacntrl_reg(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
|
||||
index ff9ecd211abb..a2dccc64a5a0 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_color.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_color.c
|
||||
@@ -149,7 +149,7 @@ static void i9xx_load_csc_matrix(struct drm_crtc_state *crtc_state)
|
||||
(struct drm_color_ctm *)crtc_state->ctm->data;
|
||||
uint64_t input[9] = { 0, };
|
||||
|
||||
- if (intel_crtc_state->limited_color_range) {
|
||||
+ if (intel_crtc_state->limited_color_range && intel_crtc_state->compress_range) {
|
||||
ctm_mult_by_limited(input, ctm->matrix);
|
||||
} else {
|
||||
for (i = 0; i < ARRAY_SIZE(input); i++)
|
||||
@@ -201,7 +201,8 @@ static void i9xx_load_csc_matrix(struct drm_crtc_state *crtc_state)
|
||||
* into consideration.
|
||||
*/
|
||||
for (i = 0; i < 3; i++) {
|
||||
- if (intel_crtc_state->limited_color_range)
|
||||
+ if (intel_crtc_state->limited_color_range &&
|
||||
+ intel_crtc_state->compress_range)
|
||||
coeffs[i * 3 + i] =
|
||||
I9XX_CSC_COEFF_LIMITED_RANGE;
|
||||
else
|
||||
@@ -225,7 +226,8 @@ static void i9xx_load_csc_matrix(struct drm_crtc_state *crtc_state)
|
||||
if (INTEL_GEN(dev_priv) > 6) {
|
||||
uint16_t postoff = 0;
|
||||
|
||||
- if (intel_crtc_state->limited_color_range)
|
||||
+ if (intel_crtc_state->limited_color_range &&
|
||||
+ intel_crtc_state->compress_range)
|
||||
postoff = (16 * (1 << 12) / 255) & 0x1fff;
|
||||
|
||||
I915_WRITE(PIPE_CSC_POSTOFF_HI(pipe), postoff);
|
||||
@@ -236,7 +238,8 @@ static void i9xx_load_csc_matrix(struct drm_crtc_state *crtc_state)
|
||||
} else {
|
||||
uint32_t mode = CSC_MODE_YUV_TO_RGB;
|
||||
|
||||
- if (intel_crtc_state->limited_color_range)
|
||||
+ if (intel_crtc_state->limited_color_range &&
|
||||
+ intel_crtc_state->compress_range)
|
||||
mode |= CSC_BLACK_SCREEN_OFFSET;
|
||||
|
||||
I915_WRITE(PIPE_CSC_MODE(pipe), mode);
|
||||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||
index 8599e425abb1..4de43eb12f0e 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -7247,7 +7247,8 @@ static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc)
|
||||
pipeconf |= PIPECONF_PROGRESSIVE;
|
||||
|
||||
if ((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
|
||||
- intel_crtc->config->limited_color_range)
|
||||
+ intel_crtc->config->limited_color_range &&
|
||||
+ intel_crtc->config->compress_range)
|
||||
pipeconf |= PIPECONF_COLOR_RANGE_SELECT;
|
||||
|
||||
I915_WRITE(PIPECONF(intel_crtc->pipe), pipeconf);
|
||||
@@ -8177,7 +8178,8 @@ static void ironlake_set_pipeconf(struct drm_crtc *crtc)
|
||||
else
|
||||
val |= PIPECONF_PROGRESSIVE;
|
||||
|
||||
- if (intel_crtc->config->limited_color_range)
|
||||
+ if (intel_crtc->config->limited_color_range &&
|
||||
+ intel_crtc->config->compress_range)
|
||||
val |= PIPECONF_COLOR_RANGE_SELECT;
|
||||
|
||||
I915_WRITE(PIPECONF(pipe), val);
|
||||
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
|
||||
index 887953c0f495..437dd0465be3 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_dp.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_dp.c
|
||||
@@ -1926,7 +1926,8 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
|
||||
trans_dp &= ~TRANS_DP_ENH_FRAMING;
|
||||
I915_WRITE(TRANS_DP_CTL(crtc->pipe), trans_dp);
|
||||
} else {
|
||||
- if (IS_G4X(dev_priv) && pipe_config->limited_color_range)
|
||||
+ if (IS_G4X(dev_priv) && pipe_config->limited_color_range &&
|
||||
+ pipe_config->compress_range)
|
||||
intel_dp->DP |= DP_COLOR_RANGE_16_235;
|
||||
|
||||
if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC)
|
||||
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
|
||||
index 307807672896..35602a1ed471 100644
|
||||
index d93efb4..0de8a5e 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_drv.h
|
||||
+++ b/drivers/gpu/drm/i915/intel_drv.h
|
||||
@@ -649,11 +649,18 @@ struct intel_crtc_state {
|
||||
enum transcoder cpu_transcoder;
|
||||
|
||||
/*
|
||||
- * Use reduced/limited/broadcast rbg range, compressing from the full
|
||||
- * range fed into the crtcs.
|
||||
+ * Use reduced/limited/broadcast rbg range.
|
||||
@@ -652,6 +652,13 @@ struct intel_crtc_state {
|
||||
*/
|
||||
bool limited_color_range;
|
||||
|
||||
+ /*
|
||||
+ *
|
||||
+ * Compress the input range when doing limited/broadcast rgb range
|
||||
+ * output. This is the default for Limited 16:235 Output mode.
|
||||
+ * Use reduced/limited/broadcast rgb range without compressing.
|
||||
+ *
|
||||
+ */
|
||||
+ bool compress_range;
|
||||
+ bool video_color_range;
|
||||
+
|
||||
/* Bitmask of encoder types (enum intel_output_type)
|
||||
* driven by the pipe.
|
||||
*/
|
||||
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
|
||||
index e6f8f30ce7bd..4963903f177e 100644
|
||||
index ec0779a..42fd4e5 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_hdmi.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
|
||||
@@ -880,7 +880,8 @@ static void intel_hdmi_prepare(struct intel_encoder *encoder,
|
||||
intel_dp_dual_mode_set_tmds_output(intel_hdmi, true);
|
||||
|
||||
hdmi_val = SDVO_ENCODING_HDMI;
|
||||
- if (!HAS_PCH_SPLIT(dev_priv) && crtc_state->limited_color_range)
|
||||
+ if (!HAS_PCH_SPLIT(dev_priv) && crtc_state->limited_color_range
|
||||
+ && crtc_state->compress_range)
|
||||
hdmi_val |= HDMI_COLOR_RANGE_16_235;
|
||||
if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC)
|
||||
hdmi_val |= SDVO_VSYNC_ACTIVE_HIGH;
|
||||
@@ -1419,9 +1420,18 @@ bool intel_hdmi_compute_config(struct intel_encoder *encoder,
|
||||
pipe_config->has_hdmi_sink &&
|
||||
drm_default_rgb_quant_range(adjusted_mode) ==
|
||||
HDMI_QUANTIZATION_RANGE_LIMITED;
|
||||
+ pipe_config->compress_range = pipe_config->limited_color_range;
|
||||
+ } else if (intel_conn_state->broadcast_rgb
|
||||
+ == INTEL_BROADCAST_RGB_LIMITED) {
|
||||
+ pipe_config->limited_color_range = true;
|
||||
+ pipe_config->compress_range = true;
|
||||
+ } else if (intel_conn_state->broadcast_rgb
|
||||
+ == INTEL_BROADCAST_RGB_FULL) {
|
||||
+ pipe_config->limited_color_range = false;
|
||||
+ pipe_config->compress_range = false;
|
||||
} else {
|
||||
- pipe_config->limited_color_range =
|
||||
- intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_LIMITED;
|
||||
+ pipe_config->limited_color_range = true;
|
||||
+ pipe_config->compress_range = false;
|
||||
@@ -470,7 +470,7 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
|
||||
}
|
||||
|
||||
drm_hdmi_avi_infoframe_quant_range(&frame.avi, adjusted_mode,
|
||||
- crtc_state->limited_color_range ?
|
||||
+ (crtc_state->limited_color_range || crtc_state->video_color_range) ?
|
||||
HDMI_QUANTIZATION_RANGE_LIMITED :
|
||||
HDMI_QUANTIZATION_RANGE_FULL,
|
||||
intel_hdmi->rgb_quant_range_selectable);
|
||||
@@ -1370,6 +1370,8 @@ bool intel_hdmi_compute_config(struct intel_encoder *encoder,
|
||||
intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_LIMITED;
|
||||
}
|
||||
|
||||
+ pipe_config->video_color_range = (intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_VIDEO);
|
||||
+
|
||||
if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK) {
|
||||
pipe_config->pixel_multiplier = 2;
|
||||
clock_8bpc *= 2;
|
||||
diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c
|
||||
index 951e834dd274..d817558410eb 100644
|
||||
index 951e834..d817558 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_modes.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_modes.c
|
||||
@@ -102,6 +102,7 @@ static const struct drm_prop_enum_list broadcast_rgb_names[] = {
|
||||
@ -179,7 +62,3 @@ index 951e834dd274..d817558410eb 100644
|
||||
};
|
||||
|
||||
void
|
||||
--
|
||||
2.11.0
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.13.0 Kernel Configuration
|
||||
# Linux/arm 4.13.8 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
@ -1362,7 +1362,7 @@ CONFIG_FIXED_PHY=y
|
||||
# CONFIG_MARVELL_PHY is not set
|
||||
# CONFIG_MARVELL_10G_PHY is not set
|
||||
# CONFIG_MICREL_PHY is not set
|
||||
# CONFIG_MICROCHIP_PHY is not set
|
||||
CONFIG_MICROCHIP_PHY=m
|
||||
# CONFIG_MICROSEMI_PHY is not set
|
||||
# CONFIG_NATIONAL_PHY is not set
|
||||
# CONFIG_QSEMI_PHY is not set
|
||||
@ -1390,7 +1390,7 @@ CONFIG_USB_NET_DRIVERS=y
|
||||
# CONFIG_USB_PEGASUS is not set
|
||||
# CONFIG_USB_RTL8150 is not set
|
||||
CONFIG_USB_RTL8152=m
|
||||
# CONFIG_USB_LAN78XX is not set
|
||||
CONFIG_USB_LAN78XX=m
|
||||
CONFIG_USB_USBNET=y
|
||||
CONFIG_USB_NET_AX8817X=m
|
||||
CONFIG_USB_NET_AX88179_178A=m
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.13.0 Kernel Configuration
|
||||
# Linux/arm 4.13.8 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
@ -1453,7 +1453,7 @@ CONFIG_FIXED_PHY=y
|
||||
# CONFIG_MARVELL_PHY is not set
|
||||
# CONFIG_MARVELL_10G_PHY is not set
|
||||
# CONFIG_MICREL_PHY is not set
|
||||
# CONFIG_MICROCHIP_PHY is not set
|
||||
CONFIG_MICROCHIP_PHY=m
|
||||
# CONFIG_MICROSEMI_PHY is not set
|
||||
# CONFIG_NATIONAL_PHY is not set
|
||||
# CONFIG_QSEMI_PHY is not set
|
||||
@ -1481,7 +1481,7 @@ CONFIG_USB_NET_DRIVERS=y
|
||||
# CONFIG_USB_PEGASUS is not set
|
||||
# CONFIG_USB_RTL8150 is not set
|
||||
CONFIG_USB_RTL8152=m
|
||||
# CONFIG_USB_LAN78XX is not set
|
||||
CONFIG_USB_LAN78XX=m
|
||||
CONFIG_USB_USBNET=y
|
||||
CONFIG_USB_NET_AX8817X=m
|
||||
CONFIG_USB_NET_AX88179_178A=m
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user