slice_mask
struct slice_mask mask_64k;
struct slice_mask mask_4k;
struct slice_mask mask_16m;
struct slice_mask mask_16g;
static inline struct slice_mask *slice_mask_for_size(mm_context_t *ctx, int psize)
static void slice_mask_for_free(struct mm_struct *mm, struct slice_mask *ret,
const struct slice_mask *available,
const struct slice_mask *mask, int psize)
struct slice_mask *psize_mask, *old_mask;
const struct slice_mask *available,
const struct slice_mask *available,
const struct slice_mask *available,
static void slice_print_mask(const char *label, const struct slice_mask *mask)
const struct slice_mask *mask, int psize,
static inline void slice_copy_mask(struct slice_mask *dst,
const struct slice_mask *src)
static inline void slice_or_mask(struct slice_mask *dst,
const struct slice_mask *src1,
const struct slice_mask *src2)
static inline void slice_andnot_mask(struct slice_mask *dst,
const struct slice_mask *src1,
const struct slice_mask *src2)
struct slice_mask good_mask;
struct slice_mask potential_mask;
const struct slice_mask *maskp;
const struct slice_mask *compat_maskp = NULL;
static void slice_print_mask(const char *label, const struct slice_mask *mask) {}
struct slice_mask *ret)
struct slice_mask *mask;
struct slice_mask mask;
const struct slice_mask *maskp;
const struct slice_mask *compat_maskp;
struct slice_mask available;
unsigned int slice_mask;
handle->hal_handle->slice_mask = hw_data->accel_mask;
for_each_if(DISPLAY_INFO(__dev_priv)->dbuf.slice_mask & BIT(__slice))
.dbuf.slice_mask = BIT(DBUF_S1) | BIT(DBUF_S2) | BIT(DBUF_S3) | \
.dbuf.slice_mask = BIT(DBUF_S1) | BIT(DBUF_S2) | BIT(DBUF_S3) | \
.dbuf.slice_mask = BIT(DBUF_S1),
.dbuf.slice_mask = BIT(DBUF_S1), \
.dbuf.slice_mask = BIT(DBUF_S1) | BIT(DBUF_S2), \
.dbuf.slice_mask = BIT(DBUF_S1) | BIT(DBUF_S2), \
u8 slice_mask;
u8 slice_mask = DISPLAY_INFO(display)->dbuf.slice_mask;
drm_WARN(display->drm, req_slices & ~slice_mask,
req_slices, slice_mask);
DISPLAY_INFO(display)->dbuf.slice_mask,
hweight8(DISPLAY_INFO(display)->dbuf.slice_mask);
skl_ddb_entry_for_slices(struct intel_display *display, u8 slice_mask,
if (!slice_mask) {
ddb->start = (ffs(slice_mask) - 1) * slice_size;
ddb->end = fls(slice_mask) * slice_size;
static unsigned int mbus_ddb_offset(struct intel_display *display, u8 slice_mask)
if (slice_mask & (BIT(DBUF_S1) | BIT(DBUF_S2)))
slice_mask = BIT(DBUF_S1);
else if (slice_mask & (BIT(DBUF_S3) | BIT(DBUF_S4)))
slice_mask = BIT(DBUF_S3);
skl_ddb_entry_for_slices(display, slice_mask, &ddb);
u8 slice_mask = 0;
slice_mask |= BIT(start_slice);
return slice_mask;
if (sseu.slice_mask && !WARN_ON(ce->engine->class != RENDER_CLASS))
if (!user->slice_mask || !user->subslice_mask ||
if (overflows_type(user->slice_mask, context->slice_mask) ||
if (user->slice_mask & ~device->slice_mask)
context->slice_mask = user->slice_mask;
unsigned int hw_s = hweight8(device->slice_mask);
unsigned int req_s = hweight8(context->slice_mask);
user_sseu.slice_mask = ce->sseu.slice_mask;
unsigned int slices = hweight32(ce->engine->sseu.slice_mask);
hweight32(sseu.slice_mask), spin);
if (hweight32(engine->sseu.slice_mask) < 2)
pg_sseu.slice_mask = 1;
hweight32(engine->sseu.slice_mask),
hweight32(pg_sseu.slice_mask));
sseu->slice_mask |= BIT(0);
sseu->slice_mask |= BIT(0);
sseu->slice_mask = BIT(0);
sseu->slice_mask = REG_FIELD_GET(GEN8_F2_S_ENA_MASK, fuse2);
if (!(sseu->slice_mask & BIT(s)))
!IS_GEN9_LP(i915) && hweight8(sseu->slice_mask) > 1;
sseu->slice_mask = REG_FIELD_GET(GEN8_F2_S_ENA_MASK, fuse2);
if (!(sseu->slice_mask & BIT(s)))
sseu->has_slice_pg = hweight8(sseu->slice_mask) > 1;
sseu->slice_mask = BIT(0);
sseu->slice_mask = BIT(0);
sseu->slice_mask = BIT(0) | BIT(1);
intel_sseu_set_info(sseu, hweight8(sseu->slice_mask),
slices = hweight8(req_sseu->slice_mask);
hweight8(sseu->slice_mask), sseu->slice_mask);
for (s = 0; s < fls(sseu->slice_mask); s++)
unsigned long slice_mask = 0;
8 * sizeof(slice_mask));
slice_mask |= BIT(i);
return slice_mask;
u8 slice_mask;
.slice_mask = sseu->slice_mask,
u8 slice_mask;
sseu->slice_mask |= BIT(s);
sseu->slice_mask = slice_info & GEN8_LSLICESTAT_MASK;
if (sseu->slice_mask) {
for (s = 0; s < fls(sseu->slice_mask); s++)
for (s = 0; s < fls(sseu->slice_mask); s++) {
sseu->slice_mask);
hweight8(sseu->slice_mask));
sseu->slice_mask = BIT(0);
sseu->slice_mask |= BIT(s);
slice = ffs(sseu->slice_mask) - 1;
GEM_BUG_ON(hweight8(sseu->slice_mask) > 1);
unsigned long slice, subslice = 0, slice_mask = 0;
slice_mask = intel_slicemask_from_xehp_dssmask(sseu->subslice_mask,
if (slice_mask & lncf_mask) {
slice_mask &= lncf_mask;
if (slice_mask & gt->info.mslice_mask) {
slice_mask &= gt->info.mslice_mask;
slice = __ffs(slice_mask);
hweight8(gt->info.sseu.slice_mask));
value = sseu->slice_mask;
out_sseu->slice_mask = 0x1;
BUILD_BUG_ON(sizeof(u8) != sizeof(sseu->slice_mask));
slice_length = sizeof(sseu->slice_mask);
&sseu->slice_mask, slice_length))
u32 slice_mask;
a6xx_gpu->slice_mask = slice_mask;
slice_mask &= a6xx_llc_read(a6xx_gpu,
a6xx_gpu->slice_mask = slice_mask;
adreno_gpu->chip_id |= FIELD_PREP(GENMASK(7, 4), hweight32(slice_mask));
return ffs(a6xx_gpu->slice_mask) - 1;
u32 slice_mask;
if (a6xx_gpu->slice_mask)
slice_mask = GENMASK(info->max_slices - 1, 0);
__u64 slice_mask;
__u64 slice_mask;