[Intel-gfx] [PATCH i-g-t] lib: included igt_edid.h in igt_kms.c
Thomas Wood
thomas.wood at intel.com
Mon Sep 8 14:48:35 CEST 2014
On 8 September 2014 13:07, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Mon, Sep 08, 2014 at 12:12:21PM +0100, Thomas Wood wrote:
> > Include the generic_edid array inside igt_kms.c to avoid having to
> include
> > it separately in tests. This also means it can be included in the i-g-t
> kms
> > section of the documentation.
>
> You can just include igt_edid.h from igt_kms.h and add the corresponding
> note in the documentation like we do for igt_fb.[hc] already. That way we
> have nice doc splits and the simplest possible interface for tests.
>
Including igt_edid.h in igt_kms.h causes problems with multiple definitions
of generic_edid when linking, so this was a way of avoiding that. The
intention was that igt_kms.h would not be included from anywhere else, so
the definition would effectively be in igt_kms.c.
However, moving the definition into a .c file (as suggested below) would
perhaps be slightly nicer and avoid potential confusion.
>
> >
> > Signed-off-by: Thomas Wood <thomas.wood at intel.com>
> > ---
> > docs/reference/intel-gpu-tools/Makefile.am | 3 ++-
> > docs/reference/intel-gpu-tools/intel-gpu-tools-docs.xml | 1 -
> > lib/igt_edid.h | 2 +-
> > lib/igt_kms.c | 2 ++
> > lib/igt_kms.h | 17
> +++++++++++++++++
> > tests/kms_3d.c | 1 -
> > tests/kms_force_connector.c | 1 -
> > 7 files changed, 22 insertions(+), 5 deletions(-)
> >
> > diff --git a/docs/reference/intel-gpu-tools/Makefile.am
> b/docs/reference/intel-gpu-tools/Makefile.am
> > index 3368e3e..05f604f 100644
> > --- a/docs/reference/intel-gpu-tools/Makefile.am
> > +++ b/docs/reference/intel-gpu-tools/Makefile.am
> > @@ -60,7 +60,8 @@ EXTRA_HFILES=
> > # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
> > IGNORE_HFILES=gen6_render.h gen7_media.h gen7_render.h gen8_media.h \
> > gen8_render.h i830_reg.h i915_3d.h i915_pciids.h i915_reg.h \
> > - intel_reg.h debug.h instdone.h media_fill.h rendercopy.h
> > + igt_edid.h intel_reg.h debug.h instdone.h media_fill.h \
> > + rendercopy.h
> >
> > # Images to copy into HTML directory.
> > # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
> > diff --git a/docs/reference/intel-gpu-tools/intel-gpu-tools-docs.xml
> b/docs/reference/intel-gpu-tools/intel-gpu-tools-docs.xml
> > index 3d9caf8..68ca8d4 100644
> > --- a/docs/reference/intel-gpu-tools/intel-gpu-tools-docs.xml
> > +++ b/docs/reference/intel-gpu-tools/intel-gpu-tools-docs.xml
> > @@ -25,7 +25,6 @@
> > <xi:include href="xml/intel_batchbuffer.xml"/>
> > <xi:include href="xml/intel_chipset.xml"/>
> > <xi:include href="xml/intel_io.xml"/>
> > - <xi:include href="xml/igt_edid.xml"/>
> >
> > </chapter>
> > <index id="api-index-full">
> > diff --git a/lib/igt_edid.h b/lib/igt_edid.h
> > index 27373b7..7711841 100644
> > --- a/lib/igt_edid.h
> > +++ b/lib/igt_edid.h
> > @@ -29,7 +29,7 @@
> >
> > #define EDID_LENGTH 128
> >
> > -static const unsigned char generic_edid[MAX_EDIDS][EDID_LENGTH] = {
> > +const unsigned char generic_edid[MAX_EDIDS][EDID_LENGTH] = {
>
> But if you want to move something then imo this here should go into a .c
> file - global variable definitions in headers just aint pretty ;-)
>
> Cheers, Daniel
>
> > {
> > 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
> > 0x31, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> > diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> > index 3a850f1..26794f2 100644
> > --- a/lib/igt_kms.c
> > +++ b/lib/igt_kms.c
> > @@ -43,6 +43,8 @@
> > #include "igt_aux.h"
> > #include "intel_chipset.h"
> >
> > +#include "igt_edid.h"
> > +
> > /*
> > * There hasn't been a release of libdrm containing these #define's
> yet, so
> > * copy them here to allow compilation to succeed in the mean time.
> > diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> > index 921afef..23f73b1 100644
> > --- a/lib/igt_kms.h
> > +++ b/lib/igt_kms.h
> > @@ -127,6 +127,12 @@ enum kmstest_force_connector_state {
> > FORCE_CONNECTOR_OFF
> > };
> >
> > +/**
> > + * EDID_LENGTH:
> > + *
> > + * Length of an EDID block, in bytes.
> > + */
> > +#define EDID_LENGTH 128
> >
> > /**
> > * kmstest_generic_edid:
> > @@ -136,6 +142,8 @@ enum kmstest_force_connector_state {
> > * @EDID_WSXGA: 1680x1050
> > * @EDID_FHD: 1920x1080
> > * @MAX_EDIDS: Size of #generic_edid array
> > + *
> > + * Index of items in the #generic_edid array.
> > */
> > enum kmstest_generic_edid {
> > EDID_XGA, /* 1024x768 */
> > @@ -147,6 +155,15 @@ enum kmstest_generic_edid {
> > MAX_EDIDS
> > };
> >
> > +/**
> > + * generic_edid:
> > + *
> > + * An array of generic EDID blocks, with each item corresponding to the
> entries
> > + * in #kmstest_generic_edid.
> > + */
> > +const unsigned char generic_edid[MAX_EDIDS][EDID_LENGTH];
> > +
> > +
> > bool kmstest_force_connector(int fd, drmModeConnector *connector,
> > enum kmstest_force_connector_state state);
> > void kmstest_edid_add_3d(const unsigned char *edid, size_t length,
> unsigned char *new_edid_ptr[], size_t *new_length);
> > diff --git a/tests/kms_3d.c b/tests/kms_3d.c
> > index c11873b..9bf252c 100644
> > --- a/tests/kms_3d.c
> > +++ b/tests/kms_3d.c
> > @@ -25,7 +25,6 @@
> > #include "igt_core.h"
> > #include "igt_kms.h"
> > #include "drmtest.h"
> > -#include "igt_edid.h"
> >
> > igt_simple_main
> > {
> > diff --git a/tests/kms_force_connector.c b/tests/kms_force_connector.c
> > index 7dba68a..adb73a0 100644
> > --- a/tests/kms_force_connector.c
> > +++ b/tests/kms_force_connector.c
> > @@ -25,7 +25,6 @@
> > #include "igt_core.h"
> > #include "igt_kms.h"
> > #include "drmtest.h"
> > -#include "igt_edid.h"
> >
> > int
> > main (int argc, char **argv)
> > --
> > 1.9.3
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20140908/cbfb9916/attachment.html>
More information about the Intel-gfx
mailing list