0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef __NOUVEAU_FBCON_H__
0028 #define __NOUVEAU_FBCON_H__
0029
0030 #include <drm/drm_fb_helper.h>
0031
0032 #include "nouveau_display.h"
0033
0034 struct nouveau_vma;
0035
0036 struct nouveau_fbdev {
0037 struct drm_fb_helper helper;
0038 unsigned int saved_flags;
0039 struct nvif_object surf2d;
0040 struct nvif_object clip;
0041 struct nvif_object rop;
0042 struct nvif_object patt;
0043 struct nvif_object gdi;
0044 struct nvif_object blit;
0045 struct nvif_object twod;
0046 struct nouveau_vma *vma;
0047
0048 struct mutex hotplug_lock;
0049 bool hotplug_waiting;
0050 };
0051
0052 void nouveau_fbcon_restore(void);
0053
0054 int nv04_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region);
0055 int nv04_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
0056 int nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image);
0057 int nv04_fbcon_accel_init(struct fb_info *info);
0058
0059 int nv50_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
0060 int nv50_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region);
0061 int nv50_fbcon_imageblit(struct fb_info *info, const struct fb_image *image);
0062 int nv50_fbcon_accel_init(struct fb_info *info);
0063
0064 int nvc0_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
0065 int nvc0_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region);
0066 int nvc0_fbcon_imageblit(struct fb_info *info, const struct fb_image *image);
0067 int nvc0_fbcon_accel_init(struct fb_info *info);
0068
0069 void nouveau_fbcon_gpu_lockup(struct fb_info *info);
0070
0071 int nouveau_fbcon_init(struct drm_device *dev);
0072 void nouveau_fbcon_fini(struct drm_device *dev);
0073 void nouveau_fbcon_set_suspend(struct drm_device *dev, int state);
0074 void nouveau_fbcon_accel_save_disable(struct drm_device *dev);
0075 void nouveau_fbcon_accel_restore(struct drm_device *dev);
0076
0077 void nouveau_fbcon_output_poll_changed(struct drm_device *dev);
0078 void nouveau_fbcon_hotplug_resume(struct nouveau_fbdev *fbcon);
0079 extern int nouveau_nofbaccel;
0080
0081 #endif
0082