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

Rob Clark robdclark at gmail.com
Mon Dec 9 09:43:16 PST 2013


On Mon, Dec 9, 2013 at 12:36 PM, Erik Faye-Lund <kusmabite at gmail.com> wrote:
> On Sun, Dec 8, 2013 at 12:35 AM, Rob Clark <robdclark at 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 at 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


More information about the dri-devel mailing list