Message ID | 5f30dc5d79e1b75b1c7c40b161ccf4c221ef2f4e.1450192824.git.jani.nikula@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Dec 15, 2015 at 05:33:33PM +0200, Jani Nikula wrote: > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/i915_drv.h | 1 + > drivers/gpu/drm/i915/intel_bios.c | 38 ++++++++++++++++++++++++++++++++++ > drivers/gpu/drm/i915/intel_tv.c | 43 +-------------------------------------- > 3 files changed, 40 insertions(+), 42 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index b2cf3b2c127f..a748b2c0d168 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -3358,6 +3358,7 @@ extern void intel_i2c_reset(struct drm_device *dev); > /* intel_bios.c */ > int intel_bios_init(struct drm_device *dev); > bool intel_bios_is_valid_vbt(const void *buf, size_t size); > +bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv); > > /* intel_opregion.c */ > #ifdef CONFIG_ACPI > diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c > index dc3a0fb1946c..6e3e647834af 100644 > --- a/drivers/gpu/drm/i915/intel_bios.c > +++ b/drivers/gpu/drm/i915/intel_bios.c > @@ -1348,3 +1348,41 @@ intel_bios_init(struct drm_device *dev) > > return 0; > } > + > +/** > + * intel_bios_is_tv_present - is integrated TV present in VBT > + * @dev_priv: i915 device instance > + * > + * Return true if TV is present. If no child devices were parsed from VBT, > + * assume TV is present. > + */ kerneldoc is pretty but isn't validated by 0day nor included into our docs without a stanza/section in gpu.tmpl. At least I didn't spot it, and I think it'd be good to start with that. -Daniel > +bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv) > +{ > + union child_device_config *p_child; > + int i; > + > + if (!dev_priv->vbt.child_dev_num) > + return true; > + > + for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { > + p_child = dev_priv->vbt.child_dev + i; > + /* > + * If the device type is not TV, continue. > + */ > + switch (p_child->old.device_type) { > + case DEVICE_TYPE_INT_TV: > + case DEVICE_TYPE_TV: > + case DEVICE_TYPE_TV_SVIDEO_COMPOSITE: > + break; > + default: > + continue; > + } > + /* Only when the addin_offset is non-zero, it is regarded > + * as present. > + */ > + if (p_child->old.addin_offset) > + return true; > + } > + > + return false; > +} > diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c > index 948cbff6c62e..29e68859b9b7 100644 > --- a/drivers/gpu/drm/i915/intel_tv.c > +++ b/drivers/gpu/drm/i915/intel_tv.c > @@ -1529,47 +1529,6 @@ static const struct drm_encoder_funcs intel_tv_enc_funcs = { > .destroy = intel_encoder_destroy, > }; > > -/* > - * Enumerate the child dev array parsed from VBT to check whether > - * the integrated TV is present. > - * If it is present, return 1. > - * If it is not present, return false. > - * If no child dev is parsed from VBT, it assumes that the TV is present. > - */ > -static int tv_is_present_in_vbt(struct drm_device *dev) > -{ > - struct drm_i915_private *dev_priv = dev->dev_private; > - union child_device_config *p_child; > - int i, ret; > - > - if (!dev_priv->vbt.child_dev_num) > - return 1; > - > - ret = 0; > - for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { > - p_child = dev_priv->vbt.child_dev + i; > - /* > - * If the device type is not TV, continue. > - */ > - switch (p_child->old.device_type) { > - case DEVICE_TYPE_INT_TV: > - case DEVICE_TYPE_TV: > - case DEVICE_TYPE_TV_SVIDEO_COMPOSITE: > - break; > - default: > - continue; > - } > - /* Only when the addin_offset is non-zero, it is regarded > - * as present. > - */ > - if (p_child->old.addin_offset) { > - ret = 1; > - break; > - } > - } > - return ret; > -} > - > void > intel_tv_init(struct drm_device *dev) > { > @@ -1585,7 +1544,7 @@ intel_tv_init(struct drm_device *dev) > if ((I915_READ(TV_CTL) & TV_FUSE_STATE_MASK) == TV_FUSE_STATE_DISABLED) > return; > > - if (!tv_is_present_in_vbt(dev)) { > + if (!intel_bios_is_tv_present(dev_priv)) { > DRM_DEBUG_KMS("Integrated TV is not present.\n"); > return; > } > -- > 2.1.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index b2cf3b2c127f..a748b2c0d168 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -3358,6 +3358,7 @@ extern void intel_i2c_reset(struct drm_device *dev); /* intel_bios.c */ int intel_bios_init(struct drm_device *dev); bool intel_bios_is_valid_vbt(const void *buf, size_t size); +bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv); /* intel_opregion.c */ #ifdef CONFIG_ACPI diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c index dc3a0fb1946c..6e3e647834af 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c @@ -1348,3 +1348,41 @@ intel_bios_init(struct drm_device *dev) return 0; } + +/** + * intel_bios_is_tv_present - is integrated TV present in VBT + * @dev_priv: i915 device instance + * + * Return true if TV is present. If no child devices were parsed from VBT, + * assume TV is present. + */ +bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv) +{ + union child_device_config *p_child; + int i; + + if (!dev_priv->vbt.child_dev_num) + return true; + + for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { + p_child = dev_priv->vbt.child_dev + i; + /* + * If the device type is not TV, continue. + */ + switch (p_child->old.device_type) { + case DEVICE_TYPE_INT_TV: + case DEVICE_TYPE_TV: + case DEVICE_TYPE_TV_SVIDEO_COMPOSITE: + break; + default: + continue; + } + /* Only when the addin_offset is non-zero, it is regarded + * as present. + */ + if (p_child->old.addin_offset) + return true; + } + + return false; +} diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index 948cbff6c62e..29e68859b9b7 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c @@ -1529,47 +1529,6 @@ static const struct drm_encoder_funcs intel_tv_enc_funcs = { .destroy = intel_encoder_destroy, }; -/* - * Enumerate the child dev array parsed from VBT to check whether - * the integrated TV is present. - * If it is present, return 1. - * If it is not present, return false. - * If no child dev is parsed from VBT, it assumes that the TV is present. - */ -static int tv_is_present_in_vbt(struct drm_device *dev) -{ - struct drm_i915_private *dev_priv = dev->dev_private; - union child_device_config *p_child; - int i, ret; - - if (!dev_priv->vbt.child_dev_num) - return 1; - - ret = 0; - for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { - p_child = dev_priv->vbt.child_dev + i; - /* - * If the device type is not TV, continue. - */ - switch (p_child->old.device_type) { - case DEVICE_TYPE_INT_TV: - case DEVICE_TYPE_TV: - case DEVICE_TYPE_TV_SVIDEO_COMPOSITE: - break; - default: - continue; - } - /* Only when the addin_offset is non-zero, it is regarded - * as present. - */ - if (p_child->old.addin_offset) { - ret = 1; - break; - } - } - return ret; -} - void intel_tv_init(struct drm_device *dev) { @@ -1585,7 +1544,7 @@ intel_tv_init(struct drm_device *dev) if ((I915_READ(TV_CTL) & TV_FUSE_STATE_MASK) == TV_FUSE_STATE_DISABLED) return; - if (!tv_is_present_in_vbt(dev)) { + if (!intel_bios_is_tv_present(dev_priv)) { DRM_DEBUG_KMS("Integrated TV is not present.\n"); return; }
Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_bios.c | 38 ++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_tv.c | 43 +-------------------------------------- 3 files changed, 40 insertions(+), 42 deletions(-)