Created attachment 28717 [details] [review] Patch to fix drm_encoder_slave.h includes. When doing an out-of-tree compile on the nouveau kernel module, recent GIT versions fail to compile without patching for a couple reasons. The first can be fixed with the attached patch. The second has to do with the fact that drivers/gpu/drm/nouveau/nouveau_drv.h declares the prototype for nouveau_encoder_connector_get, which relies on the type `struct nouveau_encoder*', defined in drivers/gpu/drm/nouveau/nouveau_encoder.h. However, nouveau_encoder.h needs nouveau_drv.h for the type `struct nv04_output_reg'. This circular dependency causes compilation of nouveau_drv.c to fail. Also, any reason the include guard for nouveau_encoder.h is called __NOUVEAU_OUTPUT_H__?
(In reply to comment #0) > Created an attachment (id=28717) [details] > Patch to fix drm_encoder_slave.h includes. The equivalent patch is already present in the master-compat branch (commit 1b527aded95176a2bc4b19f0191f9e6d412ad413), and has been sent to DRM upstream. It will come to master branch in time, in the mean time you can use master-compat. > When doing an out-of-tree compile on the nouveau kernel module, recent GIT > versions fail to compile without patching for a couple reasons. The first can > be fixed with the attached patch. master-compat has always worked for me (since I try to remember to check and fix it before pushing). > The second has to do with the fact that drivers/gpu/drm/nouveau/nouveau_drv.h > declares the prototype for nouveau_encoder_connector_get, which relies on the > type `struct nouveau_encoder*', defined in > drivers/gpu/drm/nouveau/nouveau_encoder.h. However, nouveau_encoder.h needs > nouveau_drv.h for the type `struct nv04_output_reg'. This circular dependency > causes compilation of nouveau_drv.c to fail. I've never seen this problem. In what I see, the prototype for nouveau_encoder_connector_get() is in nouveau_encoder.h. Okay, it has already been fixed in commit 8745851d364bc175d06d4de3cfa47cd65c399a04. > Also, any reason the include guard for nouveau_encoder.h is called > __NOUVEAU_OUTPUT_H__? Indeed, I'll fix that.
The include guard fix is in master, commit 2b4837bb34c053f3c81c8a28b52a0f679a71acac. Let's keep this bug open until the drm_encoder_slave.h fix arrives to master.
All fixed in master.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.