Files
android_kernel_samsung_sm86…/msm/sde/sde_hw_qdss.h
Samantha Tran 3be27eafcc disp: msm: snapshot of msm and sde driver
This snapshot ports changes from 4.14 to 4.19 into
the msm and sde layer. Snapshot was taken as of
commit 0f8fb25421ff ("cnss2: Add device version to
SOC info structure").

Change-Id: I59b799a78319c2db6930a2a10bc38976f8c09898
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2019-05-22 13:08:31 -07:00

69 lines
1.7 KiB
C

// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2019, The Linux Foundation. All rights reserved.
*/
#ifndef _SDE_HW_QDSS_H
#define _SDE_HW_QDSS_H
#include "sde_hw_catalog.h"
#include "sde_hw_mdss.h"
#include "sde_hw_blk.h"
#include "sde_hw_util.h"
struct sde_hw_qdss;
/**
* struct sde_hw_qdss_ops - interface to the qdss hardware driver functions
* Assumption is these functions will be called after clocks are enabled
*/
struct sde_hw_qdss_ops {
/**
* enable_qdss_events - enable qdss events
* @hw_qdss: Pointer to qdss context
*/
void (*enable_qdss_events)(struct sde_hw_qdss *hw_qdss, bool enable);
};
struct sde_hw_qdss {
struct sde_hw_blk base;
struct sde_hw_blk_reg_map hw;
/* qdss */
enum sde_qdss idx;
const struct sde_qdss_cfg *caps;
/* ops */
struct sde_hw_qdss_ops ops;
};
/**
* to_sde_hw_qdss - convert base object sde_hw_base to container
* @hw: Pointer to base hardware block
* return: Pointer to hardware block container
*/
static inline struct sde_hw_qdss *to_sde_hw_qdss(struct sde_hw_blk *hw)
{
return container_of(hw, struct sde_hw_qdss, base);
}
/**
* sde_hw_qdss_init - initializes the qdss block for the passed qdss idx
* @idx: QDSS index for which driver object is required
* @addr: Mapped register io address of MDP
* @m: Pointer to mdss catalog data
* Returns: Error code or allocated sde_hw_qdss context
*/
struct sde_hw_qdss *sde_hw_qdss_init(enum sde_qdss idx,
void __iomem *addr,
struct sde_mdss_cfg *m);
/**
* sde_hw_qdss_destroy - destroys qdss driver context
* should be called to free the context
* @qdss: Pointer to qdss driver context returned by sde_hw_qdss_init
*/
void sde_hw_qdss_destroy(struct sde_hw_qdss *qdss);
#endif /*_SDE_HW_QDSS_H */