diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2012-02-24 22:01:38 -0600 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-03-09 09:44:23 +0000 |
commit | 975b27d67aae7c15ed2d5846451b9996f96b41b5 (patch) | |
tree | c55444285858071f69edc42c90bea76e13002e42 | |
parent | c8cc4a4626b803f0ce2229651381f6f89f6b5c10 (diff) |
radeontool: document functions that require mapped control region
Add assertions to all functions that assume the caller has called
map_radeon_cntl_mem and radeon_cntl_mem is non-NULL. Use assert()
uniformly for this, replacing the more verbose
if (!radeon_cntl_mem)
die("internal error");
since assert() tends to produce more useful output that precisely
pinpoints the call site.
The intent is to document the current assumptions before breaking
them by changing map_radeon_cntl() to sometimes leave radeon_cntl_mem
equal to NULL (for example, when no Radeon is present).
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | radeontool.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/radeontool.c b/radeontool.c index bf1dc3c..3ff691f 100644 --- a/radeontool.c +++ b/radeontool.c @@ -16,6 +16,7 @@ #include <stdio.h> #include <stdlib.h> #include <unistd.h> +#include <assert.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> @@ -54,10 +55,7 @@ static unsigned int radeon_get(unsigned long offset, const char *name) unsigned int value; if(debug) printf("reading %s (%lx) is ",name,offset); - if(radeon_cntl_mem == NULL) { - printf("internal error\n"); - exit(-2); - }; + assert(radeon_cntl_mem); #ifdef __powerpc__ __asm__ __volatile__ ("lwbrx %0,%1,%2\n\t" "eieio" @@ -75,10 +73,7 @@ static void radeon_set(unsigned long offset, const char *name, unsigned int valu { if(debug) printf("writing %s (%lx) -> %08x\n",name,offset,value); - if(radeon_cntl_mem == NULL) { - printf("internal error\n"); - exit(-2); - }; + assert(radeon_cntl_mem); #ifdef __powerpc__ __asm__ __volatile__ ("stwbrx %1,%2,%3\n\t" "eieio" @@ -96,6 +91,7 @@ static unsigned int radeon_get_indexed(unsigned long index_offset, unsigned long index_mask) { unsigned int temp = offset; + assert(radeon_cntl_mem); if (index_mask) { temp = radeon_get(index_offset, "index"); temp &= ~index_mask; @@ -110,6 +106,7 @@ static void radeon_set_indexed(unsigned long index_offset, const char *name, unsigned int value, int index_mask) { unsigned int temp = offset; + assert(radeon_cntl_mem); if (index_mask) { temp = radeon_get(index_offset, "index"); temp &= ~index_mask; @@ -164,6 +161,7 @@ void radeon_cmd_regs(void) { #define SHOW_REG(r) printf("%s\t%08x\n", #r, radeon_get(r, #r)) #define SHOW_CLK_REG(r) printf("%s\t%08x\n", #r, radeon_get_indexed(RADEON_CLOCK_CNTL_INDEX, RADEON_CLOCK_CNTL_DATA, (r), #r, 0x3f)) + assert(radeon_cntl_mem); SHOW_REG(RADEON_DAC_CNTL); SHOW_REG(RADEON_DAC_EXT_CNTL); SHOW_REG(RADEON_DAC_MACRO_CNTL); @@ -727,6 +725,7 @@ void radeon_reg_match(const char *pattern) unsigned long address; unsigned int value; + assert(radeon_cntl_mem); if (pattern[0] == '0' && pattern[1] == 'x') { address = strtol(&(pattern[2]), NULL, 16); value = radeon_get(address, pattern); @@ -801,6 +800,7 @@ void radeon_reg_set(const char *inname, unsigned int value) int i; unsigned long address; + assert(radeon_cntl_mem); if (inname[0] == '0' && inname[1] == 'x') { address = strtol(&(inname[2]), NULL, 16); set_reg(inname, "", address, value, radeon_get, radeon_set); @@ -823,6 +823,7 @@ void radeon_cmd_bits(void) { unsigned int dac_cntl; + assert(radeon_cntl_mem); dac_cntl = radeon_get(RADEON_DAC_CNTL,"RADEON_DAC_CNTL"); printf("RADEON_DAC_CNTL=%08x (",dac_cntl); if(dac_cntl & RADEON_DAC_RANGE_CNTL) @@ -842,6 +843,7 @@ void radeon_cmd_dac(char *param) { unsigned long dac_cntl; + assert(radeon_cntl_mem); dac_cntl = radeon_get(RADEON_DAC_CNTL,"RADEON_DAC_CNTL"); if(param == NULL) { printf("The radeon external DAC looks %s\n",(dac_cntl&(RADEON_DAC_PDWN))?"off":"on"); @@ -860,6 +862,7 @@ void radeon_cmd_light(char *param) { unsigned long lvds_gen_cntl; + assert(radeon_cntl_mem); lvds_gen_cntl = radeon_get(RADEON_LVDS_GEN_CNTL,"RADEON_LVDS_GEN_CNTL"); if(param == NULL) { printf("The radeon backlight looks %s\n",(lvds_gen_cntl&(RADEON_LVDS_ON))?"on":"off"); @@ -878,6 +881,7 @@ void radeon_cmd_stretch(char *param) { unsigned long fp_vert_stretch,fp_horz_stretch; + assert(radeon_cntl_mem); fp_vert_stretch = radeon_get(RADEON_FP_VERT_STRETCH,"RADEON_FP_VERT_STRETCH"); fp_horz_stretch = radeon_get(RADEON_FP_HORZ_STRETCH,"RADEON_FP_HORZ_STRETCH"); if(param == NULL) { |