[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