nouveau_compat.c 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "nouveau_drm.h"
  2. #include "nouveau_compat.h"
  3. #include <subdev/bios.h>
  4. void *nouveau_newpriv(struct drm_device *);
  5. u8
  6. _nv_rd08(struct drm_device *dev, u32 reg)
  7. {
  8. struct nouveau_drm *drm = nouveau_newpriv(dev);
  9. return nv_ro08(drm->device, reg);
  10. }
  11. void
  12. _nv_wr08(struct drm_device *dev, u32 reg, u8 val)
  13. {
  14. struct nouveau_drm *drm = nouveau_newpriv(dev);
  15. nv_wo08(drm->device, reg, val);
  16. }
  17. u32
  18. _nv_rd32(struct drm_device *dev, u32 reg)
  19. {
  20. struct nouveau_drm *drm = nouveau_newpriv(dev);
  21. return nv_ro32(drm->device, reg);
  22. }
  23. void
  24. _nv_wr32(struct drm_device *dev, u32 reg, u32 val)
  25. {
  26. struct nouveau_drm *drm = nouveau_newpriv(dev);
  27. nv_wo32(drm->device, reg, val);
  28. }
  29. u32
  30. _nv_mask(struct drm_device *dev, u32 reg, u32 mask, u32 val)
  31. {
  32. u32 tmp = _nv_rd32(dev, reg);
  33. _nv_wr32(dev, reg, (tmp & ~mask) | val);
  34. return tmp;
  35. }
  36. bool
  37. _nv_bios(struct drm_device *dev, u8 **data, u32 *size)
  38. {
  39. struct nouveau_drm *drm = nouveau_newpriv(dev);
  40. struct nouveau_bios *bios = nouveau_bios(drm->device);
  41. *data = bios->data;
  42. *size = bios->size;
  43. return true;
  44. }