2c2
< * Copyright (c) 2014-2015 ARM Limited
---
> * Copyright (c) 2014-2016 ARM Limited
48a49,54
> static const std::map<Enums::NoMaliGpuType, nomali_gpu_type_t> gpuTypeMap{
> { Enums::T60x, NOMALI_GPU_T60X },
> { Enums::T62x, NOMALI_GPU_T62X },
> { Enums::T760, NOMALI_GPU_T760 },
> };
>
66,80c72,75
< switch (p->gpu_type) {
< case Enums::T60x:
< cfg.type = NOMALI_GPU_T60X;
< break;
<
< case Enums::T62x:
< cfg.type = NOMALI_GPU_T62X;
< break;
<
< case Enums::T760:
< cfg.type = NOMALI_GPU_T760;
< break;
<
< default:
< fatal("Unknown GPU type\n");
---
> const auto it_gpu(gpuTypeMap.find(p->gpu_type));
> if (it_gpu == gpuTypeMap.end()) {
> fatal("Unrecognized GPU type: %s (%i)\n",
> Enums::NoMaliGpuTypeStrings[p->gpu_type], p->gpu_type);
81a77
> cfg.type = it_gpu->second;
97,99c93
< panicOnErr(
< nomali_set_callback(nomali, &cbk_int),
< "Failed to setup interrupt callback");
---
> setCallback(cbk_int);
111d104
<
181a175,184
> void
> NoMaliGpu::reset()
> {
> DPRINTF(NoMali, "reset()\n");
>
> panicOnErr(
> nomali_reset(nomali),
> "Failed to reset GPU");
> }
>
230,231c233,234
< void
< NoMaliGpu::_interrupt(nomali_handle_t h, void *usr, nomali_int_t intno, int set)
---
> bool
> NoMaliGpu::intState(nomali_int_t intno)
233c236,239
< NoMaliGpu *_this(static_cast<NoMaliGpu *>(usr));
---
> int state = 0;
> panicOnErr(
> nomali_int_state(nomali, &state, intno),
> "Failed to get interrupt state");
235c241
< _this->onInterrupt(h, intno, !!set);
---
> return !!state;
239c245
< NoMaliGpu::onInterrupt(nomali_handle_t h, nomali_int_t intno, bool set)
---
> NoMaliGpu::gpuPanic(nomali_error_t err, const char *msg)
240a247,253
> panic("%s: %s\n", msg, nomali_errstr(err));
> }
>
>
> void
> NoMaliGpu::onInterrupt(nomali_int_t intno, bool set)
> {
258c271
< NoMaliGpu::gpuPanic(nomali_error_t err, const char *msg)
---
> NoMaliGpu::setCallback(const nomali_callback_t &callback)
260c273,278
< panic("%s: %s\n", msg, nomali_errstr(err));
---
> DPRINTF(NoMali, "Registering callback %i\n",
> callback.type);
>
> panicOnErr(
> nomali_set_callback(nomali, &callback),
> "Failed to register callback");
262a281,289
> void
> NoMaliGpu::_interrupt(nomali_handle_t h, void *usr,
> nomali_int_t intno, int set)
> {
> NoMaliGpu *_this(static_cast<NoMaliGpu *>(usr));
>
> _this->onInterrupt(intno, !!set);
> }
>