Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm: split out msm_kms.h

Signed-off-by: Rob Clark <robdclark@gmail.com>

Rob Clark dd2da6e3 10a02eb6

+60 -30
+1
drivers/gpu/drm/msm/hdmi/hdmi_connector.c
··· 17 17 18 18 #include <linux/gpio.h> 19 19 20 + #include "msm_kms.h" 20 21 #include "hdmi.h" 21 22 22 23 struct hdmi_connector {
+1
drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h
··· 19 19 #define __MDP4_KMS_H__ 20 20 21 21 #include "msm_drv.h" 22 + #include "msm_kms.h" 22 23 #include "mdp/mdp_kms.h" 23 24 #include "mdp4.xml.h" 24 25
+1
drivers/gpu/drm/msm/msm_drv.c
··· 17 17 18 18 #include "msm_drv.h" 19 19 #include "msm_gpu.h" 20 + #include "msm_kms.h" 20 21 21 22 static void msm_fb_output_poll_changed(struct drm_device *dev) 22 23 {
-30
drivers/gpu/drm/msm/msm_drv.h
··· 134 134 (_cb)->func = _func; \ 135 135 } while (0) 136 136 137 - /* As there are different display controller blocks depending on the 138 - * snapdragon version, the kms support is split out and the appropriate 139 - * implementation is loaded at runtime. The kms module is responsible 140 - * for constructing the appropriate planes/crtcs/encoders/connectors. 141 - */ 142 - struct msm_kms_funcs { 143 - /* hw initialization: */ 144 - int (*hw_init)(struct msm_kms *kms); 145 - /* irq handling: */ 146 - void (*irq_preinstall)(struct msm_kms *kms); 147 - int (*irq_postinstall)(struct msm_kms *kms); 148 - void (*irq_uninstall)(struct msm_kms *kms); 149 - irqreturn_t (*irq)(struct msm_kms *kms); 150 - int (*enable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc); 151 - void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc); 152 - /* misc: */ 153 - const struct msm_format *(*get_format)(struct msm_kms *kms, uint32_t format); 154 - long (*round_pixclk)(struct msm_kms *kms, unsigned long rate, 155 - struct drm_encoder *encoder); 156 - /* cleanup: */ 157 - void (*preclose)(struct msm_kms *kms, struct drm_file *file); 158 - void (*destroy)(struct msm_kms *kms); 159 - }; 160 - 161 - struct msm_kms { 162 - const struct msm_kms_funcs *funcs; 163 - }; 164 - 165 - struct msm_kms *mdp4_kms_init(struct drm_device *dev); 166 - 167 137 int msm_register_mmu(struct drm_device *dev, struct msm_mmu *mmu); 168 138 169 139 int msm_wait_fence_interruptable(struct drm_device *dev, uint32_t fence,
+1
drivers/gpu/drm/msm/msm_fb.c
··· 16 16 */ 17 17 18 18 #include "msm_drv.h" 19 + #include "msm_kms.h" 19 20 20 21 #include "drm_crtc.h" 21 22 #include "drm_crtc_helper.h"
+56
drivers/gpu/drm/msm/msm_kms.h
··· 1 + /* 2 + * Copyright (C) 2013 Red Hat 3 + * Author: Rob Clark <robdclark@gmail.com> 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of the GNU General Public License version 2 as published by 7 + * the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program. If not, see <http://www.gnu.org/licenses/>. 16 + */ 17 + 18 + #ifndef __MSM_KMS_H__ 19 + #define __MSM_KMS_H__ 20 + 21 + #include <linux/clk.h> 22 + #include <linux/regulator/consumer.h> 23 + 24 + #include "msm_drv.h" 25 + 26 + /* As there are different display controller blocks depending on the 27 + * snapdragon version, the kms support is split out and the appropriate 28 + * implementation is loaded at runtime. The kms module is responsible 29 + * for constructing the appropriate planes/crtcs/encoders/connectors. 30 + */ 31 + struct msm_kms_funcs { 32 + /* hw initialization: */ 33 + int (*hw_init)(struct msm_kms *kms); 34 + /* irq handling: */ 35 + void (*irq_preinstall)(struct msm_kms *kms); 36 + int (*irq_postinstall)(struct msm_kms *kms); 37 + void (*irq_uninstall)(struct msm_kms *kms); 38 + irqreturn_t (*irq)(struct msm_kms *kms); 39 + int (*enable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc); 40 + void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc); 41 + /* misc: */ 42 + const struct msm_format *(*get_format)(struct msm_kms *kms, uint32_t format); 43 + long (*round_pixclk)(struct msm_kms *kms, unsigned long rate, 44 + struct drm_encoder *encoder); 45 + /* cleanup: */ 46 + void (*preclose)(struct msm_kms *kms, struct drm_file *file); 47 + void (*destroy)(struct msm_kms *kms); 48 + }; 49 + 50 + struct msm_kms { 51 + const struct msm_kms_funcs *funcs; 52 + }; 53 + 54 + struct msm_kms *mdp4_kms_init(struct drm_device *dev); 55 + 56 + #endif /* __MSM_KMS_H__ */