drm/sti: Build monolithic driver
authorThierry Reding <treding@nvidia.com>
Thu, 24 Sep 2015 17:02:40 +0000 (19:02 +0200)
committerVincent Abriou <vincent.abriou@st.com>
Tue, 3 Nov 2015 12:04:54 +0000 (13:04 +0100)
There's no use building the individual drivers as separate modules
because they are all only useful if combined into a single DRM/KMS
device.

Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Vincent Abriou <vincent.abriou@st.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Vincent Abriou <vincent.abriou@st.com>
drivers/gpu/drm/sti/Makefile
drivers/gpu/drm/sti/sti_compositor.c
drivers/gpu/drm/sti/sti_drv.c
drivers/gpu/drm/sti/sti_drv.h
drivers/gpu/drm/sti/sti_dvo.c
drivers/gpu/drm/sti/sti_hda.c
drivers/gpu/drm/sti/sti_hdmi.c
drivers/gpu/drm/sti/sti_hqvdp.c
drivers/gpu/drm/sti/sti_tvout.c
drivers/gpu/drm/sti/sti_vtac.c
drivers/gpu/drm/sti/sti_vtg.c

index e27490b492a5280a254b9a196d452f429abb9466..b8057620b3b35702f23476584c15efc0d2a7763e 100644 (file)
@@ -1,26 +1,23 @@
-sticompositor-y := \
+sti-drm-y := \
        sti_mixer.o \
        sti_gdp.o \
        sti_vid.o \
        sti_cursor.o \
        sti_compositor.o \
        sti_crtc.o \
-       sti_plane.o
-
-stihdmi-y := sti_hdmi.o \
+       sti_plane.o \
+       sti_crtc.o \
+       sti_plane.o \
+       sti_hdmi.o \
        sti_hdmi_tx3g0c55phy.o \
        sti_hdmi_tx3g4c28phy.o \
-
-stidvo-y := sti_dvo.o \
-       sti_awg_utils.o
-
-obj-$(CONFIG_DRM_STI) = \
+       sti_dvo.o \
+       sti_awg_utils.o \
        sti_vtg.o \
        sti_vtac.o \
-       stihdmi.o \
        sti_hda.o \
        sti_tvout.o \
-       sticompositor.o \
        sti_hqvdp.o \
-       stidvo.o \
        sti_drv.o
+
+obj-$(CONFIG_DRM_STI) = sti-drm.o
index c652627b1bcadbe05a1a759677724f7be8819c0a..afed2171beb9a4ce4e2a6031eb139fe0247b1ae0 100644 (file)
@@ -263,7 +263,7 @@ static int sti_compositor_remove(struct platform_device *pdev)
        return 0;
 }
 
-static struct platform_driver sti_compositor_driver = {
+struct platform_driver sti_compositor_driver = {
        .driver = {
                .name = "sti-compositor",
                .of_match_table = compositor_of_match,
@@ -272,8 +272,6 @@ static struct platform_driver sti_compositor_driver = {
        .remove = sti_compositor_remove,
 };
 
-module_platform_driver(sti_compositor_driver);
-
 MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>");
 MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver");
 MODULE_LICENSE("GPL");
index f3c22ded4b74ba9a1f9ccde32d51bb621159fabd..105e7e54b2a755746f4d5d6ed480ecba85a5336f 100644 (file)
@@ -287,7 +287,29 @@ static struct platform_driver sti_platform_driver = {
        },
 };
 
-module_platform_driver(sti_platform_driver);
+static struct platform_driver * const drivers[] = {
+       &sti_tvout_driver,
+       &sti_vtac_driver,
+       &sti_hqvdp_driver,
+       &sti_hdmi_driver,
+       &sti_hda_driver,
+       &sti_dvo_driver,
+       &sti_vtg_driver,
+       &sti_compositor_driver,
+       &sti_platform_driver,
+};
+
+static int sti_drm_init(void)
+{
+       return platform_register_drivers(drivers, ARRAY_SIZE(drivers));
+}
+module_init(sti_drm_init);
+
+static void sti_drm_exit(void)
+{
+       platform_unregister_drivers(drivers, ARRAY_SIZE(drivers));
+}
+module_exit(sti_drm_exit);
 
 MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>");
 MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver");
index 9372f69e1859ff96986b0cea5c795f3d3325c047..30ddc20841c343a6b1c904864107e6b4a4d732a0 100644 (file)
@@ -32,4 +32,13 @@ struct sti_private {
        } commit;
 };
 
+extern struct platform_driver sti_tvout_driver;
+extern struct platform_driver sti_vtac_driver;
+extern struct platform_driver sti_hqvdp_driver;
+extern struct platform_driver sti_hdmi_driver;
+extern struct platform_driver sti_hda_driver;
+extern struct platform_driver sti_dvo_driver;
+extern struct platform_driver sti_vtg_driver;
+extern struct platform_driver sti_compositor_driver;
+
 #endif
index e1fdf6d553a5dd3ff00530b464f5a75db1618cde..45cbe2bf7dd60da4dbe6b513e21f8a890509c894 100644 (file)
@@ -558,8 +558,6 @@ struct platform_driver sti_dvo_driver = {
        .remove = sti_dvo_remove,
 };
 
-module_platform_driver(sti_dvo_driver);
-
 MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>");
 MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver");
 MODULE_LICENSE("GPL");
index be2563b3a3c246eb071a9525aa2d36476efea126..d735daccd4589b03528dd61eb350f9ded3b1da2d 100644 (file)
@@ -785,8 +785,6 @@ struct platform_driver sti_hda_driver = {
        .remove = sti_hda_remove,
 };
 
-module_platform_driver(sti_hda_driver);
-
 MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>");
 MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver");
 MODULE_LICENSE("GPL");
index 54db66a63343b18cf8bf84440cc23c5676526cb7..1241763a33b677ff4fb57d466311bff2ca6dfdf8 100644 (file)
@@ -902,8 +902,6 @@ struct platform_driver sti_hdmi_driver = {
        .remove = sti_hdmi_remove,
 };
 
-module_platform_driver(sti_hdmi_driver);
-
 MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>");
 MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver");
 MODULE_LICENSE("GPL");
index 09d86be4f73fa6a9fde51b011474452d335fa6b5..348c7c58f3858e9d4d847e951b4cf9e8077d57fb 100644 (file)
@@ -1090,8 +1090,6 @@ struct platform_driver sti_hqvdp_driver = {
        .remove = sti_hqvdp_remove,
 };
 
-module_platform_driver(sti_hqvdp_driver);
-
 MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>");
 MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver");
 MODULE_LICENSE("GPL");
index c1aac8e66fb5024a626aa5a37bf99264beb0d870..c8a4c5dae2b6f2010365d4e63c43ec2b4d8c8659 100644 (file)
@@ -735,8 +735,6 @@ struct platform_driver sti_tvout_driver = {
        .remove = sti_tvout_remove,
 };
 
-module_platform_driver(sti_tvout_driver);
-
 MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>");
 MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver");
 MODULE_LICENSE("GPL");
index 97bcdac23ae1f0733d87b3cc6f3b071834d1bdba..b1eb0d77630dfce30ee13373371edfbb32c10dad 100644 (file)
@@ -216,8 +216,6 @@ struct platform_driver sti_vtac_driver = {
        .remove = sti_vtac_remove,
 };
 
-module_platform_driver(sti_vtac_driver);
-
 MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>");
 MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver");
 MODULE_LICENSE("GPL");
index 4d8a918db6f5c6be9e88a505ffc36cfd43c5a8c6..d8bd8b76b1fa1980b3aaca7c9bcd8058739fdfb5 100644 (file)
@@ -406,8 +406,6 @@ struct platform_driver sti_vtg_driver = {
        .remove = vtg_remove,
 };
 
-module_platform_driver(sti_vtg_driver);
-
 MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>");
 MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver");
 MODULE_LICENSE("GPL");