drm/modes: Add drm_mode_hsync()
Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
9cf00977da
commit
7ac96a9cb4
|
@ -553,6 +553,32 @@ int drm_mode_height(struct drm_display_mode *mode)
|
|||
}
|
||||
EXPORT_SYMBOL(drm_mode_height);
|
||||
|
||||
/** drm_mode_hsync - get the hsync of a mode
|
||||
* @mode: mode
|
||||
*
|
||||
* LOCKING:
|
||||
* None.
|
||||
*
|
||||
* Return @modes's hsync rate in kHz, rounded to the nearest int.
|
||||
*/
|
||||
int drm_mode_hsync(struct drm_display_mode *mode)
|
||||
{
|
||||
unsigned int calc_val;
|
||||
|
||||
if (mode->hsync)
|
||||
return mode->hsync;
|
||||
|
||||
if (mode->htotal < 0)
|
||||
return 0;
|
||||
|
||||
calc_val = (mode->clock * 1000) / mode->htotal; /* hsync in Hz */
|
||||
calc_val += 500; /* round to 1000Hz */
|
||||
calc_val /= 1000; /* truncate to kHz */
|
||||
|
||||
return calc_val;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_mode_hsync);
|
||||
|
||||
/**
|
||||
* drm_mode_vrefresh - get the vrefresh of a mode
|
||||
* @mode: mode
|
||||
|
@ -560,7 +586,7 @@ EXPORT_SYMBOL(drm_mode_height);
|
|||
* LOCKING:
|
||||
* None.
|
||||
*
|
||||
* Return @mode's vrefresh rate or calculate it if necessary.
|
||||
* Return @mode's vrefresh rate in Hz or calculate it if necessary.
|
||||
*
|
||||
* FIXME: why is this needed? shouldn't vrefresh be set already?
|
||||
*
|
||||
|
|
|
@ -123,7 +123,7 @@ struct drm_display_mode {
|
|||
int type;
|
||||
|
||||
/* Proposed mode values */
|
||||
int clock;
|
||||
int clock; /* in kHz */
|
||||
int hdisplay;
|
||||
int hsync_start;
|
||||
int hsync_end;
|
||||
|
@ -164,8 +164,8 @@ struct drm_display_mode {
|
|||
int *private;
|
||||
int private_flags;
|
||||
|
||||
int vrefresh;
|
||||
float hsync;
|
||||
int vrefresh; /* in Hz */
|
||||
int hsync; /* in kHz */
|
||||
};
|
||||
|
||||
enum drm_connector_status {
|
||||
|
@ -681,6 +681,7 @@ extern void drm_mode_validate_size(struct drm_device *dev,
|
|||
extern void drm_mode_prune_invalid(struct drm_device *dev,
|
||||
struct list_head *mode_list, bool verbose);
|
||||
extern void drm_mode_sort(struct list_head *mode_list);
|
||||
extern int drm_mode_hsync(struct drm_display_mode *mode);
|
||||
extern int drm_mode_vrefresh(struct drm_display_mode *mode);
|
||||
extern void drm_mode_set_crtcinfo(struct drm_display_mode *p,
|
||||
int adjust_flags);
|
||||
|
|
Loading…
Reference in a new issue