lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Mon, 6 Jul 2020 10:55:43 +0800
From:   kernel test robot <lkp@...el.com>
To:     Luc Van Oostenryck <luc.vanoostenryck@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: drivers/video/fbdev/geode/lxfb_ops.c:604:28: sparse: sparse:
 incorrect type in argument 2 (different address spaces)

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@...el.com>


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@...ued.net>
:::::: CC: Linus Torvalds <torvalds@...ux-foundation.org>

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

Download attachment ".config.gz" of type "application/gzip" (36775 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ