Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70412cfa authored by Rafael Antognolli's avatar Rafael Antognolli Committed by Daniel Vetter
Browse files

drm/kms_helper: Add a common place to call init and exit functions.



The module_init and module_exit functions will start here, and call the
subsequent init's and exit's.

v10:
 - Keep __init on drm_fb_helper init function.
 - Move MODULE_* macros to the common file.

Signed-off-by: default avatarRafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1453417821-2811-2-git-send-email-rafael.antognolli@intel.com
parent 382ab95d
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -22,7 +22,9 @@ drm-$(CONFIG_OF) += drm_of.o
drm-$(CONFIG_AGP) += drm_agpsupport.o
drm-$(CONFIG_AGP) += drm_agpsupport.o


drm_kms_helper-y := drm_crtc_helper.o drm_dp_helper.o drm_probe_helper.o \
drm_kms_helper-y := drm_crtc_helper.o drm_dp_helper.o drm_probe_helper.o \
		drm_plane_helper.o drm_dp_mst_topology.o drm_atomic_helper.o
		drm_plane_helper.o drm_dp_mst_topology.o drm_atomic_helper.o \
		drm_kms_helper_common.o

drm_kms_helper-$(CONFIG_DRM_LOAD_EDID_FIRMWARE) += drm_edid_load.o
drm_kms_helper-$(CONFIG_DRM_LOAD_EDID_FIRMWARE) += drm_edid_load.o
drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o
drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o
drm_kms_helper-$(CONFIG_DRM_KMS_CMA_HELPER) += drm_fb_cma_helper.o
drm_kms_helper-$(CONFIG_DRM_KMS_CMA_HELPER) += drm_fb_cma_helper.o
+0 −3
Original line number Original line Diff line number Diff line
@@ -73,9 +73,6 @@
 * &drm_crtc_helper_funcs, struct &drm_encoder_helper_funcs and struct
 * &drm_crtc_helper_funcs, struct &drm_encoder_helper_funcs and struct
 * &drm_connector_helper_funcs.
 * &drm_connector_helper_funcs.
 */
 */
MODULE_AUTHOR("David Airlie, Jesse Barnes");
MODULE_DESCRIPTION("DRM KMS helper");
MODULE_LICENSE("GPL and additional rights");


/**
/**
 * drm_helper_move_panel_connectors_to_head() - move panels to the front in the
 * drm_helper_move_panel_connectors_to_head() - move panels to the front in the
+4 −5
Original line number Original line Diff line number Diff line
@@ -2196,9 +2196,9 @@ EXPORT_SYMBOL(drm_fb_helper_hotplug_event);
 * but the module doesn't depend on any fb console symbols.  At least
 * but the module doesn't depend on any fb console symbols.  At least
 * attempt to load fbcon to avoid leaving the system without a usable console.
 * attempt to load fbcon to avoid leaving the system without a usable console.
 */
 */
#if defined(CONFIG_FRAMEBUFFER_CONSOLE_MODULE) && !defined(CONFIG_EXPERT)
int __init drm_fb_helper_modinit(void)
static int __init drm_fb_helper_modinit(void)
{
{
#if defined(CONFIG_FRAMEBUFFER_CONSOLE_MODULE) && !defined(CONFIG_EXPERT)
	const char *name = "fbcon";
	const char *name = "fbcon";
	struct module *fbcon;
	struct module *fbcon;


@@ -2208,8 +2208,7 @@ static int __init drm_fb_helper_modinit(void)


	if (!fbcon)
	if (!fbcon)
		request_module_nowait(name);
		request_module_nowait(name);
#endif
	return 0;
	return 0;
}
}

EXPORT_SYMBOL(drm_fb_helper_modinit);
module_init(drm_fb_helper_modinit);
#endif
+47 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright © 2015 Intel Corporation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 *
 * Authors:
 *    Rafael Antognolli <rafael.antognolli@intel.com>
 *
 */

#include <drm/drmP.h>
#include <drm/drm_fb_helper.h>

MODULE_AUTHOR("David Airlie, Jesse Barnes");
MODULE_DESCRIPTION("DRM KMS helper");
MODULE_LICENSE("GPL and additional rights");

static int __init drm_kms_helper_init(void)
{
	/* Call init functions from specific kms helpers here */
	return drm_fb_helper_modinit();
}

static void __exit drm_kms_helper_exit(void)
{
	/* Call exit functions from specific kms helpers here */
}

module_init(drm_kms_helper_init);
module_exit(drm_kms_helper_exit);
+6 −0
Original line number Original line Diff line number Diff line
@@ -219,6 +219,7 @@ struct drm_fb_helper {
};
};


#ifdef CONFIG_DRM_FBDEV_EMULATION
#ifdef CONFIG_DRM_FBDEV_EMULATION
int drm_fb_helper_modinit(void);
void drm_fb_helper_prepare(struct drm_device *dev, struct drm_fb_helper *helper,
void drm_fb_helper_prepare(struct drm_device *dev, struct drm_fb_helper *helper,
			   const struct drm_fb_helper_funcs *funcs);
			   const struct drm_fb_helper_funcs *funcs);
int drm_fb_helper_init(struct drm_device *dev,
int drm_fb_helper_init(struct drm_device *dev,
@@ -283,6 +284,11 @@ int drm_fb_helper_add_one_connector(struct drm_fb_helper *fb_helper, struct drm_
int drm_fb_helper_remove_one_connector(struct drm_fb_helper *fb_helper,
int drm_fb_helper_remove_one_connector(struct drm_fb_helper *fb_helper,
				       struct drm_connector *connector);
				       struct drm_connector *connector);
#else
#else
static inline int drm_fb_helper_modinit(void)
{
	return 0;
}

static inline void drm_fb_helper_prepare(struct drm_device *dev,
static inline void drm_fb_helper_prepare(struct drm_device *dev,
					struct drm_fb_helper *helper,
					struct drm_fb_helper *helper,
					const struct drm_fb_helper_funcs *funcs)
					const struct drm_fb_helper_funcs *funcs)