Hi All,
After the DRM merge, the exynos_hdmi.c file fails to build with our ARM config. The error is:
drivers/gpu/drm/exynos/exynos_hdmi.c:382:8: error: 'hdmi_infoframe' defined as wrong kind of tag struct hdmi_infoframe { ^ make[4]: *** [drivers/gpu/drm/exynos/exynos_hdmi.o] Error 1 make[3]: *** [drivers/gpu/drm/exynos] Error 2 make[2]: *** [drivers/gpu/drm] Error 2
which to me was a somewhat confusing error message. After digging further, I believe it means that there is a conflict with the definition in exynos_hdmi.c and the one found in include/linux/hdmi.h for what hdmi_infoframe is supposed to be.
exynos_hdmi.c:
struct hdmi_infoframe { enum HDMI_PACKET_TYPE type; u8 ver; u8 len; };
include/linux/hdmi.h:
union hdmi_infoframe { struct hdmi_any_infoframe any; struct hdmi_avi_infoframe avi; struct hdmi_spd_infoframe spd; union hdmi_vendor_any_infoframe vendor; struct hdmi_audio_infoframe audio; };
Could someone take a look at this? I have no idea how this wasn't caught before being merged.
josh
Hi Josh,
On 30 January 2014 22:17, Josh Boyer jwboyer@fedoraproject.org wrote:
Hi All,
After the DRM merge, the exynos_hdmi.c file fails to build with our ARM config. The error is:
drivers/gpu/drm/exynos/exynos_hdmi.c:382:8: error: 'hdmi_infoframe' defined as wrong kind of tag struct hdmi_infoframe { ^ make[4]: *** [drivers/gpu/drm/exynos/exynos_hdmi.o] Error 1 make[3]: *** [drivers/gpu/drm/exynos] Error 2 make[2]: *** [drivers/gpu/drm] Error 2
which to me was a somewhat confusing error message. After digging further, I believe it means that there is a conflict with the definition in exynos_hdmi.c and the one found in include/linux/hdmi.h for what hdmi_infoframe is supposed to be.
exynos_hdmi.c:
struct hdmi_infoframe { enum HDMI_PACKET_TYPE type; u8 ver; u8 len; };
include/linux/hdmi.h:
union hdmi_infoframe { struct hdmi_any_infoframe any; struct hdmi_avi_infoframe avi; struct hdmi_spd_infoframe spd; union hdmi_vendor_any_infoframe vendor; struct hdmi_audio_infoframe audio; };
Could someone take a look at this? I have no idea how this wasn't caught before being merged.
Thank you for reporting this issue. I have just posted a fix for this (CC'd you) and hence the link is not yet available. Please test the patch. This issue surfaced because of commit 985e5dc207e1 ("drm/edid: Populate picture aspect ratio for CEA modes") which includes linux/hdmi.h and which got merged last month and hence the build issue did not appear when the failing patch (commit a144c2e9f17b " drm/exynos: sending AVI and AUI info frames") initially got merged about a year earlier. Infact "union hdmi_infoframe" itself was added to include/linux/hdmi.h in Aug. 2013. Now that we have something available in global header, the next step would be to utilize that definition instead of the local one in exynos_hdmi.c.
dri-devel@lists.freedesktop.org