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>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1426771061-28103-1-git-send-email-sudipm.mukherjee@gmail.com>
Date:	Thu, 19 Mar 2015 18:47:40 +0530
From:	Sudip Mukherjee <sudipm.mukherjee@...il.com>
To:	Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:	linux-fbdev@...r.kernel, devel@...verdev.osuosl.org,
	linux-kernel@...r.kernel.org,
	Sudip Mukherjee <sudipm.mukherjee@...il.com>
Subject: [PATCH 1/2] staging: sm750fb: remove 750LE code

750LE is a special version of the hardware with Ip Core and
Silicon Motion is making this hardware only for Huawei. It is not
available to anyone else.
So its better to remove the codes related to SM750LE.

Signed-off-by: Sudip Mukherjee <sudip@...torindia.org>
---

this patch will generate warning from checkpatch. but since those were
already there in the file so nothing has been done about it.
and I am not sure if this patch will apply or not as some patches
of Lorenzo Stoakes and Ragavendra Nagraj are already pending.
if those patches are already applied then this will not apply.

 drivers/staging/sm750fb/ddk750_chip.c  | 64 ++++++----------------------------
 drivers/staging/sm750fb/ddk750_mode.c  | 19 +++-------
 drivers/staging/sm750fb/ddk750_swi2c.c |  3 --
 drivers/staging/sm750fb/sm750.c        |  9 ++---
 drivers/staging/sm750fb/sm750_hw.c     | 55 ++++-------------------------
 5 files changed, 24 insertions(+), 126 deletions(-)

diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c
index 33add64..a8ebedd 100644
--- a/drivers/staging/sm750fb/ddk750_chip.c
+++ b/drivers/staging/sm750fb/ddk750_chip.c
@@ -20,22 +20,14 @@ logical_chip_type_t getChipType(void)
 	physicalID = devId750;//either 0x718 or 0x750
 	physicalRev = revId750;
 
-    if (physicalID == 0x718)
-    {
-        chip = SM718;
-    }
-    else if (physicalID == 0x750)
-    {
-        chip = SM750;
-		/* SM750 and SM750LE are different in their revision ID only. */
-		if (physicalRev == SM750LE_REVISION_ID){
-			chip = SM750LE;
-		}
-    }
-    else
-    {
-        chip = SM_UNKNOWN;
-    }
+	if (physicalID == 0x750)
+	{
+		chip = SM750;
+	}
+	else
+	{
+		chip = SM_UNKNOWN;
+	}
 
 	return chip;
 }
@@ -94,10 +86,6 @@ unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL)
 unsigned int getChipClock(void)
 {
     pll_value_t pll;
-#if 1
-	if(getChipType() == SM750LE)
-		return MHz(130);
-#endif
 
     return getPllValue(MXCLK_PLL, &pll);
 }
@@ -112,11 +100,6 @@ void setChipClock(unsigned int frequency)
 {
     pll_value_t pll;
     unsigned int ulActualMxClk;
-#if 1
-		/* Cheok_0509: For SM750LE, the chip clock is fixed. Nothing to set. */
-		if (getChipType() == SM750LE)
-			return;
-#endif
 
     if (frequency != 0)
     {
@@ -143,11 +126,7 @@ void setChipClock(unsigned int frequency)
 void setMemoryClock(unsigned int frequency)
 {
     unsigned int ulReg, divisor;
- #if 1
-	/* Cheok_0509: For SM750LE, the memory clock is fixed. Nothing to set. */
-	if (getChipType() == SM750LE)
-		return;
-#endif
+
     if (frequency != 0)
     {
         /* Set the frequency to the maximum frequency that the DDR Memory can take
@@ -193,11 +172,7 @@ void setMemoryClock(unsigned int frequency)
 void setMasterClock(unsigned int frequency)
 {
     unsigned int ulReg, divisor;
-  #if 1
-	/* Cheok_0509: For SM750LE, the memory clock is fixed. Nothing to set. */
-	if (getChipType() == SM750LE)
-		return;
-#endif
+
     if (frequency != 0)
     {
         /* Set the frequency to the maximum frequency that the SM750 engine can
@@ -237,10 +212,6 @@ unsigned int ddk750_getVMSize(void)
 	unsigned int reg;
 	unsigned int data;
 
-	/* sm750le only use 64 mb memory*/
-	if(getChipType() == SM750LE)
-		return MB(64);
-
 	/* for 750,always use power mode0*/
 	reg = PEEK32(MODE0_GATE);
 	reg = FIELD_SET(reg,MODE0_GATE,GPIO,ON);
@@ -291,12 +262,6 @@ int ddk750_initHw(initchip_param_t * pInitParam)
 		ulReg = FIELD_SET(ulReg,VGA_CONFIGURATION,PLL,PANEL);
 		ulReg = FIELD_SET(ulReg,VGA_CONFIGURATION,MODE,GRAPHIC);
 		POKE32(VGA_CONFIGURATION,ulReg);
-	}else{
-#if defined(__i386__) || defined( __x86_64__)
-		/* set graphic mode via IO method */
-		outb_p(0x88,0x3d4);
-		outb_p(0x06,0x3d5);
-#endif
 	}
 
 	/* Set the Main Chip Clock */
@@ -444,15 +409,6 @@ unsigned int calcPllValue(unsigned int request_orig,pll_value_t *pll)
 	unsigned int tmpClock,ret;
 	pllcalparam * xparm;
 
-#if 1
-	if (getChipType() == SM750LE)
-    {
-        /* SM750LE don't have prgrammable PLL and M/N values to work on.
-           Just return the requested clock. */
-        return request_orig;
-    }
-#endif
-
 	ret = 0;
 	miniDiff = ~0;
 	request = request_orig / 1000;
diff --git a/drivers/staging/sm750fb/ddk750_mode.c b/drivers/staging/sm750fb/ddk750_mode.c
index 2e418fb..44e346a 100644
--- a/drivers/staging/sm750fb/ddk750_mode.c
+++ b/drivers/staging/sm750fb/ddk750_mode.c
@@ -107,17 +107,13 @@ static int programModeRegisters(mode_parameter_t * pModeParam,pll_value_t * pll)
 					  FIELD_SET(0,CRT_DISPLAY_CTRL,PLANE,ENABLE);
 
 
-		if(getChipType() == SM750LE){
-			displayControlAdjust_SM750LE(pModeParam,ulTmpValue);
-		}else{
-			ulReg = PEEK32(CRT_DISPLAY_CTRL)
-					& FIELD_CLEAR(CRT_DISPLAY_CTRL,VSYNC_PHASE)
-					& FIELD_CLEAR(CRT_DISPLAY_CTRL,HSYNC_PHASE)
-					& FIELD_CLEAR(CRT_DISPLAY_CTRL,TIMING)
-					& FIELD_CLEAR(CRT_DISPLAY_CTRL,PLANE);
+		ulReg = PEEK32(CRT_DISPLAY_CTRL)
+			       & FIELD_CLEAR(CRT_DISPLAY_CTRL, VSYNC_PHASE)
+			       & FIELD_CLEAR(CRT_DISPLAY_CTRL, HSYNC_PHASE)
+			       & FIELD_CLEAR(CRT_DISPLAY_CTRL, TIMING)
+			       & FIELD_CLEAR(CRT_DISPLAY_CTRL, PLANE);
 
 			 POKE32(CRT_DISPLAY_CTRL,ulTmpValue|ulReg);
-		}
 
 	}
 	else if(pll->clockType == PRIMARY_PLL)
@@ -193,11 +189,6 @@ int ddk750_setModeTiming(mode_parameter_t * parm,clock_type_t clock)
 	pll.clockType = clock;
 
 	uiActualPixelClk = calcPllValue(parm->pixel_clock,&pll);
-	if(getChipType() == SM750LE){
-		/* set graphic mode via IO method */
-		outb_p(0x88,0x3d4);
-		outb_p(0x06,0x3d5);
-	}
 	programModeRegisters(parm,&pll);
 	return 0;
 }
diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c
index 8557cce..b162ced 100644
--- a/drivers/staging/sm750fb/ddk750_swi2c.c
+++ b/drivers/staging/sm750fb/ddk750_swi2c.c
@@ -410,9 +410,6 @@ long swI2CInit(
     if ((i2cClkGPIO > 31) || (i2cDataGPIO > 31))
         return -1;
 
-    if (getChipType() == SM750LE)
-        return swI2CInit_SM750LE(i2cClkGPIO, i2cDataGPIO);
-
     /* Initialize the GPIO pin for the i2c Clock Register */
     g_i2cClkGPIOMuxReg = GPIO_MUX;
     g_i2cClkGPIODataReg = GPIO_DATA;
diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
index a7b1b9c..8a6e36b 100644
--- a/drivers/staging/sm750fb/sm750.c
+++ b/drivers/staging/sm750fb/sm750.c
@@ -701,10 +701,10 @@ static int sm750fb_set_drv(struct lynxfb_par * par)
     output->proc_setMode = hw_sm750_output_setMode;
     output->proc_checkMode = hw_sm750_output_checkMode;
 
-    output->proc_setBLANK = (share->revid == SM750LE_REVISION_ID)?hw_sm750le_setBLANK:hw_sm750_setBLANK;
+    output->proc_setBLANK = hw_sm750_setBLANK;
     output->clear = hw_sm750_output_clear;
     /* chip specific phase */
-    share->accel.de_wait = (share->revid == SM750LE_REVISION_ID)?hw_sm750le_deWait: hw_sm750_deWait;
+    share->accel.de_wait = hw_sm750_deWait;
     switch (spec_share->state.dataflow)
     {
         case sm750_simul_pri:
@@ -1059,11 +1059,6 @@ NO_PARAM:
                 else
                     spec_share->state.dataflow = sm750_simul_pri;
             }
-        }else{
-            /* SM750LE only have one crt channel */
-            spec_share->state.dataflow = sm750_simul_sec;
-            /* sm750le do not have complex attributes*/
-            spec_share->state.nocrt = 0;
         }
 }
 
diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c
index 9f0d06d..f7d2db9 100644
--- a/drivers/staging/sm750fb/sm750_hw.c
+++ b/drivers/staging/sm750fb/sm750_hw.c
@@ -109,9 +109,7 @@ int hw_sm750_inithw(struct lynx_share* share, struct pci_dev * pdev)
 	spec_share = container_of(share, struct sm750_share,share);
 	parm = &spec_share->state.initParm;
 	if(parm->chip_clk == 0)
-		parm->chip_clk = (getChipType() == SM750LE)?
-						DEFAULT_SM750LE_CHIP_CLOCK :
-						DEFAULT_SM750_CHIP_CLOCK;
+		parm->chip_clk = DEFAULT_SM750_CHIP_CLOCK;
 
 	if(parm->mem_clk == 0)
 		parm->mem_clk = parm->chip_clk;
@@ -167,28 +165,6 @@ int hw_sm750_inithw(struct lynx_share* share, struct pci_dev * pdev)
 							spec_share->state.pnltype));
 			break;
 		}
-	}else{
-		/* for 750LE ,no DVI chip initilization makes Monitor no signal */
-		/* Set up GPIO for software I2C to program DVI chip in the
-		   Xilinx SP605 board, in order to have video signal.
-		 */
-        swI2CInit(0,1);
-
-
-        /* Customer may NOT use CH7301 DVI chip, which has to be
-           initialized differently.
-         */
-        if (swI2CReadReg(0xec, 0x4a) == 0x95)
-        {
-            /* The following register values for CH7301 are from
-               Chrontel app note and our experiment.
-             */
-			pr_info("yes,CH7301 DVI chip found\n");
-            swI2CWriteReg(0xec, 0x1d, 0x16);
-            swI2CWriteReg(0xec, 0x21, 0x9);
-            swI2CWriteReg(0xec, 0x49, 0xC0);
-			pr_info("okay,CH7301 DVI chip setup done\n");
-        }
 	}
 
 	/* init 2d engine */
@@ -247,12 +223,6 @@ int hw_sm750_output_setMode(struct lynxfb_output* output,
 
 		}
 		ddk750_setLogicalDispOut(dispSet);
-	}else{
-		/* just open DISPLAY_CONTROL_750LE register bit 3:0*/
-		u32 reg;
-		reg = PEEK32(DISPLAY_CONTROL_750LE);
-		reg |= 0xf;
-		POKE32(DISPLAY_CONTROL_750LE, reg);
 	}
 
 	pr_info("ddk setlogicdispout done \n");
@@ -557,25 +527,14 @@ void hw_sm750_initAccel(struct lynx_share * share)
 	u32 reg;
 	enable2DEngine(1);
 
-	if(getChipType() == SM750LE){
-		reg = PEEK32(DE_STATE1);
-		reg = FIELD_SET(reg, DE_STATE1, DE_ABORT,ON);
-		POKE32(DE_STATE1,reg);
-
-		reg = PEEK32(DE_STATE1);
-		reg = FIELD_SET(reg, DE_STATE1, DE_ABORT,OFF);
-		POKE32(DE_STATE1, reg);
-
-	}else{
 		/* engine reset */
-		reg = PEEK32(SYSTEM_CTRL);
-	    reg = FIELD_SET(reg, SYSTEM_CTRL, DE_ABORT,ON);
-		POKE32(SYSTEM_CTRL, reg);
+	reg = PEEK32(SYSTEM_CTRL);
+	reg = FIELD_SET(reg, SYSTEM_CTRL, DE_ABORT, ON);
+	POKE32(SYSTEM_CTRL, reg);
 
-		reg = PEEK32(SYSTEM_CTRL);
-		reg = FIELD_SET(reg, SYSTEM_CTRL, DE_ABORT,OFF);
-		POKE32(SYSTEM_CTRL, reg);
-	}
+	reg = PEEK32(SYSTEM_CTRL);
+	reg = FIELD_SET(reg, SYSTEM_CTRL, DE_ABORT, OFF);
+	POKE32(SYSTEM_CTRL, reg);
 
 	/* call 2d init */
 	share->accel.de_init(&share->accel);
-- 
1.8.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ