linux/drivers/gpu/drm/renesas/rcar-du/rcar_du_group.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * R-Car Display Unit Channels Pair
 *
 * Copyright (C) 2013-2015 Renesas Electronics Corporation
 *
 * Contact: Laurent Pinchart ([email protected])
 */

/*
 * The R8A7779 DU is split in per-CRTC resources (scan-out engine, blending
 * unit, timings generator, ...) and device-global resources (start/stop
 * control, planes, ...) shared between the two CRTCs.
 *
 * The R8A7790 introduced a third CRTC with its own set of global resources.
 * This would be modeled as two separate DU device instances if it wasn't for
 * a handful or resources that are shared between the three CRTCs (mostly
 * related to input and output routing). For this reason the R8A7790 DU must be
 * modeled as a single device with three CRTCs, two sets of "semi-global"
 * resources, and a few device-global resources.
 *
 * The rcar_du_group object is a driver specific object, without any real
 * counterpart in the DU documentation, that models those semi-global resources.
 */

#include <linux/clk.h>
#include <linux/io.h>

#include "rcar_du_drv.h"
#include "rcar_du_group.h"
#include "rcar_du_regs.h"

u32 rcar_du_group_read(struct rcar_du_group *rgrp, u32 reg)
{}

void rcar_du_group_write(struct rcar_du_group *rgrp, u32 reg, u32 data)
{}

static void rcar_du_group_setup_pins(struct rcar_du_group *rgrp)
{}

static void rcar_du_group_setup_defr8(struct rcar_du_group *rgrp)
{}

static void rcar_du_group_setup_didsr(struct rcar_du_group *rgrp)
{}

static void rcar_du_group_setup(struct rcar_du_group *rgrp)
{}

/*
 * rcar_du_group_get - Acquire a reference to the DU channels group
 *
 * Acquiring the first reference setups core registers. A reference must be held
 * before accessing any hardware registers.
 *
 * This function must be called with the DRM mode_config lock held.
 *
 * Return 0 in case of success or a negative error code otherwise.
 */
int rcar_du_group_get(struct rcar_du_group *rgrp)
{}

/*
 * rcar_du_group_put - Release a reference to the DU
 *
 * This function must be called with the DRM mode_config lock held.
 */
void rcar_du_group_put(struct rcar_du_group *rgrp)
{}

static void __rcar_du_group_start_stop(struct rcar_du_group *rgrp, bool start)
{}

void rcar_du_group_start_stop(struct rcar_du_group *rgrp, bool start)
{}

void rcar_du_group_restart(struct rcar_du_group *rgrp)
{}

int rcar_du_set_dpad0_vsp1_routing(struct rcar_du_device *rcdu)
{}

static void rcar_du_group_set_dpad_levels(struct rcar_du_group *rgrp)
{}

int rcar_du_group_set_routing(struct rcar_du_group *rgrp)
{}