
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>
69 satır
1.7 KiB
C
69 satır
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 */
|