1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- * SPDX-License-Identifier: GPL-2.0
- *
- * Copyright © 2018 Intel Corporation
- */
- #include "../i915_selftest.h"
- static int intel_mmio_bases_check(void *arg)
- {
- int i, j;
- for (i = 0; i < ARRAY_SIZE(intel_engines); i++) {
- const struct engine_info *info = &intel_engines[i];
- char name[INTEL_ENGINE_CS_MAX_NAME];
- u8 prev = U8_MAX;
- __sprint_engine_name(name, info);
- for (j = 0; j < MAX_MMIO_BASES; j++) {
- u8 gen = info->mmio_bases[j].gen;
- u32 base = info->mmio_bases[j].base;
- if (gen >= prev) {
- pr_err("%s: %s: mmio base for gen %x "
- "is before the one for gen %x\n",
- __func__, name, prev, gen);
- return -EINVAL;
- }
- if (gen == 0)
- break;
- if (!base) {
- pr_err("%s: %s: invalid mmio base (%x) "
- "for gen %x at entry %u\n",
- __func__, name, base, gen, j);
- return -EINVAL;
- }
- prev = gen;
- }
- pr_info("%s: min gen supported for %s = %d\n",
- __func__, name, prev);
- }
- return 0;
- }
- int intel_engine_cs_mock_selftests(void)
- {
- static const struct i915_subtest tests[] = {
- SUBTEST(intel_mmio_bases_check),
- };
- return i915_subtests(tests, NULL);
- }
|