diff mbox

[09/13] drm/msm: split out msm_kms.h

Message ID 1386459345-17731-10-git-send-email-robdclark@gmail.com (mailing list archive)
State Accepted
Headers show

Commit Message

Rob Clark Dec. 7, 2013, 11:35 p.m. UTC
Signed-off-by: Rob Clark <robdclark@gmail.com>
---
 drivers/gpu/drm/msm/hdmi/hdmi_connector.c |  1 +
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h   |  1 +
 drivers/gpu/drm/msm/msm_drv.c             |  1 +
 drivers/gpu/drm/msm/msm_drv.h             | 30 ----------------
 drivers/gpu/drm/msm/msm_fb.c              |  1 +
 drivers/gpu/drm/msm/msm_kms.h             | 57 +++++++++++++++++++++++++++++++
 6 files changed, 61 insertions(+), 30 deletions(-)
 create mode 100644 drivers/gpu/drm/msm/msm_kms.h

Comments

Erik Faye-Lund Dec. 9, 2013, 5:36 p.m. UTC | #1
On Sun, Dec 8, 2013 at 12:35 AM, Rob Clark <robdclark@gmail.com> wrote:
> diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h
> new file mode 100644
> index 0000000..e42973c
> --- /dev/null
> +++ b/drivers/gpu/drm/msm/msm_kms.h
> @@ -0,0 +1,57 @@
> +/*
> + * Copyright (C) 2013 Red Hat
> + * Author: Rob Clark <robdclark@gmail.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published by
> + * the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful, but WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
> + * more details.
> + *
> + * You should have received a copy of the GNU General Public License along with
> + * this program.  If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#ifndef __MSM_KMS_H__
> +#define __MSM_KMS_H__
> +
> +#include <linux/clk.h>
> +#include <linux/regulator/consumer.h>
> +
> +#include "msm_drv.h"
> +
> +/* As there are different display controller blocks depending on the
> + * snapdragon version, the kms support is split out and the appropriate
> + * implementation is loaded at runtime.  The kms module is responsible
> + * for constructing the appropriate planes/crtcs/encoders/connectors.
> + */
> +struct msm_kms_funcs {
> +       /* hw initialization: */
> +       int (*hw_init)(struct msm_kms *kms);
> +       /* irq handling: */
> +       void (*irq_preinstall)(struct msm_kms *kms);
> +       int (*irq_postinstall)(struct msm_kms *kms);
> +       void (*irq_uninstall)(struct msm_kms *kms);
> +       irqreturn_t (*irq)(struct msm_kms *kms);
> +       int (*enable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
> +       void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
> +       /* misc: */
> +       const struct msm_format *(*get_format)(struct msm_kms *kms, uint32_t format);
> +       long (*round_pixclk)(struct msm_kms *kms, unsigned long rate,
> +                       struct drm_encoder *encoder);
> +       /* cleanup: */
> +       void (*preclose)(struct msm_kms *kms, struct drm_file *file);
> +       void (*destroy)(struct msm_kms *kms);
> +};
> +
> +struct msm_kms {
> +       const struct msm_kms_funcs *funcs;
> +};
> +
> +struct msm_kms *mdp4_kms_init(struct drm_device *dev);
> +struct msm_kms *mdp5_kms_init(struct drm_device *dev);

Shouldn't this be introduced in a follow-up patch that also adds the definition?
Rob Clark Dec. 9, 2013, 5:43 p.m. UTC | #2
On Mon, Dec 9, 2013 at 12:36 PM, Erik Faye-Lund <kusmabite@gmail.com> wrote:
> On Sun, Dec 8, 2013 at 12:35 AM, Rob Clark <robdclark@gmail.com> wrote:
>> diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h
>> new file mode 100644
>> index 0000000..e42973c
>> --- /dev/null
>> +++ b/drivers/gpu/drm/msm/msm_kms.h
>> @@ -0,0 +1,57 @@
>> +/*
>> + * Copyright (C) 2013 Red Hat
>> + * Author: Rob Clark <robdclark@gmail.com>
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms of the GNU General Public License version 2 as published by
>> + * the Free Software Foundation.
>> + *
>> + * This program is distributed in the hope that it will be useful, but WITHOUT
>> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
>> + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
>> + * more details.
>> + *
>> + * You should have received a copy of the GNU General Public License along with
>> + * this program.  If not, see <http://www.gnu.org/licenses/>.
>> + */
>> +
>> +#ifndef __MSM_KMS_H__
>> +#define __MSM_KMS_H__
>> +
>> +#include <linux/clk.h>
>> +#include <linux/regulator/consumer.h>
>> +
>> +#include "msm_drv.h"
>> +
>> +/* As there are different display controller blocks depending on the
>> + * snapdragon version, the kms support is split out and the appropriate
>> + * implementation is loaded at runtime.  The kms module is responsible
>> + * for constructing the appropriate planes/crtcs/encoders/connectors.
>> + */
>> +struct msm_kms_funcs {
>> +       /* hw initialization: */
>> +       int (*hw_init)(struct msm_kms *kms);
>> +       /* irq handling: */
>> +       void (*irq_preinstall)(struct msm_kms *kms);
>> +       int (*irq_postinstall)(struct msm_kms *kms);
>> +       void (*irq_uninstall)(struct msm_kms *kms);
>> +       irqreturn_t (*irq)(struct msm_kms *kms);
>> +       int (*enable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
>> +       void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
>> +       /* misc: */
>> +       const struct msm_format *(*get_format)(struct msm_kms *kms, uint32_t format);
>> +       long (*round_pixclk)(struct msm_kms *kms, unsigned long rate,
>> +                       struct drm_encoder *encoder);
>> +       /* cleanup: */
>> +       void (*preclose)(struct msm_kms *kms, struct drm_file *file);
>> +       void (*destroy)(struct msm_kms *kms);
>> +};
>> +
>> +struct msm_kms {
>> +       const struct msm_kms_funcs *funcs;
>> +};
>> +
>> +struct msm_kms *mdp4_kms_init(struct drm_device *dev);
>> +struct msm_kms *mdp5_kms_init(struct drm_device *dev);
>
> Shouldn't this be introduced in a follow-up patch that also adds the definition?

yeah, probably.. looks like I fumbled slightly when re-arranging patches..

BR,
-R
diff mbox

Patch

diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
index 823eee5..197b348 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
@@ -17,6 +17,7 @@ 
 
 #include <linux/gpio.h>
 
+#include "msm_kms.h"
 #include "hdmi.h"
 
 struct hdmi_connector {
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h
index ede0266..d5e6819 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h
@@ -19,6 +19,7 @@ 
 #define __MDP4_KMS_H__
 
 #include "msm_drv.h"
+#include "msm_kms.h"
 #include "mdp/mdp_kms.h"
 #include "mdp4.xml.h"
 
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 2e3d746..8b3097a 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -17,6 +17,7 @@ 
 
 #include "msm_drv.h"
 #include "msm_gpu.h"
+#include "msm_kms.h"
 
 static void msm_fb_output_poll_changed(struct drm_device *dev)
 {
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index 3f9ba33..13a25f9 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -136,36 +136,6 @@  void __msm_fence_worker(struct work_struct *work);
 		(_cb)->func = _func;                         \
 	} while (0)
 
-/* As there are different display controller blocks depending on the
- * snapdragon version, the kms support is split out and the appropriate
- * implementation is loaded at runtime.  The kms module is responsible
- * for constructing the appropriate planes/crtcs/encoders/connectors.
- */
-struct msm_kms_funcs {
-	/* hw initialization: */
-	int (*hw_init)(struct msm_kms *kms);
-	/* irq handling: */
-	void (*irq_preinstall)(struct msm_kms *kms);
-	int (*irq_postinstall)(struct msm_kms *kms);
-	void (*irq_uninstall)(struct msm_kms *kms);
-	irqreturn_t (*irq)(struct msm_kms *kms);
-	int (*enable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
-	void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
-	/* misc: */
-	const struct msm_format *(*get_format)(struct msm_kms *kms, uint32_t format);
-	long (*round_pixclk)(struct msm_kms *kms, unsigned long rate,
-			struct drm_encoder *encoder);
-	/* cleanup: */
-	void (*preclose)(struct msm_kms *kms, struct drm_file *file);
-	void (*destroy)(struct msm_kms *kms);
-};
-
-struct msm_kms {
-	const struct msm_kms_funcs *funcs;
-};
-
-struct msm_kms *mdp4_kms_init(struct drm_device *dev);
-
 int msm_register_mmu(struct drm_device *dev, struct msm_mmu *mmu);
 
 int msm_wait_fence_interruptable(struct drm_device *dev, uint32_t fence,
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
index 0286c0e..81bafdf 100644
--- a/drivers/gpu/drm/msm/msm_fb.c
+++ b/drivers/gpu/drm/msm/msm_fb.c
@@ -16,6 +16,7 @@ 
  */
 
 #include "msm_drv.h"
+#include "msm_kms.h"
 
 #include "drm_crtc.h"
 #include "drm_crtc_helper.h"
diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h
new file mode 100644
index 0000000..e42973c
--- /dev/null
+++ b/drivers/gpu/drm/msm/msm_kms.h
@@ -0,0 +1,57 @@ 
+/*
+ * Copyright (C) 2013 Red Hat
+ * Author: Rob Clark <robdclark@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __MSM_KMS_H__
+#define __MSM_KMS_H__
+
+#include <linux/clk.h>
+#include <linux/regulator/consumer.h>
+
+#include "msm_drv.h"
+
+/* As there are different display controller blocks depending on the
+ * snapdragon version, the kms support is split out and the appropriate
+ * implementation is loaded at runtime.  The kms module is responsible
+ * for constructing the appropriate planes/crtcs/encoders/connectors.
+ */
+struct msm_kms_funcs {
+	/* hw initialization: */
+	int (*hw_init)(struct msm_kms *kms);
+	/* irq handling: */
+	void (*irq_preinstall)(struct msm_kms *kms);
+	int (*irq_postinstall)(struct msm_kms *kms);
+	void (*irq_uninstall)(struct msm_kms *kms);
+	irqreturn_t (*irq)(struct msm_kms *kms);
+	int (*enable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
+	void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
+	/* misc: */
+	const struct msm_format *(*get_format)(struct msm_kms *kms, uint32_t format);
+	long (*round_pixclk)(struct msm_kms *kms, unsigned long rate,
+			struct drm_encoder *encoder);
+	/* cleanup: */
+	void (*preclose)(struct msm_kms *kms, struct drm_file *file);
+	void (*destroy)(struct msm_kms *kms);
+};
+
+struct msm_kms {
+	const struct msm_kms_funcs *funcs;
+};
+
+struct msm_kms *mdp4_kms_init(struct drm_device *dev);
+struct msm_kms *mdp5_kms_init(struct drm_device *dev);
+
+#endif /* __MSM_KMS_H__ */