linux/drivers/video/acornfb.c
<<
>>
Prefs
   1/*
   2 *  linux/drivers/video/acornfb.c
   3 *
   4 *  Copyright (C) 1998-2001 Russell King
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as
   8 * published by the Free Software Foundation.
   9 *
  10 * Frame buffer code for Acorn platforms
  11 *
  12 * NOTE: Most of the modes with X!=640 will disappear shortly.
  13 * NOTE: Startup setting of HS & VS polarity not supported.
  14 *       (do we need to support it if we're coming up in 640x480?)
  15 *
  16 * FIXME: (things broken by the "new improved" FBCON API)
  17 *  - Blanking 8bpp displays with VIDC
  18 */
  19
  20#include <linux/module.h>
  21#include <linux/kernel.h>
  22#include <linux/errno.h>
  23#include <linux/string.h>
  24#include <linux/ctype.h>
  25#include <linux/mm.h>
  26#include <linux/init.h>
  27#include <linux/fb.h>
  28#include <linux/platform_device.h>
  29#include <linux/dma-mapping.h>
  30#include <linux/io.h>
  31#include <linux/gfp.h>
  32
  33#include <mach/hardware.h>
  34#include <asm/irq.h>
  35#include <asm/mach-types.h>
  36#include <asm/pgtable.h>
  37
  38#include "acornfb.h"
  39
  40/*
  41 * VIDC machines can't do 16 or 32BPP modes.
  42 */
  43#ifdef HAS_VIDC
  44#undef FBCON_HAS_CFB16
  45#undef FBCON_HAS_CFB32
  46#endif
  47
  48/*
  49 * Default resolution.
  50 * NOTE that it has to be supported in the table towards
  51 * the end of this file.
  52 */
  53#define DEFAULT_XRES    640
  54#define DEFAULT_YRES    480
  55#define DEFAULT_BPP     4
  56
  57/*
  58 * define this to debug the video mode selection
  59 */
  60#undef DEBUG_MODE_SELECTION
  61
  62/*
  63 * Translation from RISC OS monitor types to actual
  64 * HSYNC and VSYNC frequency ranges.  These are
  65 * probably not right, but they're the best info I
  66 * have.  Allow 1% either way on the nominal for TVs.
  67 */
  68#define NR_MONTYPES     6
  69static struct fb_monspecs monspecs[NR_MONTYPES] = {
  70        {       /* TV           */
  71                .hfmin  = 15469,
  72                .hfmax  = 15781,
  73                .vfmin  = 49,
  74                .vfmax  = 51,
  75        }, {    /* Multi Freq   */
  76                .hfmin  = 0,
  77                .hfmax  = 99999,
  78                .vfmin  = 0,
  79                .vfmax  = 199,
  80        }, {    /* Hi-res mono  */
  81                .hfmin  = 58608,
  82                .hfmax  = 58608,
  83                .vfmin  = 64,
  84                .vfmax  = 64,
  85        }, {    /* VGA          */
  86                .hfmin  = 30000,
  87                .hfmax  = 70000,
  88                .vfmin  = 60,
  89                .vfmax  = 60,
  90        }, {    /* SVGA         */
  91                .hfmin  = 30000,
  92                .hfmax  = 70000,
  93                .vfmin  = 56,
  94                .vfmax  = 75,
  95        }, {
  96                .hfmin  = 30000,
  97                .hfmax  = 70000,
  98                .vfmin  = 60,
  99                .vfmax  = 60,
 100        }
 101};
 102
 103static struct fb_info fb_info;
 104static struct acornfb_par current_par;
 105static struct vidc_timing current_vidc;
 106
 107extern unsigned int vram_size;  /* set by setup.c */
 108
 109#ifdef HAS_VIDC
 110
 111#define MAX_SIZE        480*1024
 112
 113/* CTL     VIDC Actual
 114 * 24.000  0     8.000
 115 * 25.175  0     8.392
 116 * 36.000  0    12.000
 117 * 24.000  1    12.000
 118 * 25.175  1    12.588
 119 * 24.000  2    16.000
 120 * 25.175  2    16.783
 121 * 36.000  1    18.000
 122 * 24.000  3    24.000
 123 * 36.000  2    24.000
 124 * 25.175  3    25.175
 125 * 36.000  3    36.000
 126 */
 127struct pixclock {
 128        u_long  min_clock;
 129        u_long  max_clock;
 130        u_int   vidc_ctl;
 131        u_int   vid_ctl;
 132};
 133
 134static struct pixclock arc_clocks[] = {
 135        /* we allow +/-1% on these */
 136        { 123750, 126250, VIDC_CTRL_DIV3,   VID_CTL_24MHz },    /*  8.000MHz */
 137        {  82500,  84167, VIDC_CTRL_DIV2,   VID_CTL_24MHz },    /* 12.000MHz */
 138        {  61875,  63125, VIDC_CTRL_DIV1_5, VID_CTL_24MHz },    /* 16.000MHz */
 139        {  41250,  42083, VIDC_CTRL_DIV1,   VID_CTL_24MHz },    /* 24.000MHz */
 140};
 141
 142static struct pixclock *
 143acornfb_valid_pixrate(struct fb_var_screeninfo *var)
 144{
 145        u_long pixclock = var->pixclock;
 146        u_int i;
 147
 148        if (!var->pixclock)
 149                return NULL;
 150
 151        for (i = 0; i < ARRAY_SIZE(arc_clocks); i++)
 152                if (pixclock > arc_clocks[i].min_clock &&
 153                    pixclock < arc_clocks[i].max_clock)
 154                        return arc_clocks + i;
 155
 156        return NULL;
 157}
 158
 159/* VIDC Rules:
 160 * hcr  : must be even (interlaceclass="commen/2L156" class="line" na2de=fbl=ors/video/acornfb.c#L61" 1id="L16 class="line" name="L121"> 121hswr 121hdsr  63hspanspan classoddnterlaceclass="commen/2L156" class="line" na="driversrs/video/acornfb.c#L64" 1id="L14" class="line" name="L64">  6nterlaceclass="commen/2L156" class="line" na="driversrs/video/acornfb.c#L65" 1id="L15" class="line" name="L65">  65v/a>  66vswr  6 vdsr 118vspanspk" c=Lvdsr" erlaceclass="commen/2L156" class="line" na="driversrs/video/acornfb.c#L69" 1id="L16 class="line" name="L119"> 119152ent"> * hd,ent"nr  : must be even (new improved" FBCON API)
 16lass="comment">/* 24.000MHz */
/* 24.000MHz */
 1setic struct  1setic stru="sref">acornfb_valid_pixrate(struct fb_var_screeninfo *var)
 144{
 142static struct  142sclstruct NULL;
 105static struct vig current_vidc;
 146        current_vidc;
 146        VIDC_CTRcomment_san c>        VIDC_CTRcomment_end>        VIDC_CTRcyclf="+code=acornfbcyclfdc" class="sref">current_vidc;
 128         * hdclocks +  * hddc" class="sref">current_vidc;
 129        u_int   VIDC_CTR">u_int   vidc_ctl;
 130         1bandwidth>        vidc_ctl;
 141
vig  152      g vidc_ctl;
 133
 142sclstruct pL143"> 143fb_var_screeninfo *vidc_ctl;
 1">u_int   psclstruct u_int   vidc_ctl;
 1">u_int   psclstruct u_int   vid_ctl;
 147
 1bandwidth>        pixclock = var->pixclock =    vid_ctl;
VID_CTL_24MHz }, s="co, 4ss="= 79.444ns per byte, 317.776ns per word: fifo"= 2,6 18 */
 152      bandwidth>        var)
 1">u_int   pVIDC_CTRL_FIFO_3_7/a>   vid_ctl;
 152      bandwidth>        var)
 1">u_int   pVIDC_CTRL_FIFO_2_vid_ctl;
 152      bandwidth>        var)
 1">u_int   pVIDC_CTRL_FIFO_ vid_ctl;
vid_ctl;
 1">u_int   pVIDC_CTRL_FIFO_0_4 href="+code=VIDC_CTRL_DIFIFO_0_4vid_ctl" class="sref">vid_ctl;
 158
 152      ixclock =    arc_clocks[] = {
arc_clocks[] = {
 1horiz_/a>rs to d>        rs to ddc" fmax"inux/platform_device.h>
 1">u_int   pVIDC_CTRL_1efine vid_ctl;
vid_ctl;
vid_ctl;
arc_clocks[] = {
 1horiz_/a>rs to d>        rs to ddc" fmax1ctl" class="sref">vid_ctl;
 1">u_int   pVIDC_CTRL_2efine vid_ctl;
vid_ctl;
  19
arc_clocks[] = {
 1horiz_/a>rs to d>        rs to ddc" fma7="fref">linux/module.h>
 1">u_int   pVIDC_CTRL_4efine vid_ctl;
vid_ctl;
vid_ctl;
arc_clocks[] = {
arc_clocks[] = {
 1horiz_/a>rs to d>        rs to ddc" fma5ctl" class="sref">vid_ctl;
 1">u_int   pVIDC_CTRL_8efine vid_ctl;
vid_ctl;
 100        }
 141
 152      ixclock =   4_lass_COMP_HIGH_ACT>        vram_sizehoulde ev 4_lass_COMP 18 */
 1">u_int   pVIDC_CTRL_Classne vid_ctl;
arc_clocks[] = {
 152      ixclock =   4_lass_HOR_HIGH_ACT>        arc_clocks[] = {
 1">u_int   pVIDD_CTLHS_NHlassne vid_ctl;
 147
 152      ixclock =   4_lass_VERT_HIGH_ACT>        arc_clocks[] = {
 1">u_int   pVIDD_CTLVS_NVlassne vid_ctl;
 100        }
 141
        pixclock = vid_ctl;
        psync_led>        arcixclock = vid_ctl;
 142comment_end>        pcomment_san c>        arcixclock = vid_ctl;
 1cyclf="+code=acornfbcyclfdc" ="L" name="k" class="sref">pcomment_end>        arcixclock = vid_ctl;
 106
vram_size * hd,ent"nr  : must be even ( 18 */
 1es_ent"> * hdclocks +  * hddc" "k""> 152      ixclock =   4_VELECTMASK>        p 4_VELECTINTERLACED>        vid_ctl;
  39
 152      es_ent"> * hdclocks +  * hddc" )ass="sref">arc_clocks[] = {
 1">u_int   pVIDC_CTRL_INTERLACEne vid_ctl;
 152      cyclf="+code=acornfbcyclfdc" =ks="sn2)ass="sref">arc_clocks[] = {
 1cyclf="+code=acornfbcyclfdc" =+= 2ctl" class="sref">vid_ctl;
 15lass="sref">arcixclock = vid_ctl;
 100        }
 100        }
 147
 1g   97    _cyclf="+code=acornfb _cyclf class="line" nak""> 152      cyclf="+code=acornfbcyclfdc" =-n2)a/ 2ctl" class="sref">vid_ctl;
 1g   97    _sync_width>         152      sync_led>        vid_ctl;
 1g   97    _border_san c>         152      comment_san c>        vid_ctl;
 1g   97    _comment_san c>         152      comment_san c>         1horiz_/a>rs to d>        rs to ddc" )a/ 2ctl" class="sref">vid_ctl;
   97    _comment_end>         152      comment_end>         1horiz_/a>rs to d>        rs to ddc" )a/ 2ctl" class="sref">vid_ctl;
   97    _border_end>         152      comment_end>        vid_ctl;
 142g   97    _ent"> * h>         * hclasss="linek""> 152      g   97    _cyclf="+code=acornfb _cyclf clas+ 1)a/ 2ctl" class="sref">vid_ctl;
 155
 1sync_led>        pixclock = vid_ctl;
 1comment_san c>        psync_led>        arcixclock = vid_ctl;
 1comment_end>        pcomment_san c>        arcixclock = vid_ctl;
 1cyclf="+code=acornfbcyclfdc" ="L" name="k" class="sref">pcomment_end>        arcixclock = vid_ctl;
 150
 152      es_ent"> * hdclocks +  * hddc" )s="line" name="L150"> 150
 1cyclf="+code=acornfbcyclfdc" =k""> 152      cyclf="+code=acornfbcyclfdc" =-n3)a/ 2ctl" class="sref">vid_ctl;
vid_ctl;
 1cyclf="+code=acornfbcyclfdc" =k"> 152      cyclf="+code=acornfbcyclfdc" =-n1ctl" class="sref">vid_ctl;
 155
 1">ua>   97   v_cyclf="+code=acornfbv_cyclf class="line" nak"> 152      cyclf="+code=acornfbcyclfdc" ctl" class="sref">vid_ctl;
 1">ua>   97   v_sync_width>         152      sync_led>        vid_ctl;
 1g   97   v_border_san c>         152      comment_san c>        vid_ctl;
 1g   97   v_comment_san c>         1g   97   v_border_san c>        vid_ctl;
 1g   97   v_comment_end>         152      comment_end>        vid_ctl;
 1g   97   v_border_end>         1g   97   v_comment_end>        vid_ctl;
 112
 152      machrnf_ s_a5].arc_clocks[] = {
 1__raw_writeb/a>]. 1g   VIDC_CTRIOEB_VIDD_CT   vid_ctl;
 155
 152      memcmp/a>].vidc_timing vig  152      g arc_clocks[] = {
 1dc_timing  1g vid_ctl;
 158
 1">u_iwrite    1">u_int   vid_ctl;
 1">u_iwrite    152      g   97    _cyclf="+code=acornfb _cyclf clask" ck" cl14))tl" class="sref">vidc_ctl;
 1">u_iwrite    152      g   97    _sync_width>        vidc_ctl;
 1">u_iwrite    152      g   97    _border_san c>        vidc_ctl;
 1">u_iwrite    152      g   97    _comment_san c>        vidc_ctl;
 1">u_iwrite    152      g   97    _comment_end>        vidc_ctl;
 1">u_iwrite    152      g   97    _border_end>        vidc_ctl;
 1">u_iwrite   vidc_ctl;
 1">u_iwrite    152      g   97    _ent"> * h>         * hclassk" ck" cl14))tl" class="sref">vidc_ctl;
 1">u_iwrite    152      g   97   v_cyclf="+code=acornfbv_cyclf clask" ck" cl14))tl" class="sref">vidc_ctl;
 1">u_iwrite    152      g   97   v_sync_width>        vidc_ctl;
 1">u_iwrite    152      g   97   v_border_san c>        vidc_ctl;
 1">u_iwrite    152      g   97   v_comment_san c>        vidc_ctl;
 1">u_iwrite    152      g   97   v_comment_end>        vidc_ctl;
 1">u_iwrite    152      g   97   v_border_end>        vidc_ctl;
 1">u_iwrite   vidc_ctl;
 1">u_iwrite   vidc_ctl;
 100        }
 1DEBUG_ELECTSELECTION/a>    158
 1prenta>-> 1KERN_DEBUG>->strtruc>"s" namss="cdxss="cdxss="cd:\n"VIDC_CTR"xclock =  158
VIDC_CTR"xclock = VIDC_CTR"xclock =    vidc_ctl;
 1prenta>-> 1KERN_DEBUG>->strtruc>" H-cyclfne" name=":mss="cd\n"VIDC_CTR"   97    _cyclf="+code=acornfb _cyclf cla)tl" class="sref">vidc_ctl;
 1prenta>-> 1KERN_DEBUG>->strtruc>" H-sync-widthame=":mss="cd\n"VIDC_CTR"   97    _sync_width>        vidc_ctl;
-> 1KERN_DEBUG>->strtruc>" H-border-san ce=":mss="cd\n"VIDC_CTR"   97    _border_san c>        vidc_ctl;
-> 1KERN_DEBUG>->strtruc>" H-comment-san ce=:mss="cd\n"VIDC_CTR"   97    _comment_san c>        vidc_ctl;
 142srenta>-> 1KERN_DEBUG>->strtruc>" H-comment-endme=":mss="cd\n"VIDC_CTR"   97    _comment_end>        vidc_ctl;
 1prenta>-> 1KERN_DEBUG>->strtruc>" H-border-endme="":mss="cd\n"VIDC_CTR"   97    _border_end>        vidc_ctl;
 1prenta>-> 1KERN_DEBUG>->strtruc>" H-ent"> * hname=":mss="cd\n"VIDC_CTR"   97    _ent"> * h>         * hclas)tl" class="sref">vidc_ctl;
 1prenta>-> 1KERN_DEBUG>->strtruc>" V-cyclfne" name=":mss="cd\n"VIDC_CTR"   97   v_cyclf="+code=acornfbv_cyclf cla)tl" class="sref">vidc_ctl;
 1prenta>-> 1KERN_DEBUG>->strtruc>" V-sync-widthame=":mss="cd\n"VIDC_CTR"   97   v_sync_width>        vidc_ctl;
 1prenta>-> 1KERN_DEBUG>->strtruc>" V-border-san ce=":mss="cd\n"VIDC_CTR"   97   v_border_san c>        vidc_ctl;
 1prenta>-> 1KERN_DEBUG>->strtruc>" V-comment-san ce=:mss="cd\n"VIDC_CTR"   97   v_comment_san c>        vidc_ctl;
 1prenta>-> 1KERN_DEBUG>->strtruc>" V-comment-endme=":mss="cd\n"VIDC_CTR"   97   v_comment_end>        vidc_ctl;
-> 1KERN_DEBUG>->strtruc>" V-border-endme="":mss="cd\n"VIDC_CTR"   97   v_border_end>        vidc_ctl;
-> 1KERN_DEBUG>->strtruc>" VIDC_CTR"   vid_ctl;
 142srenta>-> 1KERN_DEBUG>->strtruc>" IOEBVIDC_CTR"   vid_ctl;
vid_ctl;
 100        }
 147
 147
VIDC_CTR7
<1setcolreuct  1setcolreu cla( name="L130"> 130         1reun href="+code=fb_reun class="sref">VIDC_CTR30         1red>        VIDC_CTR30         1gninf>        VIDC_CTR30         1bluf="+code=acornfbblufclas,s="line" name="L158"> 158
 130         1tranturn acornfb_valid_pixrate< fb_var_sc arc_clocks[] = {
arc_clocks[] = {
 142saletef="+code=acornfbsaletefode=u name="L130"> 1sal="+code=acornfbsalode=ctl" class="sref">vid_ctl;
 133
 152      reun href="+code=fb_reun clasck" ck"> 152      c=currenpxclock =   97   saletef_vram="+code=acornfbsaletef_vramlass)s="sref">arc_clocks[] = {
vid_ctl;
 106
 1pal="+code=acornfbsalode=L97">  97   s="+code=acornfbs clas= 0ctl" class="sref">vid_ctl;
 1pal="+code=acornfbsalode=L97">  97   "   97   reuct  1reun href="+code=fb_reun clasctl" class="sref">vid_ctl;
 1pal="+code=acornfbsalode=L97">  97   "   97   red>         1red>        vid_ctl;
 1pal="+code=acornfbsalode=L97">  97   "   97   gninf>         1gninf>        vid_ctl;
 1pal="+code=acornfbsalode=L97">  97   "   97   bluf="+code=acornfbblufclasnek" name="L130"> 1bluf="+code=acornfbblufclasnk" ck" cl12ctl" class="sref">vid_ctl;
 112
 =   97   saletef="+code=acornfbsaletefode=[ name="L130"> 1reun href="+code=fb_reun clas]ck" class="sref">psal="+code=acornfbsalode=ctl" class="sref">vid_ctl;
vid_ctl;
 1">u_iwrite    1pal="+code=acornfbsalode=L97">  97   s="+code=acornfbs cla)ctl" class="sref">vid_ctl;
 106
vid_ctl;
 100        }
vid_ctl;
 150
 1HAS_VIDC/video/acorcornfbHAS_VIDC/vclass="line" name="L150"> 150

        fornfbcoch50
 150
 133
 1MAX_SIZEideo/acorcornfbMAX_SIZEclass="line"2*1024*1024s="line" name="L133"> 133
 155
vram_size */
vram_size * r  :=":mst be evmultiple of 4 */
vram_size * r swr":mst be even ( */
vram_size * r dsr":mst be even ( */
vram_size * r der":mst be even ( */
vram_size * rv :=":mk" ck"2, (ent"> * h,mst be evodd) */
vram_size * rvswr":mk" ck"1 */
vram_size * rvdsr":mk" ck"1 */
vram_size * rvder":mk" ck"vdsr */
vram_size *8 */
 1L143"> 1set_timtruct  1set_timtru cla(f">acornfb_valid_pixrate< fb_var_sc arc_clocks[] = {
arc_clocks[] = {
acornfb_valid_pixratefb_var_sc"xclock = vi  150
acornfb_valid_pixra+codetimtruct  1"  150
 130         1v :> VIDC_CTRfvram="+code=acornfbfvramlasscs="line" name="L150"> 150
 130         1ext_int   VIDC_CTRdat_int    150
         1words_pereornfb.        150
 133
 142memsetb.       vig  152      g  150
 155
 1">ua>   97    _sync_width>         150
 1">ua>   97    _border_san c>         1">ua>   97    _sync_width>        arcixclock = vid_ctl;
 1g   97    _comment_san c>         1">ua>   97    _border_san c>         150
 1g   97    _comment_end>         1g   97    _comment_san c>        arcixclock = vid_ctl;
 1g   97    _border_end>         1g   97    _comment_end>        vid_ctl;
 1g   97    _cyclf="+code=acornfb _cyclf class="line" nak" name="L130"> 1g   97    _border_end>        arcixclock =  150
   97    _ent"> * h>         * hclasss="linek" name="L131"> 1g   97    _cyclf="+code=acornfb _cyclf clas/ 2ctl" class="sref">vid_ctl;
  97   v_sync_width>        vid_ctl;
 142"   97   v_border_san c>         1g   97   v_sync_width>        arcixclock = vid_ctl;
 1">u_>   97   v_comment_san c>         1g   97   v_border_san c>        vid_ctl;
 1">ua>   97   v_comment_end>         152      ">u_>   97   v_comment_san c>        arcixclock = vid_ctl;
 1">ua>   97   v_border_end>         1g   97   v_comment_end>        vid_ctl;
 1g   97   controt    1L143"> 1default_controt    1default_controt cla()cs="line" name="L150"> 150
  39
 1g :> arcixclock = arcixclock =   39
arcixclock = vid_ctl;
 112
 152      gxclock = arc_clocks[] = {
 1">u_>   97   v_cyclf="+code=acornfbv_cyclf clask""> 152      g :> vid_ctl;
 1">u_>   97   controt   vid_ctl;
vid_ctl;
 1">u_>   97   v_cyclf="+code=acornfbv_cyclf clask"> 152      g :> vid_ctl;
 158
 152      gxclock =    arc_clocks[] = {
 1">u_>   97   controt   vid_ctl;
 1">u_>   97   controt   vid_ctl;
 1">u_>   97   controt   vid_ctl;
vid_ctl;
 1">u_>   97   controt   vid_ctl;
 1">u_>   97   controt   vid_ctl;
 1">u_>   97   controt   vid_ctl;
 100        }
 158
 1L143"> 1t_vi/v_find_rateturn  1t_vi/v_find_ratet cla(ss="sclass="sref">vig  152      gxclock =  150
 1fvram="+code=acornfbfvramlassek"ar" class="srefvxclock = arcixclock = arcixclock = vid_ctl;
vid_ctl;
 152      memcmp/a>].vidc_timing vig  152      g arc_clocks[] = {
 1dc_timing  1g vid_ctl;
vid_ctl;
 1">u_iwrite    1">u_>   97   controt    150
 1">u_iwrite    1">u_>   97   pll_int    150
 1">u_iwrite    1">u_>   97    _cyclf="+code=acornfb _cyclf cla)tl" class="sref">vidc_ctl;
 1">u_iwrite    1">u_>   97    _sync_width>        vidc_ctl;
 1">u_iwrite    1">u_>   97    _border_san c>        vidc_ctl;
 1">u_iwrite    1">u_>   97    _comment_san c>        vidc_ctl;
 1">u_iwrite    1">u_>   97    _comment_end>        vidc_ctl;
 1">u_iwrite    1">u_>   97    _border_end>        vidc_ctl;
 1">u_iwrite   vidc_ctl;
 1">u_iwrite    1">u_>   97    _ent"> * h>         * hclas)tl" class="sref">vidc_ctl;
 1">u_iwrite    1">u_>   97   v_cyclf="+code=acornfbv_cyclf cla)tl" class="sref">vidc_ctl;
 1">u_iwrite    1">u_>   97   v_sync_width>        vidc_ctl;
 1">u_iwrite    1">u_>   97   v_border_san c>        vidc_ctl;
 1">u_iwrite    1">u_>   97   v_comment_san c>        vidc_ctl;
 1">u_iwrite    1">u_>   97   v_comment_end>        vidc_ctl;
 1">u_iwrite    1">u_>   97   v_border_end>        vidc_ctl;
 1">u_iwrite   vidc_ctl;
 1">u_iwrite   vidc_ctl;
 100        }
vid_ctl;
 1iomdiwrite    152      IOMD_FSIZEideo/acorcornfbIOMD_FSIZEclas)tl" class="sref">vidc_ctl;
 106
 1ext_int    1L143"> 1default_econtrot    1default_econtrot cla()cs="line" name="L150"> 150
 158
 152      ixclock = vram_size */
 1ext_int    150
arc_clocks[] = {
 152      ixclock = arc_clocks[] = {
 1ext_int    150
vid_ctl;
 1ext_int    150
 106
 152      ixclock = arc_clocks[] = {
 1ext_int    150
vid_ctl;
 1ext_int    150
 100        }
 112
 150
vid_ctl;
 1words_pereornfb.          vid_ctl;
 106
 152      c=currenpxclock =   97   using_vramlock =   97   smem_led>        arc_clocks[] = {
 1words_pereornfb.       vid_ctl;
  39
vram_size */
 1dat_int    150
 112
vram_size */
vram_size         * and amount of > */< memory. */
vram_size         *     DRAM     32bit low */
vram_size         * 1MB VRAM     32bit */
vram_size         * 2MB VRAM     64bit */
vram_size         *8 */
 152      c=currenpxclock =   97   using_vramlock =   97   vram_half_samlock = arc_clocks[] = {
 1dat_int    150
 150
 1dat_int    150
 133
 142"    150
 155
 1DEBUG_ELECTSELECTION    155
 1srenta>-> 1KERN_DEBUG>->strtruc>"VIDC_CTR"xclock =  158
VIDC_CTR"xclock = VIDC_CTR"xclock =     150
 1srenta>-> 1KERN_DEBUG>->strtruc>" H-cyclfine" name=:mss="cd\n"VIDC_CTR"   97    _cyclf="+code=acornfb _cyclf cla)tl" class="sref">vidc_ctl;
 1srenta>-> 1KERN_DEBUG>->strtruc>" H-sync-widthaame=:mss="cd\n"VIDC_CTR"   97    _sync_width>        vidc_ctl;
 1srenta>-> 1KERN_DEBUG>->strtruc>" H-border-san cme=:mss="cd\n"VIDC_CTR"   97    _border_san c>        vidc_ctl;
-> 1KERN_DEBUG>->strtruc>" H-comment-san cme:mss="cd\n"VIDC_CTR"   97    _comment_san c>        vidc_ctl;
-> 1KERN_DEBUG>->strtruc>" H-comment-endame=:mss="cd\n"VIDC_CTR"   97    _comment_end>        vidc_ctl;
 142srenta>-> 1KERN_DEBUG>->strtruc>" H-border-endame==:mss="cd\n"VIDC_CTR"   97    _border_end>        vidc_ctl;
 1srenta>-> 1KERN_DEBUG>->strtruc>" H-ent"> * h name=:mss="cd\n"VIDC_CTR"   97    _ent"> * h>         * hclas)tl" class="sref">vidc_ctl;
 1srenta>-> 1KERN_DEBUG>->strtruc>" V-cyclfine" name=:mss="cd\n"VIDC_CTR"   97   v_cyclf="+code=acornfbv_cyclf cla)tl" class="sref">vidc_ctl;
 1srenta>-> 1KERN_DEBUG>->strtruc>" V-sync-widthaame=:mss="cd\n"VIDC_CTR"   97   v_sync_width>        vidc_ctl;
 1srenta>-> 1KERN_DEBUG>->strtruc>" V-border-san cme=:mss="cd\n"VIDC_CTR"   97   v_border_san c>        vidc_ctl;
 1srenta>-> 1KERN_DEBUG>->strtruc>" V-comment-san cme:mss="cd\n"VIDC_CTR"   97   v_comment_san c>        vidc_ctl;
 1srenta>-> 1KERN_DEBUG>->strtruc>" V-comment-endame=:mss="cd\n"VIDC_CTR"   97   v_comment_end>        vidc_ctl;
 1srenta>-> 1KERN_DEBUG>->strtruc>" V-border-endame==:mss="cd\n"VIDC_CTR"   97   v_border_end>        vidc_ctl;
-> 1KERN_DEBUG>->strtruc>" Ext Ctrl  (C)me==:m0xss="c08X\n"VIDC_CTRext_int    150
-> 1KERN_DEBUG>->strtruc>" PLL Ctrl  (D)me==:m0xss="c08X\n"VIDC_CTR"   97   pll_int    150
 142srenta>-> 1KERN_DEBUG>->strtruc>" Ctrl      (E)me==:m0xss="c08X\n"VIDC_CTR"   97   controt    150
 1srenta>-> 1KERN_DEBUG>->strtruc>" Data Ctrl (F)me==:m0xss="c08X\n"VIDC_CTRdat_int    150
 1srenta>-> 1KERN_DEBUG>->strtruc>" Fvram            :m0xss="c08X\n"VIDC_CTRfvram="+code=acornfbfvramlass)cs="line" name="L150"> 150
 150
 100        }
  39
vram_size */
vram_size * We have to take note of nt"aVIDC20's 16-bit palette here. */
vram_size * Tt"aVIDC20 looks up a 16 bit p cet a1 follows: */
vram_size * */
vram_size *   bits   111111 */
vram_size *          5432109876543210 */
vram_size *   red            ++++++++  (8 bits,  7 to 0) */
vram_size *  gninf       ++++++++      (8 bits, 11 to 4) */
vram_size *   blue   ++++++++          (8 bits, 15 to 8) */
vram_size * */
vram_size * We useaa p cet which looks like: */
vram_size * */
vram_size *   bits   111111 */
vram_size *          5432109876543210 */
vram_size *   red               +++++  (5 bits,  4 to  0) */
vram_size *  gninf         +++++       (5 bits,  9 to  5) */
vram_size *   blue    +++++            (5 bits, 14 to 10) */
vram_size *8 */
 */
VIDC_CTRL143"> 1setcolreg="+code=acornfbL143"> 1setcolreg cla( name="L130"> 1u_ent="+code=acornfbu_entclasscname="L130"> 1regn href="+code=fb_regn class="sref">VIDC_CTRu_ent="+code=acornfbu_entclasscname="L130"> 1red>        VIDC_CTRu_ent="+code=acornfbu_entclasscname="L130"> 1gninf="+code=acornfbgninfclass="sref">VIDC_CTRu_ent="+code=acornfbu_entclasscname="L130"> 1blue    158
 1u_ent="+code=acornfbu_entclasscname="L130"> 1tranturn VIDC_CTRfb_ VIDC_CTR arc_clocks[] = {
arc_clocks[] = {
 1salette>-> 1+al>-> 150
 133
 152      regn href="+code=fb_regn clas de=vk"ar" class="srefc=currenpxclock =   97   +alette_vram="+code=acornfb+alette_vramlass)s="sref">arc_clocks[] = {
vid_ctl;
 106
 152      regn href="+code=fb_regn clas dlt; 16 ks="sks="snar" class="sref   97   visual>->arc_clocks[] = {
 1u/video/acorcornfbu3" clas97">  97   +seudo_val>-> 150
  39
 1+seudo_val>-> 1regn href="+code=fb_regn clas dlt;dlt; ar" class="sref  =   97   red>          97   offset>         150
 1+seudo_val>-> =   97   gninf="+code=acornfbgninfclasL97">  97   offset>         150
 1+seudo_val>-> =   97   blue     97   offset>         150
 133
 152      u/video/acorcornfbu3" clas*)ar" class="sref  1+seudo_val>-> 150
 100        }
 106
 1+al>->  97   +>-> 150
 1sal>->  97   v_vi/v>   97   red>         1red>         150
 1sal>->  97   v_vi/v>   97   gninf="+code=acornfbgninfclasak" name="L130"> 1gninf="+code=acornfbgninfclasade=vde=v 8cs="line" name="L150"> 150
 1sal>->  97   v_vi/v>   97   blue    1blue    150
vid_ctl;
 =   97   +alette>-> 1+al>-> 150
 133
 152        =   97   bits_pere" cet   arc_clocks[] = {
VIDC_CTRihref="+code=fb_oclascs="line" name="L150"> 150
 106
 1+al>->  97   +>-> 150
  97   v_viiwrite   vidc_ctl;
 152       href="+code=fb_oclas = 0c="sref">VIDC_CTRihref="+code=fb_oclas dlt; 256c="sref">VIDC_CTRihref="+code=fb_oclas +k"1)ass="sref">arc_clocks[] = {
 1sal>->  97   v_vi/v>   97   red>         1c=currenpxclock =   97   +alette>->VIDC_CTRihref="+code=fb_oclas       ks="sn31]L97">  97   v_vi/v>   97   red>        vidc_ctl;
 1sal>->  97   v_vi/v>   97   gninf="+code=acornfbgninfclasak" name="L130"> 1c=currenpxclock =   97   +alette>-> 152       href="+code=fb_oclas de=vde=v 1)aks="sn31]L97">  97   v_vi/v>   97   gninf="+code=acornfbgninfclastl" class="sref">vidc_ctl;
 1sal>->  97   v_vi/v>   97   blue    1c=currenpxclock =   97   +alette>-> 152       href="+code=fb_oclas de=vde=v 2)aks="sn31]L97">  97   v_vi/v>   97   blue   vidc_ctl;
  97   v_viiwrite    1+al>->  97   +>->vidc_ctl;
vram_size auto-increm_sis *8 */
 100        }
arc_clocks[] = {
 1v_viiwrite   vidc_ctl;
 1v_viiwrite    1+al>->  97   +>->vidc_ctl;
 100        }
 100        }
 150
 100        }
 150
vid_ctl;
vram_size */
vram_size * Before selectingant"atimingapxc156t"L1, adjust */
vram_size *ant"aresolution"to fitant"arules. */
vram_size *8 */
 */
  97   L143"> 1adjust_timing>-> 1adjust_timing cla(struct="sref">VIDC_CTRfb_ VIDC_CTR VIDC_CTRfb_var_scninf VIDC_CTR"xclock = VIDC_CTRu_ent="+code=acornfbu_entclasscname="L130"> 1fontht="+code=acornfbfonthtclas)an class="comment"> */
arc_clocks[] = {
 1fonteornf_led>        VIDC_CTRsam_vram="+code=acornfbsam_vram="+cs="sref">VIDC_CTRmin_vram="+code=acornfbmin_vram="+cs="sref">VIDC_CTRsram="+code=acornfbsram="+cs="sref">VIDC_CTRnr_y="+code=acornfbnr_yclastl" class="sref">vidc_ctl;
 133
vram_size */
 1vxclock =  152      ixclock = vid_ctl;
 106
vram_size */
vram_size         * We don't allowaxres_virtual"to diff"> from xretcla> */
vram_size         *8 */
 1ixclock =  1ixclock = vid_ctl;
 1ixclock =  150
 112
 152      c=currenpxclock =   97   using_vramlock =  */
VIDC_CTRsam_vram="+code=acornfbsam_vram="+cak" name="L130"> 1c=currenpxclock =   97   vram_half_samlock = vid_ctl;
 150
VIDC_CTRsam_vram="+code=acornfbsam_vram="+cak"16ctl" class="sref">vid_ctl;
vid_ctl;
vram_size */
vram_size         * Now, find a value formyres_virtual"which allowtcla> */
vram_size         * us"to do ywrap scnolorng.  Tt"avalue ofcla> */
vram_size         * yres_virtual"muste evsuchantatant"aendaof nt"cla> */
vram_size         * commentable fc156 buff"> muste evaligned withcla> */
vram_size         * nt"asan cmof a font ornf. */
vram_size         *8 */
 1fonteornf_led>            150
 1min_vram="+code=acornfbmin_vram="+cek"ar" class="srefvxclock =     150
vid_ctl;
vram_size */
vram_size         * If minimum scninf vram is gniat"> ntanantatawe have */
vram_size         * available, reject it. */
vram_size         *8 */
 152      min_vram="+code=acornfbmin_vram="+cede=v "sref">VIDC_CTR   97   smem_led>         */
  97   EINVAL   vid_ctl;
vid_ctl;
vram_size */
vram_size         * y k"s * sam / fll;"s = maxvram / samlaa> */
vram_size         *8 */
 152      sram="+code=acornfbsram="+cek"ar" class="sref   97   smem_led>        vid_ctl;
VIDC_CTRnr_y="+code=acornfbnr_yclasek"ar" class="srefsram="+code=acornfbsram="+ce/scname="L130"> 1fonteornf_led>        VIDC_CTRmin_vram="+code=acornfbmin_vram="+cedl=vk"ar" class="srefsram="+code=acornfbsram="+cctl" class="sref">vid_ctl;
arc_clocks[] = {
 152      nr_y="+code=acornfbnr_yclase*"ar" class="sreffonteornf_led>         */
vid_ctl;
 100        }
 142nr_y="+code=acornfbnr_yclase*k"ar" class="sreffontht="+code=acornfbfonthtclasctl" class="sref">vid_ctl;
 155
 152      vxclock = arc_clocks[] = {
 152      min_vram="+code=acornfbmin_vram="+cede=v "sref">VIDC_CTRsram="+code=acornfbsram="+c)ass="sref">arc_clocks[] = {
vram_size */
vram_size                         * failed, useayass */
vram_size                         *8 */
 1sram="+code=acornfbsram="+cek"ar" class="sref   97   smem_led>        vid_ctl;
 1vxclock =  1sram="+code=acornfbsram="+ce/s"> 152      fonteornf_led>         1fontht="+code=acornfbfonthtclas)ctl" class="sref">vid_ctl;
 150
 1vxclock =  1nr_y="+code=acornfbnr_yclastl" class="sref">vidc_ctl;
 152      vxclock = VIDC_CTRnr_y="+code=acornfbnr_yclas)an class="comment"> */
VIDC_CTRvxclock =  1nr_y="+code=acornfbnr_yclastl" class="sref">vidc_ctl;
vid_ctl;
 1c=currenpxclock =   97   scninf_end>          97   smem_san c>        vid_ctl;
  39
vram_size */
vram_size         * Fix yreseds="snyoffseta152needed. */
vram_size         *8 */
 152      vxclock = VIDC_CTRvxclock =  */
vid_ctl;
 155
 152      vxclock = arc_clocks[] = {
 152      vxclock = VIDC_CTRvxclock =  */
      vxclock = vid_ctl;
arc_clocks[] = {
 152      vxclock = VIDC_CTRvxclock =  */
 1vxclock = vid_ctl;
 100        }
 133
vram_size */
 1vxclock =  152      vxclock = vid_ctl;
 106
 1HAS_VIDClock =  106
vram_size */
 152      vxclock = arc_clocks[] = {
vid_ctl;
vid_ctl;
 100        }
 133
vram_size */
 1vxclock = vid_ctl;
 1deffb.d>         152      HAS_VIDC/v>  */
vram_size */
 152      vxclock = arc_clocks[] = {
vid_ctl;
vid_ctl;
 100        }
 112
vram_size */
 152      vxclock =  */
vid_ctl;
 150
vid_ctl;
 152      vxclock =  */
vid_ctl;
 100        }
 150
 100        }
 133
 */
 1validate_timing>-> 1validate_timingclas"struct="sref">VIDC_CTRfb_var_scninf VIDC_CTR"xclock =  */
VIDC_CTRfb_monspecturn VIDC_CTRmonspecturn  */
arc_clocks[] = {
VIDC_CTRhturn vid_ctl;
  39
vram_size */
vram_size         * hs(Hz) = 10^12e/s"pixclock * xtotal) */
vram_size         * vs(Hz) = hs(Hz) / ytotal */
vram_size         * */
vram_size         * No2need"to do long=long=divisions or anythingcla> */
vram_size         * likeantata152you factor it panrectlycla> */
vram_size         *8 */
 1hturn  1vxclock = vid_ctl;
 1hturn  1hturn vid_ctl;
 152      ixclock =  152      vxclock =  152      vxclock =  1vxclock = vid_ctl;
 1islock =  1hturn vid_ctl;
 152      vxclock =  1vxclock = vid_ctl;
 112
 152      vslock =  112
  97   EINVAL   vid_ctl;
 100        }
 106
  97   inornfb.a>    106
 1update_dma>-> 1update_dmaclas"struct="sref">VIDC_CTRfb_ VIDC_CTR VIDC_CTRfb_var_scninf VIDC_CTR"xclock =  */
arc_clocks[] = {
 1u_ent="+code=acornfbu_entclasscname="L130"> 1off="+code=acornfboffclas =  name="L128"> 1vxclock =   97   ornf_ledgthlock = vid_ctl;
vid_ctl;
 1deffb.d>         152      HAS_MEMClock =  */
 152      VDMA_INITurn vid_ctl;
 1deffb.d>         152      HAS_IOMDlock =  */
 1iomdiwrite    152         97   smem_san c>        vid_ctl;
 150
 100        }
 100        }
 */
  97   L143"> 1check_vxclock =  1check_vxcclas"struct="sref">VIDC_CTRfb_var_scninf VIDC_CTR"xclock = VIDC_CTRfb_ VIDC_CTR  */
arc_clocks[] = {
 1u_ent="+code=acornfbu_entclasscname="L130"> 1fontht="+code=acornfbfonthtclasctl" class="sref">vid_ctl;
VIDC_CTRerclock = vid_ctl;
vid_ctl;
vram_size */
vram_size         * FIXME: Find nt"afont height */
vram_size         *8 */
 1fontht="+code=acornfbfonthtclas = 8cs="line" name="L150"> 150
  39
 1ixclock =   97   msb_righturn  150
 1ixclock =   97   msb_righturn  150
 1vxclock =   97   msb_righturn  150
  97   msb_righturn  150
vid_ctl;
 152      vxclock =    arc_clocks[] = {
arc_clocks[] = {
 1vxclock =   97   offset>         150
 1vxclock =   97   ledgthlock =  152      vxclock =     150
 150
 150
  97   offset>         150
  97   ledgthlock =  150
vid_ctl;
vid_ctl;
 1HAS_VIDC/v> vid_ctl;
arc_clocks[] = {
 1vxclock =   97   offset>         150
 1vxclock =   97   ledgthlock =  150
  97   offset>         150
  97   ledgthlock =  150
 1vxclock =   97   offset>         150
  97   ledgthlock =  150
 152      vxclock =   97   offset>         150
  97   ledgthlock = vid_ctl;
vid_ctl;
 106
arc_clocks[] = {
 1vxclock =   97   offset>         150
  97   ledgthlock =  150
  97   offset>         150
  97   ledgthlock =  150
  97   offset>        vid_ctl;
 152      vxclock =   97   ledgthlock =  150
  97   offset>         150
  97   ledgthlock =  150
vid_ctl;
 150
arc_clocks[] = {
  97   EINVAL   vid_ctl;
 100        }
vid_ctl;
vram_size */
vram_size         * Check"to seea152nt"a" cet ratm is valid. */
vram_size         *8 */
  97   L143"> 1valide" cratm    1valide" cratm cla"> 152      vxclock =  */
  97   EINVAL   vid_ctl;
vid_ctl;
vram_size */
vram_size         * Validate and adjustent"aresolution"to */
vram_size         * matchante > */< generator hardware. */
vram_size         *8 */
 1erclock =  152      L143"> 1adjust_timing>-> 1adjust_timing cla"> 152        152      vxclock = vid_ctl;
 152      erclock =  */
vid_ctl;
 155
vram_size */
vram_size         * Validate nte timing againstent" */
vram_size         * monitor hardware. */
vram_size         *8 */
 152      L143"> 1validate_timing>-> 1validate_timingclas"> 152      vxclock =  152       vid_ctl;
 100        }
 112
 152      L143"> 1seenpxclock =  1seenpxcclas"struct="sref">VIDC_CTRfb_ VIDC_CTR  */
arc_clocks[] = {
 152         97   bits_pere" cet   arc_clocks[] = {
arc_clocks[] = {
 1c=currenpxclock =   97   palette_sram="+code=acornfbpalette_sramclas = 2ctl" class="sref">vid_ctl;
 1   97   visualurn vid_ctl;
vid_ctl;
vid_ctl;
 1c=currenpxclock =   97   palette_sram="+code=acornfbpalette_sramclas = 4cs="line" name="L150"> 150
  97   visualurn vid_ctl;
vid_ctl;
vid_ctl;
  97   palette_sram="+code=acornfbpalette_sramclas = 16ctl" class="sref">vid_ctl;
VIDC_CTR   97   visualurn vid_ctl;
vid_ctl;
arc_clocks[] = {
  97   palette_sram="+code=acornfbpalette_sramclas = 97">  97   VIDC_PALETTE_SIZE="+code=acornfbVIDC_PALETTE_SIZEclasctl" class="sref">vid_ctl;
 1HAS_VIDClock =  106
 1   97   visualurn vid_ctl;
vid_ctl;
 152         97   visualurn vid_ctl;
 150
vid_ctl;
 1HAS_VIDC/v> vid_ctl;
arc_clocks[] = {
 1c=currenpxclock =   97   palette_sram="+code=acornfbpalette_sramclas = 32ctl" class="sref">vid_ctl;
  97   visualurn vid_ctl;
vid_ctl;
arc_clocks[] = {
  97   palette_sram="+code=acornfbpalette_sramclas = 97">  97   VIDC_PALETTE_SIZE="+code=acornfbVIDC_PALETTE_SIZEclasctl" class="sref">vid_ctl;
 152         97   visualurn vid_ctl;
vid_ctl;
 150
arc_clocks[] = {
 1BUG> vid_ctl;
 100        }
  39
 1   97   ornf_ledgthlock =  152         97   xreturn   97   bits_pere" cet    150
vid_ctl;
 1deffb.d>         152      HAS_MEMClock =  */
arc_clocks[] = {
VIDC_CTRsram="+code=acornfbsramclas = 97">  97      97   smem_lenlock = vid_ctl;
 155
VIDC_CTRmemdewriteurn  152      VDMA_STARTurn vid_ctl;
 1memdewriteurn  152      VDMA_ENDlock = VIDC_CTRsram="+code=acornfbsramclas de=vde=v 2)ctl" class="sref">vid_ctl;
 100        }
 1deffb.d>         152      HAS_IOMDlock =  */
arc_clocks[] = {
VIDC_CTRsan c>        VIDC_CTRsram="+code=acornfbsramclasctl" class="sref">vid_ctl;
 1controt   vid_ctl;
 133
  97      97   smem_san c>        vid_ctl;
  97   c=currenpxclock =   97   scninf_end="+code=acornfbscninf_endclasctl" class="sref">vid_ctl;
 106
 152      c=currenpxclock =   97   using_vram="+code=acornfbusing_vramvid_)ass="sref">arc_clocks[] = {
  97   c=currenpxclock =   97   vram_half_sam="+code=acornfbvram_half_samclasctl" class="sref">vid_ctl;
  97   DMA_CR_E="+code=acornfbDMA_CR_Eclas |2"> 152      c=currenpxclock =   97   vram_half_sam="+code=acornfbvram_half_samclasa/ 256)ctl" class="sref">vid_ctl;
arc_clocks[] = {
vid_ctl;
  97   DMA_CR_E="+code=acornfbDMA_CR_Eclas |297">  97   DMA_CR_Dlock = vid_ctl;
 100        }
vid_ctl;
  97    omdiwrite    152      san c>          97   IOMD_VIDSTARTurn vid_ctl;
VIDC_CTR omdiwrite    152      sram="+code=acornfbsramclas,e="L"sref">VIDC_CTRIOMD_VIDENDlock = vid_ctl;
 1 omdiwrite    152      controt   vid_ctl;
 100        }
 150
vid_ctl;
 1L143"> 1update_dma>-> 1update_dmaclas"97">  97     152       vid_ctl;
 1L143"> 1seentiming>-> 1seentimingclas"97">  97    vid_ctl;
 133
 150
 100        }
 106
 */
 1pan_display>-> 1pan_displayclas"struct="sref">VIDC_CTRfb_var_scninf VIDC_CTR"xclock = VIDC_CTRfb_ VIDC_CTR  */
arc_clocks[] = {
 1u_ent="+code=acornfbu_entclasscname="L130"> 1y_bottom="+code=acornfby_bottomclas = 97">  97   vxclock =  150
vid_ctl;
 152      vxclock =  */
 152      y_bottom="+code=acornfby_bottomclas += 97">  97      97   yreturn  150
vid_ctl;
 152      y_bottom="+code=acornfby_bottomclas de=v 97">  97      97   yret_virtualurn  */
  97   EINVAL   vid_ctl;
vid_ctl;
 1L143"> 1update_dma>-> 1update_dmaclas"97">  97    vid_ctl;
  39
 150
 100        }
 112
VIDC_CTRfb_opturn  1L143"> 1opturn  1optclas = ss="sref">arc_clocks[] = {
  97   owneclock =   97   THIS_MODULE="+code=acornfbTHIS_MODULElassss="sref">arc_clocks[] = {
  97   > 1check_vxclock =  1check_vxcclas" n= 97">  97   L143"> 1check_vxclock =  1check_vxcclasss="sref">arc_clocks[] = {
  97   > 1seenpxclock =  1seenpxcclasne" n= 97">  97   L143"> 1seenpxclock =  1seenpxcclasss="sref">arc_clocks[] = {
  97   > 1seecolreg>->  97   L143"> 1seecolreg>-> 1seecolregclasss="sref">arc_clocks[] = {
  97   > 1pan_display>->  97   L143"> 1pan_display>-> 1pan_displayclasss="sref">arc_clocks[] = {
  97   > 1fillrect="+code=acornfbf 1fillrectclass="l= 97">  97   c> 1fillrect="+code=acornfbcf 1fillrectclasss="sref">arc_clocks[] = {
  97   > 1copyarea>->  97   c> 1copyarea>->arc_clocks[] = {
  97   > 1imageblit="+code=acornfbf 1imageblitclas" n= 97">  97   c> 1imageblit="+code=acornfbcf 1imageblitclasss="sref">arc_clocks[] = {
 150
 133
vram_size */
vram_size * Emenything after herm is initialisation!!! */
vram_size *8 */
VIDC_CTRfb_> */ =  */ 1msredblock = arc_clocks[] = {
vram_size */
 1NULL   arc_clocks[] = {
arc_clocks[] = {
 1FB_VMODE_NONINTERLACEDlock =  133
vram_size */
 1NULL   arc_clocks[] = {
arc_clocks[] = {
 133
vram_size */
 1NULL   arc_clocks[] = {
arc_clocks[] = {
 133
vram_size */
 1NULL   arc_clocks[] = {
arc_clocks[] = {
 152      FB_VMODE_NONINTERLACEDlock =  133
vram_size */
 1NULL   arc_clocks[] = {
arc_clocks[] = {
 1FB_VMODE_NONINTERLACEDlock =  133
vram_size */
arc_clocks[] = {
arc_clocks[] = {
 1FB_VMODE_NONINTERLACEDlock =  133
vram_size */
 152      NULL   arc_clocks[4"> */arc_clocks[5"> */ 950
vra48size6/ 640x35fb.c# 
arc_clocks[8
arc_clocks 939

 1NULL   arc_clocksl;
arc_clocks
 152      FB_VMODE_NONINTERLACEDlock =  9[] = {
 */9l;
 1NULL   arc_clocks
arc_clocks
 9[8
 */9l    }
arc_clocks
arc_clocks[] = {
 9l;
 */9l;
 152      NULL   arc_clocks
arc_clocks[;
 9l5
 9l7
 9[] = {
 9[    }
VIDC_CTRfb_> */ =  */ */ 1optclas = ss="sref">arc_clocks;
 */arc_clocksarc_clocksl;
  97   xreturn arc_clocksl;
  97   yreturn arc_clocksl3
arc_clocksl;
   smem_lenlolef=_Cargi/ href3"356line" name="0ss="sref">arc_clocks;
   smem_lenlorigh=_Cargi/ href3"16line" name="0ss="sref">arc_clocks
   smem_lenlouparc_clocks   smem_lenlolowa hCargi/ href3"9line" name="0ss="sref">arc_clocks   smem_lenloHz, 297arc_clocks
   smem_lenlovz, 297arc_clocksl;
   smem_lenloz, 2 href3"3 class=s0ne" name="L0ss="sref">arc_clocksl;
 9l;
 933
vid_c950
  97      5" i(voidt_virtuallass)an class="comment"> */9     }
 1optclas = ss="sref">arc_clocks
 firs  > 1imageblit="+irs  href3"1id="L87 clas}cs="line" name="L150"> 93] = {
 9nt"> */    arriver8/video/acref">arc_clo.ulo" class">arriver8/video/34m61" 8id="L871class="line"L97s="res   or4L87 c24"L87 7m61" 8id="636elass="line"L97s="res   or4L87 c24"L87 7m61" 8id="636elass="line"L97s="res   or4L87 c24"L87 7m61" 8id="636285 clastl9 class="sref">vid_ctl-> e" name="L150"> 93] = {
 152    9 vxcl958f="driver8rs/video/acornfb.c#L63" 8id="9853 class9"lineeeeeeeee> 152  9   y_9ottom="+code=a hfb_> */ 1L143"> 1opturn <
arc_clocks[] = {
vid_ctl 1opturn lag  hr8aaaaaaaaaaa=ok = arc_cloINFO_DEFAULs hr8aDMA_CR_Dclas |216loINFO_HWACCEL_YPANss="sref">arc_cloINFO_HWACCEL_YPAN hr8driver8rs/video/acornfb.c#L61" 8id="98void> */<"line152"> 152      9_bott9m="+code=acorn hfb_> */arc_closeudo_ALETTE_"+codea hc=currenpxcdc" L97">  97   vram_half_sam="+code=acornfbvram_half_sapseudo_ALETTE_s="sref">arc_closeudo_ALETTE_"+codriver8rs/video/acornfb.c#L61" 8id="98las = ss=line" name="Lreturn -97"9  97<958f="driver8/video/acornfb.c#L147" i8="L1985" clatl9 class="sref">vid_ctl */arc_clostrcps */        vid_ctl"A47" "hr8f3"d"driver8/video/acornfb.c#L159" i8="L1985 class=9line" name="L131"> 1L1439> 1up9ate_dma>-> lasIDC_CTR         arc_cltyp_e_dma>-><  39
-> lasIDC_CTR               typ__aume_dma>-&ff"driver8rs/video/acornfb.c#L61" 8id="986 class=9line"return 0cs="line" n9me="L96=acornfbu_entclasscname="L13lasIDC_CTR         arc_clockf3"stepe_dma>-&ff"driver8rs/video/acornfb.c#L61" 8id="985 clastl9me="L100"> 100      9 }
-> easIDC_CTR         arc_clocyf3"stepe_dma>-&ff="drive8/video/acor9fb.c#9428" id="L8786 class=9line" name="L112"> 112
-> easIDC_CTR         arc_clocywrapstepiming>-ff="drive8/video/acor9fb.c#9428" id="L87853 class9tic struct="sref">VIDC_C9Rfb_o96ttom="+code=a hfb_> */ =  152         97   own9clock964tom="+code=a hfb_> */ =       controttom="+code=  97   > 19heck_968f6"driver8/video/acornfb.c#L116" i8="L1986 class=9line"L97">  97   > 19eenpx9lock =  */
  97   > 19eecol9eg>-&g="comment"> */
<<<<<<<<<* sL97pnt"> */< ode   t/achr8f="driver8rs/video/acornfb.c#L75" 8id="985 class=9line"L97">  97   > 19an_di9play>-="comment"> */
<<<<<<<<<*9hr8f3"driver8/video/acor9fb.c#92L93" 8="L10869class=9line"L97">  97   > 19illre969e_dma>-> memame="L150"> 150VIDC_CTRfb_ vid_ctl;
  97   > 19opyar978f1"driver8/video/acornfb.c#L141" i8="L19871class=9line"L97">  97   > 19mageb9it="+cedeffb.dclas"> 152      HAS_MEMClock = vid_ctl;
 1509/a>
<97timing>-> easIDC_CTR  152        133
arc_cloctr3"spa hH href3"356line" na> 152       vram_size 152      HAS_IOMDlock =  106
vram_size * Em9nythi97="+code=acorn hfb_> */ 152       vram_size *8 */arc_cloctr3"spa hH href3"356line" na> 152       VIDC_C9Rfb_>9*/ lasIDC_CTR  lasIDC_CTR    arc_clclu_ hr8aaaaaaaaaaa=ok =  1FB98te_dma>-> easIDC_CTR arc_clactivaE_tom="+code=vram98timing>-> easIDC_CTR  */9rc_cl984tom="+code=a hfb_> */ 9l;
 */ 1opturnacca>_llag e_dma>-&ff href="+codFB_VISUACCELF_TEXsss="sref">arc_clocACCELF_TEXsf3"d"drive8/video/acor9fb.c#9428" id="L8786 class=9line"},e{="li lass="sref9>vram988f="driver8/video/acornfb.c#L147" i8="L1988" class9"line" name="cname="L1309> 1NU987"+code=acorn hfb_> */  97   vram_half_sam="+code=acornfbvram_half_sad>vidIDC_CTRIOMD_VIDENDld>vidIDC_"+code=acoff"driver8rs/video/acornfb.c#L61" 8id="987" class9"line" name="0ss="sref">9rc_cl98te_dma>->  L97">  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma>-><  L97">  97   vram_half_sam="+code=acornfbvram_half_sadpm 1L143"> 1opturndpm  hr8aaaaaaaaaaa=o"driver8rs/video/acornfb.c#L61" 8id="9890class=9line"},e{="li lass="sref9>vram9size 1NU998f="driver8/video/acornfb.c#L152" i8="L1989" class9"line" name="0ss="sref">9rc_cl9cks */
 152  9   FB9VMODE_r herm is initialisation!sL97pn#L75" 8 opan>
s:hr8f="driver8rs/video/acornfb.c#L75" 8id="985 clastl""line},e{="li lass="sref9>vram99lass="comment"> */
<  hr8f="driver8rs/video/acornfb.c#L75" 8id="9865 class9"line" name=" name="L1469> 1NU99 after herm is initialisation! mon:hmin-hmax:vmin-vmax:dpm :wid15:he9rc_cl99class="comment"> */
 1FB99g>-&g="comment"> */
<*              hminaaa=ohorizontal minimum frequency (Hz)hr8f="driver8rs/video/acornfb.c#L75" 8id="987" class9"line},e{="li lass="sref9>vram99lay>-="comment"> */
<*              hmaxaaa=ohorizontal maximum frequency (Hz)      (opan>
al)hr8f="driver8rs/video/acornfb.c#L75" 8id="9869class=9line" name="L> 152  9   NU9L ="comment"> */
<*              vminaaa=oo/atical minimum frequency (Hz)hr8f="driver8rs/video/acornfb.c#L75" 8id="1090 class=1090 c" name="L> 152  1090 >1090/a> ="comment"> */
<*              vmaxaaa=oo/atical maximum frequency (Hz)        (opan>
al)hr8f="dri/pre> *do> 15lass3c/78/524913974d2452bf1590da49bbdcb4942928_3/1090 >iver8rs/video/acornfb.c#L75" 8id="1091 class=109line" name=" name="L146109li>1091/a> ="comment"> */
<*              dpm aaa=oDPMS supported?                        (opan>
al)hr8f="driver8rs/video/acornfb.c#L75" 8id="1092 class=109line" name="0ss="sref">109li>109ks */
<<*              wid15aa=owid15aof pictucommn mm.                (opan>
al)hr8f="driver8rs/video/acornfb.c#L75" 8id="1093 class=109lineeeeeeeee> 152  109li>109MODE_r herm is initialisation!             he
al)hr8f="driver8rs/video/acornfb.c#L75" 8id="1094 class=109line},e{="li lass="sref109li>109lass="comment"> */
<  hr8f="driver8rs/video/acornfb.c#L75" 8id="1095 class=109line" name=" name="L146109li>109 after herm is initialisation!montyp_:typ_e_8f="driver8rs/video/acornfb.c#L75" 8id="1096 class=109ine" name="L0ss="sref">109in>109class="comment"> */
109g>-&g="comment"> */
<*              0 (or tv)       - TV frequencye_8f="driver8rs/video/acornfb.c#L75" 8id="1098 class=109line},e{="li lass="sref109li>109lay>-="comment"> */
<*              1 (or multi)    - Multi frequencye_8f="driver8rs/video/acornfb.c#L75" 8id="1099 class=109ine" name="L> 152  109in>109 ="comment"> */
<*              2 (or hires)    - Hi-res monochrom_e_8f="driver8rs/video/acornfb.c#L75" 8id="1010 class=10line"},e{="li lass="sref10lin>10li/a> ="comment"> */
<*              3 (or vga)      - VGAe_8f="driver8rs/video/acornfb.c#L75" 8id="1011 class=10"line" name=" name="L14610"li>10l1/a> ="comment"> */
<*              4 (or svga)     - SVGAe_8f="driver8rs/video/acornfb.c#L75" 8id="1012 class=10"line" name="0ss="sref">10"li>10lks */
<<*              auto, or opan>
 missb_o" 8f="driver8rs/video/acornfb.c#L75" 8id="1013 class=10"lineeeeeeeee> 152  10"li>10lMODE_r herm is initialisation!                             - try hardwacomd t/c9 h8f="driver8rs/video/acornfb.c#L75" 8id="10l4 class=10"line},e{="li lass="sref10"li>10llass="comment"> */
<  hr8f="driver8rs/video/acornfb.c#L75" 8id="1015 class=10"line" name=" name="L14610"li>10l after herm is initialisation!d>vi:IDC_"+8f="driver8rs/video/acornfb.c#L75" 8id="1016 class=10"line" name="0ss="sref">10"li>10lclass="comment"> */
10lg>-&g="comment"> */
<*      (even">aryou have VRAM).LE8f="driver8rs/video/acornfb.c#L75" 8id="1018 class=10"line},e{="li lass="sref10"li>10llay>-="comment"> */
<*      IDC_ commopan>
ally be fol */
<*      MB or KB respectively.LE8f="driver8rs/video/acornfb.c#L75" 8id="1020 class=10line" name="L0ss="sref">10lin>10li/a> ="comment"> */
<*9hr8f3"driver8/video/acor9fb.c#92L93" 8="L110l1 class=10"line" name=" n152  10"li>10l1/a>      5" i(voiodese_mon1L143"> 1opturnac i(voiodese_mona hHAcharlass)an class="coopa1L143"> 1opturnopaff=""res   or4L87 c24"L87 7m61" 8id="63610l2 class=10"line},e{="li lass="sref10"li>10lks 152  10"li>10lttom="+code=acharlass)an class="cop"sref">arc_clocpimingff href="+codFB_Vopa1L143"> 1opturnopaff="driver8rs/video/acornfb.c#L61" 8id="s="s class=10"line},e{="li lass="sref102li>1028f="driver8/video/acor9fb.c#9145" i8dd="1025 class=10"line" name="> 152  10"li>102="+code=acorn hfb_> */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= -2driver8rs/video/acornfb.c#L61" 8id="s="6 class=10EDclass="line" name="L1310EDc>1028f="driver8/video/acornfb.c#L147" i8="L11027 class=10="line" name="L150"> 9[]10="l>1027"+code=acorn hfb_> */ 1opturnmonspec ref="+cyret_virtuallhfm"sref">arc_clockshfm"simingff href="+codFB_Vsimple_strtou>      controta hHAS_IOMD="+c)an cp"sref">arc_clocpimin_o" classode=var" clasp"sref">arc_clocpimin_o0"driver8/video/acornfb.c#L159" i8="L11028 class=10line" name="L150"> 9[   10lin>102te_dma>-><>arrass)an class="cop"sref">arc_clocpimingf= z, 26.8 kHz hstr"97">'-'hr8f3"d"river8/video/acornfb.c#L159" i8="L11029 class=10tic struct="sref">VIDC_C10tic>102    1opturnmonspec ref="+cyret_virtuallhfmarnf_ledgthlockarc_clocpimin +
arc_clocpimin_o0"driver8/video/acornfb.c#L159" i8="L11030 class=10line"L97eo/aRfb_> */10li/a>    1opturnmonspec ref="+cyret_virtuallhfmarnf_ledgthlock 1opturnmonspec ref="+cyret_virtuallhfm"sref">arc_clockshfm"simindriver8/video/acornfb.c#L159" i8="L11032 class=10f="+cL97">  97   xre10f=">10l8f="driver8rs/video/acornfb.c#L63" 8id="10l3 class=10f="+cL97">  97   yre10f=">10l3e_dma>-><>arrass)an class="cop"sref">arc_clocpiming!= z, 26.8 kHz hstr"97">':'hr8f3"d"river8/video/acornfb.c#L159" i8="L1103s class=10"lineL97pixclock97  10"li>10lks[;
   10"li>10l8f6"driver8/video/acornfb.c#L116" i8="L110l6 class=10line"L97righ=_Cargi/a>  10lin>10l6tom="+code=a hfb_> */ 1opturnmonspec ref="+cyret_virtuallvfm"sref">arc_clocksvfm"simingff href="+codFB_Vsimple_strtou>      controta hHAS_IOMD="+c)an cp"sref">arc_clocpimin +
arc_clocpimin_o0"driver8/video/acornfb.c#L159" i8="L11037 class=10line"L97up  10lin>10l7e_dma>-><>arrass)an class="cop"sref">arc_clocpimingf= z, 26.8 kHz hstr"97">'-'hr8f3"d"river8/video/acornfb.c#L159" i8="L11038 class=10line"L97lowa hCargi/a>  10lin>10lks */ 1opturnmonspec ref="+cyret_virtuallvfmarnf_ledgthlockarc_clocpimin +
arc_clocpimin_o0"driver8/video/acornfb.c#L159" i8="L11039 class=10line"L97Hz, 297   sm10lin>10l9/a>      sm10lin>10lis */ 1opturnmonspec ref="+cyret_virtuallvfmarnf_ledgthlock 1opturnmonspec ref="+cyret_virtuallvfm"sref">arc_clocksvfm"simindriver8/video/acornfb.c#L159" i8="L11041 class=10line"L97z, 2a>   smem_le10lin>10l8f="driver8/video/acornfb.c#L152" i8="L110l2 class=10f="+cL97" class="srefvms10f=">10l2e_dma>-><>arrass)an class="cop"sref">arc_clocpiming!= z, 26.8 kHz hstr"97">':'hr8f3"d"river8/video/acornfb.c#L159" i8="L11043 class=10="line" name="L150"> 93310="l>10l   arc_cloc= {
vid_c95010l8f="driver8/video/acor9fb.c#9145" i8dd="1045 class=10msreclasscn>10l="+code=acorn hfb_> */ 1opturnmonspec ref="+cyret_virtualldpm 1L143"> 1opturndpm  hr8aff href="+codFB_Vsimple_strtou>      controta hHAS_IOMD="+c)an cp"sref">arc_clocpimin +
arc_clocpimin_o0"driver8/video/acornfb.c#L159" i8="L11046 class=10"sref">arc_clocks10l8f="driver8/video/acornfb.c#L147" i8="L11047 class=10" clastatic ent > firs  10" c>10l7e_dma>-><>arrass)an class="cop"sref">arc_clocpiming!= z, 26.8 kHz hstr"97">':'hr8f3"d"river8/video/acornfb.c#L159" i8="L11048 class=10line" name="L150"> 9nt">10lin>10lksarc_cloc= {
arriver8/video/acref10ss">10l9f="driver8/video/acornfb.c#L147" i8="L11050 class=10"L97s="res   or4L87 c24"10"L9>10"L"+code=acorn hfb_> */      controta hHAS_IOMD="+c)an cp"sref">arc_clocpimin +
arc_clocpimin_o0"driver8/video/acornfb.c#L159" i8="L11051 class=10 class="sref">vid_ctl10"8f="driver8/video/acornfb.c#L152" i8="L11052 class=10"line152"!"> 152    10"li>10"2e_dma>-><>arrass)an class="cop"sref">arc_clocpiming!= z, 26.8 kHz hstr"97">':'hr8f3"d"river8/video/acornfb.c#L159" i8="L11053 class=10"lineeeeeeeee> 152  10"li>10"   arc_cloc= {
vid_ctl10"8f="driver8/video/acor9fb.c#9145" i8dd="1055 class=10"line152"> 152      10"li>10"="+code=acorn hfb_> */      controta hHAS_IOMD="+c)an cp"sref">arc_clocpimin +
10"8f="driver8/video/acornfb.c#L147" i8="L11057 class=10 class="sref">vid_ctl10"g>-&g=ef=bits_pere" = {
arc_cloc= {
 1L14310lin>10"te_dma>-><>arrk =  1opturnmonspec ref="+cyret_virtuallhfmarnf_ledgthlock 1opturnmonspec ref="+cyret_virtuallhfm"sref">arc_clockshfm"simin ||river8/video/acornfb.c#L147" i8="L11059 class=10"line" name="L39">  3910"    */ 1opturnmonspec ref="+cyret_virtuallvfmarnf_ledgthlock 1opturnmonspec ref="+cyret_virtuallvfm"sref">arc_clocksvfm"simin"river8/video/acornfb.c#L159" i8="L11060 class=10line"return 0cs="line" n10lin>10lis[;
 100      10me=>10lMODE_NONINTER"L97s="res   or4L87 c24"L87 7m61" 8id="63610l2 class=10line" name="L112"> 11210l8f="driver8rs/video/acornfb.c#L63" 8id="1063 class=10tic struct="sref">VIDC_C10tic>10l3>-&g=ef=bits_pere" ca   HAS_MEMClock  97   own10"li>10l4tom="+code=a hfb_> */arc_clor"9tsa hHAS_IOMD="+c)an cKERN_ERRs="sref">arc_clKERN_ERRtom="z, 26.8 kHz hstr"97">"A47" fb: ca  monitor sett"97s: %s\ "hr8f3"da9S_IOMD="+c)an copa1L143"> 1opturnopaff="""res   or4L87 c24"L87 7m61" 8id="63610l5 class=10"lineL97">  97   > 110"li>10l="+code=acorn hfb_> */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= -="drive8/video/acor9fb.c#9428" id="L810l6 class=10line"L97">  97   > 110lin>10l8f="d"drive8/video/acor9fb.c#9127" i8id="10l7 class=10line"L97">  97   > 110lin>10l7f="driver8rs/video/acornfb.c#L63" 8id="1068 class=10line"L97">  97   > 110lin>10lte_dm     5" i(voiodese_montyp_s="sref">arc_cl5" i(voiodese_montyp_a hHAcharlass)an class="coopa1L143"> 1opturnopaff=""res   or4L87 c24"L87 7m61" 8id="6361069 class=10line"L97">  97   > 110lin>10l driver8/video/acor9fb.c#94L67" 8id="1070 class=10line"L97">  97   > 110lin>10li"+code=acorn hfb_> */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= -2driver8rs/video/acornfb.c#L61" 8id="s=71 class=10line"L97">  97   > 110lin>10l8f="driver8/video/acornfb.c#L152" i8="L11072 class=10="line" name="L150"> 15010="l>10l2e_dma>-><>arr href="+codFB_Vstrncmp"sref">arc_clocstrncmpa hHAS_IOMD="+c)an copa1L143"> 1opturnopaff="  z, 26.8 kHz hstr"97">"tv"hr8f3"da92)gf= 0)"driver8/video/acor9fb.c#93L70" 8id="10l3 class=10line" name="L133"> 13310l    1opturnopaff=" += 2driver8rs/video/acornfb.c#L61" 8id="s=7s class=10ss="sref">vram_size10lks[;
 */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= "driver8rs/video/acornfb.c#L61" 8id="10l5 class=10ss="sref">vram_size * Em10ss=>10l="+code=acorn}6else<>arr href="+codFB_Vstrncmp"sref">arc_clocstrncmpa hHAS_IOMD="+c)an copa1L143"> 1opturnopaff="  z, 26.8 kHz hstr"97">"multi"hr8f3"da95)gf= 0)"driver8/video/acor9fb.c#93L70" 8id="10l6 class=10ss="sref">vram_size *810lks
 1opturnopaff=" += 5driver8rs/video/acornfb.c#L61" 8id="10l7 class=10tic struct="sref">VIDC_C10tic>10lMODE_NONINTERLACEDlock =   97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= ="drive8/video/acor9fb.c#9428" id="L81078 class=10"line{="line" lass="sref10"li>10l8"+code=acorn}6else<>arr href="+codFB_Vstrncmp"sref">arc_clocstrncmpa hHAS_IOMD="+c)an copa1L143"> 1opturnopaff="  z, 26.8 kHz hstr"97">"hires"hr8f3"da95)gf= 0)"driver8/video/acor9fb.c#93L70" 8id="10l9 class=10line" name "Lcname="L13010lin>10l    1opturnopaff=" += 5driver8rs/video/acornfb.c#L61" 8id="1080 class=10line" name="L> 152  10lin>10liODE_NONINTERLACEDlock =   97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= 2driver8rs/video/acornfb.c#L61" 8id="s=81 class=10"line" name=" name="L14610"li>10l1"+code=acorn}6else<>arr href="+codFB_Vstrncmp"sref">arc_clocstrncmpa hHAS_IOMD="+c)an copa1L143"> 1opturnopaff="  z, 26.8 kHz hstr"97">"vga"hr8f3"da93)gf= 0)"driver8/video/acor9fb.c#93L70" 8id="1082 class=10"line},e{="li lass="sref10"li>10lks
 1opturnopaff=" += 3driver8rs/video/acornfb.c#L61" 8id="s=83 class=10"lineeeeeeeeecname="L13010"li>10l     97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= 3driver8rs/video/acornfb.c#L61" 8id="s=8s class=10"lineeeeeeeee0ss="sref">10"li>10l4"+code=acorn}6else<>arr href="+codFB_Vstrncmp"sref">arc_clocstrncmpa hHAS_IOMD="+c)an copa1L143"> 1opturnopaff="  z, 26.8 kHz hstr"97">"svga"hr8f3"da94)gf= 0)"driver8/video/acor9fb.c#93L70" 8id="1085 class=10"line" name="> 152  10"li>10lMODE_NONINTERLACEDlock =  1opturnopaff=" += 4driver8/video/acornfb.c#L111" i8="L110l6 class=10line"},e{="li lass="sref10lin>10lks
  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= 4driver8/video/acornfb.c#L111" i8="L110l7 class=10"line" name="cname="L13010"li>10l7"+code=acorn}6else<>arr href="+codFB_Vstrncmp"sref">arc_clocstrncmpa hHAS_IOMD="+c)an copa1L143"> 1opturnopaff="  z, 26.8 kHz hstr"97">"auto"hr8f3"da94)gf= 0)"driver8/video/acor9fb.c#93L70" 8id="1088 class=10"line" name="0ss="sref">10"li>10lks */ 1opturnopaff=" += 4driver8/video/acornfb.c#L111" i8="L110l9 class=10line" name="L> 152  10lin>10l     97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= -="drive8/video/acor9fb.c#9428" id="L81090 class=10line"},e{="li lass="sref10lin>10li"+code=acorn}6else<>arr href="+codFB_Visdigia1L143"> 1opturnisdigiaa hHAass)an class="coopa1L143"> 1opturnopaff="""res   or4L87 c24"L87 7m61" 8id="6361091 class=10"line" name=" name="L14610"li>10lMODE_NONINTERLACEDlock =   97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma=  href="+codFB_Vsimple_strtou>      controta hHAS_IOMD="+c)an copa1L143"> 1opturnopaff="  " classode=var" clasopa1L143"> 1opturnopaff="  0"driver8/video/acornfb.c#L159" i8="L11092 class=10"line" name="0ss="sref">10"li>10l8f="driver8rs/video/acornfb.c#L63" 8id="1093 class=10"lineeeeeeeee> 152  10"li>10l3e_dma>-><>arrk =   97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma== -2 ||river8/video/acornfb.c#L147" i8="L1109s class=10"line},e{="li lass="sref10"li>10lks[;
 =   97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma>f href="+codFB_VNR_MONTYPESss="line" name=NR_MONTYPESff="""driver8/video/acor9fb.c#93L70" 8id="1095 class=10"line" name=" name="L14610"li>10lMODE_NONINTERLACEDlock = arc_clor"9tsa hHAS_IOMD="+c)an cKERN_ERRs="sref">arc_clKERN_ERRtom="z, 26.8 kHz hstr"97">"a47" fb: unknown monitor typ_: %s\ "hr8f3"dariver8/video/acor9fb.c#93L70" 8id="1096 class=10line" name="L0ss="sref">10lin>10lks
 */ 1opturnopaff=""driver8/video/acornfb.c#L159" i8="L11097 class=10"line" name="cname="L13010"li>10lMODE_NONINTERLACEDlock =   97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= -="drive8/video/acor9fb.c#9428" id="L81098 class=10"line},e{="li lass="sref10"li>10l8"+code=acorn}6elsedrive8/video/acor9fb.c#9428" id="L81099 class=10line" name="L> 152  10lin>10lo.ulo" class">arr hfb_> */ 1opturnopaff=" " cla" clalass)an class="coopa1L143"> 1opturnopaff="""driver8/video/acor9fb.c#93L70" 8id="1190 class=1190 c" name="L> 152  1190 >110iODE_NONINTERLACEDloc>arr href="+codFB_Vstrcmp"sref">arc_clocstrcmpa hHAS_IOMD="+c)an copa1L143"> 1opturnopaff="  z, 26.8 kHz hstr"97">",dpm "hr8f3"d"gf= 0)river8/video/acor9fb.c#93L70" 8id="1191 class=119line" name=" name="L146119li>110MODE_NONINTERLACEDlocLACEDlock =   97   vram_half_sam="+code=acornfbvram_half_sadpm 1L143"> 1opturndpm  hr8aff="drive8/video/acor9fb.c#9428" id="L81192 class=119line" name="0ss="sref">119li>110ks
arc_clor"9tsa hHAS_IOMD="+c)an cKERN_ERRs="sref">arc_clKERN_ERRtom=drive8/video/acor9fb.c#9428" id="L81194 class=119line},e{="li lass="sref119li>110ks[;
"a47" fb: unknown monitor opan>
: %s\ "hr8f3"dariver8/video/acor9fb.c#93L70" 8id="1195 class=119line" name=" name="L146119li>110MODE_NONINTERLACEDloc=N128f=LACEDlock =  1opturnopaff=""driver8/video/acornfb.c#L159" i8="L11196 class=119ine" name="L0ss="sref">119in>110ks
"drive8/video/acor9fb.c#9127" i8id="1197 class=119line" name="cname="L130119li>119g>-&g"drive8/video/acor9fb.c#9127" i8id="1198 class=119line},e{="li lass="sref119li>1108f9"driver8/video/acor>      5" i(voiodese_d>vis="sref">arc_cl5" i(voiodese_d>via hHAcharlass)an class="coopa1L143"> 1opturnopaff=""res   or4L87 c24"L87 7m61" 8id="6361110 class=11line"},e{="li lass="sref11lin>11li/a> driver8/video/acor9fb.c#93L70" 8id="1111 class=11"line" name=" name="L14611"li>111MODE_NONINTERunsignedid="L87 clas}cs="linIDC_CTRIOMD_VIDENDlIDC_"+codriver8/video/acornfb.c#L159" i8="L11112 class=11"line" name="0ss="sref">11"li>1118f="driver8rs/video/acornfb.c#L63" 8id="1113 class=11"lineeeeeeeee> 152  11"li>111ttom="+code=a hfb_> */ 1opturnopaff="  " classode=var" clasopa1L143"> 1opturnopaff="  0"driver8/video/acornfb.c#L159" i8="L111l4 class=11"line},e{="li lass="sref11"li>1118f="driver8/video/acor9fb.c#9145" i8dd="1115 class=11"line" name=" name="L14611"li>1115.ulo" class">arr hfb_> */ 1opturnopaff="""driver8/video/acor9fb.c#93L70" 8id="1116 class=11"line" name="0ss="sref">11"li>111ks
 1opturnopaff="""driver8/video/acor9fb.c#93L70" 8id="1117 class=11"line" name=" n152  11"li>111MODE_NONINTERLACEDloccase z, 26.8 kHz hstr"97">'M'hr8f3"d:river8/video/acornfb.c#L147" i8="L11118 class=11"line},e{="li lass="sref11"li>111ks'm'hr8f3"d:river8/video/acornfb.c#L147" i8="L11119 class=11line" name="L> 152  11lin>111    */11lin>112iODE_NONINTERLACEDloccase z, 26.8 kHz hstr"97">'K'hr8f3"d:river8/video/acornfb.c#L147" i8="L111l1 class=11"line" name=" n152  11"li>112MODE_NONINTERLACEDloccase z, 26.8 kHz hstr"97">'k'hr8f3"d:river8/video/acornfb.c#L147" i8="L111l2 class=11"line},e{="li lass="sref11"li>112ks
 */ 152  11"li>112   112ks[;
112MODE_NONINTERLACEDloc"drive8/video/acor9fb.c#9127" i8id="11"6 class=11EDclass="line" name="L1311EDc>112ks
"drive8/video/acor9fb.c#9127" i8id="1127 class=11="line" name="L150"> 9[]11="l>1127f="driver8rs/video/acornfb.c#L63" 8id="1128 class=11line" name="L150"> 9[   11lin>112te_dma>->  L97">  97   vram_half_sam="+code=acornfbvram_half_sad>vidIDC_CTRIOMD_VIDENDld>vidIDC_"+cod=  href="+codFB_VsiC_CTRIOMD_VIDENDlIDC_"+codriver8/video/acornfb.c#L159" i8="L11129 class=11tic struct="sref">VIDC_C11tic>112 "drive8/video/acor9fb.c#9127" i8id="1130 class=11line"L97eo/aRfb_> */1138f1"driver8/video/acornfb.c#L141" i8="L11131 class=11line"L97s="res   ornf_le11lin>1131/a>     1opturnopan>
s"+coddriver8/video/acor9fb.c#93L70" 8id="1132 class=11f="+cL97">  97   xre11f=">113ks
charlass)an class="co>   1L143"> 1opturn>   "+codriver8/video/acornfb.c#L159" i8="L111l3 class=11f="+cL97">  97   yre11f=">11l3e_dma>->arc_clodeseff=""Acharlass)an class="coopa1L143"> 1opturnopaff=""driver8/video/acornfb.c#L159" i8="L111l4 class=11"lineL97pixclock97  11"li>11lksarc_clopa_tables   11"li>113MODE_NONINTER{ z, 26.8 kHz hstr"97">"mo "hr8f3"da9gt; 5" i(voiodese_mon1L143"> 1opturnac i(voiodese_mona hH
"ariver8/video/acor9fb.c#93L70" 8id="11l6 class=11line"L97righ=_Cargi/a>  11lin>11l6tom="+code=a{ z, 26.8 kHz hstr"97">"mo typ_"hr8f3"da9S_IOMD="+c)an c5" i(voiodese_montyp_s="sref">arc_cl5" i(voiodese_montyp_a hH
"ariver8/video/acor9fb.c#93L70" 8id="11l7 class=11line"L97up  11lin>11l7e_dma>-><{ z, 26.8 kHz hstr"97">"d>vi"hr8f3"da9gt;  5" i(voiodese_d>vis="sref">arc_cl5" i(voiodese_d>via hH/a>
"ariver8/video/acor9fb.c#93L70" 8id="11l8 class=11line"L97lowa hCargi/a>  11lin>11lks   sm11lin>11l9/a> }driver8/video/acornfb.c#L159" i8="L11140 class=11line"L97vz, 297   sm11lin>1148f1"driver8/video/acornfb.c#L141" i8="L11141 class=11line"L97z, 2a>   smem_le11lin>1141/a>    arc_cl5" i(voisL97pa hHAcharlass)an class="coopan>
s1L143"> 1opturnopan>
s"+co"res   or4L87 c24"L87 7m61" 8id="63611l2 class=11f="+cL97" class="srefvms11f=">114ks 93311="l>11l    1opturnopan>
s"+codass)an class="coopaps="sref">arc_clopap"+codriver8/video/acornfb.c#L159" i8="L1114s class=11 class="sref">vid_c9501144s
charlass)an class="coopa1L143"> 1opturnopaff="driver8rs/video/acornfb.c#L61" 8id="s145 class=11msreclasscn>1148f6"driver8/video/acornfb.c#L116" i8="L11146 class=11"sref">arc_clocks1146tom="+code=a>arr!87 clas}cs="linopan>
s1L143"> 1opturnopan>
s"+cod|| !ass)an class="coopan>
s1L143"> 1opturnopan>
s"+co"res   or4L87 c24"L87 7m61" 8id="63611l7 class=11" clastatic ent > firs  11" c>114MODE_NONINTERLACEDloc"L97s= "driver8rs/video/acornfb.c#L61" 8id="1148 class=11line" name="L150"> 9nt">11lin>1148f9"driver8/video/acor>    arriver8/video/acref11ss">1149e_dma>-> 5" i(voiinit_fbIDC_CTR 1158f1"driver8/video/acornfb.c#L141" i8="L11151 class=11 class="sref">vid_ctl115MODE_NONINTERwhile (r hfb_> */ 1opturnopaff=" =  href="+codFB_Vstesep"sref">arc_clocstrsepa hHA" classode=var" clasopan>
s1L143"> 1opturnopan>
s"+co  z, 26.8 kHz hstr"97">","hr8f3"d")g!= z_IOMD="+c)an c256  16, 10, 18217226f=N18,""driver8/video/acor9fb.c#93L70" 8id="1152 class=11"line152"!"> 152    11"li>115ks
arr!ass)an class="coopa1L143"> 1opturnopaff=""res   or4L87 c24"L87 7m61" 8id="6361153 class=11"lineeeeeeeee> 152  11"li>11"   
continuedriver8/video/acornfb.c#L159" i8="L1115s class=11 class="sref">vid_ctl11"8f="driver8/video/acor9fb.c#9145" i8dd="1155 class=11"line152"> 152      11"li>115MODE_NONINTERLACEDlocfor r hfb_> */arc_clopap"+cogff href="+codFB_Vopa_tables="sref">arc_clopa_tablesarc_clopap"+co->ss)an class="co>   1L143"> 1opturn>   "+codf href="+codFB_Vopaps="sref">arc_clopap"+co++""driver8/video/acor9fb.c#93L70" 8id="1156 class=11line" name="Lreturn -97"11lin>115ks
vid_ctl1157f="driver8rs/video/acornfb.c#L63" 8id="1158 class=11line" name="L131"> 1L14311lin>115ks-> opal arc_clopap"+co->ss)an class="co>   1L143"> 1opturn>   "+co"driver8/video/acornfb.c#L159" i8="L11159 class=11"line" name="L39">  391159f="driver8/video/acornfb.c#L147" i8="L11160 class=11line"return 0cs="line" n11lin>11lis[;
arr href="+codFB_Vstencmp"sref">arc_clocstrncmpa hHAS_IOMD="+c)an copa1L143"> 1opturnopaff="  z_IOMD="+c)an copaps="sref">arc_clopap"+co->ss)an class="co>   1L143"> 1opturn>   "+co  z_IOMD="+c)an copal  100      11me=>116MODE_NONINTERLACEDlocLACEDlocgt; opa1L143"> 1opturnopaff="[z_IOMD="+c)an copal ':'hr8f3"d""driver8/video/acor9fb.c#93L70" 8id="11l2 class=11line" name="L112"> 112116ks
 opaps="sref">arc_clopap"+co->ss)an class="copdeses="sref">arc_clodeseff="r hfb_> */ 1opturnopaff=" + opal VIDC_C11tic>116   








breakdriver8/video/acornfb.c#L111" i8="L1116s class=11"lineL97">  97   own11"li>116ks[;
  97   > 111"li>116MODE_NONINTERLACEDloc"drive8/video/acor9fb.c#9127" i8id="11l6 class=11line"L97">  97   > 111lin>1168f="driver8/video/acornfb.c#L147" i8="L111l7 class=11line"L97">  97   > 111lin>116MODE_NONINTERLACEDloc>arr!87 clas}cs="linopaps="sref">arc_clopap"+co->ss)an class="co>   1L143"> 1opturn>   "+co"river8/video/acornfb.c#L147" i8="L111l8 class=11line"L97">  97   > 111lin>116ks-> pr"9tss="sref">arc_clor"9tsa hHAS_IOMD="+c)an cKERN_ERRs="sref">arc_clKERN_ERRtom="z, 26.8 kHz hstr"97">"a47" fb: unknown ode   t/a: %s\ "hr8f3"dariver8/video/acor9fb.c#93L70" 8id="1169 class=11line"L97">  97   > 111lin>116   -> opa1L143"> 1opturnopaff=""driver8/video/acornfb.c#L159" i8="L11170 class=11line"L97">  97   > 111lin>11li"+code=acorn"drive8/video/acor9fb.c#9127" i8id="1171 class=11line"L97">  97   > 111lin>117MODE_NONINTER"L97s= "driver8rs/video/acornfb.c#L61" 8id="1172 class=11="line" name="L150"> 15011="l>11l2e_dm"drive8/video/acor9fb.c#9127" i8id="1173 class=11line" name="L133"> 13311l drive8/video/acor9fb.c#9127" i8id="117s class=11ss="sref">vram_size117lass="comment"> */
vram_size * Em11ss=>117 after herm is initialisation!D t/c9 typ_aof monitor conn/c9edhr8f="driver8rs/video/acornfb.c#L75" 8id="1176 class=11ss="sref">vram_size *8117class="comment"> */
ume SVGAe_8f="driver8rs/video/acornfb.c#L75" 8id="11l7 class=11tic struct="sref">VIDC_C11tic>117g>-&g="comment"> */
<*9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11178 class=11"line{="line" lass="sref11"li>117te_dm   arc_cl5" i(void t/c9_monitortyp_a hHAr>"river8/video/acornfb.c#L147" i8="L111l9 class=11line" name "Lcname="L13011lin>117 driver8/video/acor9fb.c#94L67" 8id="1180 class=11line" name="L> 152  11lin>11liODE_NONINTER"L97s= 4driver8/video/acornfb.c#L111" i8="L11181 class=11"line" name=" name="L14611"li>11l1"+co"drive8/video/acor9fb.c#9127" i8id="1182 class=11"line},e{="li lass="sref11"li>1188f="driver8rs/video/acornfb.c#L63" 8id="1183 class=11"lineeeeeeeeecname="L13011"li>118MODE_r herm is initialisatia hr8f="driver8rs/video/acornfb.c#L75" 8id="118s class=11"lineeeeeeeee0ss="sref">11"li>118lass="comment"> */
<   This enables the unused memory to be freed on older AL75" mache0ss.LE8f="driver8rs/video/acornfb.c#L75" 8id="1185 class=11"line" name="> 152  11"li>118 after herm is initialisation!We acomfree"97 memory on behalfaof the archet/c9ucommnitialisaan>
LE8f="driver8rs/video/acornfb.c#L75" 8id="1186 class=11line"},e{="li lass="sref11lin>118class="comment"> */
118g>-&g="comment"> */
<*9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11188 class=11"line" name="0ss="sref">11"li>118te_dm   arc_clin="0sODE_Nr>river8/video/acor9fb.c#92L93" 8="L11189 class=11line" name="L> 152  11lin>11l 87 clas}cs="linfree_unused_pags="sref">arc_clocfree_unused_pags=a hHAunsignedid="L87 clas}cs="linvirtual_   ra1L143"> 1opturnvirtual_   ra"+co  unsignedid="L87 clas}cs="linvirtual_en   HAS_MEMClock119i/a> driver8/video/acor9fb.c#93L70" 8id="1191 class=11"line" name=" name="L14611"li>11lMODE_NONINTERd="L87 clas}cs="linmb_freed  HAS_MEMClock11"li>11l8f="driver8rs/video/acornfb.c#L63" 8id="1193 class=11"lineeeeeeeee> 152  11"li>11l3e_dma>->119lass="comment"> */
<         * Align addresss=a 8f="driver8rs/video/acornfb.c#L75" 8id="1195 class=11"line" name=" name="L14611"li>119 after herm is initialisatio        *9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11196 class=11line" name="L0ss="sref">11lin>1196tom="+code=a hfb_> */ 1opturnvirtual_   ra"+co =  href="+codFB_VPAGE_ALIGN1L143"> 1opturnPAGE_ALIGNa hHAS_IOMD="+c)an cvirtual_   ra1L143"> 1opturnvirtual_   ra"+co"driver8/video/acornfb.c#L159" i8="L11197 class=11"line" name="cname="L13011"li>1197"+code=acorn hfb_> */ 1opturnPAGE_ALIGNa hHAS_IOMD="+c)an cvirtual_en   HAS_MEMClock1198f9"driver8/video/acor>     */ 1opturnvirtual_   ra"+co <f href="+codFB_Vvirtual_en   HAS_MEMClockarc_clodge"+codass)an class="copagss="sref">arc_clodge"+codriver8/video/acornfb.c#L159" i8="L11291 class=129line" name=" name="L146129li>1208f="driver8/video/acornfb.c#L152" i8="L11292 class=129line" name="0ss="sref">129li>120ks
 */
<         oooooooo* seta="un9ato 1, andmfreehr8f="driver8rs/video/acornfb.c#L75" 8id="1295 class=129line" name=" name="L146129li>120 after herm is initialisatio        oooooooo* the odge.LE8f="driver8rs/video/acornfb.c#L75" 8id="1296 class=129ine" name="L0ss="sref">129in>120class="comment"> */
<        oooooooo*9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11297 class=129line" name="cname="L130129li>120MODE_NONINTERLACEDlock = arc_clodge"+cod=  href="+codFB_Vvirt_to_pagss="sref">arc_clvirt_to_pagsa hHAS_IOMD="+c)an cvirtual_   ra1L143"> 1opturnvirtual_   ra"+co"driver8/video/acornfb.c#L159" i8="L11298 class=129line},e{="li lass="sref129li>120ks */ 1opturnClearPagsReserv9da hHAS_IOMD="+c)an cpagss="sref">arc_clodge"+co"driver8/video/acornfb.c#L159" i8="L11299 class=129ine" name="L> 152  129in>120   arc_clinit_odge_="un9a hHAS_IOMD="+c)an cpagss="sref">arc_clodge"+co"driver8/video/acornfb.c#L159" i8="L11210 class=12line"},e{="li lass="sref12lin>121is */arc_cllree_pagsa hHAS_IOMD="+c)an cvirtual_   ra1L143"> 1opturnvirtual_   ra"+co"driver8/video/acornfb.c#L159" i8="L11211 class=12"line" name=" name="L14612"li>1218f="driver8/video/acornfb.c#L152" i8="L11212 class=12"line" name="0ss="sref">12"li>121ks
 1opturnvirtual_   ra"+co +=  href="+codFB_VPAGE_SIZE1L143"> 1opturnPAGE_SIZE"+codriver8/video/acornfb.c#L159" i8="L11213 class=12"lineeeeeeeee> 152  12"li>121    1opturnPAGE_SIZE"+co /f=024driver8/video/acornfb.c#L111" i8="L112l4 class=12"line},e{="li lass="sref12"li>1214"+code=acorn}river8/video/acornfb.c#L111" i8="L112l5 class=12"line" name=" name="L14612"li>1218f6"driver8/video/acornfb.c#L116" i8="L11216 class=12"line" name="0ss="sref">12"li>1216tom="+code=a hfb_> */arc_clor"9tsa hHAS, 26.8 kHz hstr"97">"a47" fb: freed %dK memory\ "hr8f3"da9S_IOMD="+c)an cmb_freed  HAS_MEMClock121g>-&g"drive8/video/acor9fb.c#9127" i8id="1218 class=12"line},e{="li lass="sref12"li>1218f9"driver8/video/acor>    arc_cl5" i(voiorob_a hHAstruc"L87 clas}cs="linplatform_devicss="sref">arc_clolatform_devics"+codass)an class="codevs="sref">arc_cldev"+co"river8/video/acornfb.c#L147" i8="L11220 class=12line" name="L0ss="sref">12lin>122i/a> driver8/video/acor9fb.c#93L70" 8id="12l1 class=12"line" name=" n152  12"li>122MODE_NONINTERunsignedilong  href="+codFB_VsiC_CTRIOMD_VIDENDlIDC_"+codriver8/video/acornfb.c#L159" i8="L112l2 class=12"line},e{="li lass="sref12"li>122ks
 href="+codFB_Vu_in9s="sref">arc_clu_in9tom="zhref="+codFB_Vh_syncs="sref">arc_clh_sync"+co  z_IOMD="+c)an cv_syncs="sref">arc_clv_sync"+codriver8/video/acornfb.c#L159" i8="L112l3 class=12"lineeeeeeeee> 152  12"li>122   arc_clrc"+co  z_IOMD="+c)an cis="sref">arc_cli"+codriver8/video/acornfb.c#L159" i8="L112l4 class=12"line},e{="li lass="sref122li>122ks[;
charlass)an class="coopan>
1L143"> 1opturnopaio1228f6"driver8/video/acornfb.c#L116" i8="L112"6 class=12EDclass="line" name="L1312EDc>1226tom="+code=a>arr hfb_> */
s1L143"> 1opturnlb_get_opan>
sa hHAS, 26.8 kHz hstr"97">"a47" fb"hr8f3"da9" classode=var" clasopan>
1L143"> 1opturnopaio 9[]12="l>122MODE_NONINTERLACEDloc"L97s= -ssode=var" clasENODEV1L143"> 1opturnENODEVN18,driver8/video/acornfb.c#L159" i8="L112l8 class=12line" name="L150"> 9[   12lin>122te_dma>-> 5" i(voisL97ps="sref">arc_cl5" i(voisL97pa hHAssode=var" clasopan>
1L143"> 1opturnopaioVIDC_C12tic>1229f="driver8/video/acornfb.c#L147" i8="L11230 class=12line"L97eo/aRfb_> */123i"+code=acorn hfb_> */  97   xre12f=">123ks
 href="+codFB_V L97">  97   vram_half_sam="+code=acornfbvram_half_sadevs="sref">arc_cldev"+co = " classode=var" clasdevs="sref">arc_cldev"+co->ss)an class="codevs="sref">arc_cldev"+codriver8/video/acornfb.c#L159" i8="L11233 class=12f="+cL97">  97   yre12f=">123 drive8/video/acor9fb.c#9127" i8id="12l4 class=12"lineL97pixclock97  12"li>1234tom="+code=a>arr hfb_> */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma== -1"res   or4L87 c24"L87 7m61" 8id="6361235 class=12"lineL97lef=_Cargi/a>   12"li>123MODE_NONINTERLACEDloc hfb_> */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma=L87 clas}cs="lin5" i(void t/c9_monitortyp_s="sref">arc_cl5" i(void t/c9_monitortyp_a hHA"driver8/video/acornfb.c#L159" i8="L11236 class=12line"L97righ=_Cargi/a>  12lin>1238f="driver8/video/acornfb.c#L147" i8="L112l7 class=12line"L97up  12lin>1237e_dma>-><>arr hfb_> */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma== -1d||  hfb_> */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma>f href="+codFB_VNR_MONTYPESss="line" name=NR_MONTYPESff=""river8/video/acornfb.c#L147" i8="L112l8 class=12line"L97lowa hCargi/a>  12lin>123ks */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma= 4driver8/video/acornfb.c#L111" i8="L11239 class=12line"L97Hz, 297   sm12lin>1239f="driver8/video/acornfb.c#L147" i8="L11240 class=12line"L97vz, 297   sm12lin>1240e_dma>-><>arr hfb_> */  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dma>= 0)"driver8/video/acor9fb.c#93L70" 8id="1241 class=12line"L97z, 2a>   smem_le12lin>124MODE_NONINTERLACEDlock =  1opturnmonspec ref=a=L87 clas}cs="linmonspec 1L143"> 1opturnmonspec ref=[z_IOMD="+c)an c L97">  97   vram_half_sam="+code=acornfbvram_half_samontyp_s="sref">arc_clmontyp_e_dm]driver8/video/acornfb.c#L111" i8="L112l2 class=12f="+cL97" class="srefvms12f=">124ks
 1opturnmonspec ref="+cyret_virtualldpm 1L143"> 1opturndpm  hr8aff href="+codFB_V L97">  97   vram_half_sam="+code=acornfbvram_half_sadpm 1L143"> 1opturndpm  hr8driver8/video/acornfb.c#L111" i8="L112l3 class=12="line" name="L150"> 93312="l>12l   vid_c9501248f="driver8/video/acor9fb.c#9145" i8dd="1245 class=12msreclasscn>124="+code=acorn  herm is initialisatia hr8f="driver8rs/video/acornfb.c#L75" 8id="1246 class=12"sref">arc_clocks124class="comment"> */
<        * Try to sel/c9 a suitable=default mf_shr8f="driver8rs/video/acornfb.c#L75" 8id="1247 class=12" clastatic ent > firs  12" c>124g>-&g="comment"> */
<        *9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11248 class=12line" name="L150"> 9nt">12lin>124ks */arc_cli"+co = "d z_IOMD="+c)an cis="sref">arc_cli"+co <f href="+codFB_VARRAY_SIZE1L143"> 1opturnARRAY_SIZEa hHAssode=var" clasmf_sdb1L143"> 1opturnmo_sdbff=""d z_IOMD="+c)an cis="sref">arc_cli"+co++""driver8/video/acor9fb.c#93L70" 8id="1249 class=12ss">arriver8/video/acref12ss">124    1opturnh  hr8driver8/video/acornfb.c#L111" i8="L11250 class=12"L97s="res   or4L87 c24"12"L9>1258f1"driver8/video/acornfb.c#L141" i8="L11251 class=12 class="sref">vid_ctl125MODE_NONINTERLACEDlock =  1opturnh  hr8a=L87 clas}cs="linmo_sdb1L143"> 1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]rnfbvram_half_saramreshs="sref">arc_clramresh"+codariver8/video/acornfb.c#L141" i8="L11252 class=12"line152"!"> 152    12"li>125ks
 1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]rnfbvram_half_sayrs="sref">arc_clocyrs=ff=" +L87 clas}cs="linmo_sdb1L143"> 1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]rnfbvram_half_saupper_marg"sref">arc_clocksupper_marg"sff=" +river8/video/acornfb.c#L141" i8="L11253 class=12"lineeeeeeeee> 152  12"li>12"    1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]rnfbvram_half_salower_marg"sref">arc_clockslower_marg"sff=" +L87 clas}cs="linmo_sdb1L143"> 1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]rnfbvram_half_savsync_l vid_ctl125ks[;
arr hfb_> */ 1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]rnfbvram_half_saxrs="sref">arc_clocxrs=ff=" ==L87 clas}cs="linDEFAULT_XRESss="line" name=DEFAULT_XRES"+co & cla" clariver8/video/acornfb.c#L147" i8="L11255 class=12"line152"> 152      12"li>125MODE_NONINTERLACEDlocspan87 clas}cs="linmo_sdb1L143"> 1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]rnfbvram_half_sayrs="sref">arc_clocyrs=ff=" ==L87 clas}cs="linDEFAULT_YRESss="line" name=DEFAULT_YRES"+co & cla" clariver8/video/acornfb.c#L147" i8="L11256 class=12line" name="Lreturn -97"12lin>125ks
 1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]rnfbvram_half_saramreshs="sref">arc_clramresh"+cod>= 123,6,  35356, lasIDC_CTR  1opturnmonspec ref="+cyret_virtuallvfm"sref">arc_clocksvfm"s"+co & cla" clariver8/video/acornfb.c#L147" i8="L11257 class=12 class="sref">vid_ctl125MODE_NONINTERLACEDloc 1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]rnfbvram_half_saramreshs="sref">arc_clramresh"+cod<= 123,6,  35356, lasIDC_CTR  1opturnmonspec ref="+cyret_virtuallvfmaxref">arc_clocksvfmax"+co & cla" clariver8/video/acornfb.c#L147" i8="L11258 class=12line" name="L131"> 1L14312lin>125ks-&k =  1opturnh  hr8aaaaaaaaaaaaaaaa>= 123,6,  35356, lasIDC_CTR  1opturnmonspec ref="+cyret_virtuallhfm"sref">arc_clockshfm"s"+co & cla" clariver8/video/acornfb.c#L147" i8="L11259 class=12"line" name="L39">  39125    =  1opturnh  hr8aaaaaaaaaaaaaaaa<= 123,6,  35356, lasIDC_CTR  1opturnmonspec ref="+cyret_virtuallhfmaxref">arc_clockshfmax"+co""driver8/video/acor9fb.c#93L70" 8id="1260 class=12line"return 0cs="line" n12lin>12lis[;
arc_cl5" i(void fault_mo_s hr8a=L87 clas}cs="linmo_sdb1L143"> 1opturnmo_sdbff="[z_IOMD="+c)an cis="sref">arc_cli"+co]ariver8/video/acornfb.c#L147" i8="L11261 class=12me="L100"> 100      12me=>126MODE_NONINTERLACEDlocLACEDlocbreakdriver8/video/acornfb.c#L111" i8="L112l2 class=12line" name="L112"> 112126ks
VIDC_C12tic>126     97   own12"li>1268f="driver8/video/acor9fb.c#9145" i8dd="12l5 class=12"lineL97">  97   > 112"li>126MODE_NONINTER123,6,  35356, lasIDC_CTR arc_clscreen_baseODE_NONI= Acharla)fbf 1imageblitcSCREEN_BASE1L143"> 1opturnSCREEN_BASE hr8driver8/video/acornfb.c#L111" i8="L112l6 class=12line"L97">  97   > 112lin>1266tom="+code=a hfb_> */arc_clocksfixo" cnfbf 1imageblitcsmem_   ra1L143"> 1opturnsmem_   ra hr8a=L87 clas}cs="linSCREEN_START1L143"> 1opturnSCREEN_START hr8driver8/video/acornfb.c#L111" i8="L112l7 class=12line"L97">  97   > 112lin>1267"+code=acorn hfb_> */  97   vram_half_sam="+code=acornfbvram_half_sausing_v>vis="sref">arc_clusing_v>vi"+co = "driver8/video/acornfb.c#L111" i8="L112l8 class=12line"L97">  97   > 112lin>1268f9"driver8/video/acor>      97   > 112lin>126     97   > 112lin>12li"+co="comment"> */
<        * If v>vidIDC_ is set, we acomusing VRAM i
LE8f="driver8rs/video/acornfb.c#L75" 8id="1271 class=12line"L97">  97   > 112lin>127MODE_="comment"> */
<        * a Risc PC.  Howeo/a,5>arthe user has specifiedhr8f="driver8rs/video/acornfb.c#L75" 8id="1272 class=12="line" name="L150"> 15012="l>12l2e_dm="comment"> */
<        * an am"un9aof DRAM then use that i
stead.LE8f="driver8rs/video/acornfb.c#L75" 8id="1273 class=12line" name="L133"> 133127MODE_r herm is initialisatiooooooooo*9hr8f3"driver8/video/acor9fb.c#92L93" 8="L1127s class=12ss="sref">vram_size1274tom="+code=a>arr hfb_> */vidIDC_CTRIOMD_VIDENDlv>vidIDC_"+cod" cla" clal!87 clas}cs="lin L97">  97   vram_half_sam="+code=acornfbvram_half_sad>vidIDC_CTRIOMD_VIDENDld>vidIDC_"+co""driver8/video/acor9fb.c#93L70" 8id="1275 class=12ss="sref">vram_size * Em12ss=>127MODE_NONINTERLACEDloc hfb_> */vram_size *8127ks
  97   vram_half_sam="+code=acornfbvram_half_sav>vidhalf_svis="sref">arc_clv>vidhalf_svi"+coa=  href="+codFB_Vv>vidIDC_CTRIOMD_VIDENDlv>vidIDC_"+co /f=024driver8/video/acornfb.c#L111" i8="L112l7 class=12tic struct="sref">VIDC_C12tic>127MODE_NONINTERLACEDlock =   97   vram_half_sam="+code=acornfbvram_half_sausing_v>vis="sref">arc_clusing_v>vi"+co = ="drive8/video/acor9fb.c#9428" id="L81278 class=12"line{="line" lass="sref12"li>1278"+code=acorn}6else<>arr hfb_> */  97   vram_half_sam="+code=acornfbvram_half_sad>vidIDC_CTRIOMD_VIDENDld>vidIDC_"+co"drive8/video/acor9fb.c#9428" id="L81279 class=12line" name "Lcname="L13012lin>127     97   vram_half_sam="+code=acornfbvram_half_sad>vidIDC_CTRIOMD_VIDENDld>vidIDC_"+co"drive8/video/acor9fb.c#9428" id="L81280 class=12line" name="L> 152  12lin>12liODE_NONINTERelsedrive8/video/acor9fb.c#9428" id="L81281 class=12"line" name=" name="L14612"li>128MODE_NONINTERLACEDlock =  1opturnMAX_SIZE"+co"drive8/video/acor9fb.c#9428" id="L81282 class=12"line},e{="li lass="sref12"li>1288f="driver8rs/video/acornfb.c#L63" 8id="1283 class=12"lineeeeeeeeecname="L13012"li>1283e_dma>->12"li>128lass="comment"> */
<         * Limit maximum screen IDC_.LE8f="driver8rs/video/acornfb.c#L75" 8id="1285 class=12"line" name="> 152  12"li>128 after herm is initialisatiooooooooo*9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11286 class=12line"},e{="li lass="sref12lin>1286tom="+code=a>arr hfb_> */ 1opturnMAX_SIZE"+co"drive8/video/acor9fb.c#9428" id="L81287 class=12"line" name="cname="L13012"li>128MODE_NONINTERLACEDlock =  1opturnMAX_SIZE"+co"drive8/video/acor9fb.c#9428" id="L81288 class=12"line" name="0ss="sref">12"li>1288f9"driver8/video/acor>     IDC_CTRIOMD_VIDENDlIDC_"+coa=  href="+codFB_VPAGE_ALIGN1L143"> 1opturnPAGE_ALIGNa hHAS_IOMD="+c)an cIDC_CTRIOMD_VIDENDlIDC_"+co"driver8/video/acornfb.c#L159" i8="L11290 class=12line"},e{="li lass="sref12lin>1298f1"driver8/video/acornfb.c#L141" i8="L11291 class=12"line" name=" name="L14612"li>12lMODE_#>arnfbvram_half_sadef" nd  HAS_MEMClock12"li>1292tom="+code=a>arr!87 clas}cs="lin L97">  97   vram_half_sam="+code=acornfbvram_half_sausing_v>vis="sref">arc_clusing_v>vi"+co""driver8/video/acor9fb.c#93L70" 8id="1293 class=12"lineeeeeeeee> 152  12"li>129    1opturndma_addr_a/a>  +cyret_virtuallhandles="sref">arc_clhandle"+co"drive8/video/acor9fb.c#9428" id="L8129s class=12"line},e{="li lass="sref12"li>129ks[;
arc_clbaseODE_"drive8/video/acor9fb.c#9428" id="L81295 class=12"line" name=" name="L14612"li>1298f6"driver8/video/acornfb.c#L116" i8="L11296 class=12line" name="L0ss="sref">12lin>129ks
129g>-&g="comment"> */
<                * RiscPC needs to allocaterthe DRAM memoryhr8f="driver8rs/video/acornfb.c#L75" 8id="1298 class=12"line},e{="li lass="sref12"li>1298f9"d="comment"> */
<                * for the fe   buffera>arwe acomnotmusinghr8f="driver8rs/video/acornfb.c#L75" 8id="1299 class=12line" name="L> 152  12lin>12lo.ulo="comment"> */
<                * VRAM.LE8f="driver8rs/video/acornfb.c#L75" 8id="1390 class=1390 c" name="L> 152  1390 >130i"+co="comment"> */
<                *9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11391 class=139line" name=" name="L146139li>130MODE_NONINTERLACEDlock = arc_clbaseODE_a=  href="+codFB_Vdma_alloc_wret/comb"0ss="sref">arc_cldma_alloc_wret/comb"0sa hHAS_IOMD="+c)an c L97">  97   vram_half_sam="+code=acornfbvram_half_sadevs="sref">arc_cldev"+co  z_IOMD="+c)an cIDC_CTRIOMD_VIDENDlIDC_"+coa9" classode=var" clashandles="sref">arc_clhandle"+coariver8/video/acor9fb.c#93L70" 8id="1392 class=139line" name="0ss="sref">139li>130ks
arc_clbaseODE_a== z_IOMD="+c)an c256  16, 10, 18217226f=N18,""driver8/video/acor9fb.c#93L70" 8id="1394 class=139line},e{="li lass="sref139li>130ks[;
arc_clor"9tsa hHAS_IOMD="+c)an cKERN_ERRs="sref">arc_clKERN_ERRtom="z, 26.8 kHz hstr"97">"a47" fb: unable=to allocaterscreen "hr8f3"driver8/video/acor9fb.c#93L70" 8id="1395 class=139line" name=" name="L146139li>130MODE_NONINTERLACEDlocspan8f5=N128f=Lz, 26.8 kHz hstr"97">"memory\ "hr8f3"d"driver8/video/acornfb.c#L159" i8="L11396 class=139ine" name="L0ss="sref">139in>130ks
arc_clENOMEMODE_"drive8/video/acor9fb.c#9428" id="L81397 class=139line" name="cname="L130139li>130MODE_NONINTERLACEDloc"drive8/video/acor9fb.c#9127" i8id="1398 class=139line},e{="li lass="sref139li>1308f9"driver8/video/acor>    arc_clscreen_baseODE_N= z_IOMD="+c)an cbases="sref">arc_clbaseODE_"drive8/video/acor9fb.c#9428" id="L81310 class=13line"},e{="li lass="sref13lin>131is */arc_clocksfixo" cnfbf 1imageblitcsmem_   ra1L143"> 1opturnsmem_   ra hr8a=L87 clas}cs="linhandles="sref">arc_clhandle"+co"drive8/video/acor9fb.c#9428" id="L81311 class=13"line" name=" name="L14613"li>131MODE_NONINTER"drive8/video/acor9fb.c#9127" i8id="1312 class=13"line" name="0ss="sref">13"li>131ks 152  13"li>131 #>arnfbvram_half_sadef" nd  HAS_MEMClock1314"+code=acorn8 herm is initialisatia hr8f="driver8rs/video/acornfb.c#L75" 8id="13l5 class=13"line" name=" name="L14613"li>131 after herm is initialisatiooooooooo* Archemedes/A5000 mache0ss use a fixed address for theirhr8f="driver8rs/video/acornfb.c#L75" 8id="13l6 class=13"line" name="0ss="sref">13"li>131class="comment"> */
<        * fe   buffers.  Free unused pags=a 8f="driver8rs/video/acornfb.c#L75" 8id="13l7 class=13"line" name=" n152  13"li>131g>-&g="comment"> */
<        *9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11318 class=13"line},e{="li lass="sref13"li>131te_dma>-> free_unused_pags="sref">arc_clocfree_unused_pags=a hHA href="+codFB_VPAGE_OFFSET1L143"> 1opturnPAGE_OFFSETe_dma+L87 clas}cs="linIDC_CTRIOMD_VIDENDlIDC_"+coa9 href="+codFB_VPAGE_OFFSET1L143"> 1opturnPAGE_OFFSETe_dma+L87 clas}cs="linMAX_SIZE1L143"> 1opturnMAX_SIZE"+co""drive8/video/acor9fb.c#9428" id="L81319 class=13line" name="L> 152  13lin>131 #endifdrive8/video/acor9fb.c#9127" i8id="1320 class=13line" name="L0ss="sref">13lin>1328f1"driver8/video/acornfb.c#L141" i8="L113l1 class=13"line" name=" n152  13"li>132MODE_NONINTER hfb_> */arc_clocksfixo" cnfbf 1imageblitcsmem_l 132ks
 href="+codFB_V L97">  97   vram_half_sam="+code=acornfbvram_half_sapalettedIDC_CTRIOMD_VIDENDlpalettedIDC_s 1opturnVIDC_PALETTE_SIZE"+codriver8/video/acornfb.c#L159" i8="L113l3 class=13"lineeeeeeeee> 152  13"li>132 drive8/video/acor9fb.c#9127" i8id="13l4 class=13"line},e{="li lass="sref132li>1324"+code=acorn8 herm is initialisatia hr8f="driver8rs/video/acornfb.c#L75" 8id="13l5 class=13"line" name="> 152  13"li>132 after herm is initialisatiooooooooo* Lookup the timing for this resoluaio<.  Iarwe can'thr8f="driver8rs/video/acornfb.c#L75" 8id="13l6 class=13EDclass="line" name="L1313EDc>132class="comment"> */
<        * find it, then we can't restocommta>arwe changshr8f="driver8rs/video/acornfb.c#L75" 8id="1327 class=13="line" name="L150"> 9[]13="l>132g>-&g="comment"> */
<        * the resoluaio<, sorwe disable=this fea9uco.LE8f="driver8rs/video/acornfb.c#L75" 8id="13l8 class=13line" name="L150"> 9[   13lin>1328f9"d="comment"> */
<        *9hr8f3"driver8/video/acor9fb.c#92L93" 8="L113l9 class=13tic struct="sref">VIDC_C13tic>132    */133is */arc_clrc"+cos=L87 clas}cs="linodefind_mo_ss="sref">arc_clodefind_mo_sa hHA" classode=var" claslasIDC_CTR    vram_halfvde=acoa9" classode=var" claslasIDC_CTR  1opturnmo_sdbff="ariver8/video/acor9fb.c#93L70" 8id="1331 class=13line"L97s="res   ornf_le13lin>133MODE_NONINTERLACEDlocLACEDlocgt; */ 1opturnARRAY_SIZEa hHAssode=var" clasmf_sdb1L143"> 1opturnmo_sdbff=""ariver8/video/acor9fb.c#93L70" 8id="1332 class=13f="+cL97">  97   xre13f=">133ks
arc_cl5" i(void fault_mo_s hr8a9S_IOMD="+c)an cDEFAULT_BPPs="sref">arc_clDEFAULT_BPP"+co""drive8/video/acor9fb.c#9428" id="L81333 class=13f="+cL97">  97   yre13f=">133     13"li>133lass="comment"> */
<         oooooooo* Iarwe found mmeexact match, all ok.LE8f="driver8rs/video/acornfb.c#L75" 8id="1335 class=13"lineL97lef=_Cargi/a>   13"li>133 after herm is initialisatio        oooooooo*9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11336 class=13line"L97righ=_Cargi/a>  13lin>133ks
arr hfb_> */arc_clrc"+cos== 1"res   or4L87 c24"L87 7m61" 8id="63613l7 class=13line"L97up  13lin>133MODE_NONINTERLACEDloc  13lin>1338f9"driver8/video/acor>       sm13lin>133   arc_clrc"+cos=L87 clas}cs="linodefind_mo_ss="sref">arc_clodefind_mo_sa hHA" classode=var" claslasIDC_CTR    vram_halfvde=acoa9" classode=var" claslasIDC_CTR    sm13lin>134is[;
arc_cl5" i(void fault_mo_s hr8a9S_IOMD="+c)an cDEFAULT_BPPs="sref">arc_clDEFAULT_BPP"+co""drive8/video/acor9fb.c#9428" id="L81341 class=13line"L97z, 2a>   smem_le13lin>134MODE_NONINTERLACEDlock herm is initialisatia hr8f="driver8rs/video/acornfb.c#L75" 8id="13l2 class=13f="+cL97" class="srefvms13f=">1342e_dm="comment"> */
<        oooooooo* Iarwe found mmeexact match, all ok.LE8f="driver8rs/video/acornfb.c#L75" 8id="13l3 class=13="line" name="L150"> 93313="l>134MODE_r herm is initialisatiooooooooooooooooo*9hr8f3"driver8/video/acor9fb.c#92L93" 8="L1134s class=13 class="sref">vid_c950134ks[;
arr hfb_> */arc_clrc"+cos== 1"res   or4L87 c24"L87 7m61" 8id="6361345 class=13msreclasscn>134MODE_NONINTERLACEDlocspan8f5=breakdriver8/video/acornfb.c#L111" i8="L11346 class=13"sref">arc_clocks1348f="driver8/video/acornfb.c#L147" i8="L11347 class=13" clastatic ent > firs  13" c>134MODE_NONINTERLACEDlock = arc_clrc"+cos=L87 clas}cs="linodefind_mo_ss="sref">arc_clodefind_mo_sa hHA" classode=var" claslasIDC_CTR    vram_halfvde=acoa9" classode=var" claslasIDC_CTR  1opturnmo_sdbff="ariver8/video/acor9fb.c#93L70" 8id="1348 class=13line" name="L150"> 9nt">13lin>134ks-> =  1opturnARRAY_SIZEa hHAssode=var" clasmf_sdb1L143"> 1opturnmo_sdbff=""ariver8/video/acor9fb.c#93L70" 8id="1349 class=13ss">arriver8/video/acref13ss">134   arc_cl5" i(void fault_mo_s hr8a9S_IOMD="+c)an cDEFAULT_BPPs="sref">arc_clDEFAULT_BPP"+co""drive8/video/acor9fb.c#9428" id="L81350 class=13"L97s="res   or4L87 c24"13"L9>135is[;
arr hfb_> */arc_clrc"+co"res   or4L87 c24"L87 7m61" 8id="6361351 class=13 class="sref">vid_ctl135MODE_NONINTERLACEDlocspan8f5=breakdriver8/video/acornfb.c#L111" i8="L11352 class=13"line152"!"> 152    13"li>1358f="driver8rs/video/acornfb.c#L63" 8id="1353 class=13"lineeeeeeeee> 152  13"li>13"    = arc_clrc"+cos=L87 clas}cs="linodefind_mo_ss="sref">arc_clodefind_mo_sa hHA" classode=var" claslasIDC_CTR    vram_halfvde=acoa9" classode=var" claslasIDC_CTR vid_ctl135ks[;
arc_cl5" i(void fault_mo_s hr8a9S_IOMD="+c)an cDEFAULT_BPPs="sref">arc_clDEFAULT_BPP"+co""drive8/video/acor9fb.c#9428" id="L81355 class=13"line152"> 152      13"li>135MODE_NONINTER}"while (0""drive8/video/acor9fb.c#9428" id="L81356 class=13line" name="Lreturn -97"13lin>1358f="driver8/video/acornfb.c#L147" i8="L11357 class=13 class="sref">vid_ctl135MODE_NONINTERk herm is initialisatia hr8f="driver8rs/video/acornfb.c#L75" 8id="1358 class=13line" name="L131"> 1L14313lin>1358f9"d="comment"> */
<        * Iarwe didn't find mmeexact match, try thshr8f="driver8rs/video/acornfb.c#L75" 8id="1359 class=13"line" name="L39">  39135o.ulo="comment"> */
<        * generic database.LE8f="driver8rs/video/acornfb.c#L75" 8id="1360 class=13line"return 0cs="line" n13lin>136i"+co="comment"> */
<        *9hr8f3"driver8/video/acor9fb.c#92L93" 8="L11361 class=13me="L100"> 100      13me=>136MODE_NONINTER>arr hfb_> */arc_clrc"+cos== 0)"driver8/video/acor9fb.c#93L70" 8id="13l2 class=13line" name="L112"> 112136ks
arc_clor"9tsa hHAS, 26.8 kHz hstr"97">"A47" fb: no valid mf_s found\ "hr8f3"d"driver8/video/acornfb.c#L159" i8="L11363 class=13tic struct="sref">VIDC_C13tic>136     97   own13"li>1364"+code=acorn}river8/video/acornfb.c#L111" i8="L113l5 class=13"lineL97">  97   > 113"li>1368f6"driver8/video/acornfb.c#L116" i8="L113l6 class=13line"L97">  97   > 113lin>1366tom="+code=a hfb_> */arc_clh_sync"+co = =953125800 /R hfb_> */   vram_halfvde=acornfbvram_half_sapixclocss="sref">arc_cloixclocs"+codriver8/video/acornfb.c#L159" i8="L11367 class=13line"L97">  97   > 113lin>1367"+code=acorn hfb_> */arc_clh_sync"+co =  hfb_> */arc_clh_sync"+co * 512 /Rr hfb_> */   vram_halfvde=acornfbvram_half_saxrs="sref">arc_clocxrs=ff=" +L87 clas}cs="linlb_IDC_CTR    vram_halfvde=acornfbvram_half_saleft_marg"sref">arc_clocksleft_marg"sff=" +river8/video/acornfb.c#L159" i8="L11368 class=13line"L97">  97   > 113lin>136ks   vram_halfvde=acornfbvram_half_saright_marg"sref">arc_clocksright_marg"sff=" +L87 clas}cs="linlb_IDC_CTR    vram_halfvde=acornfbvram_half_sahsync_l   97   > 113lin>1369e_dma>-> v_syncs="sref">arc_clv_sync"+co =  hfb_> */arc_clh_sync"+co /Rr hfb_> */   vram_halfvde=acornfbvram_half_sayrs="sref">arc_clocyrs=ff=" +L87 clas}cs="linlb_IDC_CTR    vram_halfvde=acornfbvram_half_saupper_marg"sref">arc_clocksupper_marg"sff=" +river8/video/acornfb.c#L141" i8="L11370 class=13line"L97">  97   > 113lin>137is[;
   vram_halfvde=acornfbvram_half_salower_marg"sref">arc_clockslower_marg"sff=" +L87 clas}cs="linlb_IDC_CTR    vram_halfvde=acornfbvram_half_savsync_l   97   > 113lin>1378f="driver8/video/acornfb.c#L152" i8="L11372 class=13="line" name="L150"> 15013="l>137ks
 href="+codFB_Vpr"9tss="sref">arc_clor"9tsa hHAS_IOMD="+c)an cKERN_INFOs="sref">arc_clKERN_INFOs"A47" fb: %dkB %cRAM, %s,musing %dx%d, "hr8f3"driver8/video/acor9fb.c#93L70" 8id="1373 class=13line" name="L133"> 133137   "%d.%03dkHz, %dHz\ "hr8f3"dariver8/video/acor9fb.c#93L70" 8id="137s class=13ss="sref">vram_size137ks[;
arc_clocksfixo" cnfbf 1imageblitcsmem_l vram_size * Em13ss=>137MODE_NONINTERLACEDloc hfb_> */  97   vram_half_sam="+code=acornfbvram_half_sausing_v>vis="sref">arc_clusing_v>vi"+co ?=N herm is inistr"97">'V'hr8f3"d :=N herm is inistr"97">'D'hr8f3"dariver8/video/acor9fb.c#93L70" 8id="1376 class=13ss="sref">vram_size *8137ks
 1opturnVIDC_NAME hr8a9S_IOMD="+c)an clb_IDC_CTR    vram_halfvde=acornfbvram_half_saxrs="sref">arc_clocxrs=ff="a9S_IOMD="+c)an clb_IDC_CTR    vram_halfvde=acornfbvram_half_sayrs="sref">arc_clocyrs=ff="ariver8/video/acor9fb.c#93L70" 8id="1377 class=13tic struct="sref">VIDC_C13tic>137MODE_NONINTERLACEDlock = arc_clh_sync"+co /R1800a9S_IOMD="+c)an ch_syncs="sref">arc_clh_sync"+co %R1800a9S_IOMD="+c)an cv_syncs="sref">arc_clv_sync"+co"driver8/video/acornfb.c#L159" i8="L11378 class=13"line{="line" lass="sref13"li>1378f9"driver8/video/acor>     pr"9tss="sref">arc_clor"9tsa hHAS_IOMD="+c)an cKERN_INFOs="sref">arc_clKERN_INFOs"A47" fb: Monitor: %d.%03d-%d.%03dkHz, %d-%dHz%s\ "hr8f3"dariver8/video/acor9fb.c#93L70" 8id="1380 class=13line" name="L> 152  13lin>138is */ 1opturnmonspec ref="+cyret_virtuallhfm"sref">arc_clockshfm"s"+co /R1800a9S_IOMD="+c)an clasIDC_CTR  1opturnmonspec ref="+cyret_virtuallhfm"sref">arc_clockshfm"s"+co %R1800ariver8/video/acor9fb.c#93L70" 8id="1381 class=13"line" name=" name="L14613"li>138MODE_NONINTERLACEDlock =  1opturnmonspec ref="+cyret_virtuallhfmaxref">arc_clockshfmax"+co /R1800a9S_IOMD="+c)an clasIDC_CTR  1opturnmonspec ref="+cyret_virtuallhfmaxref">arc_clockshfmax"+co %R1800ariver8/video/acor9fb.c#93L70" 8id="1382 class=13"line},e{="li lass="sref13"li>138ks
 1opturnmonspec ref="+cyret_virtuallvfm"sref">arc_clocksvfm"s"+coa9S_IOMD="+c)an clasIDC_CTR  1opturnmonspec ref="+cyret_virtuallvfmaxref">arc_clocksvfmax"+coariver8/video/acor9fb.c#93L70" 8id="1383 class=13"lineeeeeeeeecname="L13013"li>138    =  1opturnmonspec ref="+cyret_virtualldpm 1L143"> 1opturndpm  hr8a?=N herm is inistr"97">", DPMS"hr8f3"d :=N herm is inistr"97">""hr8f3"d"driver8/video/acornfb.c#L159" i8="L1138s class=13"lineeeeeeeee0ss="sref">13"li>1388f="driver8/video/acor9fb.c#9145" i8dd="1385 class=13"line" name="> 152  13"li>138MODE_NONINTER>arr hfb_> */   vram_halflb_set_v7   vram_halfvde=aco""res   or4L87 c24"L87 7m61" 8id="6361386 class=13line"},e{="li lass="sref13lin>138ks
arc_clor"9tsa hHAS_IOMD="+c)an cKERN_ERRs="sref">arc_clKERN_ERRtom="z, 26.8 kHz hstr"97">"A47" fb: unable=to set display ode="st24"\ "hr8f3"d"driver8/video/acornfb.c#L159" i8="L11387 class=13"line" name="cname="L13013"li>138MODE_river8/video/acornfb.c#L159" i8="L11388 class=13"line" name="0ss="sref">13"li>1388ODE_NONINTER>arr hfb_> */arc_clocksregist24_fe   buffera hHA" classode=var" claslasIDC_CTR 139is13lMODE_}river8/video/acornfb.c#L111" i8="L11392 class=13"line" name="0ss="sref">13"li>1398f="driver8rs/video/acornfb.c#L63" 8id="1393 class=13"lineeeeeeeee> 152  13"li>139 static struct787 clas}cs="linplatform_ideo/as="sref">arc_clolatform_ideo/atom="zsode=var" clas5" i(voiddeo/as="sref">arc_cl5" i(voiddeo/a"+co = driver8/video/acor9fb.c#93L70" 8id="139s class=13"line},e{="li lass="sref13"li>139ks[;
rnfbvram_half_saprob_CTRIOMD_VIDENDlprob_s[=L87 clas}cs="lin5" i(voiprob_CTRIOMD_VIDENDl5" i(voiprob_"+coariver8/video/acor9fb.c#93L70" 8id="1395 class=13"line" name=" name="L14613"li>1395s[;
rnfbvram_half_saddeo/as="sref">arc_clddeo/a"+co = driver8/video/acor9fb.c#93L70" 8id="1396 class=13line" name="L0ss="sref">13lin>139ks
arc_cl"sres"a47" fb"hr8f3"dariver8/video/acor9fb.c#93L70" 8id="1397 class=13"line" name="cname="L13013"li>139MODE_NONINTER}ariver8/video/acor9fb.c#93L70" 8id="1398 class=13"line},e{="li lass="sref13"li>1398f9"d}driver8/video/acornfb.c#L111" i8="L11399 class=13line" name="L> 152  13lin>1399f="driver8/video/acornfb.c#L147" i8="L11490 class=1490 c" name="L> 152  1490 >140i"+costatic "9tL87 clas}cs="lin_e=fia1L143"> 1opturn_e=fiatom="zsode=var" clas5" i(voi=fia1L143"> 1opturn5" i(voi=fiaa hHAr>"res   or4L87 c24"L87 7m61" 8id="6361491 class=149line" name=" name="L146149li>140MODE_driver8/video/acor9fb.c#93L70" 8id="1492 class=149line" name="0ss="sref">149li>140ks
"L97s= 87 clas}cs="linplatform_ideo/a_regist24s="sref">arc_clolatform_ideo/a_regist24a hHA" classode=var" clas5" i(voiddeo/as="sref">arc_cl5" i(voiddeo/a"+co"driver8/video/acornfb.c#L159" i8="L11493 class=149lineeeeeeeee> 152  149li>140 }river8/video/acornfb.c#L111" i8="L11494 class=149line},e{="li lass="sref149li>1408f="driver8/video/acor9fb.c#9145" i8dd="1495 class=149line" name=" name="L146149li>140MODE_fbf 1imageblitcmodulei=fia1L143"> 1opturnmodulei=fiaa hHAS_IOMD="+c)an c5" i(voi=fia1L143"> 1opturn5" i(voi=fiaa hH"driver8/video/acornfb.c#L159" i8="L11496 class=149ine" name="L0ss="sref">149in>1408f="driver8/video/acornfb.c#L147" i8="L11497 class=149line" name="cname="L130149li>140MODE_S_IOMD="+c)an cMODULE_AUTHORs="sref">arc_clMODULE_AUTHORa hHAS, 26.8 kHz hstr"97">"Russell K"97"hr8f3"d"driver8/video/acornfb.c#L159" i8="L11498 class=149line},e{="li lass="sref149li>1408f9"dS_IOMD="+c)an cMODULE_DESCRIPTION1L143"> 1opturnMODULE_DESCRIPTIONa hHAS, 26.8 kHz hstr"97">"VIDC 1/1a/20 fe   bufferaeo/aco"hr8f3"d"driver8/video/acornfb.c#L159" i8="L11499 class=149ine" name="L> 152  149in>140 S_IOMD="+c)an cMODULE_LICENSE1L143"> 1opturnMODULE_LICENSEa hHAS, 26.8 kHz hstr"97">"GPL"hr8f3"d"driver8/video/acornfb.c#L159" i8="L11410 class=14line"},e{="li lass="sref14lin>141is


The original LXR softwacomby ths 87 clas}chttp://sourceforge.net/projects/lx4s>LXR /lx4@li ux.noo" cn
lx4.li ux.no kindly host2dmby 87 clas}chttp://www.redpill-li pro.no">Redpill Li pro ASo" ca9profb.craof Li ux /