drivers/video/fbdev/geode/lxfb_ops.c:604:28: sparse: sparse: incorrect type in argument 2 (different address spaces)

From: kernel test robot
Date: Sun Jul 05 2020 - 23:00:06 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dcb7fd82c75ee2d6e6f9d8cc71c52519ed52e258
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date: 2 weeks ago
config: i386-randconfig-s002-20200706 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-14-g8fce3d7a-dirty
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

>> drivers/video/fbdev/geode/lxfb_ops.c:604:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *q @@ got void [noderef] __iomem *gp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:604:28: sparse: expected void const *q
drivers/video/fbdev/geode/lxfb_ops.c:604:28: sparse: got void [noderef] __iomem *gp_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:605:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *q @@ got void [noderef] __iomem *dc_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:605:28: sparse: expected void const *q
drivers/video/fbdev/geode/lxfb_ops.c:605:28: sparse: got void [noderef] __iomem *dc_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:606:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *q @@ got void [noderef] __iomem *vp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:606:28: sparse: expected void const *q
drivers/video/fbdev/geode/lxfb_ops.c:606:28: sparse: got void [noderef] __iomem *vp_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:607:38: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *q @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:607:38: sparse: expected void const *q
drivers/video/fbdev/geode/lxfb_ops.c:607:38: sparse: got void [noderef] __iomem *
drivers/video/fbdev/geode/lxfb_ops.c:635:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *q @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:635:44: sparse: expected void const *q
drivers/video/fbdev/geode/lxfb_ops.c:635:44: sparse: got void [noderef] __iomem *
>> drivers/video/fbdev/geode/lxfb_ops.c:761:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *p @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:761:29: sparse: expected void *p
drivers/video/fbdev/geode/lxfb_ops.c:761:29: sparse: got void [noderef] __iomem *

vim +604 drivers/video/fbdev/geode/lxfb_ops.c

f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 584
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 585 static void lx_save_regs(struct lxfb_par *par)
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 586 {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 587 uint32_t filt;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 588 int i;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 589
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 590 /* wait for the BLT engine to stop being busy */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 591 do {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 592 i = read_gp(par, GP_BLT_STATUS);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 593 } while ((i & GP_BLT_STATUS_PB) || !(i & GP_BLT_STATUS_CE));
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 594
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 595 /* save MSRs */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 596 rdmsrl(MSR_LX_MSR_PADSEL, par->msr.padsel);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 597 rdmsrl(MSR_GLCP_DOTPLL, par->msr.dotpll);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 598 rdmsrl(MSR_LX_GLD_MSR_CONFIG, par->msr.dfglcfg);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 599 rdmsrl(MSR_LX_SPARE_MSR, par->msr.dcspare);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 600
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 601 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 602
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 603 /* save registers */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @604 memcpy(par->gp, par->gp_regs, sizeof(par->gp));
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @605 memcpy(par->dc, par->dc_regs, sizeof(par->dc));
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @606 memcpy(par->vp, par->vp_regs, sizeof(par->vp));
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @607 memcpy(par->fp, par->vp_regs + VP_FP_START, sizeof(par->fp));
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 608
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 609 /* save the display controller palette */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 610 write_dc(par, DC_PAL_ADDRESS, 0);
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 611 for (i = 0; i < ARRAY_SIZE(par->dc_pal); i++)
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 612 par->dc_pal[i] = read_dc(par, DC_PAL_DATA);
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 613
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 614 /* save the video processor palette */
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 615 write_vp(par, VP_PAR, 0);
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 616 for (i = 0; i < ARRAY_SIZE(par->vp_pal); i++)
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 617 par->vp_pal[i] = read_vp(par, VP_PDR);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 618
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 619 /* save the horizontal filter coefficients */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 620 filt = par->dc[DC_IRQ_FILT_CTL] | DC_IRQ_FILT_CTL_H_FILT_SEL;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 621 for (i = 0; i < ARRAY_SIZE(par->hcoeff); i += 2) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 622 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 623 par->hcoeff[i] = read_dc(par, DC_FILT_COEFF1);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 624 par->hcoeff[i + 1] = read_dc(par, DC_FILT_COEFF2);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 625 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 626
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 627 /* save the vertical filter coefficients */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 628 filt &= ~DC_IRQ_FILT_CTL_H_FILT_SEL;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 629 for (i = 0; i < ARRAY_SIZE(par->vcoeff); i++) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 630 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 631 par->vcoeff[i] = read_dc(par, DC_FILT_COEFF1);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 632 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 633
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 634 /* save video coeff ram */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 635 memcpy(par->vp_coeff, par->vp_regs + VP_VCR, sizeof(par->vp_coeff));
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 636 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 637
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 638 static void lx_restore_gfx_proc(struct lxfb_par *par)
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 639 {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 640 int i;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 641
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 642 /* a bunch of registers require GP_RASTER_MODE to be set first */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 643 write_gp(par, GP_RASTER_MODE, par->gp[GP_RASTER_MODE]);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 644
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 645 for (i = 0; i < ARRAY_SIZE(par->gp); i++) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 646 switch (i) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 647 case GP_RASTER_MODE:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 648 case GP_VECTOR_MODE:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 649 case GP_BLT_MODE:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 650 case GP_BLT_STATUS:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 651 case GP_HST_SRC:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 652 /* FIXME: restore LUT data */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 653 case GP_LUT_INDEX:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 654 case GP_LUT_DATA:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 655 /* don't restore these registers */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 656 break;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 657
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 658 default:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 659 write_gp(par, i, par->gp[i]);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 660 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 661 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 662 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 663
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 664 static void lx_restore_display_ctlr(struct lxfb_par *par)
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 665 {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 666 uint32_t filt;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 667 int i;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 668
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 669 wrmsrl(MSR_LX_SPARE_MSR, par->msr.dcspare);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 670
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 671 for (i = 0; i < ARRAY_SIZE(par->dc); i++) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 672 switch (i) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 673 case DC_UNLOCK:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 674 /* unlock the DC; runs first */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 675 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 676 break;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 677
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 678 case DC_GENERAL_CFG:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 679 case DC_DISPLAY_CFG:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 680 /* disable all while restoring */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 681 write_dc(par, i, 0);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 682 break;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 683
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 684 case DC_DV_CTL:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 685 /* set all ram to dirty */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 686 write_dc(par, i, par->dc[i] | DC_DV_CTL_CLEAR_DV_RAM);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 687
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 688 case DC_RSVD_1:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 689 case DC_RSVD_2:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 690 case DC_RSVD_3:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 691 case DC_LINE_CNT:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 692 case DC_PAL_ADDRESS:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 693 case DC_PAL_DATA:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 694 case DC_DFIFO_DIAG:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 695 case DC_CFIFO_DIAG:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 696 case DC_FILT_COEFF1:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 697 case DC_FILT_COEFF2:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 698 case DC_RSVD_4:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 699 case DC_RSVD_5:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 700 /* don't restore these registers */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 701 break;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 702
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 703 default:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 704 write_dc(par, i, par->dc[i]);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 705 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 706 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 707
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 708 /* restore the palette */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 709 write_dc(par, DC_PAL_ADDRESS, 0);
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 710 for (i = 0; i < ARRAY_SIZE(par->dc_pal); i++)
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 711 write_dc(par, DC_PAL_DATA, par->dc_pal[i]);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 712
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 713 /* restore the horizontal filter coefficients */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 714 filt = par->dc[DC_IRQ_FILT_CTL] | DC_IRQ_FILT_CTL_H_FILT_SEL;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 715 for (i = 0; i < ARRAY_SIZE(par->hcoeff); i += 2) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 716 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 717 write_dc(par, DC_FILT_COEFF1, par->hcoeff[i]);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 718 write_dc(par, DC_FILT_COEFF2, par->hcoeff[i + 1]);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 719 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 720
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 721 /* restore the vertical filter coefficients */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 722 filt &= ~DC_IRQ_FILT_CTL_H_FILT_SEL;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 723 for (i = 0; i < ARRAY_SIZE(par->vcoeff); i++) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 724 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 725 write_dc(par, DC_FILT_COEFF1, par->vcoeff[i]);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 726 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 727 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 728
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 729 static void lx_restore_video_proc(struct lxfb_par *par)
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 730 {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 731 int i;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 732
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 733 wrmsrl(MSR_LX_GLD_MSR_CONFIG, par->msr.dfglcfg);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 734 wrmsrl(MSR_LX_MSR_PADSEL, par->msr.padsel);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 735
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 736 for (i = 0; i < ARRAY_SIZE(par->vp); i++) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 737 switch (i) {
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 738 case VP_VCFG:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 739 case VP_DCFG:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 740 case VP_PAR:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 741 case VP_PDR:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 742 case VP_CCS:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 743 case VP_RSVD_0:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 744 /* case VP_VDC: */ /* why should this not be restored? */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 745 case VP_RSVD_1:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 746 case VP_CRC32:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 747 /* don't restore these registers */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 748 break;
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 749
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 750 default:
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 751 write_vp(par, i, par->vp[i]);
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 752 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 753 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 754
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 755 /* restore video processor palette */
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 756 write_vp(par, VP_PAR, 0);
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 757 for (i = 0; i < ARRAY_SIZE(par->vp_pal); i++)
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 758 write_vp(par, VP_PDR, par->vp_pal[i]);
16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 759
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 760 /* restore video coeff ram */
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @761 memcpy(par->vp_regs + VP_VCR, par->vp_coeff, sizeof(par->vp_coeff));
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 762 }
f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 763

:::::: The code at line 604 was first introduced by commit
:::::: f694e53bd0db69557ee8e0db2d1602818ff173b0 lxfb: add power management functionality

:::::: TO: Andres Salomon <dilinger@xxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip