public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Leif Lindholm" <leif.lindholm@linaro.org>
To: Andy Hayes <andy.hayes@displaylink.com>
Cc: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"michael.d.kinney@intel.com" <michael.d.kinney@intel.com>
Subject: Re: [PATCH v1 0/1] Added GOP driver for DisplayLink-based Universal USB Docks to edk2-platforms
Date: Wed, 14 Aug 2019 18:50:22 +0100	[thread overview]
Message-ID: <20190814175022.GJ29255@bivouac.eciton.net> (raw)
In-Reply-To: <20190814170351.GI29255@bivouac.eciton.net>

Hi Andy,

A follow-up - a few more things need changing:

UsbDisplayLink.h (well, any .h file) should only contain the headers
it itself requires.
Moreover, the inclusion of wchar.h must disappear completely.
Instead, use CHAR16 * in the two locations in UsbDisplayLink.c.

Removing wchar.h will then trip you up in Edid.h, at
#define EDID_HEADER_SIZE                          ((size_t)8)
Please change the size_t to UINTN.

Finally, you need to (and now can after the above changes) get rid of
#undef _DEBUG

#undef NULL
#undef _ASSERT
in UsbDisplayLink.h.

With these additional changes, the driver builds successfully across
GCC 8.3 and CLANG 7.0 for AARCH64/ARM/IA32/X64.

Best Regards,

Leif

On Wed, Aug 14, 2019 at 06:03:51PM +0100, Leif Lindholm wrote:
> Hi Andy,
> 
> Many thanks for this submission.
> 
> I am finding a few issues when building with gcc/clang (I expect you
> use Visual Studio).
> 
> The RELEASE target barfs with
> .../edk2-platforms/Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/Gop.c:363:1:
> error: unused function 'CalculateRefreshRate'
> since the function is only called from a DEBUG statement.
> Could be resolved by putting the function inside #ifndef MDEPKG_NDEBUG
> 
> Clang triggers an error on the
> USB_DISPLAYLINK_DEV_FROM_GRAPHICS_OUTPUT_PROTOCOL macro which seems to
> go away if the USB_DISPLAYLINK_DEV_SIGNATURE macro is moved below the
> USB_DISPLAYLINK_DEV definition. (I haven't bothered to figure out why
> this helps.)
> 
> The NOOPT build fails for IA32/X64 on clang with
> .../edk2-platforms/Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/UsbDescriptors.c:35:
> undefined reference to `memset'
> You could get rid of this by doing the assignment separate from the
> definition. (Indeed, I believe this is one of the reasons for the
> rule.)
> 
> On X64/clang, the build fails with
> .../edk2-platforms/Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/UsbDisplayLink.c:410:3:
> error: '__builtin_ms_va_start' used in System V ABI function
> Adding EFIAPI to the definition/declaration of DlGopPrintTextToScreen
> makes this one go away.
> 
> Best Regards,
> 
> Leif
> 
> On Wed, Aug 14, 2019 at 02:43:43PM +0000, Andy Hayes wrote:
> > From 4a42eb997aeb3699217b40bf3bc47dec56458847 Mon Sep 17 00:00:00 2001
> > From: "Andy Hayes" < andy.hayes@displaylink.com >
> > Date: Wed, 14 Aug 2019 15:30:20 +0100
> > Subject: [PATCH v1 0/1] Added GOP graphics driver for DisplayLink-based Universal USB Docks to edk2-platforms
> > 
> > andy.hayes@displaylink.com (1):
> >   Added GOP driver for USB Docks which use DisplayLink chips.
> > 
> > .../DisplayLinkPkg/DisplayLinkPkg.dsc         |   61 +
> > .../DisplayLinkGop/DisplayLinkGopDxe.inf      |   63 +
> > .../DisplayLinkPkg/DisplayLinkGop/Edid.h      |  129 ++
> > .../DisplayLinkGop/UsbDescriptors.h           |  109 ++
> > .../DisplayLinkGop/UsbDisplayLink.h           |  284 +++++
> > .../DisplayLinkGop/CapabilityDescriptor.c     |  137 ++
> > .../DisplayLinkGop/ComponentName.c            |  235 ++++
> > .../DisplayLinkPkg/DisplayLinkGop/Edid.c      |  598 +++++++++
> > .../DisplayLinkPkg/DisplayLinkGop/Gop.c       |  587 +++++++++
> > .../DisplayLinkGop/UsbDescriptors.c           |  144 +++
> > .../DisplayLinkGop/UsbDisplayLink.c           | 1109 +++++++++++++++++
> > .../DisplayLinkGop/UsbTransfer.c              |  180 +++
> > .../DisplayLinkGop/VideoModes.c               |  254 ++++
> > Drivers/DisplayLink/DisplayLinkPkg/ReadMe.md  |   77 ++
> > Maintainers.txt                               |    5 +
> > 15 files changed, 3972 insertions(+)
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkPkg.dsc
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/DisplayLinkGopDxe.inf
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/Edid.h
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/UsbDescriptors.h
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/UsbDisplayLink.h
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/CapabilityDescriptor.c
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/ComponentName.c
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/Edid.c
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/Gop.c
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/UsbDescriptors.c
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/UsbDisplayLink.c
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/UsbTransfer.c
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkGop/VideoModes.c
> > create mode 100644 Drivers/DisplayLink/DisplayLinkPkg/ReadMe.md
> > 
> > --
> > 2.17.1
> 
> 

  reply	other threads:[~2019-08-14 17:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-14 14:43 [PATCH v1 0/1] Added GOP driver for DisplayLink-based Universal USB Docks to edk2-platforms andy.hayes
2019-08-14 15:22 ` Michael D Kinney
2019-08-14 17:03 ` Leif Lindholm
2019-08-14 17:50   ` Leif Lindholm [this message]
2021-01-12 13:49 ` [edk2-devel] " sebastian.olney
  -- strict thread matches above, loose matches on Subject: below --
2019-08-15 12:50 Andy Hayes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190814175022.GJ29255@bivouac.eciton.net \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox