Re: [atyfb] No display on Sparc Ultra 10 with kernel 2.6.10-rc2 or later
On Thursday 17 February 2005 06:10, Frans Pop wrote:
> On Wednesday 16 February 2005 16:51, David S. Miller wrote:
> > On Wed, 16 Feb 2005 19:27:57 +0800 Antonino A. Daplas wrote:
> > > Nope, those are proposed options. If nobody disagrees, I can easily
> > > add this for atyfb.
> >
> > Please do.
> >
> > BTW, for Sparc we may wish to inherit the CSYNC setting from
> > default_var.
>
> Sounds like a nice idea.
>
> If you have a patch that you would like to have tested, feel free to mail
> me.
Try this patch and let me know.
video=atyfb:comp_sync:<n>,vert_sync:<n>,hor_sync:<n>
n = 0 (low), 1 (high)
Tony
diff -Nru a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
--- a/drivers/video/aty/atyfb_base.c 2005-02-16 00:19:00 +08:00
+++ b/drivers/video/aty/atyfb_base.c 2005-02-17 06:56:29 +08:00
@@ -307,6 +307,9 @@
static int pll;
static int mclk;
static int xclk;
+static int comp_sync __initdata = -1;
+static int vert_sync __initdata = -1;
+static int hor_sync __initdata = -1;
static char *mode;
#ifdef CONFIG_PPC
@@ -2527,6 +2530,27 @@
else
var.accel_flags |= FB_ACCELF_TEXT;
+ if (comp_sync != -1) {
+ if (!comp_sync)
+ var.sync &= ~FB_SYNC_COMP_HIGH_ACT;
+ else
+ var.sync |= FB_SYNC_COMP_HIGH_ACT;
+ }
+
+ if (vert_sync != -1) {
+ if (!vert_sync)
+ var.sync &= ~FB_SYNC_VERT_HIGH_ACT;
+ else
+ var.sync |= FB_SYNC_VERT_HIGH_ACT;
+ }
+
+ if (hor_sync != -1) {
+ if (!hor_sync)
+ var.sync &= ~FB_SYNC_HOR_HIGH_ACT;
+ else
+ var.sync |= FB_SYNC_HOR_HIGH_ACT;
+ }
+
if (var.yres == var.yres_virtual) {
u32 videoram = (info->fix.smem_len - (PAGE_SIZE << 2));
var.yres_virtual = ((videoram * 8) / var.bits_per_pixel) / var.xres_virtual;
@@ -3611,6 +3635,12 @@
mclk = simple_strtoul(this_opt + 5, NULL, 0);
else if (!strncmp(this_opt, "xclk:", 5))
xclk = simple_strtoul(this_opt+5, NULL, 0);
+ else if (!strncmp(this_opt, "comp_sync:", 10))
+ comp_sync = simple_strtoul(this_opt+7, NULL, 0);
+ else if (!strncmp(this_opt, "vert_sync:", 10))
+ vert_sync = simple_strtoul(this_opt+7, NULL, 0);
+ else if (!strncmp(this_opt, "hor_sync:", 9))
+ hor_sync = simple_strtoul(this_opt+7, NULL, 0);
#ifdef CONFIG_PPC
else if (!strncmp(this_opt, "vmode:", 6)) {
unsigned int vmode =
@@ -3701,6 +3731,12 @@
MODULE_PARM_DESC(mclk, "int: override memory clock");
module_param(xclk, int, 0);
MODULE_PARM_DESC(xclk, "int: override accelerated engine clock");
+module_param(comp_sync, int, 0)
+MODULE_PARM_DESC(comp_sync, "Set composite sync signal to low (0) or high (1)");
+module_param(vert_sync, int, 0)
+MODULE_PARM_DESC(vert_sync, "Set vertical sync signal to low (0) or high (1)");
+module_param(hor_sync, int, 0)
+MODULE_PARM_DESC(hor_sync, "Set horizontal sync signal to low (0) or high (1)");
module_param(mode, charp, 0);
MODULE_PARM_DESC(mode, "Specify resolution as \"<xres>x<yres>[-<bpp>][@<refresh>]\" ");
#ifdef CONFIG_MTRR
Reply to: