1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
diff -ru fbset-2.1/fb.h fbset-2.1-avr32/fb.h
--- fbset-2.1/fb.h 1999-06-23 16:09:48.000000000 +0200
+++ fbset-2.1-avr32/fb.h 2005-12-09 16:00:07.000000000 +0100
@@ -131,6 +131,7 @@
/* vtotal = 144d/288n/576i => PAL */
/* vtotal = 121d/242n/484i => NTSC */
#define FB_SYNC_ON_GREEN 32 /* sync on green */
+#define FB_SYNC_PCLK_RISING 64 /* pixel data sampled on rising pclk */
#define FB_VMODE_NONINTERLACED 0 /* non interlaced */
#define FB_VMODE_INTERLACED 1 /* interlaced */
diff -ru fbset-2.1/fbset.c fbset-2.1-avr32/fbset.c
--- fbset-2.1/fbset.c 1999-06-23 16:11:46.000000000 +0200
+++ fbset-2.1-avr32/fbset.c 2005-12-09 16:04:53.000000000 +0100
@@ -85,6 +85,7 @@
static const char *Opt_vsync = NULL;
static const char *Opt_csync = NULL;
static const char *Opt_gsync = NULL;
+static const char *Opt_pclk = NULL;
static const char *Opt_extsync = NULL;
static const char *Opt_bcast = NULL;
static const char *Opt_laced = NULL;
@@ -122,6 +123,7 @@
{ "-vsync", &Opt_vsync, 1 },
{ "-csync", &Opt_csync, 1 },
{ "-gsync", &Opt_gsync, 1 },
+ { "-pclk", &Opt_pclk, 1 },
{ "-extsync", &Opt_extsync, 1 },
{ "-bcast", &Opt_bcast, 1 },
{ "-laced", &Opt_laced, 1 },
@@ -344,6 +346,8 @@
var->sync |= FB_SYNC_COMP_HIGH_ACT;
if (vmode->gsync == HIGH)
var->sync |= FB_SYNC_ON_GREEN;
+ if (vmode->pclk == RISING)
+ var->sync |= FB_SYNC_PCLK_RISING;
if (vmode->extsync == TRUE)
var->sync |= FB_SYNC_EXT;
if (vmode->bcast == TRUE)
@@ -389,6 +393,7 @@
vmode->vsync = var->sync & FB_SYNC_VERT_HIGH_ACT ? HIGH : LOW;
vmode->csync = var->sync & FB_SYNC_COMP_HIGH_ACT ? HIGH : LOW;
vmode->gsync = var->sync & FB_SYNC_ON_GREEN ? TRUE : FALSE;
+ vmode->pclk = var->sync & FB_SYNC_PCLK_RISING ? RISING : FALLING;
vmode->extsync = var->sync & FB_SYNC_EXT ? TRUE : FALSE;
vmode->bcast = var->sync & FB_SYNC_BROADCAST ? TRUE : FALSE;
vmode->grayscale = var->grayscale;
@@ -420,11 +425,11 @@
if (!strcasecmp(var, "false") || !strcasecmp(var, "low") ||
!strcasecmp(var, "no") || !strcasecmp(var, "off") ||
- !strcmp(var, "0"))
+ !strcmp(var, "0") || !strcasecmp(var, "falling"))
value = 0;
else if (!strcasecmp(var, "true") || !strcasecmp(var, "high") ||
!strcasecmp(var, "yes") || !strcasecmp(var, "on") ||
- !strcmp(var, "1"))
+ !strcmp(var, "1") || !strcasecmp(var, "rising"))
value = 1;
else
Die("Invalid value `%s'\n", var);
@@ -559,6 +564,8 @@
vmode->csync = atoboolean(Opt_csync);
if (Opt_gsync)
vmode->gsync = atoboolean(Opt_gsync);
+ if (Opt_pclk)
+ vmode->pclk = atoboolean(Opt_pclk);
if (Opt_extsync)
vmode->extsync = atoboolean(Opt_extsync);
if (Opt_bcast)
@@ -635,6 +642,8 @@
puts(" csync high");
if (vmode->gsync)
puts(" gsync true");
+ if (vmode->pclk)
+ puts(" pclk rising");
if (vmode->extsync)
puts(" extsync true");
if (vmode->bcast)
@@ -875,6 +884,7 @@
" -vsync <value> : vertical sync polarity (low or high)\n"
" -csync <value> : composite sync polarity (low or high)\n"
" -gsync <value> : synch on green (false or true)\n"
+ " -pclk <value> : pclk edge on which pixeldata is valid (rising or falling)\n"
" -extsync <value> : external sync enable (false or true)\n"
" -bcast <value> : broadcast enable (false or true)\n"
" -laced <value> : interlace enable (false or true)\n"
diff -ru fbset-2.1/fbset.h fbset-2.1-avr32/fbset.h
--- fbset-2.1/fbset.h 1999-06-23 16:12:28.000000000 +0200
+++ fbset-2.1-avr32/fbset.h 2005-12-09 16:05:25.000000000 +0100
@@ -26,6 +26,9 @@
#define LOW (0)
#define HIGH (1)
+#define FALLING (0)
+#define RISING (1)
+
#define FALSE (0)
#define TRUE (1)
@@ -59,6 +62,7 @@
unsigned vsync : 1;
unsigned csync : 1;
unsigned gsync : 1;
+ unsigned pclk : 1;
unsigned extsync : 1;
unsigned bcast : 1;
unsigned laced : 1;
|