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: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200123135943.24140-7-tzimmermann@suse.de
This commit is contained in:
Родитель
e3eff4b5d9
Коммит
42eabbe558
|
@ -977,6 +977,9 @@ const struct drm_crtc_funcs cdv_intel_crtc_funcs = {
|
|||
.set_config = gma_crtc_set_config,
|
||||
.destroy = gma_crtc_destroy,
|
||||
.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 = {
|
||||
|
|
|
@ -363,7 +363,6 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)
|
|||
drm_irq_install(dev, dev->pdev->irq);
|
||||
|
||||
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_fbdev_init(dev);
|
||||
|
@ -507,9 +506,6 @@ static struct drm_driver driver = {
|
|||
.irq_postinstall = psb_irq_postinstall,
|
||||
.irq_uninstall = psb_irq_uninstall,
|
||||
.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_vm_ops = &psb_gem_vm_ops,
|
||||
|
|
|
@ -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 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_enable_vblank(struct drm_device *dev, unsigned int pipe);
|
||||
extern void psb_disable_vblank(struct drm_device *dev, unsigned int pipe);
|
||||
extern int psb_enable_vblank(struct drm_crtc *crtc);
|
||||
extern void psb_disable_vblank(struct drm_crtc *crtc);
|
||||
void
|
||||
psb_enable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask);
|
||||
|
||||
void
|
||||
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 */
|
||||
extern int psbfb_probed(struct drm_device *dev);
|
||||
|
|
|
@ -433,6 +433,9 @@ const struct drm_crtc_funcs psb_intel_crtc_funcs = {
|
|||
.set_config = gma_crtc_set_config,
|
||||
.destroy = gma_crtc_destroy,
|
||||
.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 = {
|
||||
|
|
|
@ -506,8 +506,10 @@ int psb_irq_disable_dpst(struct drm_device *dev)
|
|||
/*
|
||||
* 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;
|
||||
unsigned long irqflags;
|
||||
uint32_t reg_val = 0;
|
||||
|
@ -545,8 +547,10 @@ int psb_enable_vblank(struct drm_device *dev, unsigned int pipe)
|
|||
/*
|
||||
* 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;
|
||||
unsigned long irqflags;
|
||||
|
||||
|
@ -618,8 +622,10 @@ void mdfld_disable_te(struct drm_device *dev, int pipe)
|
|||
/* Called from drm generic code, passed a 'crtc', which
|
||||
* 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 low_frame = PIPEAFRAMEPIXEL;
|
||||
uint32_t pipeconf_reg = PIPEACONF;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#ifndef _PSB_IRQ_H_
|
||||
#define _PSB_IRQ_H_
|
||||
|
||||
struct drm_crtc;
|
||||
struct drm_device;
|
||||
|
||||
bool sysirq_init(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);
|
||||
void psb_irq_turn_on_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);
|
||||
void psb_disable_vblank(struct drm_device *dev, unsigned int pipe);
|
||||
u32 psb_get_vblank_counter(struct drm_device *dev, unsigned int pipe);
|
||||
int psb_enable_vblank(struct drm_crtc *crtc);
|
||||
void psb_disable_vblank(struct drm_crtc *crtc);
|
||||
u32 psb_get_vblank_counter(struct drm_crtc *crtc);
|
||||
|
||||
int mdfld_enable_te(struct drm_device *dev, int pipe);
|
||||
void mdfld_disable_te(struct drm_device *dev, int pipe);
|
||||
|
|
Загрузка…
Ссылка в новой задаче