Linux PARISC architecture development
 help / color / mirror / Atom feed
From: Helge Deller <deller@gmx.de>
To: John David Anglin <dave@hiauly1.hia.nrc.ca>
Cc: gmsoft@tuxicoman.be, kraxel@goldbach.in-berlin.de,
	dave.anglin@nrc-cnrc.gc.ca, linux-parisc@vger.kernel.org
Subject: Re: X won't start with VisEG and 2.6.22.19
Date: Sun, 24 Aug 2008 16:38:26 +0200	[thread overview]
Message-ID: <48B17262.3010206@gmx.de> (raw)
In-Reply-To: <20080824140930.309DD431A@hiauly1.hia.nrc.ca>

John David Anglin wrote:
>>>>> As you can see, the main video parameters are OK, while the 
>>>>> monitor/modeline values (pixclock, left_margin, right_margin, 
>>>>> upper_margin, lower_margin, hsync_len, vsync_len, sync and vmode)
>>>>> were changed to zero.
> 
> The skeletonfb.c code makes it very clear that the only place where
> a mode can be changed is in xxxfb_check_var:
> 
> *      Exception to the above rule:  Some drivers have a fixed mode, ie,
> *      the hardware is already set at boot up, and cannot be changed.  In
> *      this case, it is more acceptable that this function just return
> *      a copy of the currently working var (info->var). Better is to not
> *      implement this function, as the upper layer will do the copying
> *      of the current var for you.
> *
> *      Note:  This is the only function where the contents of var can be
> *      freely adjusted after the driver has been registered. If you find
> *      that you have code outside of this function that alters the content
> *      of var, then you are doing something wrong.  Note also that the
> *      contents of info->var must be left untouched at all times after
> *      driver registration.
> 
> As xxxfb_check_var is not implemented in stifb.c, it must be the upper
> level that is changing the parameters.  Possibly, something to try is
> the following:
> 
>  *      However, even if your hardware does not support mode changing,
>  *      a set_par might be needed to at least initialize the hardware to
>  *      a known working state, especially if it came back from another
>  *      process that also modifies the same hardware, such as X.
>  *
>  *      If this is the case, a combination such as the following should work:
>  *
>  *      static int xxxfb_check_var(struct fb_var_screeninfo *var,
>  *                                struct fb_info *info)
>  *      {
>  *              *var = info->var;
>  *              return 0;
>  *      }
>  *
>  *      static int xxxfb_set_par(struct fb_info *info)
>  *      {
>  *              init your hardware here
>  *      }


Yes, exactly that would be the patch to make it work.


>> But stifb and a few other fb drivers are not able to set sync timings, 
>> and for those X behaves IMHO wrong. For those X should assume that the 
>> timings set by the driver are correct as long as the resolution and bit 
>> depth are correct.
>>
>> This is what happens:
>> 1. In xorg.conf you configured a pixel resolution and bpp (e.g. 
>> 1280x1024-16)
>> 2. In xorg.conf you might have configured a monitor (with or without 
>> some timing/sync informations)
>> 3. X reads those config parameters and try to set them through kernel calls.
>> 4. Kernel returns that it now has set up the mode (1280x1024-16) and has 
>> set up the timings. Since stifb does not support timing modes, it 
>> returns zeros in those values (IMHO thats correct behavior if you look 
>> at the comments in skeletonfb.c)
>> 5. X verifies the returned values and aborts since the timing values are 
>> different to what it fed to the kernel, although the resolution 
>> (1280x1024-16) is correctly set and returned like that.
>>
>> I think X is right in noticing that the timing/sync values are not what 
>> it expected. Nevertheless, I would prefer that it would just warn (in 
>> the fbdev drivers only!) that the timings are incorrect instead of 
>> aborting completely. X is right to abort, if the pixel resolution and 
>> bpp can not be set.
>> So, X's tests should be like that:
>> a) resolution and bpp different -> abort
>> b) resolution and bpp correct, but sync timings/monitor timings 
>> different -> warn but continue
>>
>> Right now X's tests are:
>> resolution, bpp or sync/monitor timings different -> abort.
>>
>> Of course it's easily possible to change stifb in that it just takes any 
>> timing values, but that is not how it is documented in skeletonfb.
> 
> My sense in looking at the PR is that the freedesktop people won't
> accept this approach.

Sadly I have the same feeling.
But just scan yourself through the kernel fb drivers and look how many 
drivers haven't implemented this workaround with check_var and set_par.
All those fb drivers are probably broken due to this X behavior.

Helge

  reply	other threads:[~2008-08-24 14:38 UTC|newest]

Thread overview: 185+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <no.id>
1999-06-10 18:32 ` [parisc-linux] booting problems Stan Sieler
1999-06-21 17:03 ` Hack to head.S John David Anglin
1999-06-21 19:38 ` John David Anglin
2000-10-11 20:11 ` [parisc-linux] __hp9000s700 predefined John David Anglin
2000-11-09 17:39 ` testcase for hppa64 gcc bug John David Anglin
2000-12-06  4:12   ` Jeffrey A Law
2000-12-06  4:14     ` John David Anglin
2000-12-06  5:28       ` Alan Modra
2001-02-01  1:19         ` [parisc-linux] " Jeffrey A Law
2000-11-09 23:57 ` abort in eliminate_regs compiling glob.c from glibc John David Anglin
2000-11-10  0:36   ` Alan Modra
2000-11-10  2:50     ` John David Anglin
2000-11-14 21:40   ` John David Anglin
2001-01-27 20:12     ` Richard Henderson
2000-12-14  0:48 ` pa reload problem John David Anglin
2000-12-14  3:43   ` Jeffrey A Law
2000-12-14 16:40     ` John David Anglin
2000-12-27 20:08       ` Jeffrey A Law
2000-12-28  5:18         ` John David Anglin
2000-12-16 20:38     ` [parisc-linux] PATCH: Adjust label usage count for new insns [was Re: pa reload problem] John David Anglin
2001-01-02  9:51       ` Jeffrey A Law
2002-01-07 18:39 ` [parisc-linux] PIC assembly John David Anglin
2002-01-09  1:05   ` Grant Grundler
2002-01-11 20:45     ` Grant Grundler
2002-07-15 17:21 ` [parisc-linux] compiling kernels with gcc-3.1 John David Anglin
2002-07-15 17:32   ` Randolph Chung
2002-07-15 17:43     ` Matthew Wilcox
2002-07-15 18:18       ` John David Anglin
2002-07-16  9:02   ` joel.soete
2002-07-16 17:01 ` [parisc-linux] gcc-3.[02] alignment problem John David Anglin
2002-07-16 17:01 ` John David Anglin
2002-07-16 17:22   ` Randolph Chung
2002-07-16 17:24     ` Matthew Wilcox
2002-07-17  3:19       ` Randolph Chung
2002-07-17  3:19       ` Randolph Chung
2002-07-16 17:24     ` Matthew Wilcox
2002-07-16 20:21     ` Richard Henderson
2002-07-16 20:21     ` Richard Henderson
2002-07-16 17:22   ` Randolph Chung
2002-07-16 17:27 ` [parisc-linux] gcc-3.2 bootstrap? John David Anglin
2003-01-31 21:27 ` [parisc-linux] PATCH hppa ordered load absolute ops John David Anglin
2003-01-31 21:27 ` John David Anglin
2003-08-31 19:10 ` [parisc-linux] Re: [glibc] tststatic failues, reduced to simp le testcase John David Anglin
2003-08-31 20:22   ` Carlos O'Donell
2003-08-31 20:47     ` John David Anglin
2003-09-01  6:05       ` Carlos O'Donell
2003-12-15 22:05 ` [parisc-linux] dlopen failed on 'libthread_db.so.1' - /lib/libthread_db.so.1: undefined symbol: ps_pglobal_lookup John David Anglin
2003-12-17 15:32   ` [parisc-linux] " Carlos O'Donell
2003-12-17 15:53     ` Carlos O'Donell
2003-12-17 16:43       ` [parisc-linux] Re: dlopen failed on 'libthread_db.so.1' - John David Anglin
2003-12-17 18:35         ` Carlos O'Donell
2003-12-18  0:21           ` John David Anglin
2003-12-18  0:32 ` John David Anglin
2003-12-18  0:42   ` [parisc-linux] Re: dlopen failed on 'libthread_db.so.1' -g John David Anglin
2004-01-07 21:14 ` [parisc-linux] [Testers wanted] New glibc with profiling fixed John David Anglin
2004-01-07 21:14 ` John David Anglin
2004-08-31  4:23 ` [parisc-linux] Re: linux signal race fixes, patches against hppa tree, please test John David Anglin
2004-08-31 20:43   ` [parisc-linux] Re: linux signal race fixes, patches against hppa tree, please te John David Anglin
2004-09-01 20:08     ` John David Anglin
2004-09-11  7:24       ` [parisc-linux] Another SIGSEGV, this time in /bin/sh John David Anglin
2004-09-13 15:01         ` [parisc-linux] " Carlos O'Donell
2004-09-02  6:29     ` [parisc-linux] Re: linux signal race fixes, patches against hppa tree, please te Carlos O'Donell
2005-03-05 21:53 ` [parisc-linux] Re: Comments? John David Anglin
2005-03-06  0:22   ` John David Anglin
2005-03-08 17:32     ` Carlos O'Donell
2005-03-08 17:44       ` John David Anglin
2005-03-08 17:54         ` Carlos O'Donell
2005-03-08 19:02           ` John David Anglin
2005-03-08 21:08             ` [parisc-linux] OPD's on hppa-linux, and what to do about __cffc's fragility Carlos O'Donell
2005-03-08 21:48               ` [parisc-linux] " John David Anglin
2005-03-08 21:52                 ` John David Anglin
2005-03-08 22:25               ` Alan Modra
2005-03-10 15:31                 ` Carlos O'Donell
2005-03-10 22:27                   ` Alan Modra
2005-03-11 18:05                     ` [parisc-linux] Solution to OPD's in hppa-linux, including a transition plan? Carlos O'Donell
2005-03-12  0:49                       ` [parisc-linux] " John David Anglin
     [not found]                         ` <20050315220842.GC22872@baldric.uwo.ca>
     [not found]                           ` <20050315224142.GC21148@bubble.modra.org>
2005-03-16 20:36                             ` Carlos O'Donell
2005-03-16 23:54                               ` Alan Modra
     [not found]                           ` <200503160410.j2G4ALcu021219@hiauly1.hia.nrc.ca>
2005-03-16 21:37                             ` Carlos O'Donell
2005-03-17  3:51                               ` John David Anglin
2005-07-16  2:55 ` [parisc-linux] Re: Non-inline math, and inline math broken, GCC to blame? (1 hppa tls toolchain regression) John David Anglin
2005-07-16 16:16   ` Carlos O'Donell
2005-07-16 17:37     ` John David Anglin
2005-07-16 17:54       ` John David Anglin
2005-07-16 19:41         ` Carlos O'Donell
2005-07-16 19:56           ` John David Anglin
2005-07-16 19:15       ` Carlos O'Donell
2005-08-16  3:32 ` [parisc-linux] Re: gsyprf11 and 2.6.13-rc3-pa1 John David Anglin
2005-12-26 19:58 ` [parisc-linux] strtold John David Anglin
2006-01-07 21:07   ` [parisc-linux] strtold Carlos O'Donell
2006-01-07 22:41     ` John David Anglin
2006-01-07 23:42       ` Carlos O'Donell
2006-01-07 23:49         ` John David Anglin
2006-01-07 23:56         ` John David Anglin
2006-01-08  4:28         ` Grant Grundler
2005-12-26 21:54 ` [parisc-linux] Re: nscd: error while loading shared libraries: unexpected reloc type 0x42 John David Anglin
2006-01-07 23:53   ` Carlos O'Donell
2006-01-08  0:16     ` [parisc-linux] Re: nscd: error while loading shared libraries: John David Anglin
2006-02-04 23:41 ` [parisc-linux] long double on hppa64-*-linux* John David Anglin
2006-02-05  0:45   ` Grant Grundler
2006-02-05  3:42     ` John David Anglin
2006-03-12 20:15 ` [parisc-linux] Re: gcj can't make shared libs on hppa John David Anglin
2006-03-13 14:24   ` Carlos O'Donell
2006-03-13 20:50     ` John David Anglin
2006-06-09  0:56 ` [parisc-linux] User space locks -- what's wrong John David Anglin
2007-01-03  1:41 ` [parisc-linux] Re: PA8800 Status (Happy New Year) John David Anglin
2007-01-03  4:24 ` John David Anglin
2007-02-17 20:32 ` [parisc-linux] Re: call_init in libc6 2.3.6.ds1-11 John David Anglin
2007-09-04  1:19 ` [parisc-linux] 2.6.23-rc5 warnings John David Anglin
2008-08-23 16:48 ` X won't start with VisEG and 2.6.22.19 John David Anglin
2008-08-24 10:35   ` Helge Deller
2008-08-24 14:09     ` John David Anglin
2008-08-24 14:38       ` Helge Deller [this message]
2009-05-03  0:48 ` Kernel Panic during init with 2.6.29-gb609308 (fresh clone of git John David Anglin
2009-08-23 21:21 ` Reproducible random python crash John David Anglin
2009-12-23 22:18 ` futex wait failure John David Anglin
2009-12-24  2:22   ` Carlos O'Donell
2009-12-28 18:59     ` John David Anglin
2009-12-29 13:47       ` Helge Deller
2009-12-29 15:00         ` John David Anglin
2009-12-30 10:49           ` Randolph Chung
2009-12-31 18:14         ` Carlos O'Donell
2009-12-31 19:11           ` Helge Deller
2010-01-01  3:49             ` John David Anglin
2010-01-01  5:02               ` John David Anglin
2010-01-04 16:27               ` Helge Deller
2010-01-04 17:16                 ` Carlos O'Donell
2010-01-04 18:11                   ` John David Anglin
2010-01-04 18:29                     ` John David Anglin
2010-01-04 20:51                     ` Helge Deller
2010-01-04 21:39                       ` John David Anglin
2010-01-05 22:27                       ` John David Anglin
2010-01-06 23:33                         ` John David Anglin
2010-01-07 16:13                           ` Helge Deller
2010-01-08 16:37                             ` John David Anglin
2010-01-08 21:17                               ` John David Anglin
2010-02-02 21:16                                 ` Helge Deller
2010-02-03  3:44                                   ` John David Anglin
2010-02-03 22:03                                     ` Helge Deller
2010-03-07 17:12                                       ` John David Anglin
2010-03-07 20:32                                         ` John David Anglin
2010-03-11  3:20                                           ` John David Anglin
2010-03-11 13:54                                             ` Kyle McMartin
2010-03-11 22:40                                               ` John David Anglin
2010-03-11 23:32                                                 ` John David Anglin
2010-03-13  2:06                                                 ` John David Anglin
2010-03-15  1:10                                                   ` John David Anglin
2010-03-16 11:49                                                     ` Carlos O'Donell
2010-03-21 18:19                                                       ` John David Anglin
2010-03-22 14:26                                                         ` Carlos O'Donell
2010-03-23 21:32                                                         ` Carlos O'Donell
2010-03-23 22:23                                                           ` John David Anglin
2010-02-03 22:44                                   ` Carlos O'Donell
2010-01-08 21:18                               ` Helge Deller
2010-01-08 21:43                                 ` John David Anglin
2010-01-08 21:44                                 ` Carlos O'Donell
2010-01-08 21:44                                   ` Carlos O'Donell
2010-01-08 21:56                                     ` Kyle McMartin
2010-01-08 22:28                                       ` John David Anglin
2010-01-08 22:33                                         ` Kyle McMartin
2010-01-08 22:31                                     ` John David Anglin
2010-01-16 23:17                                   ` Helge Deller
2010-01-18 15:50                                     ` John David Anglin
2010-01-18 20:44                                     ` John David Anglin
2010-01-18 20:49                                       ` Carlos O'Donell
2010-01-29 17:53                                     ` Carlos O'Donell
2010-01-31 21:14                                       ` Helge Deller
2010-01-01  0:26                                         ` John David Anglin
2010-02-01 12:58                                           ` Carlos O'Donell
2010-02-01 15:47                                             ` John David Anglin
2010-02-01 19:02                                           ` Helge Deller
2010-02-01 19:11                                             ` John David Anglin
2010-02-01 21:36                                               ` Carlos O'Donell
2010-01-04 17:32                 ` John David Anglin
2010-01-04 18:02                   ` Carlos O'Donell
2010-01-04 18:22                     ` John David Anglin
2010-01-04 21:24                 ` Helge Deller
2009-12-31 22:38           ` John David Anglin
2010-01-01  0:36             ` John David Anglin
2008-07-28 17:09 Cupertino test ring problem? Rick Jones
2008-07-28 17:15 ` Matthew Wilcox
2008-07-29 20:03   ` Rick Jones
2008-07-29 20:25     ` James Bottomley
2008-07-29 20:57       ` Rick Jones
2008-07-29 22:09         ` James Bottomley
2008-07-31  5:15           ` Grant Grundler
2008-07-31 17:26             ` Rick Jones
2008-08-01 23:31               ` Grant Grundler
2008-08-04  8:59                 ` Thibaut VARENE
2008-08-06  1:42                   ` X won't start with VisEG and 2.6.22.19 John David Anglin
2008-08-06  5:11                     ` Guy Martin
2008-08-14 20:54                       ` Helge Deller
2008-08-14 21:24                         ` John David Anglin
2008-08-15 15:09                           ` Helge Deller
2008-08-23 14:49                         ` John David Anglin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48B17262.3010206@gmx.de \
    --to=deller@gmx.de \
    --cc=dave.anglin@nrc-cnrc.gc.ca \
    --cc=dave@hiauly1.hia.nrc.ca \
    --cc=gmsoft@tuxicoman.be \
    --cc=kraxel@goldbach.in-berlin.de \
    --cc=linux-parisc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox