drm/radeon: add radeon_atom_get_clock_dividers helper

Christian König deathsimple at vodafone.de
Fri Apr 19 08:45:32 PDT 2013


Am 18.04.2013 20:47, schrieb Dan Carpenter:
> Hello Christian König,
>
> The patch 7062ab67d4c6: "drm/radeon: add
> radeon_atom_get_clock_dividers helper" from Apr 8, 2013, has endian
> bugs.
>
> drivers/gpu/drm/radeon/radeon_atombios.c
>    2712                          if (clock_type == COMPUTE_ENGINE_PLL_PARAM) {
>    2713                                  args.v3.ulClock.ulComputeClockFlag = clock_type;
>    2714                                  args.v3.ulClock.ulClockFreq = cpu_to_le32(clock);       /* 10 khz */
>                                                          ^^^^^^^^^^^
> This is 24 bit bitfield so it can't store a __le32.  On little endian
> systems it will truncate high bits away so that's ok, but on big endian
> it will break.
>
>    2715
>    2716                                  atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
>    2717
>    2718                                  dividers->post_div = args.v3.ucPostDiv;
>    2719                                  dividers->enable_post_div = (args.v3.ucCntlFlag &
>    2720                                                               ATOM_PLL_CNTL_FLAG_PLL_POST_DIV_EN) ? true : false;
>
> There are a lot of other Sparse endian warnings but I haven't looked
> at them.  Here is how to check:  http://lwn.net/Articles/205624/

Hi Dan,

in general I'm not sure that we support any big endian system with that 
code any more.

But Alex wrote most of the atombios code, so that is probably more a 
question for him.

Christian.

> regards,
> dan carpenter
>
>



More information about the dri-devel mailing list