Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/hpcmips debug frame buffer draw routines moved to v...



details:   https://anonhg.NetBSD.org/src/rev/7f5f5b0ee14e
branches:  trunk
changeset: 486462:7f5f5b0ee14e
user:      uch <uch%NetBSD.org@localhost>
date:      Mon May 22 17:17:44 2000 +0000

description:
debug frame buffer draw routines moved to video_subr.c.
plumvideo also use it.

diffstat:

 sys/arch/hpcmips/dev/plumvideo.c  |   58 ++++---
 sys/arch/hpcmips/dev/ucb1200reg.h |   91 ++++++------
 sys/arch/hpcmips/dev/ucbtp.c      |  178 ++++++++++++++----------
 sys/arch/hpcmips/dev/video_subr.c |  192 ++++++++++++++++++++++++++-
 sys/arch/hpcmips/dev/video_subr.h |   37 +++-
 sys/arch/hpcmips/tx/tx39.c        |   14 +-
 sys/arch/hpcmips/tx/tx3912video.c |  271 +++++--------------------------------
 sys/arch/hpcmips/tx/tx39power.c   |   43 +++--
 sys/arch/hpcmips/tx/tx39var.h     |   36 ++--
 9 files changed, 494 insertions(+), 426 deletions(-)

diffs (truncated from 1541 to 300 lines):

diff -r c1ee35ae40ce -r 7f5f5b0ee14e sys/arch/hpcmips/dev/plumvideo.c
--- a/sys/arch/hpcmips/dev/plumvideo.c  Mon May 22 17:13:53 2000 +0000
+++ b/sys/arch/hpcmips/dev/plumvideo.c  Mon May 22 17:17:44 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: plumvideo.c,v 1.10 2000/05/21 11:22:25 uch Exp $ */
+/*     $NetBSD: plumvideo.c,v 1.11 2000/05/22 17:17:44 uch Exp $ */
 
 /*-
  * Copyright (c) 1999, 2000 UCHIYAMA Yasushi.  All rights reserved.
@@ -25,6 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+#define PLUMVIDEODEBUG
 
 #include "opt_tx39_debug.h"
 
@@ -57,7 +58,6 @@
 #include <arch/hpcmips/dev/hpcfbvar.h>
 #include <arch/hpcmips/dev/hpcfbio.h>
 
-
 #ifdef PLUMVIDEODEBUG
 int    plumvideo_debug = 1;
 #define        DPRINTF(arg) if (plumvideo_debug) printf arg;
@@ -69,8 +69,9 @@
 
 struct plumvideo_softc {
        struct device sc_dev;
+       tx_chipset_tag_t sc_tc;
+       plum_chipset_tag_t sc_pc;
 
-       plum_chipset_tag_t sc_pc;
        /* control register */
        bus_space_tag_t sc_regt;
        bus_space_handle_t sc_regh;
@@ -84,10 +85,7 @@
        bus_space_tag_t sc_bitbltt;
        bus_space_handle_t sc_bitblth;
 
-       int sc_width;
-       int sc_height;
-       int sc_depth;
-
+       struct video_chip sc_chip;
        struct hpcfb_fbconf sc_fbconf;
        struct hpcfb_dspconf sc_dspconf;
 };
@@ -199,13 +197,17 @@
 
        printf("\n");
 
-#ifdef PLUMVIDEODEBUG
-       if (plumvideo_debug)
-               plumvideo_dump(sc);
-#endif
        /* Attach frame buffer device */
        plumvideo_hpcfbinit(sc);
 
+#ifdef PLUMVIDEODEBUG
+       if (plumvideo_debug > 1)
+               plumvideo_dump(sc);
+       /* attach debug draw routine (debugging use) */
+       video_attach_drawfunc(&sc->sc_chip);
+       tx_conf_register_video(sc->sc_pc->pc_tc, &sc->sc_chip);
+#endif /* PLUMVIDEODEBUG */
+
        console = cn_tab ? 0 : 1;
        if(console && hpcfb_cnattach(&sc->sc_fbconf) != 0) {
                panic("plumvideo_attach: can't init fb console");
@@ -229,7 +231,11 @@
        struct plumvideo_softc *sc;
 {
        struct hpcfb_fbconf *fb = &sc->sc_fbconf;
+       struct video_chip *chip = &sc->sc_chip;
        vaddr_t fbvaddr = (vaddr_t)sc->sc_fbioh;
+       int height = chip->vc_fbheight;
+       int width = chip->vc_fbwidth;
+       int depth = chip->vc_fbdepth;
        
        memset(fb, 0, sizeof(struct hpcfb_fbconf));
        
@@ -239,20 +245,20 @@
        /* frame buffer name            */
        strncpy(fb->hf_conf_name, "LCD", HPCFB_MAXNAMELEN);
        /* configuration name           */
-       fb->hf_height           = sc->sc_height;
-       fb->hf_width            = sc->sc_width;
+       fb->hf_height           = height;
+       fb->hf_width            = width;
        fb->hf_baseaddr         = mips_ptob(mips_btop(fbvaddr));
        fb->hf_offset           = (u_long)fbvaddr - fb->hf_baseaddr;
        /* frame buffer start offset    */
-       fb->hf_bytes_per_line   = (sc->sc_width * sc->sc_depth) / NBBY;
+       fb->hf_bytes_per_line   = (width * depth) / NBBY;
        fb->hf_nplanes          = 1;
-       fb->hf_bytes_per_plane  = sc->sc_height * fb->hf_bytes_per_line;
+       fb->hf_bytes_per_plane  = height * fb->hf_bytes_per_line;
 
        fb->hf_access_flags |= HPCFB_ACCESS_BYTE;
        fb->hf_access_flags |= HPCFB_ACCESS_WORD;
        fb->hf_access_flags |= HPCFB_ACCESS_DWORD;
 
-       switch (sc->sc_depth) {
+       switch (depth) {
        default:
                panic("plumvideo_hpcfbinit: not supported color depth\n");
                /* NOTREACHED */
@@ -298,7 +304,10 @@
        bus_space_handle_t regh = sc->sc_regh;
        plumreg_t reg;
        size_t vram_size;
-       int bpp, vram_pitch;
+       int bpp, width, height, vram_pitch;
+       struct video_chip *chip = &sc->sc_chip;
+
+       chip->vc_v = sc->sc_pc->pc_tc;
 #if notyet
        /* map BitBlt area */
        if (bus_space_map(sc->sc_bitbltt,
@@ -334,23 +343,23 @@
                bpp = 8;
                break;
        }
-       sc->sc_depth = bpp;
+       chip->vc_fbdepth = bpp;
 
        /*
         * Get display size from WindowsCE setted.
         */
-       sc->sc_width = bootinfo->fb_width = 
+       chip->vc_fbwidth = width = bootinfo->fb_width = 
                plum_conf_read(regt, regh, PLUM_VIDEO_PLHPX_REG) + 1;
-       sc->sc_height = bootinfo->fb_height = 
+       chip->vc_fbheight = height = bootinfo->fb_height = 
                plum_conf_read(regt, regh, PLUM_VIDEO_PLVT_REG) -
                plum_conf_read(regt, regh, PLUM_VIDEO_PLVDS_REG);
 
        /*
         * set line byte length to bootinfo and LCD controller.
         */
-       bootinfo->fb_line_bytes = (sc->sc_width * bpp) / NBBY;
+       bootinfo->fb_line_bytes = (width * bpp) / NBBY;
 
-       vram_pitch = sc->sc_width / (8 / bpp);
+       vram_pitch = width / (8 / bpp);
        plum_conf_write(regt, regh, PLUM_VIDEO_PLPIT1_REG, vram_pitch);
        plum_conf_write(regt, regh, PLUM_VIDEO_PLPIT2_REG,
                        vram_pitch & PLUM_VIDEO_PLPIT2_MASK);
@@ -386,8 +395,9 @@
         * calcurate frame buffer size.
         */
        reg = plum_conf_read(regt, regh, PLUM_VIDEO_PLGMD_REG);
-       vram_size = (sc->sc_width * sc->sc_height * bpp) / NBBY;
+       vram_size = (width * height * bpp) / NBBY;
        vram_size = mips_round_page(vram_size);
+       chip->vc_fbsize = vram_size;
 
        /*
         * map V-RAM area.
@@ -399,6 +409,8 @@
        }
 
        bootinfo->fb_addr = (unsigned char *)sc->sc_fbioh;
+       chip->vc_fbvaddr = (vaddr_t)sc->sc_fbioh;
+       chip->vc_fbpaddr = PLUM_VIDEO_VRAM_IOBASE_PHYSICAL;
 
        return (0);
 }
diff -r c1ee35ae40ce -r 7f5f5b0ee14e sys/arch/hpcmips/dev/ucb1200reg.h
--- a/sys/arch/hpcmips/dev/ucb1200reg.h Mon May 22 17:13:53 2000 +0000
+++ b/sys/arch/hpcmips/dev/ucb1200reg.h Mon May 22 17:17:44 2000 +0000
@@ -1,29 +1,29 @@
-/*     $NetBSD: ucb1200reg.h,v 1.5 2000/03/12 15:36:11 uch Exp $ */
+/*     $NetBSD: ucb1200reg.h,v 1.6 2000/05/22 17:17:44 uch Exp $ */
 
-/*
- * Copyright (c) 2000, by UCHIYAMA Yasushi
- * All rights reserved.
+/*-
+ * Copyright (c) 2000 UCHIYAMA Yasushi.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
- * 2. The name of the developer may NOT be used to endorse or promote products
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
  *    derived from this software without specific prior written permission.
  *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 /*
@@ -61,11 +61,11 @@
 #define UCB1200_TELECOMCTRLA_DIV_MAX   127
 #define UCB1200_TELECOMCTRLA_DIV_SHIFT 0
 #define UCB1200_TELECOMCTRLA_DIV_MASK  0x7f
-#define UCB1200_TELECOMCTRLA_DIV(cr) \
-       (((cr) >> UCB1200_TELECOMCTRLA_DIV_SHIFT) & \
+#define UCB1200_TELECOMCTRLA_DIV(cr)                                   \
+       (((cr) >> UCB1200_TELECOMCTRLA_DIV_SHIFT) &                     \
        UCB1200_TELECOMCTRLA_DIV_MASK)
-#define UCB1200_TELECOMCTRLA_DIV_SET(cr, val) \
-       ((cr) | (((val) << UCB1200_TELECOMCTRLA_DIV_SHIFT) & \
+#define UCB1200_TELECOMCTRLA_DIV_SET(cr, val)                          \
+       ((cr) | (((val) << UCB1200_TELECOMCTRLA_DIV_SHIFT) &            \
        (UCB1200_TELECOMCTRLA_DIV_MASK << UCB1200_TELECOMCTRLA_DIV_SHIFT)))
 
 #define UCB1200_TELECOMCTRLA_LOOP      0x0080
@@ -88,20 +88,20 @@
 #define UCB1200_AUDIOCTRLA_DIV_MAX     127
 #define UCB1200_AUDIOCTRLA_DIV_SHIFT   0
 #define UCB1200_AUDIOCTRLA_DIV_MASK    0x7f
-#define UCB1200_AUDIOCTRLA_DIV(cr) \
-       (((cr) >> UCB1200_AUDIOCTRLA_DIV_SHIFT) & \
+#define UCB1200_AUDIOCTRLA_DIV(cr)                                     \
+       (((cr) >> UCB1200_AUDIOCTRLA_DIV_SHIFT) &                       \
        UCB1200_AUDIOCTRLA_DIV_MASK)
-#define UCB1200_AUDIOCTRLA_DIV_SET(cr, val) \
-       ((cr) | (((val) << UCB1200_AUDIOCTRLA_DIV_SHIFT) & \
+#define UCB1200_AUDIOCTRLA_DIV_SET(cr, val)                            \
+       ((cr) | (((val) << UCB1200_AUDIOCTRLA_DIV_SHIFT) &              \
        (UCB1200_AUDIOCTRLA_DIV_MASK << UCB1200_AUDIOCTRLA_DIV_SHIFT)))
 
 #define UCB1200_AUDIOCTRLA_GAIN_SHIFT  7
 #define UCB1200_AUDIOCTRLA_GAIN_MASK   0x1f
-#define UCB1200_AUDIOCTRLA_GAIN(cr) \
-       (((cr) >> UCB1200_AUDIOCTRLA_GAIN_SHIFT) & \
+#define UCB1200_AUDIOCTRLA_GAIN(cr)                                    \
+       (((cr) >> UCB1200_AUDIOCTRLA_GAIN_SHIFT) &                      \
        UCB1200_AUDIOCTRLA_GAIN_MASK)
-#define UCB1200_AUDIOCTRLA_GAIN_SET(cr, val) \
-       ((cr) | (((val) << UCB1200_AUDIOCTRLA_GAIN_SHIFT) & \
+#define UCB1200_AUDIOCTRLA_GAIN_SET(cr, val)                           \
+       ((cr) | (((val) << UCB1200_AUDIOCTRLA_GAIN_SHIFT) &             \
        (UCB1200_AUDIOCTRLA_GAIN_MASK << UCB1200_AUDIOCTRLA_GAIN_SHIFT)))
 
 /*
@@ -136,8 +136,8 @@
 
 #define UCB1200_TSCTRL_MODE_SHIFT      8
 #define UCB1200_TSCTRL_MODE_MASK       0x7f
-#define UCB1200_TSCTRL_MODE(cr) \
-       (((cr) >> UCB1200_TSCTRL_MODE_SHIFT) & \
+#define UCB1200_TSCTRL_MODE(cr)                                                \
+       (((cr) >> UCB1200_TSCTRL_MODE_SHIFT) &                          \
        UCB1200_TSCTRL_MODE_MASK)
 #define UCB1200_TSCTRL_MODE_INTERRUPT  0
 #define UCB1200_TSCTRL_MODE_PRESSURE   (1 << UCB1200_TSCTRL_MODE_SHIFT)
@@ -154,19 +154,20 @@
 #define        UCB1200_TSCTRL_MXPWR    0x00000001
 
 /* touch screen modes */
-#define UCB1200_TSCTRL_YPOSITION \
-       (UCB1200_TSCTRL_PXPWR | UCB1200_TSCTRL_MXGND | \
+#define UCB1200_TSCTRL_YPOSITION                                       \
+       (UCB1200_TSCTRL_PXPWR | UCB1200_TSCTRL_MXGND |                  \
        UCB1200_TSCTRL_MODE_POSITION0 | UCB1200_TSCTRL_BIAS)
-#define UCB1200_TSCTRL_XPOSITION \
-       (UCB1200_TSCTRL_PYPWR | UCB1200_TSCTRL_MYGND | \
+#define UCB1200_TSCTRL_XPOSITION                                       \
+       (UCB1200_TSCTRL_PYPWR | UCB1200_TSCTRL_MYGND |                  \
        UCB1200_TSCTRL_MODE_POSITION0 | UCB1200_TSCTRL_BIAS)
-#define UCB1200_TSCTRL_PRESSURE \
-       (UCB1200_TSCTRL_PXPWR | UCB1200_TSCTRL_MXPWR | \
-       UCB1200_TSCTRL_PYGND | UCB1200_TSCTRL_MYGND | \
+#define UCB1200_TSCTRL_PRESSURE                                                \
+       (UCB1200_TSCTRL_PXPWR | UCB1200_TSCTRL_MXPWR |                  \
+       UCB1200_TSCTRL_PYGND | UCB1200_TSCTRL_MYGND |                   \
        UCB1200_TSCTRL_MODE_PRESSURE | UCB1200_TSCTRL_BIAS)
-#define UCB1200_TSCTRL_INTERRUPT \
-       (UCB1200_TSCTRL_PXPWR | UCB1200_TSCTRL_MXPWR | \
-       UCB1200_TSCTRL_PYGND | UCB1200_TSCTRL_MYGND | \
+



Home | Main Index | Thread Index | Old Index