tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 144c79ef33536b4ecb4951e07dbc1f2b7fa99d32 commit: df7a9ec3bc12c6464491d3bee0e7983f48bc04e4 fbdev: lxfb: use generic power management date: 6 months ago config: x86_64-randconfig-s031-20210309 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-262-g5e674421-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=df7a9ec3bc12c6464491d3bee0e7983f48bc04e4 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout df7a9ec3bc12c6464491d3bee0e7983f48bc04e4 # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> "sparse warnings: (new ones prefixed by >>)" >> drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: sparse: incorrect type >> in argument 2 (different address spaces) @@ expected void const *from @@ >> got void [noderef] __iomem *gp_regs @@ drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: expected void const *from drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: got void [noderef] __iomem *gp_regs >> drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: sparse: incorrect type >> in argument 2 (different address spaces) @@ expected void const *from @@ >> got void [noderef] __iomem *dc_regs @@ drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: expected void const *from drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: got void [noderef] __iomem *dc_regs >> drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: sparse: incorrect type >> in argument 2 (different address spaces) @@ expected void const *from @@ >> got void [noderef] __iomem *vp_regs @@ drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: expected void const *from drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: got void [noderef] __iomem *vp_regs >> drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: sparse: incorrect type >> in argument 2 (different address spaces) @@ expected void const *from @@ >> got void [noderef] __iomem * @@ drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: expected void const *from drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: got void [noderef] __iomem * drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void [noderef] __iomem * @@ drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: expected void const *from drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: got void [noderef] __iomem * >> drivers/video/fbdev/geode/lxfb_ops.c:759:9: sparse: sparse: incorrect type >> in argument 1 (different address spaces) @@ expected void *to @@ got >> void [noderef] __iomem * @@ drivers/video/fbdev/geode/lxfb_ops.c:759:9: sparse: expected void *to drivers/video/fbdev/geode/lxfb_ops.c:759:9: sparse: got void [noderef] __iomem * vim +602 drivers/video/fbdev/geode/lxfb_ops.c f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 582 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 583 static void lx_save_regs(struct lxfb_par *par) 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 uint32_t filt; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 586 int i; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 587 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 588 /* wait for the BLT engine to stop being busy */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 589 do { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 590 i = read_gp(par, GP_BLT_STATUS); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 591 } while ((i & GP_BLT_STATUS_PB) || !(i & GP_BLT_STATUS_CE)); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 592 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 593 /* save MSRs */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 594 rdmsrl(MSR_LX_MSR_PADSEL, par->msr.padsel); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 595 rdmsrl(MSR_GLCP_DOTPLL, par->msr.dotpll); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 596 rdmsrl(MSR_LX_GLD_MSR_CONFIG, par->msr.dfglcfg); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 597 rdmsrl(MSR_LX_SPARE_MSR, par->msr.dcspare); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 598 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 599 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK); 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 /* save registers */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @602 memcpy(par->gp, par->gp_regs, sizeof(par->gp)); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @603 memcpy(par->dc, par->dc_regs, sizeof(par->dc)); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @604 memcpy(par->vp, par->vp_regs, sizeof(par->vp)); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @605 memcpy(par->fp, par->vp_regs + VP_FP_START, sizeof(par->fp)); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 606 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 607 /* save the display controller palette */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 608 write_dc(par, DC_PAL_ADDRESS, 0); 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 609 for (i = 0; i < ARRAY_SIZE(par->dc_pal); i++) 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 610 par->dc_pal[i] = read_dc(par, DC_PAL_DATA); 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 611 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 612 /* save the video processor palette */ 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 613 write_vp(par, VP_PAR, 0); 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 614 for (i = 0; i < ARRAY_SIZE(par->vp_pal); i++) 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 615 par->vp_pal[i] = read_vp(par, VP_PDR); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 616 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 617 /* save the horizontal filter coefficients */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 618 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 619 for (i = 0; i < ARRAY_SIZE(par->hcoeff); i += 2) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 620 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 621 par->hcoeff[i] = read_dc(par, DC_FILT_COEFF1); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 622 par->hcoeff[i + 1] = read_dc(par, DC_FILT_COEFF2); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 623 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 624 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 625 /* save the vertical filter coefficients */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 626 filt &= ~DC_IRQ_FILT_CTL_H_FILT_SEL; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 627 for (i = 0; i < ARRAY_SIZE(par->vcoeff); i++) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 628 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 629 par->vcoeff[i] = read_dc(par, DC_FILT_COEFF1); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 630 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 631 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 632 /* save video coeff ram */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 633 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 634 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 635 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 636 static void lx_restore_gfx_proc(struct lxfb_par *par) 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 int i; 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 /* a bunch of registers require GP_RASTER_MODE to be set first */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 641 write_gp(par, GP_RASTER_MODE, par->gp[GP_RASTER_MODE]); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 642 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 643 for (i = 0; i < ARRAY_SIZE(par->gp); i++) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 644 switch (i) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 645 case GP_RASTER_MODE: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 646 case GP_VECTOR_MODE: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 647 case GP_BLT_MODE: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 648 case GP_BLT_STATUS: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 649 case GP_HST_SRC: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 650 /* FIXME: restore LUT data */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 651 case GP_LUT_INDEX: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 652 case GP_LUT_DATA: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 653 /* don't restore these registers */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 654 break; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 655 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 656 default: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 657 write_gp(par, i, par->gp[i]); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 658 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 659 } 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 static void lx_restore_display_ctlr(struct lxfb_par *par) 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 uint32_t filt; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 665 int i; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 666 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 667 wrmsrl(MSR_LX_SPARE_MSR, par->msr.dcspare); 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 for (i = 0; i < ARRAY_SIZE(par->dc); i++) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 670 switch (i) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 671 case DC_UNLOCK: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 672 /* unlock the DC; runs first */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 673 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 674 break; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 675 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 676 case DC_GENERAL_CFG: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 677 case DC_DISPLAY_CFG: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 678 /* disable all while restoring */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 679 write_dc(par, i, 0); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 680 break; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 681 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 682 case DC_DV_CTL: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 683 /* set all ram to dirty */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 684 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 685 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 686 case DC_RSVD_1: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 687 case DC_RSVD_2: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 688 case DC_RSVD_3: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 689 case DC_LINE_CNT: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 690 case DC_PAL_ADDRESS: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 691 case DC_PAL_DATA: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 692 case DC_DFIFO_DIAG: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 693 case DC_CFIFO_DIAG: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 694 case DC_FILT_COEFF1: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 695 case DC_FILT_COEFF2: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 696 case DC_RSVD_4: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 697 case DC_RSVD_5: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 698 /* don't restore these registers */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 699 break; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 700 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 701 default: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 702 write_dc(par, i, par->dc[i]); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 703 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 704 } 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 /* restore the palette */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 707 write_dc(par, DC_PAL_ADDRESS, 0); 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 708 for (i = 0; i < ARRAY_SIZE(par->dc_pal); i++) 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 709 write_dc(par, DC_PAL_DATA, par->dc_pal[i]); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 710 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 711 /* restore the horizontal filter coefficients */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 712 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 713 for (i = 0; i < ARRAY_SIZE(par->hcoeff); i += 2) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 714 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 715 write_dc(par, DC_FILT_COEFF1, par->hcoeff[i]); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 716 write_dc(par, DC_FILT_COEFF2, par->hcoeff[i + 1]); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 717 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 718 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 719 /* restore the vertical filter coefficients */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 720 filt &= ~DC_IRQ_FILT_CTL_H_FILT_SEL; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 721 for (i = 0; i < ARRAY_SIZE(par->vcoeff); i++) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 722 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 723 write_dc(par, DC_FILT_COEFF1, par->vcoeff[i]); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 724 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 725 } 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 static void lx_restore_video_proc(struct lxfb_par *par) 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 int i; 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 wrmsrl(MSR_LX_GLD_MSR_CONFIG, par->msr.dfglcfg); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 732 wrmsrl(MSR_LX_MSR_PADSEL, par->msr.padsel); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 733 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 734 for (i = 0; i < ARRAY_SIZE(par->vp); i++) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 735 switch (i) { f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 736 case VP_VCFG: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 737 case VP_DCFG: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 738 case VP_PAR: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 739 case VP_PDR: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 740 case VP_CCS: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 741 case VP_RSVD_0: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 742 /* case VP_VDC: */ /* why should this not be restored? */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 743 case VP_RSVD_1: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 744 case VP_CRC32: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 745 /* don't restore these registers */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 746 break; f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 747 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 748 default: f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 749 write_vp(par, i, par->vp[i]); f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 750 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 751 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 752 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 753 /* restore video processor palette */ 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 754 write_vp(par, VP_PAR, 0); 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 755 for (i = 0; i < ARRAY_SIZE(par->vp_pal); i++) 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 756 write_vp(par, VP_PDR, par->vp_pal[i]); 16cdd4336fdca9 drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 757 f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 758 /* restore video coeff ram */ f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @759 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 760 } f694e53bd0db69 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 761 :::::: The code at line 602 was first introduced by commit :::::: f694e53bd0db69557ee8e0db2d1602818ff173b0 lxfb: add power management functionality :::::: TO: Andres Salomon <dilin...@queued.net> :::::: CC: Linus Torvalds <torva...@linux-foundation.org> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip