From: Albert H. <he...@us...> - 2009-10-25 18:50:42
|
Update of /cvsroot/gc-linux/linux/drivers/video In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/video Modified Files: Kconfig Makefile gcnfb.c Log Message: Merge gc-linux-v2.6.30. Index: gcnfb.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcnfb.c,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** gcnfb.c 28 Mar 2009 20:44:19 -0000 1.25 --- gcnfb.c 25 Oct 2009 18:50:27 -0000 1.26 *************** *** 40,44 **** "Albert Herranz" ! static char vifb_driver_version[] = "2.0i"; #define drv_printk(level, format, arg...) \ --- 40,44 ---- "Albert Herranz" ! static char vifb_driver_version[] = "2.1i"; #define drv_printk(level, format, arg...) \ *************** *** 524,527 **** --- 524,530 ---- static int want_ypan = 1; /* 0..nothing, 1..ypan */ + /* use old behaviour for video mode settings */ + static int nostalgic; + static int force_scan; static int force_rate; *************** *** 1644,1648 **** spin_lock_irqsave(&ctl->lock, flags); ! ctl->visible_page = (offset) ? 1 : 0; spin_unlock_irqrestore(&ctl->lock, flags); --- 1647,1654 ---- spin_lock_irqsave(&ctl->lock, flags); ! if (info->fix.smem_start + offset >= ctl->page_address[1]) ! ctl->visible_page = 1; ! else ! ctl->visible_page = 0; spin_unlock_irqrestore(&ctl->lock, flags); *************** *** 1656,1661 **** --- 1662,1671 ---- struct vi_tv_mode *mode = ctl->mode; struct vi_mode_timings timings; + u32 yres = var->yres; int error = -EINVAL; + if (nostalgic && yres == 576) + yres = 574; + if (vi_vmode_is_progressive(var->vmode)) { /* 480p */ *************** *** 1666,1670 **** /* 576i */ error = vi_pal_625_calc_timings(&timings, var, ! var->xres, var->yres); else /* 480i */ --- 1676,1680 ---- /* 576i */ error = vi_pal_625_calc_timings(&timings, var, ! var->xres, yres); else /* 480i */ *************** *** 1708,1713 **** yres = _ALIGN_UP(yres, VI_VERT_ALIGN+1); if (yres > mode->height) { ! drv_printk(KERN_ERR, "yres %u out of bounds\n", yres); ! goto err_out; } if (yres < 16) { --- 1718,1727 ---- yres = _ALIGN_UP(yres, VI_VERT_ALIGN+1); if (yres > mode->height) { ! if (!nostalgic) { ! drv_printk(KERN_ERR, "yres %u out of bounds\n", yres); ! goto err_out; ! } ! if (!(mode->height == 574 && yres == 576)) ! yres = mode->height; } if (yres < 16) { *************** *** 1798,1801 **** --- 1812,1822 ---- info->fix.line_length = var->xres_virtual * (var->bits_per_pixel / 8); + ctl->page_address[0] = info->fix.smem_start; + if (var->yres * info->fix.line_length <= info->fix.smem_len / 2) + ctl->page_address[1] = + info->fix.smem_start + var->yres * info->fix.line_length; + else + ctl->page_address[1] = info->fix.smem_start; + /* set page 0 as the visible page and cancel pending flips */ spin_lock_irqsave(&ctl->lock, flags); *************** *** 1814,1824 **** } - ctl->page_address[0] = info->fix.smem_start; - if (var->yres * info->fix.line_length <= info->fix.smem_len / 2) - ctl->page_address[1] = - info->fix.smem_start + var->yres * info->fix.line_length; - else - ctl->page_address[1] = info->fix.smem_start; - vi_setup_tv_mode(ctl); --- 1835,1838 ---- *************** *** 1991,2000 **** vi_detect_tv_mode(ctl); ! /* by default, start with overscan compensation */ ! info->var.xres = 576; ! if (ctl->mode->height == 574) ! info->var.yres = 516; ! else ! info->var.yres = 432; ctl->visible_page = 0; --- 2005,2019 ---- vi_detect_tv_mode(ctl); ! if (!nostalgic) { ! /* by default, start with overscan compensation */ ! info->var.xres = 576; ! if (ctl->mode->height == 574) ! info->var.yres = 516; ! else ! info->var.yres = 432; ! } else { ! info->var.xres = ctl->mode->width; ! info->var.yres = ctl->mode->height; ! } ctl->visible_page = 0; *************** *** 2135,2139 **** else if (!strncmp(this_opt + 3, "NTSC", 4)) force_tv = VI_TV_NTSC; ! } } --- 2154,2159 ---- else if (!strncmp(this_opt + 3, "NTSC", 4)) force_tv = VI_TV_NTSC; ! } else if (!strcmp(this_opt, "nostalgic")) ! nostalgic = 1; } Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/Makefile,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** Makefile 25 Oct 2009 18:45:36 -0000 1.32 --- Makefile 25 Oct 2009 18:50:27 -0000 1.33 *************** *** 126,129 **** --- 126,130 ---- obj-$(CONFIG_FB_CARMINE) += carminefb.o obj-$(CONFIG_FB_MB862XX) += mb862xx/ + obj-$(CONFIG_FB_GAMECUBE) += gcnfb.o # Platform or fallback drivers go here Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/Kconfig,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** Kconfig 25 Oct 2009 18:45:36 -0000 1.36 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.37 *************** *** 1664,1667 **** --- 1664,1686 ---- endchoice + config FB_GAMECUBE + bool "Nintendo GameCube/Wii frame buffer" + depends on FB && GAMECUBE_COMMON + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT + help + This is the frame buffer device driver for the Nintendo GameCube. + + config WII_AVE_RVL + bool "Nintendo Wii audio/video encoder support" + depends on FB_GAMECUBE && WII + select I2C_GPIO + select I2C + default y + help + Say Y here to support the audio/video encoder found in the + Nintendo Wii video game console. + config FB_AU1100 bool "Au1100 LCD Driver" |