summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2012-02-24 22:01:38 -0600
committerDave Airlie <airlied@redhat.com>2012-03-09 09:44:23 +0000
commit975b27d67aae7c15ed2d5846451b9996f96b41b5 (patch)
treec55444285858071f69edc42c90bea76e13002e42
parentc8cc4a4626b803f0ce2229651381f6f89f6b5c10 (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.c20
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) {