97fb5e8d9b
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 and only 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 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 294 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Alexios Zavras <alexios.zavras@intel.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.825281744@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
46 lines
1.1 KiB
C
46 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _DPU_HW_BLK_H
|
|
#define _DPU_HW_BLK_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/list.h>
|
|
#include <linux/atomic.h>
|
|
|
|
struct dpu_hw_blk;
|
|
|
|
/**
|
|
* struct dpu_hw_blk_ops - common hardware block operations
|
|
* @start: start operation on first get
|
|
* @stop: stop operation on last put
|
|
*/
|
|
struct dpu_hw_blk_ops {
|
|
int (*start)(struct dpu_hw_blk *);
|
|
void (*stop)(struct dpu_hw_blk *);
|
|
};
|
|
|
|
/**
|
|
* struct dpu_hw_blk - definition of hardware block object
|
|
* @list: list of hardware blocks
|
|
* @type: hardware block type
|
|
* @id: instance id
|
|
* @refcount: reference/usage count
|
|
*/
|
|
struct dpu_hw_blk {
|
|
struct list_head list;
|
|
u32 type;
|
|
int id;
|
|
atomic_t refcount;
|
|
struct dpu_hw_blk_ops ops;
|
|
};
|
|
|
|
void dpu_hw_blk_init(struct dpu_hw_blk *hw_blk, u32 type, int id,
|
|
struct dpu_hw_blk_ops *ops);
|
|
void dpu_hw_blk_destroy(struct dpu_hw_blk *hw_blk);
|
|
|
|
struct dpu_hw_blk *dpu_hw_blk_get(struct dpu_hw_blk *hw_blk, u32 type, int id);
|
|
void dpu_hw_blk_put(struct dpu_hw_blk *hw_blk);
|
|
#endif /*_DPU_HW_BLK_H */
|