[PATCH v3 1/3] drm/connector: Add generic underscan properties

Boris Brezillon boris.brezillon at bootlin.com
Mon Dec 3 15:36:36 UTC 2018


On Mon, 3 Dec 2018 16:40:11 +0200
Ville Syrjälä <ville.syrjala at linux.intel.com> wrote:

> On Thu, Nov 22, 2018 at 12:23:29PM +0100, Boris Brezillon wrote:
> > @@ -924,6 +978,29 @@ struct drm_connector {
> >  	 */
> >  	struct drm_property_blob *path_blob_ptr;
> >  
> > +	/**
> > +	 * @underscan_mode_property: Optional connector underscan mode. Used by
> > +	 * the driver to scale the output image and compensate an overscan done
> > +	 * on the display side.
> > +	 */
> > +	struct drm_property *underscan_mode_property;
> > +
> > +	/**
> > +	 * @underscan_hborder_property: Optional connector underscan horizontal
> > +	 * border (expressed in pixels). Used by the driver to adjust the
> > +	 * output image position and compensate an overscan done on the display
> > +	 * side.
> > +	 */
> > +	struct drm_property *underscan_hborder_property;
> > +
> > +	/**
> > +	 * @underscan_hborder_property: Optional connector underscan vertical
> > +	 * border (expressed in pixels). Used by the driver to adjust the
> > +	 * output image position and compensate an overscan done on the display
> > +	 * side.
> > +	 */
> > +	struct drm_property *underscan_vborder_property;  
> 
> I'm wondering why we're adding these new props when we already have the
> (slightly more flexible) margin properties for TV out. We could just
> reuse those AFAICS.

I'm not against the idea, but I can't use
drm_mode_create_tv_properties() directly, as most props created by this
function are not applicable to an HDMI displays. Should I move the
margins props out of the tv_connector_state and provide new helpers to
create those props?

> 
> > +
> >  #define DRM_CONNECTOR_POLL_HPD (1 << 0)
> >  #define DRM_CONNECTOR_POLL_CONNECT (1 << 1)
> >  #define DRM_CONNECTOR_POLL_DISCONNECT (1 << 2)
> > @@ -1180,6 +1257,9 @@ int drm_mode_create_dvi_i_properties(struct drm_device *dev);
> >  int drm_mode_create_tv_properties(struct drm_device *dev,
> >  				  unsigned int num_modes,
> >  				  const char * const modes[]);
> > +int drm_connector_attach_underscan_properties(struct drm_connector *connector,
> > +					      u32 mode_mask, u64 max_hborder,
> > +					      u64 max_vborder);
> >  int drm_mode_create_scaling_mode_property(struct drm_device *dev);
> >  int drm_connector_attach_content_type_property(struct drm_connector *dev);
> >  int drm_connector_attach_scaling_mode_property(struct drm_connector *connector,
> > -- 
> > 2.17.1  
> 



More information about the dri-devel mailing list