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]
Message-ID: <202103091830.XuQtl2mt-lkp@intel.com>
Date:   Tue, 9 Mar 2021 18:31:36 +0800
From:   kernel test robot <lkp@...el.com>
To:     Vaibhav Gupta <vaibhavgupta40@...il.com>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org,
        Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>
Subject: drivers/video/fbdev/geode/lxfb_ops.c:602:9: 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:   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 <lkp@...el.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 <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" (40991 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ