Re: [PATCH i-g-t] lib: included igt_edid.h in igt_kms.c

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

 



On 8 September 2014 13:07, Daniel Vetter <daniel@xxxxxxxx> 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@xxxxxxxxx>
> ---
>  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=""> >      <xi:include href=""> >      <xi:include href=""> > -    <xi:include href=""> >
>    </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@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux