Commit 42eabbe5 authored by Thomas Zimmermann's avatar Thomas Zimmermann

drm/gma500: Convert to CRTC VBLANK callbacks

VBLANK callbacks in struct drm_driver are deprecated in favor of
their equivalents in struct drm_crtc_funcs. Convert gma500 over.
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200123135943.24140-7-tzimmermann@suse.de
parent e3eff4b5
...@@ -977,6 +977,9 @@ const struct drm_crtc_funcs cdv_intel_crtc_funcs = { ...@@ -977,6 +977,9 @@ const struct drm_crtc_funcs cdv_intel_crtc_funcs = {
.set_config = gma_crtc_set_config, .set_config = gma_crtc_set_config,
.destroy = gma_crtc_destroy, .destroy = gma_crtc_destroy,
.page_flip = gma_crtc_page_flip, .page_flip = gma_crtc_page_flip,
.enable_vblank = psb_enable_vblank,
.disable_vblank = psb_disable_vblank,
.get_vblank_counter = psb_get_vblank_counter,
}; };
const struct gma_clock_funcs cdv_clock_funcs = { const struct gma_clock_funcs cdv_clock_funcs = {
......
...@@ -363,7 +363,6 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags) ...@@ -363,7 +363,6 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)
drm_irq_install(dev, dev->pdev->irq); drm_irq_install(dev, dev->pdev->irq);
dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */ dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
dev->driver->get_vblank_counter = psb_get_vblank_counter;
psb_modeset_init(dev); psb_modeset_init(dev);
psb_fbdev_init(dev); psb_fbdev_init(dev);
...@@ -507,9 +506,6 @@ static struct drm_driver driver = { ...@@ -507,9 +506,6 @@ static struct drm_driver driver = {
.irq_postinstall = psb_irq_postinstall, .irq_postinstall = psb_irq_postinstall,
.irq_uninstall = psb_irq_uninstall, .irq_uninstall = psb_irq_uninstall,
.irq_handler = psb_irq_handler, .irq_handler = psb_irq_handler,
.enable_vblank = psb_enable_vblank,
.disable_vblank = psb_disable_vblank,
.get_vblank_counter = psb_get_vblank_counter,
.gem_free_object = psb_gem_free_object, .gem_free_object = psb_gem_free_object,
.gem_vm_ops = &psb_gem_vm_ops, .gem_vm_ops = &psb_gem_vm_ops,
......
...@@ -681,15 +681,15 @@ extern void psb_irq_turn_off_dpst(struct drm_device *dev); ...@@ -681,15 +681,15 @@ extern void psb_irq_turn_off_dpst(struct drm_device *dev);
extern void psb_irq_uninstall_islands(struct drm_device *dev, int hw_islands); extern void psb_irq_uninstall_islands(struct drm_device *dev, int hw_islands);
extern int psb_vblank_wait2(struct drm_device *dev, unsigned int *sequence); extern int psb_vblank_wait2(struct drm_device *dev, unsigned int *sequence);
extern int psb_vblank_wait(struct drm_device *dev, unsigned int *sequence); extern int psb_vblank_wait(struct drm_device *dev, unsigned int *sequence);
extern int psb_enable_vblank(struct drm_device *dev, unsigned int pipe); extern int psb_enable_vblank(struct drm_crtc *crtc);
extern void psb_disable_vblank(struct drm_device *dev, unsigned int pipe); extern void psb_disable_vblank(struct drm_crtc *crtc);
void void
psb_enable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask); psb_enable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask);
void void
psb_disable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask); psb_disable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask);
extern u32 psb_get_vblank_counter(struct drm_device *dev, unsigned int pipe); extern u32 psb_get_vblank_counter(struct drm_crtc *crtc);
/* framebuffer.c */ /* framebuffer.c */
extern int psbfb_probed(struct drm_device *dev); extern int psbfb_probed(struct drm_device *dev);
......
...@@ -433,6 +433,9 @@ const struct drm_crtc_funcs psb_intel_crtc_funcs = { ...@@ -433,6 +433,9 @@ const struct drm_crtc_funcs psb_intel_crtc_funcs = {
.set_config = gma_crtc_set_config, .set_config = gma_crtc_set_config,
.destroy = gma_crtc_destroy, .destroy = gma_crtc_destroy,
.page_flip = gma_crtc_page_flip, .page_flip = gma_crtc_page_flip,
.enable_vblank = psb_enable_vblank,
.disable_vblank = psb_disable_vblank,
.get_vblank_counter = psb_get_vblank_counter,
}; };
const struct gma_clock_funcs psb_clock_funcs = { const struct gma_clock_funcs psb_clock_funcs = {
......
...@@ -506,8 +506,10 @@ int psb_irq_disable_dpst(struct drm_device *dev) ...@@ -506,8 +506,10 @@ int psb_irq_disable_dpst(struct drm_device *dev)
/* /*
* It is used to enable VBLANK interrupt * It is used to enable VBLANK interrupt
*/ */
int psb_enable_vblank(struct drm_device *dev, unsigned int pipe) int psb_enable_vblank(struct drm_crtc *crtc)
{ {
struct drm_device *dev = crtc->dev;
unsigned int pipe = crtc->index;
struct drm_psb_private *dev_priv = dev->dev_private; struct drm_psb_private *dev_priv = dev->dev_private;
unsigned long irqflags; unsigned long irqflags;
uint32_t reg_val = 0; uint32_t reg_val = 0;
...@@ -545,8 +547,10 @@ int psb_enable_vblank(struct drm_device *dev, unsigned int pipe) ...@@ -545,8 +547,10 @@ int psb_enable_vblank(struct drm_device *dev, unsigned int pipe)
/* /*
* It is used to disable VBLANK interrupt * It is used to disable VBLANK interrupt
*/ */
void psb_disable_vblank(struct drm_device *dev, unsigned int pipe) void psb_disable_vblank(struct drm_crtc *crtc)
{ {
struct drm_device *dev = crtc->dev;
unsigned int pipe = crtc->index;
struct drm_psb_private *dev_priv = dev->dev_private; struct drm_psb_private *dev_priv = dev->dev_private;
unsigned long irqflags; unsigned long irqflags;
...@@ -618,8 +622,10 @@ void mdfld_disable_te(struct drm_device *dev, int pipe) ...@@ -618,8 +622,10 @@ void mdfld_disable_te(struct drm_device *dev, int pipe)
/* Called from drm generic code, passed a 'crtc', which /* Called from drm generic code, passed a 'crtc', which
* we use as a pipe index * we use as a pipe index
*/ */
u32 psb_get_vblank_counter(struct drm_device *dev, unsigned int pipe) u32 psb_get_vblank_counter(struct drm_crtc *crtc)
{ {
struct drm_device *dev = crtc->dev;
unsigned int pipe = crtc->index;
uint32_t high_frame = PIPEAFRAMEHIGH; uint32_t high_frame = PIPEAFRAMEHIGH;
uint32_t low_frame = PIPEAFRAMEPIXEL; uint32_t low_frame = PIPEAFRAMEPIXEL;
uint32_t pipeconf_reg = PIPEACONF; uint32_t pipeconf_reg = PIPEACONF;
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#ifndef _PSB_IRQ_H_ #ifndef _PSB_IRQ_H_
#define _PSB_IRQ_H_ #define _PSB_IRQ_H_
struct drm_crtc;
struct drm_device; struct drm_device;
bool sysirq_init(struct drm_device *dev); bool sysirq_init(struct drm_device *dev);
...@@ -26,9 +27,9 @@ int psb_irq_enable_dpst(struct drm_device *dev); ...@@ -26,9 +27,9 @@ int psb_irq_enable_dpst(struct drm_device *dev);
int psb_irq_disable_dpst(struct drm_device *dev); int psb_irq_disable_dpst(struct drm_device *dev);
void psb_irq_turn_on_dpst(struct drm_device *dev); void psb_irq_turn_on_dpst(struct drm_device *dev);
void psb_irq_turn_off_dpst(struct drm_device *dev); void psb_irq_turn_off_dpst(struct drm_device *dev);
int psb_enable_vblank(struct drm_device *dev, unsigned int pipe); int psb_enable_vblank(struct drm_crtc *crtc);
void psb_disable_vblank(struct drm_device *dev, unsigned int pipe); void psb_disable_vblank(struct drm_crtc *crtc);
u32 psb_get_vblank_counter(struct drm_device *dev, unsigned int pipe); u32 psb_get_vblank_counter(struct drm_crtc *crtc);
int mdfld_enable_te(struct drm_device *dev, int pipe); int mdfld_enable_te(struct drm_device *dev, int pipe);
void mdfld_disable_te(struct drm_device *dev, int pipe); void mdfld_disable_te(struct drm_device *dev, int pipe);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment