Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: sm750fb: use tabs for indentation

Replace spaces with tabs for indentation to fix the checkpatch.pl error
ERROR: code indent should use tabs where possible
WARNING: please, no spaces at the start of a line

Signed-off-by: Juston Li <juston.h.li@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Juston Li and committed by
Greg Kroah-Hartman
78376535 32491f56

+826 -826
+46 -46
drivers/staging/sm750fb/ddk750_display.c
··· 24 24 /* Timing should be enabled first before enabling the plane 25 25 * because changing at the same time does not guarantee that 26 26 * the plane will also enabled or disabled. 27 - */ 27 + */ 28 28 ulDisplayCtrlReg = FIELD_SET(ulDisplayCtrlReg, 29 29 PANEL_DISPLAY_CTRL, TIMING, ENABLE); 30 30 POKE32(PANEL_DISPLAY_CTRL, ulDisplayCtrlReg); ··· 135 135 if(!ctrl){ 136 136 /* primary controller */ 137 137 138 - /* Do not wait when the Primary PLL is off or display control is already off. 139 - This will prevent the software to wait forever. */ 138 + /* Do not wait when the Primary PLL is off or display control is already off. 139 + This will prevent the software to wait forever. */ 140 140 if ((FIELD_GET(PEEK32(PANEL_PLL_CTRL), PANEL_PLL_CTRL, POWER) == 141 141 PANEL_PLL_CTRL_POWER_OFF) || 142 142 (FIELD_GET(PEEK32(PANEL_DISPLAY_CTRL), PANEL_DISPLAY_CTRL, TIMING) == ··· 145 145 return; 146 146 } 147 147 148 - while (delay-- > 0) 149 - { 150 - /* Wait for end of vsync. */ 151 - do 152 - { 153 - status = FIELD_GET(PEEK32(SYSTEM_CTRL), 154 - SYSTEM_CTRL, 155 - PANEL_VSYNC); 156 - } 157 - while (status == SYSTEM_CTRL_PANEL_VSYNC_ACTIVE); 148 + while (delay-- > 0) 149 + { 150 + /* Wait for end of vsync. */ 151 + do 152 + { 153 + status = FIELD_GET(PEEK32(SYSTEM_CTRL), 154 + SYSTEM_CTRL, 155 + PANEL_VSYNC); 156 + } 157 + while (status == SYSTEM_CTRL_PANEL_VSYNC_ACTIVE); 158 158 159 - /* Wait for start of vsync. */ 160 - do 161 - { 162 - status = FIELD_GET(PEEK32(SYSTEM_CTRL), 163 - SYSTEM_CTRL, 164 - PANEL_VSYNC); 165 - } 166 - while (status == SYSTEM_CTRL_PANEL_VSYNC_INACTIVE); 167 - } 159 + /* Wait for start of vsync. */ 160 + do 161 + { 162 + status = FIELD_GET(PEEK32(SYSTEM_CTRL), 163 + SYSTEM_CTRL, 164 + PANEL_VSYNC); 165 + } 166 + while (status == SYSTEM_CTRL_PANEL_VSYNC_INACTIVE); 167 + } 168 168 169 169 }else{ 170 170 ··· 275 275 276 276 int ddk750_initDVIDisp(void) 277 277 { 278 - /* Initialize DVI. If the dviInit fail and the VendorID or the DeviceID are 279 - not zeroed, then set the failure flag. If it is zeroe, it might mean 280 - that the system is in Dual CRT Monitor configuration. */ 278 + /* Initialize DVI. If the dviInit fail and the VendorID or the DeviceID are 279 + not zeroed, then set the failure flag. If it is zeroe, it might mean 280 + that the system is in Dual CRT Monitor configuration. */ 281 281 282 - /* De-skew enabled with default 111b value. 283 - This will fix some artifacts problem in some mode on board 2.2. 284 - Somehow this fix does not affect board 2.1. 285 - */ 286 - if ((dviInit(1, /* Select Rising Edge */ 287 - 1, /* Select 24-bit bus */ 288 - 0, /* Select Single Edge clock */ 289 - 1, /* Enable HSync as is */ 290 - 1, /* Enable VSync as is */ 291 - 1, /* Enable De-skew */ 292 - 7, /* Set the de-skew setting to maximum setup */ 293 - 1, /* Enable continuous Sync */ 294 - 1, /* Enable PLL Filter */ 295 - 4 /* Use the recommended value for PLL Filter value */ 296 - ) != 0) && (dviGetVendorID() != 0x0000) && (dviGetDeviceID() != 0x0000)) 297 - { 298 - return (-1); 299 - } 282 + /* De-skew enabled with default 111b value. 283 + This will fix some artifacts problem in some mode on board 2.2. 284 + Somehow this fix does not affect board 2.1. 285 + */ 286 + if ((dviInit(1, /* Select Rising Edge */ 287 + 1, /* Select 24-bit bus */ 288 + 0, /* Select Single Edge clock */ 289 + 1, /* Enable HSync as is */ 290 + 1, /* Enable VSync as is */ 291 + 1, /* Enable De-skew */ 292 + 7, /* Set the de-skew setting to maximum setup */ 293 + 1, /* Enable continuous Sync */ 294 + 1, /* Enable PLL Filter */ 295 + 4 /* Use the recommended value for PLL Filter value */ 296 + ) != 0) && (dviGetVendorID() != 0x0000) && (dviGetDeviceID() != 0x0000)) 297 + { 298 + return (-1); 299 + } 300 300 301 - /* TODO: Initialize other display component */ 301 + /* TODO: Initialize other display component */ 302 302 303 - /* Success */ 304 - return 0; 303 + /* Success */ 304 + return 0; 305 305 306 306 } 307 307
+1 -1
drivers/staging/sm750fb/ddk750_display.h
··· 8 8 #define PNL_2_OFFSET 0 9 9 #define PNL_2_MASK (3 << PNL_2_OFFSET) 10 10 #define PNL_2_USAGE (PNL_2_MASK << 16) 11 - #define PNL_2_PRI ((0 << PNL_2_OFFSET)|PNL_2_USAGE) 11 + #define PNL_2_PRI ((0 << PNL_2_OFFSET)|PNL_2_USAGE) 12 12 #define PNL_2_SEC ((2 << PNL_2_OFFSET)|PNL_2_USAGE) 13 13 14 14
+33 -33
drivers/staging/sm750fb/ddk750_dvi.c
··· 12 12 static dvi_ctrl_device_t g_dcftSupportedDviController[] = 13 13 { 14 14 #ifdef DVI_CTRL_SII164 15 - { 16 - .pfnInit = sii164InitChip, 17 - .pfnGetVendorId = sii164GetVendorID, 18 - .pfnGetDeviceId = sii164GetDeviceID, 15 + { 16 + .pfnInit = sii164InitChip, 17 + .pfnGetVendorId = sii164GetVendorID, 18 + .pfnGetDeviceId = sii164GetDeviceID, 19 19 #ifdef SII164_FULL_FUNCTIONS 20 - .pfnResetChip = sii164ResetChip, 21 - .pfnGetChipString = sii164GetChipString, 22 - .pfnSetPower = sii164SetPower, 23 - .pfnEnableHotPlugDetection = sii164EnableHotPlugDetection, 24 - .pfnIsConnected = sii164IsConnected, 25 - .pfnCheckInterrupt = sii164CheckInterrupt, 26 - .pfnClearInterrupt = sii164ClearInterrupt, 20 + .pfnResetChip = sii164ResetChip, 21 + .pfnGetChipString = sii164GetChipString, 22 + .pfnSetPower = sii164SetPower, 23 + .pfnEnableHotPlugDetection = sii164EnableHotPlugDetection, 24 + .pfnIsConnected = sii164IsConnected, 25 + .pfnCheckInterrupt = sii164CheckInterrupt, 26 + .pfnClearInterrupt = sii164ClearInterrupt, 27 27 #endif 28 - }, 28 + }, 29 29 #endif 30 30 }; 31 31 32 32 33 33 int dviInit( 34 - unsigned char edgeSelect, 35 - unsigned char busSelect, 36 - unsigned char dualEdgeClkSelect, 37 - unsigned char hsyncEnable, 38 - unsigned char vsyncEnable, 39 - unsigned char deskewEnable, 40 - unsigned char deskewSetting, 41 - unsigned char continuousSyncEnable, 42 - unsigned char pllFilterEnable, 43 - unsigned char pllFilterValue 34 + unsigned char edgeSelect, 35 + unsigned char busSelect, 36 + unsigned char dualEdgeClkSelect, 37 + unsigned char hsyncEnable, 38 + unsigned char vsyncEnable, 39 + unsigned char deskewEnable, 40 + unsigned char deskewSetting, 41 + unsigned char continuousSyncEnable, 42 + unsigned char pllFilterEnable, 43 + unsigned char pllFilterValue 44 44 ) 45 45 { 46 46 dvi_ctrl_device_t *pCurrentDviCtrl; ··· 48 48 if(pCurrentDviCtrl->pfnInit != NULL) 49 49 { 50 50 return pCurrentDviCtrl->pfnInit(edgeSelect, busSelect, dualEdgeClkSelect, hsyncEnable, 51 - vsyncEnable, deskewEnable, deskewSetting, continuousSyncEnable, 52 - pllFilterEnable, pllFilterValue); 51 + vsyncEnable, deskewEnable, deskewSetting, continuousSyncEnable, 52 + pllFilterEnable, pllFilterValue); 53 53 } 54 54 return -1; /* error */ 55 55 } ··· 64 64 */ 65 65 unsigned short dviGetVendorID(void) 66 66 { 67 - dvi_ctrl_device_t *pCurrentDviCtrl; 67 + dvi_ctrl_device_t *pCurrentDviCtrl; 68 68 69 - pCurrentDviCtrl = g_dcftSupportedDviController; 70 - if (pCurrentDviCtrl != (dvi_ctrl_device_t *)0) 71 - return pCurrentDviCtrl->pfnGetVendorId(); 69 + pCurrentDviCtrl = g_dcftSupportedDviController; 70 + if (pCurrentDviCtrl != (dvi_ctrl_device_t *)0) 71 + return pCurrentDviCtrl->pfnGetVendorId(); 72 72 73 - return 0x0000; 73 + return 0x0000; 74 74 } 75 75 76 76 ··· 83 83 */ 84 84 unsigned short dviGetDeviceID(void) 85 85 { 86 - dvi_ctrl_device_t *pCurrentDviCtrl; 86 + dvi_ctrl_device_t *pCurrentDviCtrl; 87 87 88 88 pCurrentDviCtrl = g_dcftSupportedDviController; 89 - if (pCurrentDviCtrl != (dvi_ctrl_device_t *)0) 90 - return pCurrentDviCtrl->pfnGetDeviceId(); 89 + if (pCurrentDviCtrl != (dvi_ctrl_device_t *)0) 90 + return pCurrentDviCtrl->pfnGetDeviceId(); 91 91 92 - return 0x0000; 92 + return 0x0000; 93 93 } 94 94 95 95 #endif
+2 -2
drivers/staging/sm750fb/ddk750_help.h
··· 12 12 #if 0 13 13 /* if 718 big endian turned on,be aware that don't use this driver for general use,only for ppc big-endian */ 14 14 #warning "big endian on target cpu and enable nature big endian support of 718 capability !" 15 - #define PEEK32(addr) __raw_readl(mmio750 + addr) 16 - #define POKE32(addr, data) __raw_writel(data, mmio750 + addr) 15 + #define PEEK32(addr) __raw_readl(mmio750 + addr) 16 + #define POKE32(addr, data) __raw_writel(data, mmio750 + addr) 17 17 #else /* software control endianness */ 18 18 #define PEEK32(addr) readl(addr + mmio750) 19 19 #define POKE32(addr, data) writel(data, addr + mmio750)
+121 -121
drivers/staging/sm750fb/ddk750_hwi2c.c
··· 10 10 11 11 12 12 int hwI2CInit( 13 - unsigned char busSpeedMode 13 + unsigned char busSpeedMode 14 14 ) 15 15 { 16 - unsigned int value; 16 + unsigned int value; 17 17 18 - /* Enable GPIO 30 & 31 as IIC clock & data */ 18 + /* Enable GPIO 30 & 31 as IIC clock & data */ 19 19 value = PEEK32(GPIO_MUX); 20 20 21 - value = FIELD_SET(value, GPIO_MUX, 30, I2C) | 22 - FIELD_SET(0, GPIO_MUX, 31, I2C); 21 + value = FIELD_SET(value, GPIO_MUX, 30, I2C) | 22 + FIELD_SET(0, GPIO_MUX, 31, I2C); 23 23 POKE32(GPIO_MUX, value); 24 24 25 - /* Enable Hardware I2C power. 26 - TODO: Check if we need to enable GPIO power? 27 - */ 28 - enableI2C(1); 25 + /* Enable Hardware I2C power. 26 + TODO: Check if we need to enable GPIO power? 27 + */ 28 + enableI2C(1); 29 29 30 - /* Enable the I2C Controller and set the bus speed mode */ 31 - value = PEEK32(I2C_CTRL); 32 - if (busSpeedMode == 0) 33 - value = FIELD_SET(value, I2C_CTRL, MODE, STANDARD); 34 - else 35 - value = FIELD_SET(value, I2C_CTRL, MODE, FAST); 36 - value = FIELD_SET(value, I2C_CTRL, EN, ENABLE); 37 - POKE32(I2C_CTRL, value); 30 + /* Enable the I2C Controller and set the bus speed mode */ 31 + value = PEEK32(I2C_CTRL); 32 + if (busSpeedMode == 0) 33 + value = FIELD_SET(value, I2C_CTRL, MODE, STANDARD); 34 + else 35 + value = FIELD_SET(value, I2C_CTRL, MODE, FAST); 36 + value = FIELD_SET(value, I2C_CTRL, EN, ENABLE); 37 + POKE32(I2C_CTRL, value); 38 38 39 - return 0; 39 + return 0; 40 40 } 41 41 42 42 43 43 void hwI2CClose(void) 44 44 { 45 - unsigned int value; 45 + unsigned int value; 46 46 47 - /* Disable I2C controller */ 48 - value = PEEK32(I2C_CTRL); 49 - value = FIELD_SET(value, I2C_CTRL, EN, DISABLE); 50 - POKE32(I2C_CTRL, value); 47 + /* Disable I2C controller */ 48 + value = PEEK32(I2C_CTRL); 49 + value = FIELD_SET(value, I2C_CTRL, EN, DISABLE); 50 + POKE32(I2C_CTRL, value); 51 51 52 - /* Disable I2C Power */ 53 - enableI2C(0); 52 + /* Disable I2C Power */ 53 + enableI2C(0); 54 54 55 - /* Set GPIO 30 & 31 back as GPIO pins */ 56 - value = PEEK32(GPIO_MUX); 57 - value = FIELD_SET(value, GPIO_MUX, 30, GPIO); 58 - value = FIELD_SET(value, GPIO_MUX, 31, GPIO); 59 - POKE32(GPIO_MUX, value); 55 + /* Set GPIO 30 & 31 back as GPIO pins */ 56 + value = PEEK32(GPIO_MUX); 57 + value = FIELD_SET(value, GPIO_MUX, 30, GPIO); 58 + value = FIELD_SET(value, GPIO_MUX, 31, GPIO); 59 + POKE32(GPIO_MUX, value); 60 60 } 61 61 62 62 63 63 static long hwI2CWaitTXDone(void) 64 64 { 65 - unsigned int timeout; 65 + unsigned int timeout; 66 66 67 - /* Wait until the transfer is completed. */ 68 - timeout = HWI2C_WAIT_TIMEOUT; 67 + /* Wait until the transfer is completed. */ 68 + timeout = HWI2C_WAIT_TIMEOUT; 69 69 while ((FIELD_GET(PEEK32(I2C_STATUS), I2C_STATUS, TX) != I2C_STATUS_TX_COMPLETED) && 70 - (timeout != 0)) 70 + (timeout != 0)) 71 71 timeout--; 72 72 73 73 if (timeout == 0) 74 - return (-1); 74 + return (-1); 75 75 76 - return 0; 76 + return 0; 77 77 } 78 78 79 79 ··· 91 91 * Total number of bytes those are actually written. 92 92 */ 93 93 static unsigned int hwI2CWriteData( 94 - unsigned char deviceAddress, 95 - unsigned int length, 96 - unsigned char *pBuffer 94 + unsigned char deviceAddress, 95 + unsigned int length, 96 + unsigned char *pBuffer 97 97 ) 98 98 { 99 - unsigned char count, i; 100 - unsigned int totalBytes = 0; 99 + unsigned char count, i; 100 + unsigned int totalBytes = 0; 101 101 102 - /* Set the Device Address */ 103 - POKE32(I2C_SLAVE_ADDRESS, deviceAddress & ~0x01); 102 + /* Set the Device Address */ 103 + POKE32(I2C_SLAVE_ADDRESS, deviceAddress & ~0x01); 104 104 105 - /* Write data. 106 - * Note: 107 - * Only 16 byte can be accessed per i2c start instruction. 108 - */ 109 - do 110 - { 111 - /* Reset I2C by writing 0 to I2C_RESET register to clear the previous status. */ 112 - POKE32(I2C_RESET, 0); 105 + /* Write data. 106 + * Note: 107 + * Only 16 byte can be accessed per i2c start instruction. 108 + */ 109 + do 110 + { 111 + /* Reset I2C by writing 0 to I2C_RESET register to clear the previous status. */ 112 + POKE32(I2C_RESET, 0); 113 113 114 - /* Set the number of bytes to be written */ 115 - if (length < MAX_HWI2C_FIFO) 116 - count = length - 1; 117 - else 118 - count = MAX_HWI2C_FIFO - 1; 119 - POKE32(I2C_BYTE_COUNT, count); 114 + /* Set the number of bytes to be written */ 115 + if (length < MAX_HWI2C_FIFO) 116 + count = length - 1; 117 + else 118 + count = MAX_HWI2C_FIFO - 1; 119 + POKE32(I2C_BYTE_COUNT, count); 120 120 121 - /* Move the data to the I2C data register */ 122 - for (i = 0; i <= count; i++) 123 - POKE32(I2C_DATA0 + i, *pBuffer++); 121 + /* Move the data to the I2C data register */ 122 + for (i = 0; i <= count; i++) 123 + POKE32(I2C_DATA0 + i, *pBuffer++); 124 124 125 - /* Start the I2C */ 126 - POKE32(I2C_CTRL, FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); 125 + /* Start the I2C */ 126 + POKE32(I2C_CTRL, FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); 127 127 128 - /* Wait until the transfer is completed. */ 129 - if (hwI2CWaitTXDone() != 0) 130 - break; 128 + /* Wait until the transfer is completed. */ 129 + if (hwI2CWaitTXDone() != 0) 130 + break; 131 131 132 - /* Substract length */ 133 - length -= (count + 1); 132 + /* Substract length */ 133 + length -= (count + 1); 134 134 135 - /* Total byte written */ 136 - totalBytes += (count + 1); 135 + /* Total byte written */ 136 + totalBytes += (count + 1); 137 137 138 - } while (length > 0); 138 + } while (length > 0); 139 139 140 - return totalBytes; 140 + return totalBytes; 141 141 } 142 142 143 143 ··· 158 158 * Total number of actual bytes read from the slave device 159 159 */ 160 160 static unsigned int hwI2CReadData( 161 - unsigned char deviceAddress, 162 - unsigned int length, 163 - unsigned char *pBuffer 161 + unsigned char deviceAddress, 162 + unsigned int length, 163 + unsigned char *pBuffer 164 164 ) 165 165 { 166 - unsigned char count, i; 167 - unsigned int totalBytes = 0; 166 + unsigned char count, i; 167 + unsigned int totalBytes = 0; 168 168 169 - /* Set the Device Address */ 170 - POKE32(I2C_SLAVE_ADDRESS, deviceAddress | 0x01); 169 + /* Set the Device Address */ 170 + POKE32(I2C_SLAVE_ADDRESS, deviceAddress | 0x01); 171 171 172 - /* Read data and save them to the buffer. 173 - * Note: 174 - * Only 16 byte can be accessed per i2c start instruction. 175 - */ 176 - do 177 - { 178 - /* Reset I2C by writing 0 to I2C_RESET register to clear all the status. */ 179 - POKE32(I2C_RESET, 0); 172 + /* Read data and save them to the buffer. 173 + * Note: 174 + * Only 16 byte can be accessed per i2c start instruction. 175 + */ 176 + do 177 + { 178 + /* Reset I2C by writing 0 to I2C_RESET register to clear all the status. */ 179 + POKE32(I2C_RESET, 0); 180 180 181 - /* Set the number of bytes to be read */ 182 - if (length <= MAX_HWI2C_FIFO) 183 - count = length - 1; 184 - else 185 - count = MAX_HWI2C_FIFO - 1; 186 - POKE32(I2C_BYTE_COUNT, count); 181 + /* Set the number of bytes to be read */ 182 + if (length <= MAX_HWI2C_FIFO) 183 + count = length - 1; 184 + else 185 + count = MAX_HWI2C_FIFO - 1; 186 + POKE32(I2C_BYTE_COUNT, count); 187 187 188 - /* Start the I2C */ 189 - POKE32(I2C_CTRL, FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); 188 + /* Start the I2C */ 189 + POKE32(I2C_CTRL, FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); 190 190 191 - /* Wait until transaction done. */ 192 - if (hwI2CWaitTXDone() != 0) 193 - break; 191 + /* Wait until transaction done. */ 192 + if (hwI2CWaitTXDone() != 0) 193 + break; 194 194 195 - /* Save the data to the given buffer */ 196 - for (i = 0; i <= count; i++) 197 - *pBuffer++ = PEEK32(I2C_DATA0 + i); 195 + /* Save the data to the given buffer */ 196 + for (i = 0; i <= count; i++) 197 + *pBuffer++ = PEEK32(I2C_DATA0 + i); 198 198 199 - /* Substract length by 16 */ 200 - length -= (count + 1); 199 + /* Substract length by 16 */ 200 + length -= (count + 1); 201 201 202 - /* Number of bytes read. */ 203 - totalBytes += (count + 1); 202 + /* Number of bytes read. */ 203 + totalBytes += (count + 1); 204 204 205 - } while (length > 0); 205 + } while (length > 0); 206 206 207 - return totalBytes; 207 + return totalBytes; 208 208 } 209 209 210 210 ··· 222 222 * Register value 223 223 */ 224 224 unsigned char hwI2CReadReg( 225 - unsigned char deviceAddress, 226 - unsigned char registerIndex 225 + unsigned char deviceAddress, 226 + unsigned char registerIndex 227 227 ) 228 228 { 229 - unsigned char value = (0xFF); 229 + unsigned char value = (0xFF); 230 230 231 - if (hwI2CWriteData(deviceAddress, 1, &registerIndex) == 1) 232 - hwI2CReadData(deviceAddress, 1, &value); 231 + if (hwI2CWriteData(deviceAddress, 1, &registerIndex) == 1) 232 + hwI2CReadData(deviceAddress, 1, &value); 233 233 234 - return value; 234 + return value; 235 235 } 236 236 237 237 ··· 252 252 * -1 - Fail 253 253 */ 254 254 int hwI2CWriteReg( 255 - unsigned char deviceAddress, 256 - unsigned char registerIndex, 257 - unsigned char data 255 + unsigned char deviceAddress, 256 + unsigned char registerIndex, 257 + unsigned char data 258 258 ) 259 259 { 260 - unsigned char value[2]; 260 + unsigned char value[2]; 261 261 262 - value[0] = registerIndex; 263 - value[1] = data; 264 - if (hwI2CWriteData(deviceAddress, 2, value) == 2) 265 - return 0; 262 + value[0] = registerIndex; 263 + value[1] = data; 264 + if (hwI2CWriteData(deviceAddress, 2, value) == 2) 265 + return 0; 266 266 267 - return (-1); 267 + return (-1); 268 268 } 269 269 270 270
+67 -67
drivers/staging/sm750fb/ddk750_mode.c
··· 20 20 x = pModeParam->horizontal_display_end; 21 21 y = pModeParam->vertical_display_end; 22 22 23 - /* SM750LE has to set up the top-left and bottom-right 24 - registers as well. 25 - Note that normal SM750/SM718 only use those two register for 26 - auto-centering mode. 27 - */ 28 - POKE32(CRT_AUTO_CENTERING_TL, 29 - FIELD_VALUE(0, CRT_AUTO_CENTERING_TL, TOP, 0) 30 - | FIELD_VALUE(0, CRT_AUTO_CENTERING_TL, LEFT, 0)); 23 + /* SM750LE has to set up the top-left and bottom-right 24 + registers as well. 25 + Note that normal SM750/SM718 only use those two register for 26 + auto-centering mode. 27 + */ 28 + POKE32(CRT_AUTO_CENTERING_TL, 29 + FIELD_VALUE(0, CRT_AUTO_CENTERING_TL, TOP, 0) 30 + | FIELD_VALUE(0, CRT_AUTO_CENTERING_TL, LEFT, 0)); 31 31 32 - POKE32(CRT_AUTO_CENTERING_BR, 33 - FIELD_VALUE(0, CRT_AUTO_CENTERING_BR, BOTTOM, y-1) 34 - | FIELD_VALUE(0, CRT_AUTO_CENTERING_BR, RIGHT, x-1)); 32 + POKE32(CRT_AUTO_CENTERING_BR, 33 + FIELD_VALUE(0, CRT_AUTO_CENTERING_BR, BOTTOM, y-1) 34 + | FIELD_VALUE(0, CRT_AUTO_CENTERING_BR, RIGHT, x-1)); 35 35 36 - /* Assume common fields in dispControl have been properly set before 37 - calling this function. 38 - This function only sets the extra fields in dispControl. 39 - */ 36 + /* Assume common fields in dispControl have been properly set before 37 + calling this function. 38 + This function only sets the extra fields in dispControl. 39 + */ 40 40 41 41 /* Clear bit 29:27 of display control register */ 42 - dispControl &= FIELD_CLEAR(CRT_DISPLAY_CTRL, CLK); 42 + dispControl &= FIELD_CLEAR(CRT_DISPLAY_CTRL, CLK); 43 43 44 44 /* Set bit 29:27 of display control register for the right clock */ 45 45 /* Note that SM750LE only need to supported 7 resoluitons. */ 46 46 if ( x == 800 && y == 600 ) 47 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL41); 47 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL41); 48 48 else if (x == 1024 && y == 768) 49 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL65); 49 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL65); 50 50 else if (x == 1152 && y == 864) 51 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL80); 51 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL80); 52 52 else if (x == 1280 && y == 768) 53 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL80); 53 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL80); 54 54 else if (x == 1280 && y == 720) 55 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL74); 55 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL74); 56 56 else if (x == 1280 && y == 960) 57 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL108); 57 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL108); 58 58 else if (x == 1280 && y == 1024) 59 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL108); 59 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL108); 60 60 else /* default to VGA clock */ 61 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL25); 61 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, PLL25); 62 62 63 63 /* Set bit 25:24 of display controller */ 64 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CRTSELECT, CRT); 65 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, RGBBIT, 24BIT); 64 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CRTSELECT, CRT); 65 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, RGBBIT, 24BIT); 66 66 67 - /* Set bit 14 of display controller */ 68 - dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLOCK_PHASE, ACTIVE_LOW); 67 + /* Set bit 14 of display controller */ 68 + dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLOCK_PHASE, ACTIVE_LOW); 69 69 70 - POKE32(CRT_DISPLAY_CTRL, dispControl); 70 + POKE32(CRT_DISPLAY_CTRL, dispControl); 71 71 72 72 return dispControl; 73 73 } ··· 84 84 { 85 85 /* programe secondary pixel clock */ 86 86 POKE32(CRT_PLL_CTRL, formatPllReg(pll)); 87 - POKE32(CRT_HORIZONTAL_TOTAL, 88 - FIELD_VALUE(0, CRT_HORIZONTAL_TOTAL, TOTAL, pModeParam->horizontal_total - 1) 89 - | FIELD_VALUE(0, CRT_HORIZONTAL_TOTAL, DISPLAY_END, pModeParam->horizontal_display_end - 1)); 87 + POKE32(CRT_HORIZONTAL_TOTAL, 88 + FIELD_VALUE(0, CRT_HORIZONTAL_TOTAL, TOTAL, pModeParam->horizontal_total - 1) 89 + | FIELD_VALUE(0, CRT_HORIZONTAL_TOTAL, DISPLAY_END, pModeParam->horizontal_display_end - 1)); 90 90 91 - POKE32(CRT_HORIZONTAL_SYNC, 92 - FIELD_VALUE(0, CRT_HORIZONTAL_SYNC, WIDTH, pModeParam->horizontal_sync_width) 93 - | FIELD_VALUE(0, CRT_HORIZONTAL_SYNC, START, pModeParam->horizontal_sync_start - 1)); 91 + POKE32(CRT_HORIZONTAL_SYNC, 92 + FIELD_VALUE(0, CRT_HORIZONTAL_SYNC, WIDTH, pModeParam->horizontal_sync_width) 93 + | FIELD_VALUE(0, CRT_HORIZONTAL_SYNC, START, pModeParam->horizontal_sync_start - 1)); 94 94 95 - POKE32(CRT_VERTICAL_TOTAL, 96 - FIELD_VALUE(0, CRT_VERTICAL_TOTAL, TOTAL, pModeParam->vertical_total - 1) 97 - | FIELD_VALUE(0, CRT_VERTICAL_TOTAL, DISPLAY_END, pModeParam->vertical_display_end - 1)); 95 + POKE32(CRT_VERTICAL_TOTAL, 96 + FIELD_VALUE(0, CRT_VERTICAL_TOTAL, TOTAL, pModeParam->vertical_total - 1) 97 + | FIELD_VALUE(0, CRT_VERTICAL_TOTAL, DISPLAY_END, pModeParam->vertical_display_end - 1)); 98 98 99 - POKE32(CRT_VERTICAL_SYNC, 100 - FIELD_VALUE(0, CRT_VERTICAL_SYNC, HEIGHT, pModeParam->vertical_sync_height) 101 - | FIELD_VALUE(0, CRT_VERTICAL_SYNC, START, pModeParam->vertical_sync_start - 1)); 99 + POKE32(CRT_VERTICAL_SYNC, 100 + FIELD_VALUE(0, CRT_VERTICAL_SYNC, HEIGHT, pModeParam->vertical_sync_height) 101 + | FIELD_VALUE(0, CRT_VERTICAL_SYNC, START, pModeParam->vertical_sync_start - 1)); 102 102 103 103 104 104 ulTmpValue = FIELD_VALUE(0, CRT_DISPLAY_CTRL, VSYNC_PHASE, pModeParam->vertical_sync_polarity)| ··· 125 125 unsigned int ulReservedBits; 126 126 POKE32(PANEL_PLL_CTRL, formatPllReg(pll)); 127 127 128 - POKE32(PANEL_HORIZONTAL_TOTAL, 129 - FIELD_VALUE(0, PANEL_HORIZONTAL_TOTAL, TOTAL, pModeParam->horizontal_total - 1) 130 - | FIELD_VALUE(0, PANEL_HORIZONTAL_TOTAL, DISPLAY_END, pModeParam->horizontal_display_end - 1)); 128 + POKE32(PANEL_HORIZONTAL_TOTAL, 129 + FIELD_VALUE(0, PANEL_HORIZONTAL_TOTAL, TOTAL, pModeParam->horizontal_total - 1) 130 + | FIELD_VALUE(0, PANEL_HORIZONTAL_TOTAL, DISPLAY_END, pModeParam->horizontal_display_end - 1)); 131 131 132 - POKE32(PANEL_HORIZONTAL_SYNC, 133 - FIELD_VALUE(0, PANEL_HORIZONTAL_SYNC, WIDTH, pModeParam->horizontal_sync_width) 134 - | FIELD_VALUE(0, PANEL_HORIZONTAL_SYNC, START, pModeParam->horizontal_sync_start - 1)); 132 + POKE32(PANEL_HORIZONTAL_SYNC, 133 + FIELD_VALUE(0, PANEL_HORIZONTAL_SYNC, WIDTH, pModeParam->horizontal_sync_width) 134 + | FIELD_VALUE(0, PANEL_HORIZONTAL_SYNC, START, pModeParam->horizontal_sync_start - 1)); 135 135 136 - POKE32(PANEL_VERTICAL_TOTAL, 137 - FIELD_VALUE(0, PANEL_VERTICAL_TOTAL, TOTAL, pModeParam->vertical_total - 1) 138 - | FIELD_VALUE(0, PANEL_VERTICAL_TOTAL, DISPLAY_END, pModeParam->vertical_display_end - 1)); 136 + POKE32(PANEL_VERTICAL_TOTAL, 137 + FIELD_VALUE(0, PANEL_VERTICAL_TOTAL, TOTAL, pModeParam->vertical_total - 1) 138 + | FIELD_VALUE(0, PANEL_VERTICAL_TOTAL, DISPLAY_END, pModeParam->vertical_display_end - 1)); 139 139 140 - POKE32(PANEL_VERTICAL_SYNC, 141 - FIELD_VALUE(0, PANEL_VERTICAL_SYNC, HEIGHT, pModeParam->vertical_sync_height) 142 - | FIELD_VALUE(0, PANEL_VERTICAL_SYNC, START, pModeParam->vertical_sync_start - 1)); 140 + POKE32(PANEL_VERTICAL_SYNC, 141 + FIELD_VALUE(0, PANEL_VERTICAL_SYNC, HEIGHT, pModeParam->vertical_sync_height) 142 + | FIELD_VALUE(0, PANEL_VERTICAL_SYNC, START, pModeParam->vertical_sync_start - 1)); 143 143 144 144 ulTmpValue = FIELD_VALUE(0, PANEL_DISPLAY_CTRL, VSYNC_PHASE, pModeParam->vertical_sync_polarity)| 145 - FIELD_VALUE(0, PANEL_DISPLAY_CTRL, HSYNC_PHASE, pModeParam->horizontal_sync_polarity)| 146 - FIELD_VALUE(0, PANEL_DISPLAY_CTRL, CLOCK_PHASE, pModeParam->clock_phase_polarity)| 147 - FIELD_SET(0, PANEL_DISPLAY_CTRL, TIMING, ENABLE)| 148 - FIELD_SET(0, PANEL_DISPLAY_CTRL, PLANE, ENABLE); 145 + FIELD_VALUE(0, PANEL_DISPLAY_CTRL, HSYNC_PHASE, pModeParam->horizontal_sync_polarity)| 146 + FIELD_VALUE(0, PANEL_DISPLAY_CTRL, CLOCK_PHASE, pModeParam->clock_phase_polarity)| 147 + FIELD_SET(0, PANEL_DISPLAY_CTRL, TIMING, ENABLE)| 148 + FIELD_SET(0, PANEL_DISPLAY_CTRL, PLANE, ENABLE); 149 149 150 - ulReservedBits = FIELD_SET(0, PANEL_DISPLAY_CTRL, RESERVED_1_MASK, ENABLE) | 151 - FIELD_SET(0, PANEL_DISPLAY_CTRL, RESERVED_2_MASK, ENABLE) | 152 - FIELD_SET(0, PANEL_DISPLAY_CTRL, RESERVED_3_MASK, ENABLE)| 153 - FIELD_SET(0, PANEL_DISPLAY_CTRL, VSYNC, ACTIVE_LOW); 150 + ulReservedBits = FIELD_SET(0, PANEL_DISPLAY_CTRL, RESERVED_1_MASK, ENABLE) | 151 + FIELD_SET(0, PANEL_DISPLAY_CTRL, RESERVED_2_MASK, ENABLE) | 152 + FIELD_SET(0, PANEL_DISPLAY_CTRL, RESERVED_3_MASK, ENABLE)| 153 + FIELD_SET(0, PANEL_DISPLAY_CTRL, VSYNC, ACTIVE_LOW); 154 154 155 - ulReg = (PEEK32(PANEL_DISPLAY_CTRL) & ~ulReservedBits) 156 - & FIELD_CLEAR(PANEL_DISPLAY_CTRL, CLOCK_PHASE) 157 - & FIELD_CLEAR(PANEL_DISPLAY_CTRL, VSYNC_PHASE) 158 - & FIELD_CLEAR(PANEL_DISPLAY_CTRL, HSYNC_PHASE) 159 - & FIELD_CLEAR(PANEL_DISPLAY_CTRL, TIMING) 160 - & FIELD_CLEAR(PANEL_DISPLAY_CTRL, PLANE); 155 + ulReg = (PEEK32(PANEL_DISPLAY_CTRL) & ~ulReservedBits) 156 + & FIELD_CLEAR(PANEL_DISPLAY_CTRL, CLOCK_PHASE) 157 + & FIELD_CLEAR(PANEL_DISPLAY_CTRL, VSYNC_PHASE) 158 + & FIELD_CLEAR(PANEL_DISPLAY_CTRL, HSYNC_PHASE) 159 + & FIELD_CLEAR(PANEL_DISPLAY_CTRL, TIMING) 160 + & FIELD_CLEAR(PANEL_DISPLAY_CTRL, PLANE); 161 161 162 162 163 163 /* May a hardware bug or just my test chip (not confirmed).
+20 -20
drivers/staging/sm750fb/ddk750_mode.h
··· 5 5 6 6 typedef enum _spolarity_t 7 7 { 8 - POS = 0, /* positive */ 9 - NEG, /* negative */ 8 + POS = 0, /* positive */ 9 + NEG, /* negative */ 10 10 } 11 11 spolarity_t; 12 12 13 13 14 14 typedef struct _mode_parameter_t 15 15 { 16 - /* Horizontal timing. */ 17 - unsigned long horizontal_total; 18 - unsigned long horizontal_display_end; 19 - unsigned long horizontal_sync_start; 20 - unsigned long horizontal_sync_width; 21 - spolarity_t horizontal_sync_polarity; 16 + /* Horizontal timing. */ 17 + unsigned long horizontal_total; 18 + unsigned long horizontal_display_end; 19 + unsigned long horizontal_sync_start; 20 + unsigned long horizontal_sync_width; 21 + spolarity_t horizontal_sync_polarity; 22 22 23 - /* Vertical timing. */ 24 - unsigned long vertical_total; 25 - unsigned long vertical_display_end; 26 - unsigned long vertical_sync_start; 27 - unsigned long vertical_sync_height; 28 - spolarity_t vertical_sync_polarity; 23 + /* Vertical timing. */ 24 + unsigned long vertical_total; 25 + unsigned long vertical_display_end; 26 + unsigned long vertical_sync_start; 27 + unsigned long vertical_sync_height; 28 + spolarity_t vertical_sync_polarity; 29 29 30 - /* Refresh timing. */ 31 - unsigned long pixel_clock; 32 - unsigned long horizontal_frequency; 33 - unsigned long vertical_frequency; 30 + /* Refresh timing. */ 31 + unsigned long pixel_clock; 32 + unsigned long horizontal_frequency; 33 + unsigned long vertical_frequency; 34 34 35 - /* Clock Phase. This clock phase only applies to Panel. */ 36 - spolarity_t clock_phase_polarity; 35 + /* Clock Phase. This clock phase only applies to Panel. */ 36 + spolarity_t clock_phase_polarity; 37 37 } 38 38 mode_parameter_t; 39 39
+120 -120
drivers/staging/sm750fb/ddk750_power.c
··· 19 19 { 20 20 if(getChipType() == SM750LE) 21 21 return 0; 22 - return (FIELD_GET(PEEK32(POWER_MODE_CTRL), POWER_MODE_CTRL, MODE)); 22 + return (FIELD_GET(PEEK32(POWER_MODE_CTRL), POWER_MODE_CTRL, MODE)); 23 23 } 24 24 25 25 ··· 29 29 */ 30 30 void setPowerMode(unsigned int powerMode) 31 31 { 32 - unsigned int control_value = 0; 32 + unsigned int control_value = 0; 33 33 34 - control_value = PEEK32(POWER_MODE_CTRL); 34 + control_value = PEEK32(POWER_MODE_CTRL); 35 35 36 36 if(getChipType() == SM750LE) 37 37 return; 38 38 39 - switch (powerMode) 40 - { 41 - case POWER_MODE_CTRL_MODE_MODE0: 42 - control_value = FIELD_SET(control_value, POWER_MODE_CTRL, MODE, MODE0); 43 - break; 39 + switch (powerMode) 40 + { 41 + case POWER_MODE_CTRL_MODE_MODE0: 42 + control_value = FIELD_SET(control_value, POWER_MODE_CTRL, MODE, MODE0); 43 + break; 44 44 45 - case POWER_MODE_CTRL_MODE_MODE1: 46 - control_value = FIELD_SET(control_value, POWER_MODE_CTRL, MODE, MODE1); 47 - break; 45 + case POWER_MODE_CTRL_MODE_MODE1: 46 + control_value = FIELD_SET(control_value, POWER_MODE_CTRL, MODE, MODE1); 47 + break; 48 48 49 - case POWER_MODE_CTRL_MODE_SLEEP: 50 - control_value = FIELD_SET(control_value, POWER_MODE_CTRL, MODE, SLEEP); 51 - break; 49 + case POWER_MODE_CTRL_MODE_SLEEP: 50 + control_value = FIELD_SET(control_value, POWER_MODE_CTRL, MODE, SLEEP); 51 + break; 52 52 53 - default: 54 - break; 55 - } 53 + default: 54 + break; 55 + } 56 56 57 - /* Set up other fields in Power Control Register */ 58 - if (powerMode == POWER_MODE_CTRL_MODE_SLEEP) 59 - { 60 - control_value = 57 + /* Set up other fields in Power Control Register */ 58 + if (powerMode == POWER_MODE_CTRL_MODE_SLEEP) 59 + { 60 + control_value = 61 61 #ifdef VALIDATION_CHIP 62 - FIELD_SET( control_value, POWER_MODE_CTRL, 336CLK, OFF) | 62 + FIELD_SET( control_value, POWER_MODE_CTRL, 336CLK, OFF) | 63 63 #endif 64 - FIELD_SET( control_value, POWER_MODE_CTRL, OSC_INPUT, OFF); 65 - } 66 - else 67 - { 68 - control_value = 64 + FIELD_SET( control_value, POWER_MODE_CTRL, OSC_INPUT, OFF); 65 + } 66 + else 67 + { 68 + control_value = 69 69 #ifdef VALIDATION_CHIP 70 - FIELD_SET( control_value, POWER_MODE_CTRL, 336CLK, ON) | 70 + FIELD_SET( control_value, POWER_MODE_CTRL, 336CLK, ON) | 71 71 #endif 72 - FIELD_SET( control_value, POWER_MODE_CTRL, OSC_INPUT, ON); 73 - } 72 + FIELD_SET( control_value, POWER_MODE_CTRL, OSC_INPUT, ON); 73 + } 74 74 75 - /* Program new power mode. */ 76 - POKE32(POWER_MODE_CTRL, control_value); 75 + /* Program new power mode. */ 76 + POKE32(POWER_MODE_CTRL, control_value); 77 77 } 78 78 79 79 void setCurrentGate(unsigned int gate) 80 80 { 81 - unsigned int gate_reg; 82 - unsigned int mode; 81 + unsigned int gate_reg; 82 + unsigned int mode; 83 83 84 - /* Get current power mode. */ 85 - mode = getPowerMode(); 84 + /* Get current power mode. */ 85 + mode = getPowerMode(); 86 86 87 - switch (mode) 88 - { 89 - case POWER_MODE_CTRL_MODE_MODE0: 90 - gate_reg = MODE0_GATE; 91 - break; 87 + switch (mode) 88 + { 89 + case POWER_MODE_CTRL_MODE_MODE0: 90 + gate_reg = MODE0_GATE; 91 + break; 92 92 93 - case POWER_MODE_CTRL_MODE_MODE1: 94 - gate_reg = MODE1_GATE; 95 - break; 93 + case POWER_MODE_CTRL_MODE_MODE1: 94 + gate_reg = MODE1_GATE; 95 + break; 96 96 97 - default: 98 - gate_reg = MODE0_GATE; 99 - break; 100 - } 101 - POKE32(gate_reg, gate); 97 + default: 98 + gate_reg = MODE0_GATE; 99 + break; 100 + } 101 + POKE32(gate_reg, gate); 102 102 } 103 103 104 104 ··· 108 108 */ 109 109 void enable2DEngine(unsigned int enable) 110 110 { 111 - uint32_t gate; 111 + uint32_t gate; 112 112 113 - gate = PEEK32(CURRENT_GATE); 114 - if (enable) 115 - { 116 - gate = FIELD_SET(gate, CURRENT_GATE, DE, ON); 117 - gate = FIELD_SET(gate, CURRENT_GATE, CSC, ON); 118 - } 119 - else 120 - { 121 - gate = FIELD_SET(gate, CURRENT_GATE, DE, OFF); 122 - gate = FIELD_SET(gate, CURRENT_GATE, CSC, OFF); 123 - } 113 + gate = PEEK32(CURRENT_GATE); 114 + if (enable) 115 + { 116 + gate = FIELD_SET(gate, CURRENT_GATE, DE, ON); 117 + gate = FIELD_SET(gate, CURRENT_GATE, CSC, ON); 118 + } 119 + else 120 + { 121 + gate = FIELD_SET(gate, CURRENT_GATE, DE, OFF); 122 + gate = FIELD_SET(gate, CURRENT_GATE, CSC, OFF); 123 + } 124 124 125 - setCurrentGate(gate); 125 + setCurrentGate(gate); 126 126 } 127 127 128 128 ··· 131 131 */ 132 132 void enableZVPort(unsigned int enable) 133 133 { 134 - uint32_t gate; 134 + uint32_t gate; 135 135 136 - /* Enable ZV Port Gate */ 137 - gate = PEEK32(CURRENT_GATE); 138 - if (enable) 139 - { 140 - gate = FIELD_SET(gate, CURRENT_GATE, ZVPORT, ON); 136 + /* Enable ZV Port Gate */ 137 + gate = PEEK32(CURRENT_GATE); 138 + if (enable) 139 + { 140 + gate = FIELD_SET(gate, CURRENT_GATE, ZVPORT, ON); 141 141 #if 1 142 - /* Using Software I2C */ 143 - gate = FIELD_SET(gate, CURRENT_GATE, GPIO, ON); 142 + /* Using Software I2C */ 143 + gate = FIELD_SET(gate, CURRENT_GATE, GPIO, ON); 144 144 #else 145 - /* Using Hardware I2C */ 146 - gate = FIELD_SET(gate, CURRENT_GATE, I2C, ON); 145 + /* Using Hardware I2C */ 146 + gate = FIELD_SET(gate, CURRENT_GATE, I2C, ON); 147 147 #endif 148 - } 149 - else 150 - { 151 - /* Disable ZV Port Gate. There is no way to know whether the GPIO pins are being used 152 - or not. Therefore, do not disable the GPIO gate. */ 153 - gate = FIELD_SET(gate, CURRENT_GATE, ZVPORT, OFF); 154 - } 148 + } 149 + else 150 + { 151 + /* Disable ZV Port Gate. There is no way to know whether the GPIO pins are being used 152 + or not. Therefore, do not disable the GPIO gate. */ 153 + gate = FIELD_SET(gate, CURRENT_GATE, ZVPORT, OFF); 154 + } 155 155 156 - setCurrentGate(gate); 156 + setCurrentGate(gate); 157 157 } 158 158 159 159 160 160 void enableSSP(unsigned int enable) 161 161 { 162 - uint32_t gate; 162 + uint32_t gate; 163 163 164 - /* Enable SSP Gate */ 165 - gate = PEEK32(CURRENT_GATE); 166 - if (enable) 167 - gate = FIELD_SET(gate, CURRENT_GATE, SSP, ON); 168 - else 169 - gate = FIELD_SET(gate, CURRENT_GATE, SSP, OFF); 164 + /* Enable SSP Gate */ 165 + gate = PEEK32(CURRENT_GATE); 166 + if (enable) 167 + gate = FIELD_SET(gate, CURRENT_GATE, SSP, ON); 168 + else 169 + gate = FIELD_SET(gate, CURRENT_GATE, SSP, OFF); 170 170 171 - setCurrentGate(gate); 171 + setCurrentGate(gate); 172 172 } 173 173 174 174 void enableDMA(unsigned int enable) 175 175 { 176 - uint32_t gate; 176 + uint32_t gate; 177 177 178 - /* Enable DMA Gate */ 179 - gate = PEEK32(CURRENT_GATE); 180 - if (enable) 181 - gate = FIELD_SET(gate, CURRENT_GATE, DMA, ON); 182 - else 183 - gate = FIELD_SET(gate, CURRENT_GATE, DMA, OFF); 178 + /* Enable DMA Gate */ 179 + gate = PEEK32(CURRENT_GATE); 180 + if (enable) 181 + gate = FIELD_SET(gate, CURRENT_GATE, DMA, ON); 182 + else 183 + gate = FIELD_SET(gate, CURRENT_GATE, DMA, OFF); 184 184 185 - setCurrentGate(gate); 185 + setCurrentGate(gate); 186 186 } 187 187 188 188 /* ··· 190 190 */ 191 191 void enableGPIO(unsigned int enable) 192 192 { 193 - uint32_t gate; 193 + uint32_t gate; 194 194 195 - /* Enable GPIO Gate */ 196 - gate = PEEK32(CURRENT_GATE); 197 - if (enable) 198 - gate = FIELD_SET(gate, CURRENT_GATE, GPIO, ON); 199 - else 200 - gate = FIELD_SET(gate, CURRENT_GATE, GPIO, OFF); 195 + /* Enable GPIO Gate */ 196 + gate = PEEK32(CURRENT_GATE); 197 + if (enable) 198 + gate = FIELD_SET(gate, CURRENT_GATE, GPIO, ON); 199 + else 200 + gate = FIELD_SET(gate, CURRENT_GATE, GPIO, OFF); 201 201 202 - setCurrentGate(gate); 202 + setCurrentGate(gate); 203 203 } 204 204 205 205 /* ··· 207 207 */ 208 208 void enablePWM(unsigned int enable) 209 209 { 210 - uint32_t gate; 210 + uint32_t gate; 211 211 212 - /* Enable PWM Gate */ 213 - gate = PEEK32(CURRENT_GATE); 214 - if (enable) 215 - gate = FIELD_SET(gate, CURRENT_GATE, PWM, ON); 216 - else 217 - gate = FIELD_SET(gate, CURRENT_GATE, PWM, OFF); 212 + /* Enable PWM Gate */ 213 + gate = PEEK32(CURRENT_GATE); 214 + if (enable) 215 + gate = FIELD_SET(gate, CURRENT_GATE, PWM, ON); 216 + else 217 + gate = FIELD_SET(gate, CURRENT_GATE, PWM, OFF); 218 218 219 - setCurrentGate(gate); 219 + setCurrentGate(gate); 220 220 } 221 221 222 222 /* ··· 224 224 */ 225 225 void enableI2C(unsigned int enable) 226 226 { 227 - uint32_t gate; 227 + uint32_t gate; 228 228 229 - /* Enable I2C Gate */ 230 - gate = PEEK32(CURRENT_GATE); 231 - if (enable) 232 - gate = FIELD_SET(gate, CURRENT_GATE, I2C, ON); 233 - else 234 - gate = FIELD_SET(gate, CURRENT_GATE, I2C, OFF); 229 + /* Enable I2C Gate */ 230 + gate = PEEK32(CURRENT_GATE); 231 + if (enable) 232 + gate = FIELD_SET(gate, CURRENT_GATE, I2C, ON); 233 + else 234 + gate = FIELD_SET(gate, CURRENT_GATE, I2C, OFF); 235 235 236 - setCurrentGate(gate); 236 + setCurrentGate(gate); 237 237 } 238 238 239 239
+4 -4
drivers/staging/sm750fb/ddk750_power.h
··· 3 3 4 4 typedef enum _DPMS_t 5 5 { 6 - crtDPMS_ON = 0x0, 7 - crtDPMS_STANDBY = 0x1, 8 - crtDPMS_SUSPEND = 0x2, 9 - crtDPMS_OFF = 0x3, 6 + crtDPMS_ON = 0x0, 7 + crtDPMS_STANDBY = 0x1, 8 + crtDPMS_SUSPEND = 0x2, 9 + crtDPMS_OFF = 0x3, 10 10 } 11 11 DPMS_t; 12 12
+9 -9
drivers/staging/sm750fb/ddk750_reg.h
··· 1640 1640 /* CRT Graphics Control */ 1641 1641 1642 1642 #define CRT_DISPLAY_CTRL 0x080200 1643 - #define CRT_DISPLAY_CTRL_RESERVED_1_MASK 31:27 1644 - #define CRT_DISPLAY_CTRL_RESERVED_1_MASK_DISABLE 0 1645 - #define CRT_DISPLAY_CTRL_RESERVED_1_MASK_ENABLE 0x1F 1643 + #define CRT_DISPLAY_CTRL_RESERVED_1_MASK 31:27 1644 + #define CRT_DISPLAY_CTRL_RESERVED_1_MASK_DISABLE 0 1645 + #define CRT_DISPLAY_CTRL_RESERVED_1_MASK_ENABLE 0x1F 1646 1646 1647 1647 /* SM750LE definition */ 1648 1648 #define CRT_DISPLAY_CTRL_DPMS 31:30 ··· 1664 1664 #define CRT_DISPLAY_CTRL_SHIFT_VGA_DAC_ENABLE 0 1665 1665 1666 1666 1667 - #define CRT_DISPLAY_CTRL_RESERVED_2_MASK 25:24 1668 - #define CRT_DISPLAY_CTRL_RESERVED_2_MASK_ENABLE 3 1669 - #define CRT_DISPLAY_CTRL_RESERVED_2_MASK_DISABLE 0 1667 + #define CRT_DISPLAY_CTRL_RESERVED_2_MASK 25:24 1668 + #define CRT_DISPLAY_CTRL_RESERVED_2_MASK_ENABLE 3 1669 + #define CRT_DISPLAY_CTRL_RESERVED_2_MASK_DISABLE 0 1670 1670 1671 1671 /* SM750LE definition */ 1672 1672 #define CRT_DISPLAY_CTRL_CRTSELECT 25:25 ··· 1677 1677 #define CRT_DISPLAY_CTRL_RGBBIT_12BIT 1 1678 1678 1679 1679 1680 - #define CRT_DISPLAY_CTRL_RESERVED_3_MASK 15:15 1680 + #define CRT_DISPLAY_CTRL_RESERVED_3_MASK 15:15 1681 1681 #define CRT_DISPLAY_CTRL_RESERVED_3_MASK_DISABLE 0 1682 1682 #define CRT_DISPLAY_CTRL_RESERVED_3_MASK_ENABLE 1 1683 1683 1684 - #define CRT_DISPLAY_CTRL_RESERVED_4_MASK 9:9 1684 + #define CRT_DISPLAY_CTRL_RESERVED_4_MASK 9:9 1685 1685 #define CRT_DISPLAY_CTRL_RESERVED_4_MASK_DISABLE 0 1686 1686 #define CRT_DISPLAY_CTRL_RESERVED_4_MASK_ENABLE 1 1687 1687 ··· 1882 1882 #endif 1883 1883 1884 1884 /* sm750le new register to control panel output */ 1885 - #define DISPLAY_CONTROL_750LE 0x80288 1885 + #define DISPLAY_CONTROL_750LE 0x80288 1886 1886 /* Palette RAM */ 1887 1887 1888 1888 /* Panel Palette register starts at 0x080400 ~ 0x0807FC */
+178 -178
drivers/staging/sm750fb/ddk750_sii164.c
··· 36 36 */ 37 37 unsigned short sii164GetVendorID(void) 38 38 { 39 - unsigned short vendorID; 39 + unsigned short vendorID; 40 40 41 - vendorID = ((unsigned short) i2cReadReg(SII164_I2C_ADDRESS, SII164_VENDOR_ID_HIGH) << 8) | 42 - (unsigned short) i2cReadReg(SII164_I2C_ADDRESS, SII164_VENDOR_ID_LOW); 41 + vendorID = ((unsigned short) i2cReadReg(SII164_I2C_ADDRESS, SII164_VENDOR_ID_HIGH) << 8) | 42 + (unsigned short) i2cReadReg(SII164_I2C_ADDRESS, SII164_VENDOR_ID_LOW); 43 43 44 - return vendorID; 44 + return vendorID; 45 45 } 46 46 47 47 /* ··· 53 53 */ 54 54 unsigned short sii164GetDeviceID(void) 55 55 { 56 - unsigned short deviceID; 56 + unsigned short deviceID; 57 57 58 - deviceID = ((unsigned short) i2cReadReg(SII164_I2C_ADDRESS, SII164_DEVICE_ID_HIGH) << 8) | 59 - (unsigned short) i2cReadReg(SII164_I2C_ADDRESS, SII164_DEVICE_ID_LOW); 58 + deviceID = ((unsigned short) i2cReadReg(SII164_I2C_ADDRESS, SII164_DEVICE_ID_HIGH) << 8) | 59 + (unsigned short) i2cReadReg(SII164_I2C_ADDRESS, SII164_DEVICE_ID_LOW); 60 60 61 - return deviceID; 61 + return deviceID; 62 62 } 63 63 64 64 ··· 113 113 * -1 - Fail. 114 114 */ 115 115 long sii164InitChip( 116 - unsigned char edgeSelect, 117 - unsigned char busSelect, 118 - unsigned char dualEdgeClkSelect, 119 - unsigned char hsyncEnable, 120 - unsigned char vsyncEnable, 121 - unsigned char deskewEnable, 122 - unsigned char deskewSetting, 123 - unsigned char continuousSyncEnable, 124 - unsigned char pllFilterEnable, 125 - unsigned char pllFilterValue 116 + unsigned char edgeSelect, 117 + unsigned char busSelect, 118 + unsigned char dualEdgeClkSelect, 119 + unsigned char hsyncEnable, 120 + unsigned char vsyncEnable, 121 + unsigned char deskewEnable, 122 + unsigned char deskewSetting, 123 + unsigned char continuousSyncEnable, 124 + unsigned char pllFilterEnable, 125 + unsigned char pllFilterValue 126 126 ) 127 127 { 128 128 unsigned char config; 129 129 130 - /* Initialize the i2c bus */ 130 + /* Initialize the i2c bus */ 131 131 #ifdef USE_HW_I2C 132 - /* Use fast mode. */ 133 - hwI2CInit(1); 132 + /* Use fast mode. */ 133 + hwI2CInit(1); 134 134 #else 135 - swI2CInit(DEFAULT_I2C_SCL, DEFAULT_I2C_SDA); 135 + swI2CInit(DEFAULT_I2C_SCL, DEFAULT_I2C_SDA); 136 136 #endif 137 137 138 - /* Check if SII164 Chip exists */ 139 - if ((sii164GetVendorID() == SII164_VENDOR_ID) && (sii164GetDeviceID() == SII164_DEVICE_ID)) 140 - { 141 - /* 142 - * Initialize SII164 controller chip. 143 - */ 138 + /* Check if SII164 Chip exists */ 139 + if ((sii164GetVendorID() == SII164_VENDOR_ID) && (sii164GetDeviceID() == SII164_DEVICE_ID)) 140 + { 141 + /* 142 + * Initialize SII164 controller chip. 143 + */ 144 144 145 - /* Select the edge */ 146 - if (edgeSelect == 0) 147 - config = SII164_CONFIGURATION_LATCH_FALLING; 148 - else 149 - config = SII164_CONFIGURATION_LATCH_RISING; 145 + /* Select the edge */ 146 + if (edgeSelect == 0) 147 + config = SII164_CONFIGURATION_LATCH_FALLING; 148 + else 149 + config = SII164_CONFIGURATION_LATCH_RISING; 150 150 151 - /* Select bus wide */ 152 - if (busSelect == 0) 153 - config |= SII164_CONFIGURATION_BUS_12BITS; 154 - else 155 - config |= SII164_CONFIGURATION_BUS_24BITS; 151 + /* Select bus wide */ 152 + if (busSelect == 0) 153 + config |= SII164_CONFIGURATION_BUS_12BITS; 154 + else 155 + config |= SII164_CONFIGURATION_BUS_24BITS; 156 156 157 - /* Select Dual/Single Edge Clock */ 158 - if (dualEdgeClkSelect == 0) 159 - config |= SII164_CONFIGURATION_CLOCK_SINGLE; 160 - else 161 - config |= SII164_CONFIGURATION_CLOCK_DUAL; 157 + /* Select Dual/Single Edge Clock */ 158 + if (dualEdgeClkSelect == 0) 159 + config |= SII164_CONFIGURATION_CLOCK_SINGLE; 160 + else 161 + config |= SII164_CONFIGURATION_CLOCK_DUAL; 162 162 163 - /* Select HSync Enable */ 164 - if (hsyncEnable == 0) 165 - config |= SII164_CONFIGURATION_HSYNC_FORCE_LOW; 166 - else 167 - config |= SII164_CONFIGURATION_HSYNC_AS_IS; 163 + /* Select HSync Enable */ 164 + if (hsyncEnable == 0) 165 + config |= SII164_CONFIGURATION_HSYNC_FORCE_LOW; 166 + else 167 + config |= SII164_CONFIGURATION_HSYNC_AS_IS; 168 168 169 - /* Select VSync Enable */ 170 - if (vsyncEnable == 0) 171 - config |= SII164_CONFIGURATION_VSYNC_FORCE_LOW; 172 - else 173 - config |= SII164_CONFIGURATION_VSYNC_AS_IS; 169 + /* Select VSync Enable */ 170 + if (vsyncEnable == 0) 171 + config |= SII164_CONFIGURATION_VSYNC_FORCE_LOW; 172 + else 173 + config |= SII164_CONFIGURATION_VSYNC_AS_IS; 174 174 175 - i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); 175 + i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); 176 176 177 - /* De-skew enabled with default 111b value. 178 - This will fix some artifacts problem in some mode on board 2.2. 179 - Somehow this fix does not affect board 2.1. 180 - */ 181 - if (deskewEnable == 0) 182 - config = SII164_DESKEW_DISABLE; 183 - else 184 - config = SII164_DESKEW_ENABLE; 177 + /* De-skew enabled with default 111b value. 178 + This will fix some artifacts problem in some mode on board 2.2. 179 + Somehow this fix does not affect board 2.1. 180 + */ 181 + if (deskewEnable == 0) 182 + config = SII164_DESKEW_DISABLE; 183 + else 184 + config = SII164_DESKEW_ENABLE; 185 185 186 - switch (deskewSetting) 187 - { 188 - case 0: 189 - config |= SII164_DESKEW_1_STEP; 190 - break; 191 - case 1: 192 - config |= SII164_DESKEW_2_STEP; 193 - break; 194 - case 2: 195 - config |= SII164_DESKEW_3_STEP; 196 - break; 197 - case 3: 198 - config |= SII164_DESKEW_4_STEP; 199 - break; 200 - case 4: 201 - config |= SII164_DESKEW_5_STEP; 202 - break; 203 - case 5: 204 - config |= SII164_DESKEW_6_STEP; 205 - break; 206 - case 6: 207 - config |= SII164_DESKEW_7_STEP; 208 - break; 209 - case 7: 210 - config |= SII164_DESKEW_8_STEP; 211 - break; 212 - } 213 - i2cWriteReg(SII164_I2C_ADDRESS, SII164_DESKEW, config); 186 + switch (deskewSetting) 187 + { 188 + case 0: 189 + config |= SII164_DESKEW_1_STEP; 190 + break; 191 + case 1: 192 + config |= SII164_DESKEW_2_STEP; 193 + break; 194 + case 2: 195 + config |= SII164_DESKEW_3_STEP; 196 + break; 197 + case 3: 198 + config |= SII164_DESKEW_4_STEP; 199 + break; 200 + case 4: 201 + config |= SII164_DESKEW_5_STEP; 202 + break; 203 + case 5: 204 + config |= SII164_DESKEW_6_STEP; 205 + break; 206 + case 6: 207 + config |= SII164_DESKEW_7_STEP; 208 + break; 209 + case 7: 210 + config |= SII164_DESKEW_8_STEP; 211 + break; 212 + } 213 + i2cWriteReg(SII164_I2C_ADDRESS, SII164_DESKEW, config); 214 214 215 - /* Enable/Disable Continuous Sync. */ 216 - if (continuousSyncEnable == 0) 217 - config = SII164_PLL_FILTER_SYNC_CONTINUOUS_DISABLE; 218 - else 219 - config = SII164_PLL_FILTER_SYNC_CONTINUOUS_ENABLE; 215 + /* Enable/Disable Continuous Sync. */ 216 + if (continuousSyncEnable == 0) 217 + config = SII164_PLL_FILTER_SYNC_CONTINUOUS_DISABLE; 218 + else 219 + config = SII164_PLL_FILTER_SYNC_CONTINUOUS_ENABLE; 220 220 221 - /* Enable/Disable PLL Filter */ 222 - if (pllFilterEnable == 0) 223 - config |= SII164_PLL_FILTER_DISABLE; 224 - else 225 - config |= SII164_PLL_FILTER_ENABLE; 221 + /* Enable/Disable PLL Filter */ 222 + if (pllFilterEnable == 0) 223 + config |= SII164_PLL_FILTER_DISABLE; 224 + else 225 + config |= SII164_PLL_FILTER_ENABLE; 226 226 227 - /* Set the PLL Filter value */ 228 - config |= ((pllFilterValue & 0x07) << 1); 227 + /* Set the PLL Filter value */ 228 + config |= ((pllFilterValue & 0x07) << 1); 229 229 230 - i2cWriteReg(SII164_I2C_ADDRESS, SII164_PLL, config); 230 + i2cWriteReg(SII164_I2C_ADDRESS, SII164_PLL, config); 231 231 232 - /* Recover from Power Down and enable output. */ 233 - config = i2cReadReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION); 234 - config |= SII164_CONFIGURATION_POWER_NORMAL; 235 - i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); 232 + /* Recover from Power Down and enable output. */ 233 + config = i2cReadReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION); 234 + config |= SII164_CONFIGURATION_POWER_NORMAL; 235 + i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); 236 236 237 - return 0; 238 - } 237 + return 0; 238 + } 239 239 240 - /* Return -1 if initialization fails. */ 241 - return (-1); 240 + /* Return -1 if initialization fails. */ 241 + return (-1); 242 242 } 243 243 244 244 ··· 255 255 */ 256 256 void sii164ResetChip(void) 257 257 { 258 - /* Power down */ 259 - sii164SetPower(0); 260 - sii164SetPower(1); 258 + /* Power down */ 259 + sii164SetPower(0); 260 + sii164SetPower(1); 261 261 } 262 262 263 263 ··· 268 268 */ 269 269 char *sii164GetChipString(void) 270 270 { 271 - return gDviCtrlChipName; 271 + return gDviCtrlChipName; 272 272 } 273 273 274 274 ··· 280 280 * powerUp - Flag to set the power down or up 281 281 */ 282 282 void sii164SetPower( 283 - unsigned char powerUp 283 + unsigned char powerUp 284 284 ) 285 285 { 286 - unsigned char config; 286 + unsigned char config; 287 287 288 - config = i2cReadReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION); 289 - if (powerUp == 1) 290 - { 291 - /* Power up the chip */ 292 - config &= ~SII164_CONFIGURATION_POWER_MASK; 293 - config |= SII164_CONFIGURATION_POWER_NORMAL; 294 - i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); 295 - } 296 - else 297 - { 298 - /* Power down the chip */ 299 - config &= ~SII164_CONFIGURATION_POWER_MASK; 300 - config |= SII164_CONFIGURATION_POWER_DOWN; 301 - i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); 302 - } 288 + config = i2cReadReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION); 289 + if (powerUp == 1) 290 + { 291 + /* Power up the chip */ 292 + config &= ~SII164_CONFIGURATION_POWER_MASK; 293 + config |= SII164_CONFIGURATION_POWER_NORMAL; 294 + i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); 295 + } 296 + else 297 + { 298 + /* Power down the chip */ 299 + config &= ~SII164_CONFIGURATION_POWER_MASK; 300 + config |= SII164_CONFIGURATION_POWER_DOWN; 301 + i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); 302 + } 303 303 } 304 304 305 305 ··· 308 308 * This function selects the mode of the hot plug detection. 309 309 */ 310 310 static void sii164SelectHotPlugDetectionMode( 311 - sii164_hot_plug_mode_t hotPlugMode 311 + sii164_hot_plug_mode_t hotPlugMode 312 312 ) 313 313 { 314 - unsigned char detectReg; 314 + unsigned char detectReg; 315 315 316 - detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT) & ~SII164_DETECT_MONITOR_SENSE_OUTPUT_FLAG; 317 - switch (hotPlugMode) 318 - { 319 - case SII164_HOTPLUG_DISABLE: 320 - detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_HIGH; 321 - break; 322 - case SII164_HOTPLUG_USE_MDI: 323 - detectReg &= ~SII164_DETECT_INTERRUPT_MASK; 324 - detectReg |= SII164_DETECT_INTERRUPT_BY_HTPLG_PIN; 325 - detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_MDI; 326 - break; 327 - case SII164_HOTPLUG_USE_RSEN: 328 - detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_RSEN; 329 - break; 330 - case SII164_HOTPLUG_USE_HTPLG: 331 - detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_HTPLG; 332 - break; 333 - } 316 + detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT) & ~SII164_DETECT_MONITOR_SENSE_OUTPUT_FLAG; 317 + switch (hotPlugMode) 318 + { 319 + case SII164_HOTPLUG_DISABLE: 320 + detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_HIGH; 321 + break; 322 + case SII164_HOTPLUG_USE_MDI: 323 + detectReg &= ~SII164_DETECT_INTERRUPT_MASK; 324 + detectReg |= SII164_DETECT_INTERRUPT_BY_HTPLG_PIN; 325 + detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_MDI; 326 + break; 327 + case SII164_HOTPLUG_USE_RSEN: 328 + detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_RSEN; 329 + break; 330 + case SII164_HOTPLUG_USE_HTPLG: 331 + detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_HTPLG; 332 + break; 333 + } 334 334 335 - i2cWriteReg(SII164_I2C_ADDRESS, SII164_DETECT, detectReg); 335 + i2cWriteReg(SII164_I2C_ADDRESS, SII164_DETECT, detectReg); 336 336 } 337 337 338 338 /* ··· 342 342 * enableHotPlug - Enable (=1) / disable (=0) Hot Plug detection 343 343 */ 344 344 void sii164EnableHotPlugDetection( 345 - unsigned char enableHotPlug 345 + unsigned char enableHotPlug 346 346 ) 347 347 { 348 - unsigned char detectReg; 349 - detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT); 348 + unsigned char detectReg; 349 + detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT); 350 350 351 - /* Depending on each DVI controller, need to enable the hot plug based on each 352 - individual chip design. */ 353 - if (enableHotPlug != 0) 354 - sii164SelectHotPlugDetectionMode(SII164_HOTPLUG_USE_MDI); 355 - else 356 - sii164SelectHotPlugDetectionMode(SII164_HOTPLUG_DISABLE); 351 + /* Depending on each DVI controller, need to enable the hot plug based on each 352 + individual chip design. */ 353 + if (enableHotPlug != 0) 354 + sii164SelectHotPlugDetectionMode(SII164_HOTPLUG_USE_MDI); 355 + else 356 + sii164SelectHotPlugDetectionMode(SII164_HOTPLUG_DISABLE); 357 357 } 358 358 359 359 /* ··· 366 366 */ 367 367 unsigned char sii164IsConnected(void) 368 368 { 369 - unsigned char hotPlugValue; 369 + unsigned char hotPlugValue; 370 370 371 - hotPlugValue = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT) & SII164_DETECT_HOT_PLUG_STATUS_MASK; 372 - if (hotPlugValue == SII164_DETECT_HOT_PLUG_STATUS_ON) 373 - return 1; 374 - else 375 - return 0; 371 + hotPlugValue = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT) & SII164_DETECT_HOT_PLUG_STATUS_MASK; 372 + if (hotPlugValue == SII164_DETECT_HOT_PLUG_STATUS_ON) 373 + return 1; 374 + else 375 + return 0; 376 376 } 377 377 378 378 /* ··· 385 385 */ 386 386 unsigned char sii164CheckInterrupt(void) 387 387 { 388 - unsigned char detectReg; 388 + unsigned char detectReg; 389 389 390 - detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT) & SII164_DETECT_MONITOR_STATE_MASK; 391 - if (detectReg == SII164_DETECT_MONITOR_STATE_CHANGE) 392 - return 1; 393 - else 394 - return 0; 390 + detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT) & SII164_DETECT_MONITOR_STATE_MASK; 391 + if (detectReg == SII164_DETECT_MONITOR_STATE_CHANGE) 392 + return 1; 393 + else 394 + return 0; 395 395 } 396 396 397 397 /* ··· 400 400 */ 401 401 void sii164ClearInterrupt(void) 402 402 { 403 - unsigned char detectReg; 403 + unsigned char detectReg; 404 404 405 - /* Clear the MDI interrupt */ 406 - detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT); 407 - i2cWriteReg(SII164_I2C_ADDRESS, SII164_DETECT, detectReg | SII164_DETECT_MONITOR_STATE_CLEAR); 405 + /* Clear the MDI interrupt */ 406 + detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT); 407 + i2cWriteReg(SII164_I2C_ADDRESS, SII164_DETECT, detectReg | SII164_DETECT_MONITOR_STATE_CLEAR); 408 408 } 409 409 410 410 #endif
+14 -14
drivers/staging/sm750fb/ddk750_sii164.h
··· 6 6 /* Hot Plug detection mode structure */ 7 7 typedef enum _sii164_hot_plug_mode_t 8 8 { 9 - SII164_HOTPLUG_DISABLE = 0, /* Disable Hot Plug output bit (always high). */ 10 - SII164_HOTPLUG_USE_MDI, /* Use Monitor Detect Interrupt bit. */ 11 - SII164_HOTPLUG_USE_RSEN, /* Use Receiver Sense detect bit. */ 12 - SII164_HOTPLUG_USE_HTPLG /* Use Hot Plug detect bit. */ 9 + SII164_HOTPLUG_DISABLE = 0, /* Disable Hot Plug output bit (always high). */ 10 + SII164_HOTPLUG_USE_MDI, /* Use Monitor Detect Interrupt bit. */ 11 + SII164_HOTPLUG_USE_RSEN, /* Use Receiver Sense detect bit. */ 12 + SII164_HOTPLUG_USE_HTPLG /* Use Hot Plug detect bit. */ 13 13 } sii164_hot_plug_mode_t; 14 14 15 15 16 16 /* Silicon Image SiI164 chip prototype */ 17 17 long sii164InitChip( 18 - unsigned char edgeSelect, 19 - unsigned char busSelect, 20 - unsigned char dualEdgeClkSelect, 21 - unsigned char hsyncEnable, 22 - unsigned char vsyncEnable, 23 - unsigned char deskewEnable, 24 - unsigned char deskewSetting, 25 - unsigned char continuousSyncEnable, 26 - unsigned char pllFilterEnable, 27 - unsigned char pllFilterValue 18 + unsigned char edgeSelect, 19 + unsigned char busSelect, 20 + unsigned char dualEdgeClkSelect, 21 + unsigned char hsyncEnable, 22 + unsigned char vsyncEnable, 23 + unsigned char deskewEnable, 24 + unsigned char deskewSetting, 25 + unsigned char continuousSyncEnable, 26 + unsigned char pllFilterEnable, 27 + unsigned char pllFilterValue 28 28 ); 29 29 30 30 unsigned short sii164GetVendorID(void);
+13 -13
drivers/staging/sm750fb/sm750.h
··· 5 5 6 6 #define FB_ACCEL_SMI 0xab 7 7 /* please use revision id to distinguish sm750le and sm750*/ 8 - #define SPC_SM750 0 8 + #define SPC_SM750 0 9 9 10 10 #define MB(x) ((x)<<20) 11 11 #define MHZ(x) ((x) * 1000000) ··· 38 38 39 39 }; 40 40 41 - /* lynx_share stands for a presentation of two frame buffer 42 - that use one smi adaptor , it is similar to a basic class of C++ 41 + /* lynx_share stands for a presentation of two frame buffer 42 + that use one smi adaptor , it is similar to a basic class of C++ 43 43 */ 44 44 struct lynx_share{ 45 45 /* common members */ ··· 115 115 int(*proc_checkMode)(struct lynxfb_crtc*, struct fb_var_screeninfo*); 116 116 int(*proc_setColReg)(struct lynxfb_crtc*, ushort, ushort, ushort, ushort); 117 117 void (*clear)(struct lynxfb_crtc*); 118 - /* pan display */ 118 + /* pan display */ 119 119 int (*proc_panDisplay)(struct lynxfb_crtc *, 120 120 const struct fb_var_screeninfo *, 121 121 const struct fb_info *); ··· 126 126 struct lynxfb_output{ 127 127 int dpms; 128 128 int paths; 129 - /* which paths(s) this output stands for,for sm750: 130 - paths=1:means output for panel paths 131 - paths=2:means output for crt paths 132 - paths=3:means output for both panel and crt paths 129 + /* which paths(s) this output stands for,for sm750: 130 + paths=1:means output for panel paths 131 + paths=2:means output for crt paths 132 + paths=3:means output for both panel and crt paths 133 133 */ 134 134 135 135 int *channel; 136 - /* which channel these outputs linked with,for sm750: 137 - *channel=0 means primary channel 138 - *channel=1 means secondary channel 139 - output->channel ==> &crtc->channel 136 + /* which channel these outputs linked with,for sm750: 137 + *channel=0 means primary channel 138 + *channel=1 means secondary channel 139 + output->channel ==> &crtc->channel 140 140 */ 141 141 void *priv; 142 142 ··· 165 165 166 166 167 167 #define PS_TO_HZ(ps) \ 168 - ({ \ 168 + ({ \ 169 169 unsigned long long hz = 1000*1000*1000*1000ULL; \ 170 170 do_div(hz, ps); \ 171 171 (unsigned long)hz;})
+169 -169
drivers/staging/sm750fb/sm750_accel.c
··· 151 151 unsigned int height, /* width and height of rectangle in pixel value */ 152 152 unsigned int rop2) /* ROP value */ 153 153 { 154 - unsigned int nDirection, de_ctrl; 155 - int opSign; 156 - nDirection = LEFT_TO_RIGHT; 154 + unsigned int nDirection, de_ctrl; 155 + int opSign; 156 + nDirection = LEFT_TO_RIGHT; 157 157 /* Direction of ROP2 operation: 1 = Left to Right, (-1) = Right to Left */ 158 - opSign = 1; 159 - de_ctrl = 0; 158 + opSign = 1; 159 + de_ctrl = 0; 160 160 161 - /* If source and destination are the same surface, need to check for overlay cases */ 162 - if (sBase == dBase && sPitch == dPitch) 163 - { 164 - /* Determine direction of operation */ 165 - if (sy < dy) 166 - { 167 - /* +----------+ 168 - |S | 169 - | +----------+ 170 - | | | | 171 - | | | | 172 - +---|------+ | 173 - | D| 174 - +----------+ */ 161 + /* If source and destination are the same surface, need to check for overlay cases */ 162 + if (sBase == dBase && sPitch == dPitch) 163 + { 164 + /* Determine direction of operation */ 165 + if (sy < dy) 166 + { 167 + /* +----------+ 168 + |S | 169 + | +----------+ 170 + | | | | 171 + | | | | 172 + +---|------+ | 173 + | D| 174 + +----------+ */ 175 175 176 - nDirection = BOTTOM_TO_TOP; 177 - } 178 - else if (sy > dy) 179 - { 180 - /* +----------+ 181 - |D | 182 - | +----------+ 183 - | | | | 184 - | | | | 185 - +---|------+ | 186 - | S| 187 - +----------+ */ 176 + nDirection = BOTTOM_TO_TOP; 177 + } 178 + else if (sy > dy) 179 + { 180 + /* +----------+ 181 + |D | 182 + | +----------+ 183 + | | | | 184 + | | | | 185 + +---|------+ | 186 + | S| 187 + +----------+ */ 188 188 189 - nDirection = TOP_TO_BOTTOM; 190 - } 191 - else 192 - { 193 - /* sy == dy */ 189 + nDirection = TOP_TO_BOTTOM; 190 + } 191 + else 192 + { 193 + /* sy == dy */ 194 194 195 - if (sx <= dx) 196 - { 197 - /* +------+---+------+ 198 - |S | | D| 199 - | | | | 200 - | | | | 201 - | | | | 202 - +------+---+------+ */ 195 + if (sx <= dx) 196 + { 197 + /* +------+---+------+ 198 + |S | | D| 199 + | | | | 200 + | | | | 201 + | | | | 202 + +------+---+------+ */ 203 203 204 - nDirection = RIGHT_TO_LEFT; 205 - } 206 - else 207 - { 208 - /* sx > dx */ 204 + nDirection = RIGHT_TO_LEFT; 205 + } 206 + else 207 + { 208 + /* sx > dx */ 209 209 210 - /* +------+---+------+ 211 - |D | | S| 212 - | | | | 213 - | | | | 214 - | | | | 215 - +------+---+------+ */ 210 + /* +------+---+------+ 211 + |D | | S| 212 + | | | | 213 + | | | | 214 + | | | | 215 + +------+---+------+ */ 216 216 217 - nDirection = LEFT_TO_RIGHT; 218 - } 219 - } 220 - } 217 + nDirection = LEFT_TO_RIGHT; 218 + } 219 + } 220 + } 221 221 222 - if ((nDirection == BOTTOM_TO_TOP) || (nDirection == RIGHT_TO_LEFT)) 223 - { 224 - sx += width - 1; 225 - sy += height - 1; 226 - dx += width - 1; 227 - dy += height - 1; 228 - opSign = (-1); 229 - } 222 + if ((nDirection == BOTTOM_TO_TOP) || (nDirection == RIGHT_TO_LEFT)) 223 + { 224 + sx += width - 1; 225 + sy += height - 1; 226 + dx += width - 1; 227 + dy += height - 1; 228 + opSign = (-1); 229 + } 230 230 231 - /* Note: 232 - DE_FOREGROUND are DE_BACKGROUND are don't care. 233 - DE_COLOR_COMPARE and DE_COLOR_COMPARE_MAKS are set by set deSetTransparency(). 234 - */ 231 + /* Note: 232 + DE_FOREGROUND are DE_BACKGROUND are don't care. 233 + DE_COLOR_COMPARE and DE_COLOR_COMPARE_MAKS are set by set deSetTransparency(). 234 + */ 235 235 236 - /* 2D Source Base. 237 - It is an address offset (128 bit aligned) from the beginning of frame buffer. 238 - */ 239 - write_dpr(accel, DE_WINDOW_SOURCE_BASE, sBase); /* dpr40 */ 236 + /* 2D Source Base. 237 + It is an address offset (128 bit aligned) from the beginning of frame buffer. 238 + */ 239 + write_dpr(accel, DE_WINDOW_SOURCE_BASE, sBase); /* dpr40 */ 240 240 241 - /* 2D Destination Base. 242 - It is an address offset (128 bit aligned) from the beginning of frame buffer. 243 - */ 244 - write_dpr(accel, DE_WINDOW_DESTINATION_BASE, dBase); /* dpr44 */ 241 + /* 2D Destination Base. 242 + It is an address offset (128 bit aligned) from the beginning of frame buffer. 243 + */ 244 + write_dpr(accel, DE_WINDOW_DESTINATION_BASE, dBase); /* dpr44 */ 245 245 246 246 #if 0 247 247 /* Program pitch (distance between the 1st points of two adjacent lines). ··· 267 267 /* Screen Window width in Pixels. 268 268 2D engine uses this value to calculate the linear address in frame buffer for a given point. 269 269 */ 270 - write_dpr(accel, DE_WINDOW_WIDTH, 271 - FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, (dPitch/Bpp)) | 272 - FIELD_VALUE(0, DE_WINDOW_WIDTH, SOURCE, (sPitch/Bpp))); /* dpr3c */ 270 + write_dpr(accel, DE_WINDOW_WIDTH, 271 + FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, (dPitch/Bpp)) | 272 + FIELD_VALUE(0, DE_WINDOW_WIDTH, SOURCE, (sPitch/Bpp))); /* dpr3c */ 273 273 274 274 if (accel->de_wait() != 0){ 275 275 return -1; 276 276 } 277 277 278 - { 278 + { 279 279 280 - write_dpr(accel, DE_SOURCE, 281 - FIELD_SET (0, DE_SOURCE, WRAP, DISABLE) | 282 - FIELD_VALUE(0, DE_SOURCE, X_K1, sx) | 283 - FIELD_VALUE(0, DE_SOURCE, Y_K2, sy)); /* dpr0 */ 284 - write_dpr(accel, DE_DESTINATION, 285 - FIELD_SET (0, DE_DESTINATION, WRAP, DISABLE) | 286 - FIELD_VALUE(0, DE_DESTINATION, X, dx) | 287 - FIELD_VALUE(0, DE_DESTINATION, Y, dy)); /* dpr04 */ 288 - write_dpr(accel, DE_DIMENSION, 289 - FIELD_VALUE(0, DE_DIMENSION, X, width) | 290 - FIELD_VALUE(0, DE_DIMENSION, Y_ET, height)); /* dpr08 */ 280 + write_dpr(accel, DE_SOURCE, 281 + FIELD_SET (0, DE_SOURCE, WRAP, DISABLE) | 282 + FIELD_VALUE(0, DE_SOURCE, X_K1, sx) | 283 + FIELD_VALUE(0, DE_SOURCE, Y_K2, sy)); /* dpr0 */ 284 + write_dpr(accel, DE_DESTINATION, 285 + FIELD_SET (0, DE_DESTINATION, WRAP, DISABLE) | 286 + FIELD_VALUE(0, DE_DESTINATION, X, dx) | 287 + FIELD_VALUE(0, DE_DESTINATION, Y, dy)); /* dpr04 */ 288 + write_dpr(accel, DE_DIMENSION, 289 + FIELD_VALUE(0, DE_DIMENSION, X, width) | 290 + FIELD_VALUE(0, DE_DIMENSION, Y_ET, height)); /* dpr08 */ 291 291 292 - de_ctrl = 293 - FIELD_VALUE(0, DE_CONTROL, ROP, rop2) | 294 - FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2) | 295 - FIELD_SET(0, DE_CONTROL, COMMAND, BITBLT) | 296 - ((nDirection == RIGHT_TO_LEFT) ? 297 - FIELD_SET(0, DE_CONTROL, DIRECTION, RIGHT_TO_LEFT) 298 - : FIELD_SET(0, DE_CONTROL, DIRECTION, LEFT_TO_RIGHT)) | 299 - FIELD_SET(0, DE_CONTROL, STATUS, START); 300 - write_dpr(accel, DE_CONTROL, de_ctrl); /* dpr0c */ 301 - } 292 + de_ctrl = FIELD_VALUE(0, DE_CONTROL, ROP, rop2) | 293 + FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2) | 294 + FIELD_SET(0, DE_CONTROL, COMMAND, BITBLT) | 295 + ((nDirection == RIGHT_TO_LEFT) ? 296 + FIELD_SET(0, DE_CONTROL, DIRECTION, RIGHT_TO_LEFT) 297 + : FIELD_SET(0, DE_CONTROL, DIRECTION, LEFT_TO_RIGHT)) | 298 + FIELD_SET(0, DE_CONTROL, STATUS, START); 299 + write_dpr(accel, DE_CONTROL, de_ctrl); /* dpr0c */ 302 300 303 - return 0; 301 + } 302 + 303 + return 0; 304 304 } 305 305 306 306 static unsigned int deGetTransparency(struct lynx_accel *accel) 307 307 { 308 - unsigned int de_ctrl; 308 + unsigned int de_ctrl; 309 309 310 - de_ctrl = read_dpr(accel, DE_CONTROL); 310 + de_ctrl = read_dpr(accel, DE_CONTROL); 311 311 312 - de_ctrl &= 313 - FIELD_MASK(DE_CONTROL_TRANSPARENCY_MATCH) | 314 - FIELD_MASK(DE_CONTROL_TRANSPARENCY_SELECT)| 315 - FIELD_MASK(DE_CONTROL_TRANSPARENCY); 312 + de_ctrl &= 313 + FIELD_MASK(DE_CONTROL_TRANSPARENCY_MATCH) | 314 + FIELD_MASK(DE_CONTROL_TRANSPARENCY_SELECT)| 315 + FIELD_MASK(DE_CONTROL_TRANSPARENCY); 316 316 317 - return de_ctrl; 317 + return de_ctrl; 318 318 } 319 319 320 320 int hw_imageblit(struct lynx_accel *accel, ··· 332 332 u32 bColor, /* Background color (corresponding to a 0 in the monochrome data */ 333 333 u32 rop2) /* ROP value */ 334 334 { 335 - unsigned int ulBytesPerScan; 336 - unsigned int ul4BytesPerScan; 337 - unsigned int ulBytesRemain; 338 - unsigned int de_ctrl = 0; 339 - unsigned char ajRemain[4]; 340 - int i, j; 335 + unsigned int ulBytesPerScan; 336 + unsigned int ul4BytesPerScan; 337 + unsigned int ulBytesRemain; 338 + unsigned int de_ctrl = 0; 339 + unsigned char ajRemain[4]; 340 + int i, j; 341 341 342 - startBit &= 7; /* Just make sure the start bit is within legal range */ 343 - ulBytesPerScan = (width + startBit + 7) / 8; 344 - ul4BytesPerScan = ulBytesPerScan & ~3; 345 - ulBytesRemain = ulBytesPerScan & 3; 342 + startBit &= 7; /* Just make sure the start bit is within legal range */ 343 + ulBytesPerScan = (width + startBit + 7) / 8; 344 + ul4BytesPerScan = ulBytesPerScan & ~3; 345 + ulBytesRemain = ulBytesPerScan & 3; 346 346 347 347 if(accel->de_wait() != 0) 348 - { 349 - return -1; 350 - } 348 + { 349 + return -1; 350 + } 351 351 352 - /* 2D Source Base. 353 - Use 0 for HOST Blt. 354 - */ 355 - write_dpr(accel, DE_WINDOW_SOURCE_BASE, 0); 352 + /* 2D Source Base. 353 + Use 0 for HOST Blt. 354 + */ 355 + write_dpr(accel, DE_WINDOW_SOURCE_BASE, 0); 356 356 357 - /* 2D Destination Base. 358 - It is an address offset (128 bit aligned) from the beginning of frame buffer. 359 - */ 360 - write_dpr(accel, DE_WINDOW_DESTINATION_BASE, dBase); 357 + /* 2D Destination Base. 358 + It is an address offset (128 bit aligned) from the beginning of frame buffer. 359 + */ 360 + write_dpr(accel, DE_WINDOW_DESTINATION_BASE, dBase); 361 361 #if 0 362 362 /* Program pitch (distance between the 1st points of two adjacent lines). 363 363 Note that input pitch is BYTE value, but the 2D Pitch register uses ··· 380 380 FIELD_VALUE(0, DE_PITCH, SOURCE, dPitch/bytePerPixel)); /* dpr10 */ 381 381 } 382 382 383 - /* Screen Window width in Pixels. 384 - 2D engine uses this value to calculate the linear address in frame buffer for a given point. 385 - */ 386 - write_dpr(accel, DE_WINDOW_WIDTH, 387 - FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, (dPitch/bytePerPixel)) | 388 - FIELD_VALUE(0, DE_WINDOW_WIDTH, SOURCE, (dPitch/bytePerPixel))); 383 + /* Screen Window width in Pixels. 384 + 2D engine uses this value to calculate the linear address in frame buffer for a given point. 385 + */ 386 + write_dpr(accel, DE_WINDOW_WIDTH, 387 + FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, (dPitch/bytePerPixel)) | 388 + FIELD_VALUE(0, DE_WINDOW_WIDTH, SOURCE, (dPitch/bytePerPixel))); 389 389 390 - /* Note: For 2D Source in Host Write, only X_K1_MONO field is needed, and Y_K2 field is not used. 391 - For mono bitmap, use startBit for X_K1. */ 392 - write_dpr(accel, DE_SOURCE, 393 - FIELD_SET (0, DE_SOURCE, WRAP, DISABLE) | 394 - FIELD_VALUE(0, DE_SOURCE, X_K1_MONO, startBit)); /* dpr00 */ 390 + /* Note: For 2D Source in Host Write, only X_K1_MONO field is needed, and Y_K2 field is not used. 391 + For mono bitmap, use startBit for X_K1. */ 392 + write_dpr(accel, DE_SOURCE, 393 + FIELD_SET (0, DE_SOURCE, WRAP, DISABLE) | 394 + FIELD_VALUE(0, DE_SOURCE, X_K1_MONO, startBit)); /* dpr00 */ 395 395 396 - write_dpr(accel, DE_DESTINATION, 397 - FIELD_SET (0, DE_DESTINATION, WRAP, DISABLE) | 398 - FIELD_VALUE(0, DE_DESTINATION, X, dx) | 399 - FIELD_VALUE(0, DE_DESTINATION, Y, dy)); /* dpr04 */ 396 + write_dpr(accel, DE_DESTINATION, 397 + FIELD_SET (0, DE_DESTINATION, WRAP, DISABLE) | 398 + FIELD_VALUE(0, DE_DESTINATION, X, dx) | 399 + FIELD_VALUE(0, DE_DESTINATION, Y, dy)); /* dpr04 */ 400 400 401 - write_dpr(accel, DE_DIMENSION, 402 - FIELD_VALUE(0, DE_DIMENSION, X, width) | 403 - FIELD_VALUE(0, DE_DIMENSION, Y_ET, height)); /* dpr08 */ 401 + write_dpr(accel, DE_DIMENSION, 402 + FIELD_VALUE(0, DE_DIMENSION, X, width) | 403 + FIELD_VALUE(0, DE_DIMENSION, Y_ET, height)); /* dpr08 */ 404 404 405 - write_dpr(accel, DE_FOREGROUND, fColor); 406 - write_dpr(accel, DE_BACKGROUND, bColor); 405 + write_dpr(accel, DE_FOREGROUND, fColor); 406 + write_dpr(accel, DE_BACKGROUND, bColor); 407 407 408 408 de_ctrl = FIELD_VALUE(0, DE_CONTROL, ROP, rop2) | 409 409 FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2) | ··· 413 413 414 414 write_dpr(accel, DE_CONTROL, de_ctrl | deGetTransparency(accel)); 415 415 416 - /* Write MONO data (line by line) to 2D Engine data port */ 417 - for (i=0; i<height; i++) 418 - { 419 - /* For each line, send the data in chunks of 4 bytes */ 420 - for (j=0; j<(ul4BytesPerScan/4); j++) 421 - { 422 - write_dpPort(accel, *(unsigned int *)(pSrcbuf + (j * 4))); 423 - } 416 + /* Write MONO data (line by line) to 2D Engine data port */ 417 + for (i=0; i<height; i++) 418 + { 419 + /* For each line, send the data in chunks of 4 bytes */ 420 + for (j=0; j<(ul4BytesPerScan/4); j++) 421 + { 422 + write_dpPort(accel, *(unsigned int *)(pSrcbuf + (j * 4))); 423 + } 424 424 425 - if (ulBytesRemain) 426 - { 427 - memcpy(ajRemain, pSrcbuf+ul4BytesPerScan, ulBytesRemain); 428 - write_dpPort(accel, *(unsigned int *)ajRemain); 429 - } 425 + if (ulBytesRemain) 426 + { 427 + memcpy(ajRemain, pSrcbuf+ul4BytesPerScan, ulBytesRemain); 428 + write_dpPort(accel, *(unsigned int *)ajRemain); 429 + } 430 430 431 - pSrcbuf += srcDelta; 432 - } 431 + pSrcbuf += srcDelta; 432 + } 433 433 434 - return 0; 434 + return 0; 435 435 } 436 436
+2 -2
drivers/staging/sm750fb/sm750_accel.h
··· 7 7 /* notes: below address are the offset value from de_base_address (0x100000)*/ 8 8 9 9 /* for sm718/750/502 de_base is at mmreg_1mb*/ 10 - #define DE_BASE_ADDR_TYPE1 0x100000 10 + #define DE_BASE_ADDR_TYPE1 0x100000 11 11 /* for sm712,de_base is at mmreg_32kb */ 12 12 #define DE_BASE_ADDR_TYPE2 0x8000 13 13 /* for sm722,de_base is at mmreg_0 */ ··· 26 26 #define DE_SOURCE_WRAP_ENABLE 1 27 27 #define DE_SOURCE_X_K1 29:16 28 28 #define DE_SOURCE_Y_K2 15:0 29 - #define DE_SOURCE_X_K1_MONO 20:16 29 + #define DE_SOURCE_X_K1_MONO 20:16 30 30 31 31 #define DE_DESTINATION 0x4 32 32 #define DE_DESTINATION_WRAP 31:31
+13 -13
drivers/staging/sm750fb/sm750_help.h
··· 11 11 #define GET_FIELD(d, f) (((d) >> _LSB(f)) & RAW_MASK(f)) 12 12 #define TEST_FIELD(d, f, v) (GET_FIELD(d, f) == f ## _ ## v) 13 13 #define SET_FIELD(d, f, v) (((d) & ~GET_MASK(f)) | \ 14 - (((f ## _ ## v) & RAW_MASK(f)) << _LSB(f))) 14 + (((f ## _ ## v) & RAW_MASK(f)) << _LSB(f))) 15 15 #define SET_FIELDV(d, f, v) (((d) & ~GET_MASK(f)) | \ 16 - (((v) & RAW_MASK(f)) << _LSB(f))) 16 + (((v) & RAW_MASK(f)) << _LSB(f))) 17 17 18 18 /* Internal macros */ 19 19 #define _F_START(f) (0 ? f) ··· 26 26 /* Global macros */ 27 27 #define FIELD_GET(x, reg, field) \ 28 28 ( \ 29 - _F_NORMALIZE((x), reg ## _ ## field) \ 29 + _F_NORMALIZE((x), reg ## _ ## field) \ 30 30 ) 31 31 32 32 #define FIELD_SET(x, reg, field, value) \ 33 33 ( \ 34 - (x & ~_F_MASK(reg ## _ ## field)) \ 35 - | _F_DENORMALIZE(reg ## _ ## field ## _ ## value, reg ## _ ## field) \ 34 + (x & ~_F_MASK(reg ## _ ## field)) \ 35 + | _F_DENORMALIZE(reg ## _ ## field ## _ ## value, reg ## _ ## field) \ 36 36 ) 37 37 38 38 #define FIELD_VALUE(x, reg, field, value) \ 39 39 ( \ 40 - (x & ~_F_MASK(reg ## _ ## field)) \ 41 - | _F_DENORMALIZE(value, reg ## _ ## field) \ 40 + (x & ~_F_MASK(reg ## _ ## field)) \ 41 + | _F_DENORMALIZE(value, reg ## _ ## field) \ 42 42 ) 43 43 44 44 #define FIELD_CLEAR(reg, field) \ 45 45 ( \ 46 - ~ _F_MASK(reg ## _ ## field) \ 46 + ~ _F_MASK(reg ## _ ## field) \ 47 47 ) 48 48 49 49 /* Field Macros */ ··· 55 55 #define FIELD_DENORMALIZE(field, value) (((value) << FIELD_START(field)) & FIELD_MASK(field)) 56 56 57 57 #define FIELD_INIT(reg, field, value) FIELD_DENORMALIZE(reg ## _ ## field, \ 58 - reg ## _ ## field ## _ ## value) 58 + reg ## _ ## field ## _ ## value) 59 59 #define FIELD_INIT_VAL(reg, field, value) \ 60 - (FIELD_DENORMALIZE(reg ## _ ## field, value)) 60 + (FIELD_DENORMALIZE(reg ## _ ## field, value)) 61 61 #define FIELD_VAL_SET(x, r, f, v) x = x & ~FIELD_MASK(r ## _ ## f) \ 62 - | FIELD_DENORMALIZE(r ## _ ## f, r ## _ ## f ## _ ## v) 62 + | FIELD_DENORMALIZE(r ## _ ## f, r ## _ ## f ## _ ## v) 63 63 64 64 #define RGB(r, g, b) \ 65 65 ( \ 66 - (unsigned long) (((r) << 16) | ((g) << 8) | (b)) \ 66 + (unsigned long) (((r) << 16) | ((g) << 8) | (b)) \ 67 67 ) 68 68 69 69 #define RGB16(r, g, b) \ 70 70 ( \ 71 - (unsigned short) ((((r) & 0xF8) << 8) | (((g) & 0xFC) << 3) | (((b) & 0xF8) >> 3)) \ 71 + (unsigned short) ((((r) & 0xF8) << 8) | (((g) & 0xFC) << 3) | (((b) & 0xF8) >> 3)) \ 72 72 ) 73 73 74 74 static inline unsigned int absDiff(unsigned int a, unsigned int b)
+14 -14
drivers/staging/sm750fb/sm750_hw.h
··· 2 2 #define LYNX_HW750_H__ 3 3 4 4 5 - #define DEFAULT_SM750_CHIP_CLOCK 290 6 - #define DEFAULT_SM750LE_CHIP_CLOCK 333 5 + #define DEFAULT_SM750_CHIP_CLOCK 290 6 + #define DEFAULT_SM750LE_CHIP_CLOCK 333 7 7 #ifndef SM750LE_REVISION_ID 8 8 #define SM750LE_REVISION_ID (unsigned char)0xfe 9 9 #endif ··· 24 24 25 25 sm750_simul_sec,/* secondary => all head */ 26 26 27 - sm750_dual_normal,/* primary => panel head and secondary => crt */ 27 + sm750_dual_normal,/* primary => panel head and secondary => crt */ 28 28 29 - sm750_dual_swap,/* primary => crt head and secondary => panel */ 29 + sm750_dual_swap,/* primary => crt head and secondary => panel */ 30 30 }; 31 31 32 32 ··· 61 61 int yLCD; 62 62 }; 63 63 64 - /* sm750_share stands for a presentation of two frame buffer 65 - that use one sm750 adaptor, it is similar to the super class of lynx_share 66 - in C++ 67 - */ 64 + /* sm750_share stands for a presentation of two frame buffer 65 + that use one sm750 adaptor, it is similar to the super class of lynx_share 66 + in C++ 67 + */ 68 68 69 69 struct sm750_share{ 70 70 /* it's better to put lynx_share struct to the first place of sm750_share */ 71 71 struct lynx_share share; 72 72 struct sm750_state state; 73 73 int hwCursor; 74 - /* 0: no hardware cursor 75 - 1: primary crtc hw cursor enabled, 76 - 2: secondary crtc hw cursor enabled 77 - 3: both ctrc hw cursor enabled 74 + /* 0: no hardware cursor 75 + 1: primary crtc hw cursor enabled, 76 + 2: secondary crtc hw cursor enabled 77 + 3: both ctrc hw cursor enabled 78 78 */ 79 79 }; 80 80 ··· 95 95 void hw_sm750_crtc_clear(struct lynxfb_crtc*); 96 96 void hw_sm750_output_clear(struct lynxfb_output*); 97 97 int hw_sm750_pan_display(struct lynxfb_crtc *crtc, 98 - const struct fb_var_screeninfo *var, 99 - const struct fb_info *info); 98 + const struct fb_var_screeninfo *var, 99 + const struct fb_info *info); 100 100 101 101 #endif