drm/nouveau: Convert to struct drm_crtc_helper_funcs.get_scanout_position()

The callback struct drm_driver.get_scanout_position() is deprecated in
favor of struct drm_crtc_helper_funcs.get_scanout_position(). Convert
nouveau over.

v4:
	* add argument names in function declaration

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200123135943.24140-9-tzimmermann@suse.de
This commit is contained in:
Thomas Zimmermann 2020-01-23 14:59:29 +01:00
parent 4bbffbf3c1
commit 072a26c75c
5 changed files with 9 additions and 15 deletions

View File

@ -1258,6 +1258,7 @@ static const struct drm_crtc_helper_funcs nv04_crtc_helper_funcs = {
.mode_set_base = nv04_crtc_mode_set_base, .mode_set_base = nv04_crtc_mode_set_base,
.mode_set_base_atomic = nv04_crtc_mode_set_base_atomic, .mode_set_base_atomic = nv04_crtc_mode_set_base_atomic,
.disable = nv_crtc_disable, .disable = nv_crtc_disable,
.get_scanout_position = nouveau_display_scanoutpos,
}; };
static const uint32_t modeset_formats[] = { static const uint32_t modeset_formats[] = {

View File

@ -403,6 +403,7 @@ nv50_head_atomic_check(struct drm_crtc *crtc, struct drm_crtc_state *state)
static const struct drm_crtc_helper_funcs static const struct drm_crtc_helper_funcs
nv50_head_help = { nv50_head_help = {
.atomic_check = nv50_head_atomic_check, .atomic_check = nv50_head_atomic_check,
.get_scanout_position = nouveau_display_scanoutpos,
}; };
static void static void

View File

@ -136,21 +136,13 @@ nouveau_display_scanoutpos_head(struct drm_crtc *crtc, int *vpos, int *hpos,
} }
bool bool
nouveau_display_scanoutpos(struct drm_device *dev, unsigned int pipe, nouveau_display_scanoutpos(struct drm_crtc *crtc,
bool in_vblank_irq, int *vpos, int *hpos, bool in_vblank_irq, int *vpos, int *hpos,
ktime_t *stime, ktime_t *etime, ktime_t *stime, ktime_t *etime,
const struct drm_display_mode *mode) const struct drm_display_mode *mode)
{ {
struct drm_crtc *crtc; return nouveau_display_scanoutpos_head(crtc, vpos, hpos,
stime, etime);
list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
if (nouveau_crtc(crtc)->index == pipe) {
return nouveau_display_scanoutpos_head(crtc, vpos, hpos,
stime, etime);
}
}
return false;
} }
static void static void

View File

@ -63,9 +63,10 @@ int nouveau_display_suspend(struct drm_device *dev, bool runtime);
void nouveau_display_resume(struct drm_device *dev, bool runtime); void nouveau_display_resume(struct drm_device *dev, bool runtime);
int nouveau_display_vblank_enable(struct drm_device *, unsigned int); int nouveau_display_vblank_enable(struct drm_device *, unsigned int);
void nouveau_display_vblank_disable(struct drm_device *, unsigned int); void nouveau_display_vblank_disable(struct drm_device *, unsigned int);
bool nouveau_display_scanoutpos(struct drm_device *, unsigned int, bool nouveau_display_scanoutpos(struct drm_crtc *crtc,
bool, int *, int *, ktime_t *, bool in_vblank_irq, int *vpos, int *hpos,
ktime_t *, const struct drm_display_mode *); ktime_t *stime, ktime_t *etime,
const struct drm_display_mode *mode);
int nouveau_display_dumb_create(struct drm_file *, struct drm_device *, int nouveau_display_dumb_create(struct drm_file *, struct drm_device *,
struct drm_mode_create_dumb *args); struct drm_mode_create_dumb *args);

View File

@ -1123,7 +1123,6 @@ driver_stub = {
.enable_vblank = nouveau_display_vblank_enable, .enable_vblank = nouveau_display_vblank_enable,
.disable_vblank = nouveau_display_vblank_disable, .disable_vblank = nouveau_display_vblank_disable,
.get_scanout_position = nouveau_display_scanoutpos,
.get_vblank_timestamp = drm_calc_vbltimestamp_from_scanoutpos, .get_vblank_timestamp = drm_calc_vbltimestamp_from_scanoutpos,
.ioctls = nouveau_ioctls, .ioctls = nouveau_ioctls,