Re: [PATCH] drm/arcpgu: remove drm_encoder_slave

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Daniel,

I love your patch! Perhaps something to improve:

[auto build test WARNING on drm/drm-next]
[also build test WARNING on v4.15-rc8 next-20180119]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Daniel-Vetter/drm-arcpgu-remove-drm_encoder_slave/20180120-085901
base:   git://people.freedesktop.org/~airlied/linux.git drm-next
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

>> drivers/gpu/drm/arc/arcpgu_sim.c:116:30: sparse: incorrect type in argument 1 (different base types) @@ expected struct drm_encoder @@ got strustruct drm_encoder @@
   drivers/gpu/drm/arc/arcpgu_sim.c:116:30: expected struct drm_encoder
   drivers/gpu/drm/arc/arcpgu_sim.c:116:30: got struct drm_mode_object
   drivers/gpu/drm/arc/arcpgu_sim.c: In function 'arcpgu_drm_sim_init':
   drivers/gpu/drm/arc/arcpgu_sim.c:116:22: error: passing argument 1 of 'drm_encoder_cleanup' from incompatible pointer type
    drm_encoder_cleanup(&encoder->base);
    ^
   In file included from include/drm/drm_modeset_helper_vtables.h:33:0,
    from include/drm/drm_crtc_helper.h:43,
    from drivers/gpu/drm/arc/arcpgu_sim.c:17:
   include/drm/drm_encoder.h:232:6: note: expected 'struct drm_encoder but argument is of type 'struct drm_mode_object
    void drm_encoder_cleanup(struct drm_encoder
    ^~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +116 drivers/gpu/drm/arc/arcpgu_sim.c

a189d28e Ruud Derwig   2016-06-06   66  
a189d28e Ruud Derwig   2016-06-06   67  int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np)
a189d28e Ruud Derwig   2016-06-06   68  {
a189d28e Ruud Derwig   2016-06-06   69  	struct arcpgu_drm_connector *arcpgu_connector;
70fbd4a0 Daniel Vetter 2018-01-17   70  	struct drm_encoder *encoder;
a189d28e Ruud Derwig   2016-06-06   71  	struct drm_connector *connector;
a189d28e Ruud Derwig   2016-06-06   72  	int ret;
a189d28e Ruud Derwig   2016-06-06   73  
a189d28e Ruud Derwig   2016-06-06   74  	encoder = devm_kzalloc(drm->dev, sizeof(*encoder), GFP_KERNEL);
a189d28e Ruud Derwig   2016-06-06   75  	if (encoder == NULL)
a189d28e Ruud Derwig   2016-06-06   76  		return -ENOMEM;
a189d28e Ruud Derwig   2016-06-06   77  
70fbd4a0 Daniel Vetter 2018-01-17   78  	encoder->possible_crtcs = 1;
70fbd4a0 Daniel Vetter 2018-01-17   79  	encoder->possible_clones = 0;
a189d28e Ruud Derwig   2016-06-06   80  
70fbd4a0 Daniel Vetter 2018-01-17   81  	ret = drm_encoder_init(drm, encoder, &arcpgu_drm_encoder_funcs,
a189d28e Ruud Derwig   2016-06-06   82  			       DRM_MODE_ENCODER_VIRTUAL, NULL);
a189d28e Ruud Derwig   2016-06-06   83  	if (ret)
a189d28e Ruud Derwig   2016-06-06   84  		return ret;
a189d28e Ruud Derwig   2016-06-06   85  
a189d28e Ruud Derwig   2016-06-06   86  	arcpgu_connector = devm_kzalloc(drm->dev, sizeof(*arcpgu_connector),
a189d28e Ruud Derwig   2016-06-06   87  					GFP_KERNEL);
a189d28e Ruud Derwig   2016-06-06   88  	if (!arcpgu_connector) {
a189d28e Ruud Derwig   2016-06-06   89  		ret = -ENOMEM;
a189d28e Ruud Derwig   2016-06-06   90  		goto error_encoder_cleanup;
a189d28e Ruud Derwig   2016-06-06   91  	}
a189d28e Ruud Derwig   2016-06-06   92  
a189d28e Ruud Derwig   2016-06-06   93  	connector = &arcpgu_connector->connector;
a189d28e Ruud Derwig   2016-06-06   94  	drm_connector_helper_add(connector, &arcpgu_drm_connector_helper_funcs);
a189d28e Ruud Derwig   2016-06-06   95  
a189d28e Ruud Derwig   2016-06-06   96  	ret = drm_connector_init(drm, connector, &arcpgu_drm_connector_funcs,
a189d28e Ruud Derwig   2016-06-06   97  			DRM_MODE_CONNECTOR_VIRTUAL);
a189d28e Ruud Derwig   2016-06-06   98  	if (ret < 0) {
a189d28e Ruud Derwig   2016-06-06   99  		dev_err(drm->dev, "failed to initialize drm connector\n");
a189d28e Ruud Derwig   2016-06-06  100  		goto error_encoder_cleanup;
a189d28e Ruud Derwig   2016-06-06  101  	}
a189d28e Ruud Derwig   2016-06-06  102  
70fbd4a0 Daniel Vetter 2018-01-17  103  	ret = drm_mode_connector_attach_encoder(connector, encoder);
a189d28e Ruud Derwig   2016-06-06  104  	if (ret < 0) {
a189d28e Ruud Derwig   2016-06-06  105  		dev_err(drm->dev, "could not attach connector to encoder\n");
a189d28e Ruud Derwig   2016-06-06  106  		drm_connector_unregister(connector);
a189d28e Ruud Derwig   2016-06-06  107  		goto error_connector_cleanup;
a189d28e Ruud Derwig   2016-06-06  108  	}
a189d28e Ruud Derwig   2016-06-06  109  
a189d28e Ruud Derwig   2016-06-06  110  	return 0;
a189d28e Ruud Derwig   2016-06-06  111  
a189d28e Ruud Derwig   2016-06-06  112  error_connector_cleanup:
a189d28e Ruud Derwig   2016-06-06  113  	drm_connector_cleanup(connector);
a189d28e Ruud Derwig   2016-06-06  114  
a189d28e Ruud Derwig   2016-06-06  115  error_encoder_cleanup:
a189d28e Ruud Derwig   2016-06-06 @116  	drm_encoder_cleanup(&encoder->base);

:::::: The code at line 116 was first introduced by commit
:::::: a189d28e5edea70f20995547ddc84c79b2f76c03 drm/arcpgu: Make ARC PGU usable on simulation platforms

:::::: TO: Ruud Derwig <rderwig@xxxxxxxxxxxx>
:::::: CC: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux