diff --git a/config/sources/meson64.conf b/config/sources/meson64.conf index 6363feb738..11d220bf29 100644 --- a/config/sources/meson64.conf +++ b/config/sources/meson64.conf @@ -43,7 +43,7 @@ case $BRANCH in dev) KERNELSOURCE=$MAINLINE_KERNEL_SOURCE - KERNELBRANCH='branch:linux-5.0.y' + KERNELBRANCH='branch:linux-5.1.y' KERNELDIR=$MAINLINE_KERNEL_DIR SERIALCON='ttyAML0' KERNEL_USE_GCC='> 7.0' diff --git a/patch/kernel/meson64-dev/0004-ASoC-meson-add-initial-aiu-i2s-support.patch b/patch/kernel/meson64-dev/0004-ASoC-meson-add-initial-aiu-i2s-support.patch index 8fadfbc731..79d520d960 100644 --- a/patch/kernel/meson64-dev/0004-ASoC-meson-add-initial-aiu-i2s-support.patch +++ b/patch/kernel/meson64-dev/0004-ASoC-meson-add-initial-aiu-i2s-support.patch @@ -47,7 +47,7 @@ new file mode 100644 index 000000000000..d57f351b502f --- /dev/null +++ b/sound/soc/meson-gx/aiu-i2s.c -@@ -0,0 +1,747 @@ +@@ -0,0 +1,748 @@ +/* + * Copyright (C) 2017 BayLibre, SAS + * Author: Jerome Brunet @@ -363,9 +363,10 @@ index 000000000000..d57f351b502f + struct snd_card *card = rtd->card->snd_card; + size_t size = meson_aiu_i2s_dma_hw.buffer_bytes_max; + -+ return snd_pcm_lib_preallocate_pages_for_all(rtd->pcm, ++ snd_pcm_lib_preallocate_pages_for_all(rtd->pcm, + SNDRV_DMA_TYPE_DEV, + card->dev, size, size); ++ return 0; +} + +#define AIU_CLK_CTRL_I2S_DIV_EN BIT(0) diff --git a/patch/kernel/meson64-dev/0005-ASoC-meson-add-initial-spdif-support.patch b/patch/kernel/meson64-dev/0005-ASoC-meson-add-initial-spdif-support.patch index 6c3340b5d6..02a348d535 100644 --- a/patch/kernel/meson64-dev/0005-ASoC-meson-add-initial-spdif-support.patch +++ b/patch/kernel/meson64-dev/0005-ASoC-meson-add-initial-spdif-support.patch @@ -49,7 +49,7 @@ new file mode 100644 index 000000000000..17cfe134e8f7 --- /dev/null +++ b/sound/soc/meson-gx/aiu-spdif.c -@@ -0,0 +1,669 @@ +@@ -0,0 +1,670 @@ +/* + * Copyright (C) 2017 BayLibre, SAS + * Author: Jerome Brunet @@ -384,9 +384,10 @@ index 000000000000..17cfe134e8f7 + struct snd_card *card = rtd->card->snd_card; + size_t size = meson_aiu_spdif_dma_hw.buffer_bytes_max; + -+ return snd_pcm_lib_preallocate_pages_for_all(rtd->pcm, ++ snd_pcm_lib_preallocate_pages_for_all(rtd->pcm, + SNDRV_DMA_TYPE_DEV, + card->dev, size, size); ++ return 0; +} + +#define AIU_CLK_CTRL_958_DIV_EN BIT(1) diff --git a/patch/kernel/meson64-dev/0022-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch b/patch/kernel/meson64-dev/0022-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch index 22b791975b..f5f77f5c18 100644 --- a/patch/kernel/meson64-dev/0022-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch +++ b/patch/kernel/meson64-dev/0022-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch @@ -41,12 +41,12 @@ index 1fc12708dbb5..2a30d8393477 100644 } EXPORT_SYMBOL_GPL(dw_hdmi_phy_i2c_write); -+void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi) ++/*void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi) +{ + unsigned long mtmdsclock = hdmi->hdmi_data.video_mode.mpixelclock; + -+ /* Control for TMDS Bit Period/TMDS Clock-Period Ratio */ -+ if (hdmi->connector.display_info.hdmi.scdc.supported) { ++*/ /* Control for TMDS Bit Period/TMDS Clock-Period Ratio */ ++/* if (hdmi->connector.display_info.hdmi.scdc.supported) { + if (mtmdsclock > 340000000) + drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1); + else @@ -54,7 +54,7 @@ index 1fc12708dbb5..2a30d8393477 100644 + } +} +EXPORT_SYMBOL_GPL(dw_hdmi_set_high_tmds_clock_ratio); -+ ++*/ static void dw_hdmi_phy_enable_powerdown(struct dw_hdmi *hdmi, bool enable) { hdmi_mask_writeb(hdmi, !enable, HDMI_PHY_CONF0, diff --git a/patch/kernel/meson64-dev/0028-drm-meson-Add-YUV420-output-support.patch b/patch/kernel/meson64-dev/0028-drm-meson-Add-YUV420-output-support.patch index caa854bf45..3534d8304b 100644 --- a/patch/kernel/meson64-dev/0028-drm-meson-Add-YUV420-output-support.patch +++ b/patch/kernel/meson64-dev/0028-drm-meson-Add-YUV420-output-support.patch @@ -198,15 +198,14 @@ index b8775102b100..83360f37d9ce 100644 return 0; } -@@ -665,18 +710,30 @@ static void meson_venc_hdmi_encoder_mode_set(struct drm_encoder *encoder, +@@ -660,17 +715,29 @@ static void meson_venc_hdmi_encoder_mode_set(struct drm_encoder *encoder, struct meson_dw_hdmi *dw_hdmi = encoder_to_meson_dw_hdmi(encoder); struct meson_drm *priv = dw_hdmi->priv; int vic = drm_match_cea_mode(mode); + unsigned int ycrcb_map = MESON_VENC_MAP_CB_Y_CR; + bool yuv420_mode = false; - DRM_DEBUG_DRIVER("%d:\"%s\" vic %d\n", - mode->base.id, mode->name, vic); + DRM_DEBUG_DRIVER("\"%s\" vic %d\n", mode->name, vic); + if (dw_hdmi->input_bus_format == MEDIA_BUS_FMT_UYYVYY8_0_5X24) { + ycrcb_map = MESON_VENC_MAP_CR_Y_CB;