Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
  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_ISSUES_H__
  5#define __PANFROST_ISSUES_H__
  6
  7#include <linux/bitops.h>
  8
  9#include "panfrost_device.h"
 10
 11/*
 12 * This is not a complete list of issues, but only the ones the driver needs
 13 * to care about.
 14 */
 15enum panfrost_hw_issue {
 16	HW_ISSUE_6367,
 17	HW_ISSUE_6787,
 18	HW_ISSUE_8186,
 19	HW_ISSUE_8245,
 20	HW_ISSUE_8316,
 21	HW_ISSUE_8394,
 22	HW_ISSUE_8401,
 23	HW_ISSUE_8408,
 24	HW_ISSUE_8443,
 25	HW_ISSUE_8987,
 26	HW_ISSUE_9435,
 27	HW_ISSUE_9510,
 28	HW_ISSUE_9630,
 29	HW_ISSUE_10327,
 30	HW_ISSUE_10649,
 31	HW_ISSUE_10676,
 32	HW_ISSUE_10797,
 33	HW_ISSUE_10817,
 34	HW_ISSUE_10883,
 35	HW_ISSUE_10959,
 36	HW_ISSUE_10969,
 37	HW_ISSUE_11020,
 38	HW_ISSUE_11024,
 39	HW_ISSUE_11035,
 40	HW_ISSUE_11056,
 41	HW_ISSUE_T76X_3542,
 42	HW_ISSUE_T76X_3953,
 43	HW_ISSUE_TMIX_8463,
 44	GPUCORE_1619,
 45	HW_ISSUE_TMIX_8438,
 46	HW_ISSUE_TGOX_R1_1234,
 47	HW_ISSUE_END
 48};
 49
 50#define hw_issues_all (\
 51	BIT_ULL(HW_ISSUE_9435))
 52
 53#define hw_issues_t600 (\
 54	BIT_ULL(HW_ISSUE_6367) | \
 55	BIT_ULL(HW_ISSUE_6787) | \
 56	BIT_ULL(HW_ISSUE_8408) | \
 57	BIT_ULL(HW_ISSUE_9510) | \
 58	BIT_ULL(HW_ISSUE_10649) | \
 59	BIT_ULL(HW_ISSUE_10676) | \
 60	BIT_ULL(HW_ISSUE_10883) | \
 61	BIT_ULL(HW_ISSUE_11020) | \
 62	BIT_ULL(HW_ISSUE_11035) | \
 63	BIT_ULL(HW_ISSUE_11056) | \
 64	BIT_ULL(HW_ISSUE_TMIX_8438))
 65
 66#define hw_issues_t600_r0p0_15dev0 (\
 67	BIT_ULL(HW_ISSUE_8186) | \
 68	BIT_ULL(HW_ISSUE_8245) | \
 69	BIT_ULL(HW_ISSUE_8316) | \
 70	BIT_ULL(HW_ISSUE_8394) | \
 71	BIT_ULL(HW_ISSUE_8401) | \
 72	BIT_ULL(HW_ISSUE_8443) | \
 73	BIT_ULL(HW_ISSUE_8987) | \
 74	BIT_ULL(HW_ISSUE_9630) | \
 75	BIT_ULL(HW_ISSUE_10969) | \
 76	BIT_ULL(GPUCORE_1619))
 77
 78#define hw_issues_t620 (\
 79	BIT_ULL(HW_ISSUE_10649) | \
 80	BIT_ULL(HW_ISSUE_10883) | \
 81	BIT_ULL(HW_ISSUE_10959) | \
 82	BIT_ULL(HW_ISSUE_11056) | \
 83	BIT_ULL(HW_ISSUE_TMIX_8438))
 84
 85#define hw_issues_t620_r0p1 (\
 86	BIT_ULL(HW_ISSUE_10327) | \
 87	BIT_ULL(HW_ISSUE_10676) | \
 88	BIT_ULL(HW_ISSUE_10817) | \
 89	BIT_ULL(HW_ISSUE_11020) | \
 90	BIT_ULL(HW_ISSUE_11024) | \
 91	BIT_ULL(HW_ISSUE_11035))
 92
 93#define hw_issues_t620_r1p0 (\
 94	BIT_ULL(HW_ISSUE_11020) | \
 95	BIT_ULL(HW_ISSUE_11024))
 96
 97#define hw_issues_t720 (\
 98	BIT_ULL(HW_ISSUE_10649) | \
 99	BIT_ULL(HW_ISSUE_10797) | \
100	BIT_ULL(HW_ISSUE_10883) | \
101	BIT_ULL(HW_ISSUE_11056) | \
102	BIT_ULL(HW_ISSUE_TMIX_8438))
103
104#define hw_issues_t760 (\
105	BIT_ULL(HW_ISSUE_10883) | \
106	BIT_ULL(HW_ISSUE_T76X_3953) | \
107	BIT_ULL(HW_ISSUE_TMIX_8438))
108
109#define hw_issues_t760_r0p0 (\
110	BIT_ULL(HW_ISSUE_11020) | \
111	BIT_ULL(HW_ISSUE_11024) | \
112	BIT_ULL(HW_ISSUE_T76X_3542))
113
114#define hw_issues_t760_r0p1 (\
115	BIT_ULL(HW_ISSUE_11020) | \
116	BIT_ULL(HW_ISSUE_11024) | \
117	BIT_ULL(HW_ISSUE_T76X_3542))
118
119#define hw_issues_t760_r0p1_50rel0 (\
120	BIT_ULL(HW_ISSUE_T76X_3542))
121
122#define hw_issues_t760_r0p2 (\
123	BIT_ULL(HW_ISSUE_11020) | \
124	BIT_ULL(HW_ISSUE_11024) | \
125	BIT_ULL(HW_ISSUE_T76X_3542))
126
127#define hw_issues_t760_r0p3 (\
128	BIT_ULL(HW_ISSUE_T76X_3542))
129
130#define hw_issues_t820 (\
131	BIT_ULL(HW_ISSUE_10883) | \
132	BIT_ULL(HW_ISSUE_T76X_3953) | \
133	BIT_ULL(HW_ISSUE_TMIX_8438))
134
135#define hw_issues_t830 (\
136	BIT_ULL(HW_ISSUE_10883) | \
137	BIT_ULL(HW_ISSUE_T76X_3953) | \
138	BIT_ULL(HW_ISSUE_TMIX_8438))
139
140#define hw_issues_t860 (\
141	BIT_ULL(HW_ISSUE_10883) | \
142	BIT_ULL(HW_ISSUE_T76X_3953) | \
143	BIT_ULL(HW_ISSUE_TMIX_8438))
144
145#define hw_issues_t880 (\
146	BIT_ULL(HW_ISSUE_10883) | \
147	BIT_ULL(HW_ISSUE_T76X_3953) | \
148	BIT_ULL(HW_ISSUE_TMIX_8438))
149
150#define hw_issues_g31 0
151
152#define hw_issues_g31_r1p0 (\
153	BIT_ULL(HW_ISSUE_TGOX_R1_1234))
154
155#define hw_issues_g51 0
156
157#define hw_issues_g52 0
158
159#define hw_issues_g71 (\
160	BIT_ULL(HW_ISSUE_TMIX_8463) | \
161	BIT_ULL(HW_ISSUE_TMIX_8438))
162
163#define hw_issues_g71_r0p0_05dev0 (\
164	BIT_ULL(HW_ISSUE_T76X_3953))
165
166#define hw_issues_g72 0
167
168#define hw_issues_g76 0
169
170static inline bool panfrost_has_hw_issue(struct panfrost_device *pfdev,
171					 enum panfrost_hw_issue issue)
172{
173	return test_bit(issue, pfdev->features.hw_issues);
174}
175
176#endif /* __PANFROST_ISSUES_H__ */