0001
0002 #ifndef __NVKM_OS_H__
0003 #define __NVKM_OS_H__
0004 #include <nvif/os.h>
0005
0006 #ifdef __BIG_ENDIAN
0007 #define ioread16_native ioread16be
0008 #define iowrite16_native iowrite16be
0009 #define ioread32_native ioread32be
0010 #define iowrite32_native iowrite32be
0011 #else
0012 #define ioread16_native ioread16
0013 #define iowrite16_native iowrite16
0014 #define ioread32_native ioread32
0015 #define iowrite32_native iowrite32
0016 #endif
0017
0018 #define iowrite64_native(v,p) do { \
0019 u32 __iomem *_p = (u32 __iomem *)(p); \
0020 u64 _v = (v); \
0021 iowrite32_native(lower_32_bits(_v), &_p[0]); \
0022 iowrite32_native(upper_32_bits(_v), &_p[1]); \
0023 } while(0)
0024
0025 struct nvkm_blob {
0026 void *data;
0027 u32 size;
0028 };
0029
0030 static inline void
0031 nvkm_blob_dtor(struct nvkm_blob *blob)
0032 {
0033 kfree(blob->data);
0034 blob->data = NULL;
0035 blob->size = 0;
0036 }
0037 #endif