All of lore.kernel.org
 help / color / mirror / Atom feed
* possible typo in ancient radeon code
@ 2015-03-19 12:30 Dan Carpenter
  2015-03-19 12:52 ` Geert Uytterhoeven
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2015-03-19 12:30 UTC (permalink / raw)
  To: linux-fbdev

Hello FB devs,

This ancient code from 1da177e4c3f4: "Linux-2.6.12-rc2" from Apr 16,
2005, leads to the following static checker warning:

	drivers/video/fbdev/aty/radeon_pm.c:417 radeon_pm_enable_dynamic_mode()
	warn: we tested 'tmp & (1 << 21)' before and it was 'true'

include/video/radeon.h
  1216  #define MCLK_CNTL__MRDCKA1_SOUTSEL_MASK                 0x0c000000L
  1217  #define MCLK_CNTL__MRDCKB0_SOUTSEL_MASK                 0x30000000L
  1218  #define MCLK_CNTL__MRDCKB1_SOUTSEL_MASK                 0xc0000000L
  1219  #define MCLK_CNTL__R300_DISABLE_MC_MCLKA                (1 << 21)
  1220  #define MCLK_CNTL__R300_DISABLE_MC_MCLKB                (1 << 21)

These are probably supposed to refer to different bits.

  1221  
  1222  // MCLK_MISC

drivers/video/fbdev/aty/radeon_pm.c
   411                  /* Some releases of vbios have set DISABLE_MC_MCLKA
   412                   * and DISABLE_MC_MCLKB bits in the vbios table.  Setting these
   413                   * bits will cause H/W hang when reading video memory with dynamic
   414                   * clocking enabled.
   415                   */
   416                  if ((tmp & MCLK_CNTL__R300_DISABLE_MC_MCLKA) &&
   417                      (tmp & MCLK_CNTL__R300_DISABLE_MC_MCLKB)) {

The duplicate check here causes a warning.  I guess it probably doesn't
matter if no one complains...

   418                          /* If both bits are set, then check the active channels */
   419                          tmp = INPLL(pllMCLK_CNTL);
   420                          if (rinfo->vram_width = 64) {
   421                              if (INREG(MEM_CNTL) & R300_MEM_USE_CD_CH_ONLY)
   422                                  tmp &= ~MCLK_CNTL__R300_DISABLE_MC_MCLKB;
   423                              else
   424                                  tmp &= ~MCLK_CNTL__R300_DISABLE_MC_MCLKA;
   425                          } else {
   426                              tmp &= ~(MCLK_CNTL__R300_DISABLE_MC_MCLKA |
   427                                       MCLK_CNTL__R300_DISABLE_MC_MCLKB);
   428                          }
   429                  }


regards,
dan carpenter

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: possible typo in ancient radeon code
  2015-03-19 12:30 possible typo in ancient radeon code Dan Carpenter
@ 2015-03-19 12:52 ` Geert Uytterhoeven
  0 siblings, 0 replies; 2+ messages in thread
From: Geert Uytterhoeven @ 2015-03-19 12:52 UTC (permalink / raw)
  To: linux-fbdev

CC BenH

On Thu, Mar 19, 2015 at 1:30 PM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> Hello FB devs,
>
> This ancient code from 1da177e4c3f4: "Linux-2.6.12-rc2" from Apr 16,
> 2005, leads to the following static checker warning:

Nah, it's a little bit older (in full-history-linux ;-)

commit 9ff343f3d155aa35f79bae8607d7c4500d7ef848
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Thu Feb 10 16:03:30 2005 -0800

    [PATCH] radeonfb update

>
>         drivers/video/fbdev/aty/radeon_pm.c:417 radeon_pm_enable_dynamic_mode()
>         warn: we tested 'tmp & (1 << 21)' before and it was 'true'
>
> include/video/radeon.h
>   1216  #define MCLK_CNTL__MRDCKA1_SOUTSEL_MASK                 0x0c000000L
>   1217  #define MCLK_CNTL__MRDCKB0_SOUTSEL_MASK                 0x30000000L
>   1218  #define MCLK_CNTL__MRDCKB1_SOUTSEL_MASK                 0xc0000000L
>   1219  #define MCLK_CNTL__R300_DISABLE_MC_MCLKA                (1 << 21)
>   1220  #define MCLK_CNTL__R300_DISABLE_MC_MCLKB                (1 << 21)
>
> These are probably supposed to refer to different bits.
>
>   1221
>   1222  // MCLK_MISC
>
> drivers/video/fbdev/aty/radeon_pm.c
>    411                  /* Some releases of vbios have set DISABLE_MC_MCLKA
>    412                   * and DISABLE_MC_MCLKB bits in the vbios table.  Setting these
>    413                   * bits will cause H/W hang when reading video memory with dynamic
>    414                   * clocking enabled.
>    415                   */
>    416                  if ((tmp & MCLK_CNTL__R300_DISABLE_MC_MCLKA) &&
>    417                      (tmp & MCLK_CNTL__R300_DISABLE_MC_MCLKB)) {
>
> The duplicate check here causes a warning.  I guess it probably doesn't
> matter if no one complains...
>
>    418                          /* If both bits are set, then check the active channels */
>    419                          tmp = INPLL(pllMCLK_CNTL);
>    420                          if (rinfo->vram_width = 64) {
>    421                              if (INREG(MEM_CNTL) & R300_MEM_USE_CD_CH_ONLY)
>    422                                  tmp &= ~MCLK_CNTL__R300_DISABLE_MC_MCLKB;
>    423                              else
>    424                                  tmp &= ~MCLK_CNTL__R300_DISABLE_MC_MCLKA;
>    425                          } else {
>    426                              tmp &= ~(MCLK_CNTL__R300_DISABLE_MC_MCLKA |
>    427                                       MCLK_CNTL__R300_DISABLE_MC_MCLKB);
>    428                          }
>    429                  }

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-03-19 12:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-19 12:30 possible typo in ancient radeon code Dan Carpenter
2015-03-19 12:52 ` Geert Uytterhoeven

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.