diff --git a/MAINTAINERS b/MAINTAINERS index b344e1318ac3..38dc099ad8ff 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6981,8 +6981,7 @@ F: Documentation/devicetree/bindings/display/bridge/renesas,dsi-csi2-tx.yaml F: Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml F: Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml F: Documentation/devicetree/bindings/display/renesas,du.yaml -F: drivers/gpu/drm/rcar-du/ -F: drivers/gpu/drm/shmobile/ +F: drivers/gpu/drm/renesas/ F: include/linux/platform_data/shmob_drm.h DRM DRIVERS FOR ROCKCHIP diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index bb2e48cc6cd6..afb3b2f5f425 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -289,9 +289,7 @@ source "drivers/gpu/drm/armada/Kconfig" source "drivers/gpu/drm/atmel-hlcdc/Kconfig" -source "drivers/gpu/drm/rcar-du/Kconfig" - -source "drivers/gpu/drm/shmobile/Kconfig" +source "drivers/gpu/drm/renesas/Kconfig" source "drivers/gpu/drm/sun4i/Kconfig" diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index a33257d2bc7f..982d9e06168a 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -156,8 +156,7 @@ obj-$(CONFIG_DRM_UDL) += udl/ obj-$(CONFIG_DRM_AST) += ast/ obj-$(CONFIG_DRM_ARMADA) += armada/ obj-$(CONFIG_DRM_ATMEL_HLCDC) += atmel-hlcdc/ -obj-y += rcar-du/ -obj-$(CONFIG_DRM_SHMOBILE) +=shmobile/ +obj-y += renesas/ obj-y += omapdrm/ obj-$(CONFIG_DRM_SUN4I) += sun4i/ obj-y += tilcdc/ diff --git a/drivers/gpu/drm/renesas/Kconfig b/drivers/gpu/drm/renesas/Kconfig new file mode 100644 index 000000000000..3777dad17f81 --- /dev/null +++ b/drivers/gpu/drm/renesas/Kconfig @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0-only + +source "drivers/gpu/drm/renesas/rcar-du/Kconfig" +source "drivers/gpu/drm/renesas/shmobile/Kconfig" diff --git a/drivers/gpu/drm/renesas/Makefile b/drivers/gpu/drm/renesas/Makefile new file mode 100644 index 000000000000..ec0e89e7a592 --- /dev/null +++ b/drivers/gpu/drm/renesas/Makefile @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0 + +obj-y += rcar-du/ +obj-$(CONFIG_DRM_SHMOBILE) += shmobile/ diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/renesas/rcar-du/Kconfig similarity index 100% rename from drivers/gpu/drm/rcar-du/Kconfig rename to drivers/gpu/drm/renesas/rcar-du/Kconfig diff --git a/drivers/gpu/drm/rcar-du/Makefile b/drivers/gpu/drm/renesas/rcar-du/Makefile similarity index 100% rename from drivers/gpu/drm/rcar-du/Makefile rename to drivers/gpu/drm/renesas/rcar-du/Makefile diff --git a/drivers/gpu/drm/rcar-du/rcar_cmm.c b/drivers/gpu/drm/renesas/rcar-du/rcar_cmm.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_cmm.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_cmm.c diff --git a/drivers/gpu/drm/rcar-du/rcar_cmm.h b/drivers/gpu/drm/renesas/rcar-du/rcar_cmm.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_cmm.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_cmm.h diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.c similarity index 96% rename from drivers/gpu/drm/rcar-du/rcar_du_crtc.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.c index d6d29be6b4f4..7e175dbfd892 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.c @@ -223,20 +223,6 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc) * DU channels that have a display PLL can't use the internal * system clock, and have no internal clock divider. */ - - /* - * The H3 ES1.x exhibits dot clock duty cycle stability issues. - * We can work around them by configuring the DPLL to twice the - * desired frequency, coupled with a /2 post-divider. Restrict - * the workaround to H3 ES1.x as ES2.0 and all other SoCs have - * no post-divider when a display PLL is present (as shown by - * the workaround breaking HDMI output on M3-W during testing). - */ - if (rcdu->info->quirks & RCAR_DU_QUIRK_H3_ES1_PCLK_STABILITY) { - target *= 2; - div = 1; - } - extclk = clk_get_rate(rcrtc->extclock); rcar_du_dpll_divider(rcrtc, &dpll, extclk, target); @@ -245,30 +231,13 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc) | DPLLCR_N(dpll.n) | DPLLCR_M(dpll.m) | DPLLCR_STBY; - if (rcrtc->index == 1) { + if (rcrtc->index == 1) dpllcr |= DPLLCR_PLCS1 | DPLLCR_INCS_DOTCLKIN1; - } else { - dpllcr |= DPLLCR_PLCS0_PLL + else + dpllcr |= DPLLCR_PLCS0 | DPLLCR_INCS_DOTCLKIN0; - /* - * On ES2.x we have a single mux controlled via bit 21, - * which selects between DCLKIN source (bit 21 = 0) and - * a PLL source (bit 21 = 1), where the PLL is always - * PLL1. - * - * On ES1.x we have an additional mux, controlled - * via bit 20, for choosing between PLL0 (bit 20 = 0) - * and PLL1 (bit 20 = 1). We always want to use PLL1, - * so on ES1.x, in addition to setting bit 21, we need - * to set the bit 20. - */ - - if (rcdu->info->quirks & RCAR_DU_QUIRK_H3_ES1_PLL) - dpllcr |= DPLLCR_PLCS0_H3ES1X_PLL1; - } - rcar_du_group_write(rcrtc->group, DPLLCR, dpllcr); escr = ESCR_DCLKSEL_DCLKIN | div; diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.h b/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_crtc.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.h diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.c similarity index 93% rename from drivers/gpu/drm/rcar-du/rcar_du_drv.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.c index b9a94c5260e9..1ffde19cb87f 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.c @@ -16,7 +16,6 @@ #include #include #include -#include #include #include @@ -387,43 +386,6 @@ static const struct rcar_du_device_info rcar_du_r8a7795_info = { .dpll_mask = BIT(2) | BIT(1), }; -static const struct rcar_du_device_info rcar_du_r8a7795_es1_info = { - .gen = 3, - .features = RCAR_DU_FEATURE_CRTC_IRQ - | RCAR_DU_FEATURE_CRTC_CLOCK - | RCAR_DU_FEATURE_VSP1_SOURCE - | RCAR_DU_FEATURE_INTERLACED - | RCAR_DU_FEATURE_TVM_SYNC, - .quirks = RCAR_DU_QUIRK_H3_ES1_PCLK_STABILITY - | RCAR_DU_QUIRK_H3_ES1_PLL, - .channels_mask = BIT(3) | BIT(2) | BIT(1) | BIT(0), - .routes = { - /* - * R8A7795 has one RGB output, two HDMI outputs and one - * LVDS output. - */ - [RCAR_DU_OUTPUT_DPAD0] = { - .possible_crtcs = BIT(3), - .port = 0, - }, - [RCAR_DU_OUTPUT_HDMI0] = { - .possible_crtcs = BIT(1), - .port = 1, - }, - [RCAR_DU_OUTPUT_HDMI1] = { - .possible_crtcs = BIT(2), - .port = 2, - }, - [RCAR_DU_OUTPUT_LVDS0] = { - .possible_crtcs = BIT(0), - .port = 3, - }, - }, - .num_lvds = 1, - .num_rpf = 5, - .dpll_mask = BIT(2) | BIT(1), -}; - static const struct rcar_du_device_info rcar_du_r8a7796_info = { .gen = 3, .features = RCAR_DU_FEATURE_CRTC_IRQ @@ -614,11 +576,6 @@ static const struct of_device_id rcar_du_of_table[] = { MODULE_DEVICE_TABLE(of, rcar_du_of_table); -static const struct soc_device_attribute rcar_du_soc_table[] = { - { .soc_id = "r8a7795", .revision = "ES1.*", .data = &rcar_du_r8a7795_es1_info }, - { /* sentinel */ } -}; - const char *rcar_du_output_name(enum rcar_du_output output) { static const char * const names[] = { @@ -707,7 +664,6 @@ static void rcar_du_shutdown(struct platform_device *pdev) static int rcar_du_probe(struct platform_device *pdev) { - const struct soc_device_attribute *soc_attr; struct rcar_du_device *rcdu; unsigned int mask; int ret; @@ -725,10 +681,6 @@ static int rcar_du_probe(struct platform_device *pdev) rcdu->info = of_device_get_match_data(rcdu->dev); - soc_attr = soc_device_match(rcar_du_soc_table); - if (soc_attr) - rcdu->info = soc_attr->data; - platform_set_drvdata(pdev, rcdu); /* I/O resources */ diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h b/drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.h similarity index 96% rename from drivers/gpu/drm/rcar-du/rcar_du_drv.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.h index acc3673fefe1..5cfa2bb7ad93 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.h @@ -34,8 +34,6 @@ struct rcar_du_device; #define RCAR_DU_FEATURE_NO_BLENDING BIT(5) /* PnMR.SPIM does not have ALP nor EOR bits */ #define RCAR_DU_QUIRK_ALIGN_128B BIT(0) /* Align pitches to 128 bytes */ -#define RCAR_DU_QUIRK_H3_ES1_PCLK_STABILITY BIT(1) /* H3 ES1 has pclk stability issue */ -#define RCAR_DU_QUIRK_H3_ES1_PLL BIT(2) /* H3 ES1 PLL setup differs from non-ES1 */ enum rcar_du_output { RCAR_DU_OUTPUT_DPAD0, diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_encoder.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h b/drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_encoder.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.h diff --git a/drivers/gpu/drm/rcar-du/rcar_du_group.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_group.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_group.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_group.c diff --git a/drivers/gpu/drm/rcar-du/rcar_du_group.h b/drivers/gpu/drm/renesas/rcar-du/rcar_du_group.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_group.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_group.h diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_kms.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.h b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_kms.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.h diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_plane.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.h b/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_plane.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.h diff --git a/drivers/gpu/drm/rcar-du/rcar_du_regs.h b/drivers/gpu/drm/renesas/rcar-du/rcar_du_regs.h similarity index 99% rename from drivers/gpu/drm/rcar-du/rcar_du_regs.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_regs.h index 6c750fab6ebb..391de6661d8b 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_regs.h +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_regs.h @@ -283,8 +283,7 @@ #define DPLLCR 0x20044 #define DPLLCR_CODE (0x95 << 24) #define DPLLCR_PLCS1 (1 << 23) -#define DPLLCR_PLCS0_PLL (1 << 21) -#define DPLLCR_PLCS0_H3ES1X_PLL1 (1 << 20) +#define DPLLCR_PLCS0 (1 << 21) #define DPLLCR_CLKE (1 << 18) #define DPLLCR_FDPLL(n) ((n) << 12) #define DPLLCR_N(n) ((n) << 5) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_vsp.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.h b/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_vsp.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.h diff --git a/drivers/gpu/drm/rcar-du/rcar_du_writeback.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_writeback.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c diff --git a/drivers/gpu/drm/rcar-du/rcar_du_writeback.h b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_du_writeback.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.h diff --git a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c b/drivers/gpu/drm/renesas/rcar-du/rcar_dw_hdmi.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_dw_hdmi.c diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/renesas/rcar-du/rcar_lvds.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_lvds.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_lvds.c diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.h b/drivers/gpu/drm/renesas/rcar-du/rcar_lvds.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_lvds.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_lvds.h diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds_regs.h b/drivers/gpu/drm/renesas/rcar-du/rcar_lvds_regs.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_lvds_regs.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_lvds_regs.h diff --git a/drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c b/drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c rename to drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c diff --git a/drivers/gpu/drm/rcar-du/rcar_mipi_dsi.h b/drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_mipi_dsi.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.h diff --git a/drivers/gpu/drm/rcar-du/rcar_mipi_dsi_regs.h b/drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi_regs.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rcar_mipi_dsi_regs.h rename to drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi_regs.h diff --git a/drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c b/drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi.c similarity index 100% rename from drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c rename to drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi.c diff --git a/drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi_regs.h b/drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi_regs.h similarity index 100% rename from drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi_regs.h rename to drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi_regs.h diff --git a/drivers/gpu/drm/shmobile/Kconfig b/drivers/gpu/drm/renesas/shmobile/Kconfig similarity index 100% rename from drivers/gpu/drm/shmobile/Kconfig rename to drivers/gpu/drm/renesas/shmobile/Kconfig diff --git a/drivers/gpu/drm/shmobile/Makefile b/drivers/gpu/drm/renesas/shmobile/Makefile similarity index 100% rename from drivers/gpu/drm/shmobile/Makefile rename to drivers/gpu/drm/renesas/shmobile/Makefile diff --git a/drivers/gpu/drm/shmobile/shmob_drm_backlight.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_backlight.c rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c diff --git a/drivers/gpu/drm/shmobile/shmob_drm_backlight.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_backlight.h rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_crtc.c rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_crtc.h rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_drv.c rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_drv.h rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h diff --git a/drivers/gpu/drm/shmobile/shmob_drm_kms.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_kms.c rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c diff --git a/drivers/gpu/drm/shmobile/shmob_drm_kms.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.h similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_kms.h rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.h diff --git a/drivers/gpu/drm/shmobile/shmob_drm_plane.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_plane.c rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c diff --git a/drivers/gpu/drm/shmobile/shmob_drm_plane.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.h similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_plane.h rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.h diff --git a/drivers/gpu/drm/shmobile/shmob_drm_regs.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_regs.h similarity index 100% rename from drivers/gpu/drm/shmobile/shmob_drm_regs.h rename to drivers/gpu/drm/renesas/shmobile/shmob_drm_regs.h