mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
drm/irq: Unexport drm_vblank_on/off
Only remaining use was in amdgpu, and trivial to convert over to drm_crtc_vblank_* variants. Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20161114090255.31595-5-daniel.vetter@ffwll.ch
This commit is contained in:
parent
d6b0f62637
commit
2d1e331fa9
3 changed files with 23 additions and 64 deletions
|
@ -214,12 +214,12 @@ static void dce_virtual_crtc_dpms(struct drm_crtc *crtc, int mode)
|
||||||
/* Make sure VBLANK interrupts are still enabled */
|
/* Make sure VBLANK interrupts are still enabled */
|
||||||
type = amdgpu_crtc_idx_to_irq_type(adev, amdgpu_crtc->crtc_id);
|
type = amdgpu_crtc_idx_to_irq_type(adev, amdgpu_crtc->crtc_id);
|
||||||
amdgpu_irq_update(adev, &adev->crtc_irq, type);
|
amdgpu_irq_update(adev, &adev->crtc_irq, type);
|
||||||
drm_vblank_on(dev, amdgpu_crtc->crtc_id);
|
drm_crtc_vblank_on(crtc);
|
||||||
break;
|
break;
|
||||||
case DRM_MODE_DPMS_STANDBY:
|
case DRM_MODE_DPMS_STANDBY:
|
||||||
case DRM_MODE_DPMS_SUSPEND:
|
case DRM_MODE_DPMS_SUSPEND:
|
||||||
case DRM_MODE_DPMS_OFF:
|
case DRM_MODE_DPMS_OFF:
|
||||||
drm_vblank_off(dev, amdgpu_crtc->crtc_id);
|
drm_crtc_vblank_off(crtc);
|
||||||
amdgpu_crtc->enabled = false;
|
amdgpu_crtc->enabled = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ static void store_vblank(struct drm_device *dev, unsigned int pipe,
|
||||||
* Reset the stored timestamp for the current vblank count to correspond
|
* Reset the stored timestamp for the current vblank count to correspond
|
||||||
* to the last vblank occurred.
|
* to the last vblank occurred.
|
||||||
*
|
*
|
||||||
* Only to be called from drm_vblank_on().
|
* Only to be called from drm_crtc_vblank_on().
|
||||||
*
|
*
|
||||||
* Note: caller must hold dev->vbl_lock since this reads & writes
|
* Note: caller must hold dev->vbl_lock since this reads & writes
|
||||||
* device vblank fields.
|
* device vblank fields.
|
||||||
|
@ -306,7 +306,7 @@ static void vblank_disable_and_save(struct drm_device *dev, unsigned int pipe)
|
||||||
* Always update the count and timestamp to maintain the
|
* Always update the count and timestamp to maintain the
|
||||||
* appearance that the counter has been ticking all along until
|
* appearance that the counter has been ticking all along until
|
||||||
* this time. This makes the count account for the entire time
|
* this time. This makes the count account for the entire time
|
||||||
* between drm_vblank_on() and drm_vblank_off().
|
* between drm_crtc_vblank_on() and drm_crtc_vblank_off().
|
||||||
*/
|
*/
|
||||||
drm_update_vblank_count(dev, pipe, 0);
|
drm_update_vblank_count(dev, pipe, 0);
|
||||||
|
|
||||||
|
@ -1255,21 +1255,20 @@ void drm_crtc_wait_one_vblank(struct drm_crtc *crtc)
|
||||||
EXPORT_SYMBOL(drm_crtc_wait_one_vblank);
|
EXPORT_SYMBOL(drm_crtc_wait_one_vblank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* drm_vblank_off - disable vblank events on a CRTC
|
* drm_crtc_vblank_off - disable vblank events on a CRTC
|
||||||
* @dev: DRM device
|
* @crtc: CRTC in question
|
||||||
* @pipe: CRTC index
|
|
||||||
*
|
*
|
||||||
* Drivers can use this function to shut down the vblank interrupt handling when
|
* Drivers can use this function to shut down the vblank interrupt handling when
|
||||||
* disabling a crtc. This function ensures that the latest vblank frame count is
|
* disabling a crtc. This function ensures that the latest vblank frame count is
|
||||||
* stored so that drm_vblank_on() can restore it again.
|
* stored so that drm_vblank_on can restore it again.
|
||||||
*
|
*
|
||||||
* Drivers must use this function when the hardware vblank counter can get
|
* Drivers must use this function when the hardware vblank counter can get
|
||||||
* reset, e.g. when suspending.
|
* reset, e.g. when suspending.
|
||||||
*
|
|
||||||
* This is the legacy version of drm_crtc_vblank_off().
|
|
||||||
*/
|
*/
|
||||||
void drm_vblank_off(struct drm_device *dev, unsigned int pipe)
|
void drm_crtc_vblank_off(struct drm_crtc *crtc)
|
||||||
{
|
{
|
||||||
|
struct drm_device *dev = crtc->dev;
|
||||||
|
unsigned int pipe = drm_crtc_index(crtc);
|
||||||
struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
|
struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
|
||||||
struct drm_pending_vblank_event *e, *t;
|
struct drm_pending_vblank_event *e, *t;
|
||||||
struct timeval now;
|
struct timeval now;
|
||||||
|
@ -1285,7 +1284,8 @@ void drm_vblank_off(struct drm_device *dev, unsigned int pipe)
|
||||||
DRM_DEBUG_VBL("crtc %d, vblank enabled %d, inmodeset %d\n",
|
DRM_DEBUG_VBL("crtc %d, vblank enabled %d, inmodeset %d\n",
|
||||||
pipe, vblank->enabled, vblank->inmodeset);
|
pipe, vblank->enabled, vblank->inmodeset);
|
||||||
|
|
||||||
/* Avoid redundant vblank disables without previous drm_vblank_on(). */
|
/* Avoid redundant vblank disables without previous
|
||||||
|
* drm_crtc_vblank_on(). */
|
||||||
if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
|
if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
|
||||||
vblank_disable_and_save(dev, pipe);
|
vblank_disable_and_save(dev, pipe);
|
||||||
|
|
||||||
|
@ -1316,25 +1316,6 @@ void drm_vblank_off(struct drm_device *dev, unsigned int pipe)
|
||||||
}
|
}
|
||||||
spin_unlock_irqrestore(&dev->event_lock, irqflags);
|
spin_unlock_irqrestore(&dev->event_lock, irqflags);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_vblank_off);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* drm_crtc_vblank_off - disable vblank events on a CRTC
|
|
||||||
* @crtc: CRTC in question
|
|
||||||
*
|
|
||||||
* Drivers can use this function to shut down the vblank interrupt handling when
|
|
||||||
* disabling a crtc. This function ensures that the latest vblank frame count is
|
|
||||||
* stored so that drm_vblank_on can restore it again.
|
|
||||||
*
|
|
||||||
* Drivers must use this function when the hardware vblank counter can get
|
|
||||||
* reset, e.g. when suspending.
|
|
||||||
*
|
|
||||||
* This is the native kms version of drm_vblank_off().
|
|
||||||
*/
|
|
||||||
void drm_crtc_vblank_off(struct drm_crtc *crtc)
|
|
||||||
{
|
|
||||||
drm_vblank_off(crtc->dev, drm_crtc_index(crtc));
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(drm_crtc_vblank_off);
|
EXPORT_SYMBOL(drm_crtc_vblank_off);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1370,19 +1351,18 @@ void drm_crtc_vblank_reset(struct drm_crtc *crtc)
|
||||||
EXPORT_SYMBOL(drm_crtc_vblank_reset);
|
EXPORT_SYMBOL(drm_crtc_vblank_reset);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* drm_vblank_on - enable vblank events on a CRTC
|
* drm_crtc_vblank_on - enable vblank events on a CRTC
|
||||||
* @dev: DRM device
|
* @crtc: CRTC in question
|
||||||
* @pipe: CRTC index
|
|
||||||
*
|
*
|
||||||
* This functions restores the vblank interrupt state captured with
|
* This functions restores the vblank interrupt state captured with
|
||||||
* drm_vblank_off() again. Note that calls to drm_vblank_on() and
|
* drm_crtc_vblank_off() again. Note that calls to drm_crtc_vblank_on() and
|
||||||
* drm_vblank_off() can be unbalanced and so can also be unconditionally called
|
* drm_crtc_vblank_off() can be unbalanced and so can also be unconditionally called
|
||||||
* in driver load code to reflect the current hardware state of the crtc.
|
* in driver load code to reflect the current hardware state of the crtc.
|
||||||
*
|
|
||||||
* This is the legacy version of drm_crtc_vblank_on().
|
|
||||||
*/
|
*/
|
||||||
void drm_vblank_on(struct drm_device *dev, unsigned int pipe)
|
void drm_crtc_vblank_on(struct drm_crtc *crtc)
|
||||||
{
|
{
|
||||||
|
struct drm_device *dev = crtc->dev;
|
||||||
|
unsigned int pipe = drm_crtc_index(crtc);
|
||||||
struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
|
struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
|
||||||
unsigned long irqflags;
|
unsigned long irqflags;
|
||||||
|
|
||||||
|
@ -1409,23 +1389,6 @@ void drm_vblank_on(struct drm_device *dev, unsigned int pipe)
|
||||||
WARN_ON(drm_vblank_enable(dev, pipe));
|
WARN_ON(drm_vblank_enable(dev, pipe));
|
||||||
spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
|
spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_vblank_on);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* drm_crtc_vblank_on - enable vblank events on a CRTC
|
|
||||||
* @crtc: CRTC in question
|
|
||||||
*
|
|
||||||
* This functions restores the vblank interrupt state captured with
|
|
||||||
* drm_vblank_off() again. Note that calls to drm_vblank_on() and
|
|
||||||
* drm_vblank_off() can be unbalanced and so can also be unconditionally called
|
|
||||||
* in driver load code to reflect the current hardware state of the crtc.
|
|
||||||
*
|
|
||||||
* This is the native kms version of drm_vblank_on().
|
|
||||||
*/
|
|
||||||
void drm_crtc_vblank_on(struct drm_crtc *crtc)
|
|
||||||
{
|
|
||||||
drm_vblank_on(crtc->dev, drm_crtc_index(crtc));
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(drm_crtc_vblank_on);
|
EXPORT_SYMBOL(drm_crtc_vblank_on);
|
||||||
|
|
||||||
static void drm_legacy_vblank_pre_modeset(struct drm_device *dev,
|
static void drm_legacy_vblank_pre_modeset(struct drm_device *dev,
|
||||||
|
@ -1548,11 +1511,10 @@ static int drm_queue_vblank_event(struct drm_device *dev, unsigned int pipe,
|
||||||
spin_lock_irqsave(&dev->event_lock, flags);
|
spin_lock_irqsave(&dev->event_lock, flags);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* drm_vblank_off() might have been called after we called
|
* drm_crtc_vblank_off() might have been called after we called
|
||||||
* drm_vblank_get(). drm_vblank_off() holds event_lock
|
* drm_vblank_get(). drm_crtc_vblank_off() holds event_lock around the
|
||||||
* around the vblank disable, so no need for further locking.
|
* vblank disable, so no need for further locking. The reference from
|
||||||
* The reference from drm_vblank_get() protects against
|
* drm_vblank_get() protects against vblank disable from another source.
|
||||||
* vblank disable from another source.
|
|
||||||
*/
|
*/
|
||||||
if (!vblank->enabled) {
|
if (!vblank->enabled) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
|
|
|
@ -136,7 +136,6 @@ extern int drm_irq_uninstall(struct drm_device *dev);
|
||||||
extern int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs);
|
extern int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs);
|
||||||
extern int drm_wait_vblank(struct drm_device *dev, void *data,
|
extern int drm_wait_vblank(struct drm_device *dev, void *data,
|
||||||
struct drm_file *filp);
|
struct drm_file *filp);
|
||||||
extern u32 drm_vblank_count(struct drm_device *dev, unsigned int pipe);
|
|
||||||
extern u32 drm_crtc_vblank_count(struct drm_crtc *crtc);
|
extern u32 drm_crtc_vblank_count(struct drm_crtc *crtc);
|
||||||
extern u32 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
|
extern u32 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
|
||||||
struct timeval *vblanktime);
|
struct timeval *vblanktime);
|
||||||
|
@ -150,8 +149,6 @@ extern int drm_crtc_vblank_get(struct drm_crtc *crtc);
|
||||||
extern void drm_crtc_vblank_put(struct drm_crtc *crtc);
|
extern void drm_crtc_vblank_put(struct drm_crtc *crtc);
|
||||||
extern void drm_wait_one_vblank(struct drm_device *dev, unsigned int pipe);
|
extern void drm_wait_one_vblank(struct drm_device *dev, unsigned int pipe);
|
||||||
extern void drm_crtc_wait_one_vblank(struct drm_crtc *crtc);
|
extern void drm_crtc_wait_one_vblank(struct drm_crtc *crtc);
|
||||||
extern void drm_vblank_off(struct drm_device *dev, unsigned int pipe);
|
|
||||||
extern void drm_vblank_on(struct drm_device *dev, unsigned int pipe);
|
|
||||||
extern void drm_crtc_vblank_off(struct drm_crtc *crtc);
|
extern void drm_crtc_vblank_off(struct drm_crtc *crtc);
|
||||||
extern void drm_crtc_vblank_reset(struct drm_crtc *crtc);
|
extern void drm_crtc_vblank_reset(struct drm_crtc *crtc);
|
||||||
extern void drm_crtc_vblank_on(struct drm_crtc *crtc);
|
extern void drm_crtc_vblank_on(struct drm_crtc *crtc);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue