| /* SPDX-License-Identifier: MIT */ |
| #ifndef __NVKM_OS_H__ |
| #define __NVKM_OS_H__ |
| #include <nvif/os.h> |
| |
| #ifdef __BIG_ENDIAN |
| #define ioread16_native ioread16be |
| #define iowrite16_native iowrite16be |
| #define ioread32_native ioread32be |
| #define iowrite32_native iowrite32be |
| #else |
| #define ioread16_native ioread16 |
| #define iowrite16_native iowrite16 |
| #define ioread32_native ioread32 |
| #define iowrite32_native iowrite32 |
| #endif |
| |
| #define iowrite64_native(v,p) do { \ |
| u32 __iomem *_p = (u32 __iomem *)(p); \ |
| u64 _v = (v); \ |
| iowrite32_native(lower_32_bits(_v), &_p[0]); \ |
| iowrite32_native(upper_32_bits(_v), &_p[1]); \ |
| } while(0) |
| |
| struct nvkm_blob { |
| void *data; |
| u32 size; |
| }; |
| |
| static inline void |
| nvkm_blob_dtor(struct nvkm_blob *blob) |
| { |
| kfree(blob->data); |
| blob->data = NULL; |
| blob->size = 0; |
| } |
| #endif |