brintos

brintos / linux-shallow public Read only

0
0
Text · 4.0 KiB · 7ed0cd3 Raw
128 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/* (C) COPYRIGHT 2014-2018 ARM Limited. All rights reserved. */3/* Copyright 2019 Linaro, Ltd., Rob Herring <robh@kernel.org> */4#ifndef __PANFROST_FEATURES_H__5#define __PANFROST_FEATURES_H__6 7#include <linux/bitops.h>8 9#include "panfrost_device.h"10 11enum panfrost_hw_feature {12	HW_FEATURE_JOBCHAIN_DISAMBIGUATION,13	HW_FEATURE_PWRON_DURING_PWROFF_TRANS,14	HW_FEATURE_XAFFINITY,15	HW_FEATURE_V4,16	HW_FEATURE_FLUSH_REDUCTION,17	HW_FEATURE_PROTECTED_MODE,18	HW_FEATURE_COHERENCY_REG,19	HW_FEATURE_PROTECTED_DEBUG_MODE,20	HW_FEATURE_AARCH64_MMU,21	HW_FEATURE_TLS_HASHING,22	HW_FEATURE_THREAD_GROUP_SPLIT,23	HW_FEATURE_IDVS_GROUP_SIZE,24	HW_FEATURE_CLEAN_ONLY_SAFE,25	HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG,26};27 28#define hw_features_t600 (\29	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \30	BIT_ULL(HW_FEATURE_V4))31 32#define hw_features_t620 hw_features_t60033 34#define hw_features_t720 hw_features_t60035 36#define hw_features_t760 (\37	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \38	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \39	BIT_ULL(HW_FEATURE_XAFFINITY) | \40	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))41 42#define hw_features_t860 hw_features_t76043 44#define hw_features_t880 hw_features_t76045 46#define hw_features_t830 hw_features_t76047 48#define hw_features_t820 hw_features_t76049 50#define hw_features_g71 (\51	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \52	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \53	BIT_ULL(HW_FEATURE_XAFFINITY) | \54	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \55	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \56	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \57	BIT_ULL(HW_FEATURE_COHERENCY_REG))58 59#define hw_features_g72 (\60	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \61	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \62	BIT_ULL(HW_FEATURE_XAFFINITY) | \63	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \64	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \65	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \66	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \67	BIT_ULL(HW_FEATURE_COHERENCY_REG))68 69#define hw_features_g51 hw_features_g7270 71#define hw_features_g52 (\72	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \73	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \74	BIT_ULL(HW_FEATURE_XAFFINITY) | \75	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \76	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \77	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \78	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \79	BIT_ULL(HW_FEATURE_IDVS_GROUP_SIZE) | \80	BIT_ULL(HW_FEATURE_COHERENCY_REG))81 82#define hw_features_g76 (\83	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \84	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \85	BIT_ULL(HW_FEATURE_XAFFINITY) | \86	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \87	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \88	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \89	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \90	BIT_ULL(HW_FEATURE_COHERENCY_REG) | \91	BIT_ULL(HW_FEATURE_AARCH64_MMU) | \92	BIT_ULL(HW_FEATURE_TLS_HASHING) | \93	BIT_ULL(HW_FEATURE_IDVS_GROUP_SIZE) | \94	BIT_ULL(HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG))95 96#define hw_features_g31 (\97	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \98	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \99	BIT_ULL(HW_FEATURE_XAFFINITY) | \100	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \101	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \102	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \103	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \104	BIT_ULL(HW_FEATURE_COHERENCY_REG) | \105	BIT_ULL(HW_FEATURE_AARCH64_MMU) | \106	BIT_ULL(HW_FEATURE_TLS_HASHING) | \107	BIT_ULL(HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG))108 109#define hw_features_g57 (\110	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \111	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \112	BIT_ULL(HW_FEATURE_XAFFINITY) | \113	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \114	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \115	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \116	BIT_ULL(HW_FEATURE_COHERENCY_REG) | \117	BIT_ULL(HW_FEATURE_AARCH64_MMU) | \118	BIT_ULL(HW_FEATURE_IDVS_GROUP_SIZE) | \119	BIT_ULL(HW_FEATURE_CLEAN_ONLY_SAFE))120 121static inline bool panfrost_has_hw_feature(struct panfrost_device *pfdev,122					   enum panfrost_hw_feature feat)123{124	return test_bit(feat, pfdev->features.hw_features);125}126 127#endif128