[PATCH] drm: writeback: Use simple encoder

kernel test robot lkp at intel.com
Wed Mar 10 11:59:41 UTC 2021


Hi Tian,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.12-rc2]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Tian-Tao/drm-writeback-Use-simple-encoder/20210310-153629
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 05a59d79793d482f628a31753c671f2e92178a21
config: x86_64-randconfig-m001-20210308 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/3c17eccc7f6b0abfae1af4d6672dfdbae2beb9c0
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Tian-Tao/drm-writeback-Use-simple-encoder/20210310-153629
        git checkout 3c17eccc7f6b0abfae1af4d6672dfdbae2beb9c0
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   ld: drivers/gpu/drm/drm_writeback.o: in function `drm_writeback_connector_init':
>> drivers/gpu/drm/drm_writeback.c:190: undefined reference to `drm_simple_encoder_init'


vim +190 drivers/gpu/drm/drm_writeback.c

   148	
   149	/**
   150	 * drm_writeback_connector_init - Initialize a writeback connector and its properties
   151	 * @dev: DRM device
   152	 * @wb_connector: Writeback connector to initialize
   153	 * @con_funcs: Connector funcs vtable
   154	 * @enc_helper_funcs: Encoder helper funcs vtable to be used by the internal encoder
   155	 * @formats: Array of supported pixel formats for the writeback engine
   156	 * @n_formats: Length of the formats array
   157	 *
   158	 * This function creates the writeback-connector-specific properties if they
   159	 * have not been already created, initializes the connector as
   160	 * type DRM_MODE_CONNECTOR_WRITEBACK, and correctly initializes the property
   161	 * values. It will also create an internal encoder associated with the
   162	 * drm_writeback_connector and set it to use the @enc_helper_funcs vtable for
   163	 * the encoder helper.
   164	 *
   165	 * Drivers should always use this function instead of drm_connector_init() to
   166	 * set up writeback connectors.
   167	 *
   168	 * Returns: 0 on success, or a negative error code
   169	 */
   170	int drm_writeback_connector_init(struct drm_device *dev,
   171					 struct drm_writeback_connector *wb_connector,
   172					 const struct drm_connector_funcs *con_funcs,
   173					 const struct drm_encoder_helper_funcs *enc_helper_funcs,
   174					 const u32 *formats, int n_formats)
   175	{
   176		struct drm_property_blob *blob;
   177		struct drm_connector *connector = &wb_connector->base;
   178		struct drm_mode_config *config = &dev->mode_config;
   179		int ret = create_writeback_properties(dev);
   180	
   181		if (ret != 0)
   182			return ret;
   183	
   184		blob = drm_property_create_blob(dev, n_formats * sizeof(*formats),
   185						formats);
   186		if (IS_ERR(blob))
   187			return PTR_ERR(blob);
   188	
   189		drm_encoder_helper_add(&wb_connector->encoder, enc_helper_funcs);
 > 190		ret = drm_simple_encoder_init(dev, &wb_connector->encoder,
   191					      DRM_MODE_ENCODER_VIRTUAL);
   192		if (ret)
   193			goto fail;
   194	
   195		connector->interlace_allowed = 0;
   196	
   197		ret = drm_connector_init(dev, connector, con_funcs,
   198					 DRM_MODE_CONNECTOR_WRITEBACK);
   199		if (ret)
   200			goto connector_fail;
   201	
   202		ret = drm_connector_attach_encoder(connector,
   203							&wb_connector->encoder);
   204		if (ret)
   205			goto attach_fail;
   206	
   207		INIT_LIST_HEAD(&wb_connector->job_queue);
   208		spin_lock_init(&wb_connector->job_lock);
   209	
   210		wb_connector->fence_context = dma_fence_context_alloc(1);
   211		spin_lock_init(&wb_connector->fence_lock);
   212		snprintf(wb_connector->timeline_name,
   213			 sizeof(wb_connector->timeline_name),
   214			 "CONNECTOR:%d-%s", connector->base.id, connector->name);
   215	
   216		drm_object_attach_property(&connector->base,
   217					   config->writeback_out_fence_ptr_property, 0);
   218	
   219		drm_object_attach_property(&connector->base,
   220					   config->writeback_fb_id_property, 0);
   221	
   222		drm_object_attach_property(&connector->base,
   223					   config->writeback_pixel_formats_property,
   224					   blob->base.id);
   225		wb_connector->pixel_formats_blob_ptr = blob;
   226	
   227		return 0;
   228	
   229	attach_fail:
   230		drm_connector_cleanup(connector);
   231	connector_fail:
   232		drm_encoder_cleanup(&wb_connector->encoder);
   233	fail:
   234		drm_property_blob_put(blob);
   235		return ret;
   236	}
   237	EXPORT_SYMBOL(drm_writeback_connector_init);
   238	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 31529 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20210310/0552a5c6/attachment-0001.gz>


More information about the dri-devel mailing list