Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1232260 > unrolled thread

[PATCH 5/6] drm/sti: Build monolithic driver

Started byThierry Reding <thierry.reding@gmail.com>
First post2015-09-24 19:10 +0200
Last post2015-10-05 10:30 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 5/6] drm/sti: Build monolithic driver Thierry Reding <thierry.reding@gmail.com> - 2015-09-24 19:10 +0200
    Re: [PATCH 5/6] drm/sti: Build monolithic driver Vincent ABRIOU <vincent.abriou@st.com> - 2015-10-05 10:30 +0200

#1232260 — [PATCH 5/6] drm/sti: Build monolithic driver

FromThierry Reding <thierry.reding@gmail.com>
Date2015-09-24 19:10 +0200
Subject[PATCH 5/6] drm/sti: Build monolithic driver
Message-ID<qcibT-Sv-7@gated-at.bofh.it>
From: Thierry Reding <treding@nvidia.com>

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>
---
 drivers/gpu/drm/sti/Makefile         | 21 +++++++++------------
 drivers/gpu/drm/sti/sti_compositor.c |  4 +---
 drivers/gpu/drm/sti/sti_drv.c        | 24 +++++++++++++++++++++++-
 drivers/gpu/drm/sti/sti_drv.h        |  9 +++++++++
 drivers/gpu/drm/sti/sti_dvo.c        |  2 --
 drivers/gpu/drm/sti/sti_hda.c        |  2 --
 drivers/gpu/drm/sti/sti_hdmi.c       |  2 --
 drivers/gpu/drm/sti/sti_hqvdp.c      |  2 --
 drivers/gpu/drm/sti/sti_tvout.c      |  2 --
 drivers/gpu/drm/sti/sti_vtac.c       |  2 --
 drivers/gpu/drm/sti/sti_vtg.c        |  2 --
 11 files changed, 42 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/sti/Makefile b/drivers/gpu/drm/sti/Makefile
index e27490b492a5..b8057620b3b3 100644
--- a/drivers/gpu/drm/sti/Makefile
+++ b/drivers/gpu/drm/sti/Makefile
@@ -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
diff --git a/drivers/gpu/drm/sti/sti_compositor.c b/drivers/gpu/drm/sti/sti_compositor.c
index c652627b1bca..afed2171beb9 100644
--- a/drivers/gpu/drm/sti/sti_compositor.c
+++ b/drivers/gpu/drm/sti/sti_compositor.c
@@ -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");
diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index 9f85988a43ce..66f6e9864c99 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -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");
diff --git a/drivers/gpu/drm/sti/sti_drv.h b/drivers/gpu/drm/sti/sti_drv.h
index 9372f69e1859..30ddc20841c3 100644
--- a/drivers/gpu/drm/sti/sti_drv.h
+++ b/drivers/gpu/drm/sti/sti_drv.h
@@ -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
diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
index d141d645bd13..a619aa9e688d 100644
--- a/drivers/gpu/drm/sti/sti_dvo.c
+++ b/drivers/gpu/drm/sti/sti_dvo.c
@@ -557,8 +557,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");
diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
index 598cd78b0b16..d71abe33722e 100644
--- a/drivers/gpu/drm/sti/sti_hda.c
+++ b/drivers/gpu/drm/sti/sti_hda.c
@@ -784,8 +784,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");
diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
index 09e29e43423e..43954a212bb9 100644
--- a/drivers/gpu/drm/sti/sti_hdmi.c
+++ b/drivers/gpu/drm/sti/sti_hdmi.c
@@ -901,8 +901,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");
diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
index 09d86be4f73f..348c7c58f385 100644
--- a/drivers/gpu/drm/sti/sti_hqvdp.c
+++ b/drivers/gpu/drm/sti/sti_hqvdp.c
@@ -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");
diff --git a/drivers/gpu/drm/sti/sti_tvout.c b/drivers/gpu/drm/sti/sti_tvout.c
index c1aac8e66fb5..c8a4c5dae2b6 100644
--- a/drivers/gpu/drm/sti/sti_tvout.c
+++ b/drivers/gpu/drm/sti/sti_tvout.c
@@ -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");
diff --git a/drivers/gpu/drm/sti/sti_vtac.c b/drivers/gpu/drm/sti/sti_vtac.c
index 97bcdac23ae1..b1eb0d77630d 100644
--- a/drivers/gpu/drm/sti/sti_vtac.c
+++ b/drivers/gpu/drm/sti/sti_vtac.c
@@ -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");
diff --git a/drivers/gpu/drm/sti/sti_vtg.c b/drivers/gpu/drm/sti/sti_vtg.c
index 4d8a918db6f5..d8bd8b76b1fa 100644
--- a/drivers/gpu/drm/sti/sti_vtg.c
+++ b/drivers/gpu/drm/sti/sti_vtg.c
@@ -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");
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1239348

FromVincent ABRIOU <vincent.abriou@st.com>
Date2015-10-05 10:30 +0200
Message-ID<qg9jJ-1RW-29@gated-at.bofh.it>
In reply to#1232260
Hi Thierry,

Ack-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vicnent

On 09/24/2015 07:02 PM, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
>
> 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>
> ---
>   drivers/gpu/drm/sti/Makefile         | 21 +++++++++------------
>   drivers/gpu/drm/sti/sti_compositor.c |  4 +---
>   drivers/gpu/drm/sti/sti_drv.c        | 24 +++++++++++++++++++++++-
>   drivers/gpu/drm/sti/sti_drv.h        |  9 +++++++++
>   drivers/gpu/drm/sti/sti_dvo.c        |  2 --
>   drivers/gpu/drm/sti/sti_hda.c        |  2 --
>   drivers/gpu/drm/sti/sti_hdmi.c       |  2 --
>   drivers/gpu/drm/sti/sti_hqvdp.c      |  2 --
>   drivers/gpu/drm/sti/sti_tvout.c      |  2 --
>   drivers/gpu/drm/sti/sti_vtac.c       |  2 --
>   drivers/gpu/drm/sti/sti_vtg.c        |  2 --
>   11 files changed, 42 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/gpu/drm/sti/Makefile b/drivers/gpu/drm/sti/Makefile
> index e27490b492a5..b8057620b3b3 100644
> --- a/drivers/gpu/drm/sti/Makefile
> +++ b/drivers/gpu/drm/sti/Makefile
> @@ -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
> diff --git a/drivers/gpu/drm/sti/sti_compositor.c b/drivers/gpu/drm/sti/sti_compositor.c
> index c652627b1bca..afed2171beb9 100644
> --- a/drivers/gpu/drm/sti/sti_compositor.c
> +++ b/drivers/gpu/drm/sti/sti_compositor.c
> @@ -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");
> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
> index 9f85988a43ce..66f6e9864c99 100644
> --- a/drivers/gpu/drm/sti/sti_drv.c
> +++ b/drivers/gpu/drm/sti/sti_drv.c
> @@ -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");
> diff --git a/drivers/gpu/drm/sti/sti_drv.h b/drivers/gpu/drm/sti/sti_drv.h
> index 9372f69e1859..30ddc20841c3 100644
> --- a/drivers/gpu/drm/sti/sti_drv.h
> +++ b/drivers/gpu/drm/sti/sti_drv.h
> @@ -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
> diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
> index d141d645bd13..a619aa9e688d 100644
> --- a/drivers/gpu/drm/sti/sti_dvo.c
> +++ b/drivers/gpu/drm/sti/sti_dvo.c
> @@ -557,8 +557,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");
> diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
> index 598cd78b0b16..d71abe33722e 100644
> --- a/drivers/gpu/drm/sti/sti_hda.c
> +++ b/drivers/gpu/drm/sti/sti_hda.c
> @@ -784,8 +784,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");
> diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
> index 09e29e43423e..43954a212bb9 100644
> --- a/drivers/gpu/drm/sti/sti_hdmi.c
> +++ b/drivers/gpu/drm/sti/sti_hdmi.c
> @@ -901,8 +901,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");
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 09d86be4f73f..348c7c58f385 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -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");
> diff --git a/drivers/gpu/drm/sti/sti_tvout.c b/drivers/gpu/drm/sti/sti_tvout.c
> index c1aac8e66fb5..c8a4c5dae2b6 100644
> --- a/drivers/gpu/drm/sti/sti_tvout.c
> +++ b/drivers/gpu/drm/sti/sti_tvout.c
> @@ -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");
> diff --git a/drivers/gpu/drm/sti/sti_vtac.c b/drivers/gpu/drm/sti/sti_vtac.c
> index 97bcdac23ae1..b1eb0d77630d 100644
> --- a/drivers/gpu/drm/sti/sti_vtac.c
> +++ b/drivers/gpu/drm/sti/sti_vtac.c
> @@ -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");
> diff --git a/drivers/gpu/drm/sti/sti_vtg.c b/drivers/gpu/drm/sti/sti_vtg.c
> index 4d8a918db6f5..d8bd8b76b1fa 100644
> --- a/drivers/gpu/drm/sti/sti_vtg.c
> +++ b/drivers/gpu/drm/sti/sti_vtg.c
> @@ -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");
>--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web