linux/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2014, The Linux Foundation. All rights reserved.
 * Copyright (C) 2013 Red Hat
 * Author: Rob Clark <[email protected]>
 */

#include <linux/delay.h>
#include <linux/interconnect.h>
#include <linux/of_irq.h>

#include <drm/drm_debugfs.h>
#include <drm/drm_drv.h>
#include <drm/drm_file.h>
#include <drm/drm_vblank.h>

#include "msm_drv.h"
#include "msm_gem.h"
#include "msm_mmu.h"
#include "mdp5_kms.h"

static int mdp5_hw_init(struct msm_kms *kms)
{}

/* Global/shared object state funcs */

/*
 * This is a helper that returns the private state currently in operation.
 * Note that this would return the "old_state" if called in the atomic check
 * path, and the "new_state" after the atomic swap has been done.
 */
struct mdp5_global_state *
mdp5_get_existing_global_state(struct mdp5_kms *mdp5_kms)
{}

/*
 * This acquires the modeset lock set aside for global state, creates
 * a new duplicated private object state.
 */
struct mdp5_global_state *mdp5_get_global_state(struct drm_atomic_state *s)
{}

static struct drm_private_state *
mdp5_global_duplicate_state(struct drm_private_obj *obj)
{}

static void mdp5_global_destroy_state(struct drm_private_obj *obj,
				      struct drm_private_state *state)
{}

static void mdp5_global_print_state(struct drm_printer *p,
				    const struct drm_private_state *state)
{}

static const struct drm_private_state_funcs mdp5_global_state_funcs =;

static int mdp5_global_obj_init(struct mdp5_kms *mdp5_kms)
{}

static void mdp5_enable_commit(struct msm_kms *kms)
{}

static void mdp5_disable_commit(struct msm_kms *kms)
{}

static void mdp5_prepare_commit(struct msm_kms *kms, struct drm_atomic_state *state)
{}

static void mdp5_flush_commit(struct msm_kms *kms, unsigned crtc_mask)
{}

static void mdp5_wait_flush(struct msm_kms *kms, unsigned crtc_mask)
{}

static void mdp5_complete_commit(struct msm_kms *kms, unsigned crtc_mask)
{}

static void mdp5_destroy(struct mdp5_kms *mdp5_kms);

static void mdp5_kms_destroy(struct msm_kms *kms)
{}

static const struct mdp_kms_funcs kms_funcs =;

static int mdp5_disable(struct mdp5_kms *mdp5_kms)
{}

static int mdp5_enable(struct mdp5_kms *mdp5_kms)
{}

static struct drm_encoder *construct_encoder(struct mdp5_kms *mdp5_kms,
					     struct mdp5_interface *intf,
					     struct mdp5_ctl *ctl)
{}

static int get_dsi_id_from_intf(const struct mdp5_cfg_hw *hw_cfg, int intf_num)
{}

static int modeset_init_intf(struct mdp5_kms *mdp5_kms,
			     struct mdp5_interface *intf)
{}

static int modeset_init(struct mdp5_kms *mdp5_kms)
{}

static void read_mdp_hw_revision(struct mdp5_kms *mdp5_kms,
				 u32 *major, u32 *minor)
{}

static int get_clk(struct platform_device *pdev, struct clk **clkp,
		const char *name, bool mandatory)
{}

static int mdp5_init(struct platform_device *pdev, struct drm_device *dev);

static int mdp5_kms_init(struct drm_device *dev)
{}

static void mdp5_destroy(struct mdp5_kms *mdp5_kms)
{}

static int construct_pipes(struct mdp5_kms *mdp5_kms, int cnt,
		const enum mdp5_pipe *pipes, const uint32_t *offsets,
		uint32_t caps)
{}

static int hwpipe_init(struct mdp5_kms *mdp5_kms)
{}

static int hwmixer_init(struct mdp5_kms *mdp5_kms)
{}

static int interface_init(struct mdp5_kms *mdp5_kms)
{}

static int mdp5_init(struct platform_device *pdev, struct drm_device *dev)
{}

static int mdp5_setup_interconnect(struct platform_device *pdev)
{}

static int mdp5_dev_probe(struct platform_device *pdev)
{}

static void mdp5_dev_remove(struct platform_device *pdev)
{}

static __maybe_unused int mdp5_runtime_suspend(struct device *dev)
{}

static __maybe_unused int mdp5_runtime_resume(struct device *dev)
{}

static const struct dev_pm_ops mdp5_pm_ops =;

static const struct of_device_id mdp5_dt_match[] =;
MODULE_DEVICE_TABLE(of, mdp5_dt_match);

static struct platform_driver mdp5_driver =;

void __init msm_mdp_register(void)
{}

void __exit msm_mdp_unregister(void)
{}