2019-08-21 00:02:17

by Nathan Chancellor

[permalink] [raw]
Subject: [PATCH] drm/amd/display: Fix 32-bit divide error in wait_for_alt_mode

When building arm32 allyesconfig:

ld.lld: error: undefined symbol: __aeabi_uldivmod
>>> referenced by dc_link.c
>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a
>>> referenced by dc_link.c
>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a

time_taken_in_ns is of type unsigned long long so we need to use div_u64
to avoid this error.

Fixes: b5b1f4554904 ("drm/amd/display: Enable type C hotplug")
Reported-by: Randy Dunlap <[email protected]>
Signed-off-by: Nathan Chancellor <[email protected]>
---
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index f2d78d7b089e..8634923b4444 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -721,7 +721,7 @@ bool wait_for_alt_mode(struct dc_link *link)
time_taken_in_ns = dm_get_elapse_time_in_ns(
link->ctx, finish_timestamp, enter_timestamp);
DC_LOG_WARNING("Alt mode entered finished after %llu ms\n",
- time_taken_in_ns / 1000000);
+ div_u64(time_taken_in_ns, 1000000));
return true;
}

@@ -730,7 +730,7 @@ bool wait_for_alt_mode(struct dc_link *link)
time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx, finish_timestamp,
enter_timestamp);
DC_LOG_WARNING("Alt mode has timed out after %llu ms\n",
- time_taken_in_ns / 1000000);
+ div_u64(time_taken_in_ns, 1000000));
return false;
}

--
2.23.0


2019-08-21 04:48:53

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] drm/amd/display: Fix 32-bit divide error in wait_for_alt_mode

On 8/20/19 4:57 PM, Nathan Chancellor wrote:
> When building arm32 allyesconfig:
>
> ld.lld: error: undefined symbol: __aeabi_uldivmod
>>>> referenced by dc_link.c
>>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a
>>>> referenced by dc_link.c
>>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a
>
> time_taken_in_ns is of type unsigned long long so we need to use div_u64
> to avoid this error.
>
> Fixes: b5b1f4554904 ("drm/amd/display: Enable type C hotplug")
> Reported-by: Randy Dunlap <[email protected]>
> Signed-off-by: Nathan Chancellor <[email protected]>

Acked-by: Randy Dunlap <[email protected]> # build-tested

Thanks.

> ---
> drivers/gpu/drm/amd/display/dc/core/dc_link.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> index f2d78d7b089e..8634923b4444 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> @@ -721,7 +721,7 @@ bool wait_for_alt_mode(struct dc_link *link)
> time_taken_in_ns = dm_get_elapse_time_in_ns(
> link->ctx, finish_timestamp, enter_timestamp);
> DC_LOG_WARNING("Alt mode entered finished after %llu ms\n",
> - time_taken_in_ns / 1000000);
> + div_u64(time_taken_in_ns, 1000000));
> return true;
> }
>
> @@ -730,7 +730,7 @@ bool wait_for_alt_mode(struct dc_link *link)
> time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx, finish_timestamp,
> enter_timestamp);
> DC_LOG_WARNING("Alt mode has timed out after %llu ms\n",
> - time_taken_in_ns / 1000000);
> + div_u64(time_taken_in_ns, 1000000));
> return false;
> }
>
>


--
~Randy

2019-08-21 16:42:01

by Harry Wentland

[permalink] [raw]
Subject: Re: [PATCH] drm/amd/display: Fix 32-bit divide error in wait_for_alt_mode

On 2019-08-20 7:57 p.m., Nathan Chancellor wrote:
> When building arm32 allyesconfig:
>
> ld.lld: error: undefined symbol: __aeabi_uldivmod
>>>> referenced by dc_link.c
>>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a
>>>> referenced by dc_link.c
>>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a
>
> time_taken_in_ns is of type unsigned long long so we need to use div_u64
> to avoid this error.
>
> Fixes: b5b1f4554904 ("drm/amd/display: Enable type C hotplug")
> Reported-by: Randy Dunlap <[email protected]>
> Signed-off-by: Nathan Chancellor <[email protected]>

Reviewed-by: Harry Wentland <[email protected]>

Harry

> ---
> drivers/gpu/drm/amd/display/dc/core/dc_link.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> index f2d78d7b089e..8634923b4444 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> @@ -721,7 +721,7 @@ bool wait_for_alt_mode(struct dc_link *link)
> time_taken_in_ns = dm_get_elapse_time_in_ns(
> link->ctx, finish_timestamp, enter_timestamp);
> DC_LOG_WARNING("Alt mode entered finished after %llu ms\n",
> - time_taken_in_ns / 1000000);
> + div_u64(time_taken_in_ns, 1000000));
> return true;
> }
>
> @@ -730,7 +730,7 @@ bool wait_for_alt_mode(struct dc_link *link)
> time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx, finish_timestamp,
> enter_timestamp);
> DC_LOG_WARNING("Alt mode has timed out after %llu ms\n",
> - time_taken_in_ns / 1000000);
> + div_u64(time_taken_in_ns, 1000000));
> return false;
> }
>
>

2019-08-22 02:58:44

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH] drm/amd/display: Fix 32-bit divide error in wait_for_alt_mode

Applied. thanks!

Alex

On Wed, Aug 21, 2019 at 12:40 PM Harry Wentland <[email protected]> wrote:
>
> On 2019-08-20 7:57 p.m., Nathan Chancellor wrote:
> > When building arm32 allyesconfig:
> >
> > ld.lld: error: undefined symbol: __aeabi_uldivmod
> >>>> referenced by dc_link.c
> >>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a
> >>>> referenced by dc_link.c
> >>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a
> >
> > time_taken_in_ns is of type unsigned long long so we need to use div_u64
> > to avoid this error.
> >
> > Fixes: b5b1f4554904 ("drm/amd/display: Enable type C hotplug")
> > Reported-by: Randy Dunlap <[email protected]>
> > Signed-off-by: Nathan Chancellor <[email protected]>
>
> Reviewed-by: Harry Wentland <[email protected]>
>
> Harry
>
> > ---
> > drivers/gpu/drm/amd/display/dc/core/dc_link.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> > index f2d78d7b089e..8634923b4444 100644
> > --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> > @@ -721,7 +721,7 @@ bool wait_for_alt_mode(struct dc_link *link)
> > time_taken_in_ns = dm_get_elapse_time_in_ns(
> > link->ctx, finish_timestamp, enter_timestamp);
> > DC_LOG_WARNING("Alt mode entered finished after %llu ms\n",
> > - time_taken_in_ns / 1000000);
> > + div_u64(time_taken_in_ns, 1000000));
> > return true;
> > }
> >
> > @@ -730,7 +730,7 @@ bool wait_for_alt_mode(struct dc_link *link)
> > time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx, finish_timestamp,
> > enter_timestamp);
> > DC_LOG_WARNING("Alt mode has timed out after %llu ms\n",
> > - time_taken_in_ns / 1000000);
> > + div_u64(time_taken_in_ns, 1000000));
> > return false;
> > }
> >
> >
> _______________________________________________
> amd-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx