summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/smi_501.c271
-rw-r--r--src/smi_501.h25
-rw-r--r--src/smi_accel.c2
-rw-r--r--src/smi_driver.c18
4 files changed, 154 insertions, 162 deletions
diff --git a/src/smi_501.c b/src/smi_501.c
index c8ae99f..0d7c7fa 100644
--- a/src/smi_501.c
+++ b/src/smi_501.c
@@ -112,6 +112,34 @@ mode_table_t mode_table[] = {
};
+/* Set DPMS state. */
+void
+SMI501_SetDPMS(SMIPtr pSmi, DPMS_t state)
+{
+ unsigned int value;
+
+ value = SMI501_Read32(pSmi, SYSTEM_CTRL);
+ switch (state) {
+ case DPMS_ON:
+ value = FIELD_SET(value, SYSTEM_CTRL, DPMS, VPHP);
+ break;
+
+ case DPMS_STANDBY:
+ value = FIELD_SET(value, SYSTEM_CTRL, DPMS, VPHN);
+ break;
+
+ case DPMS_SUSPEND:
+ value = FIELD_SET(value, SYSTEM_CTRL, DPMS, VNHP);
+ break;
+
+ case DPMS_OFF:
+ value = FIELD_SET(value, SYSTEM_CTRL, DPMS, VNHN);
+ break;
+ }
+
+ SMI501_Write32(pSmi, SYSTEM_CTRL, value);
+}
+
Bool
SMI501_SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{
@@ -135,11 +163,11 @@ SMI501_SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
}
/**********************************************************************
- * regRead32
+ * SMI501_Read32
* Read the value of the 32-bit register specified by nOffset
**********************************************************************/
unsigned int
-regRead32(SMIPtr pSmi, unsigned int nOffset)
+SMI501_Read32(SMIPtr pSmi, unsigned int nOffset)
{
unsigned int result;
@@ -149,12 +177,12 @@ regRead32(SMIPtr pSmi, unsigned int nOffset)
}
/**********************************************************************
- * regWrite32
+ * SMI501_Write32
* Write the 32-bit value, nData, to the 32-bit register specified by
* nOffset
**********************************************************************/
void
-regWrite32(SMIPtr pSmi, unsigned int nOffset, unsigned int nData)
+SMI501_Write32(SMIPtr pSmi, unsigned int nOffset, unsigned int nData)
{
WRITE_SCR(pSmi, nOffset, nData);
}
@@ -410,13 +438,13 @@ programMode(SMIPtr pSmi, reg_table_t *register_table)
unsigned int fb_size, offset;
/* Get current power configuration. */
- gate = regRead32(pSmi, CURRENT_POWER_GATE);
+ gate = SMI501_Read32(pSmi, CURRENT_POWER_GATE);
gate |= 0x08; /* Enable power to 2D engine */
gate = FIELD_SET(gate, CURRENT_POWER_GATE, CSC, ENABLE);
gate = FIELD_SET(gate, CURRENT_POWER_GATE, ZVPORT, ENABLE);
gate = FIELD_SET(gate, CURRENT_POWER_GATE, GPIO_PWM_I2C, ENABLE);
- clock = regRead32(pSmi, CURRENT_POWER_CLOCK);
+ clock = SMI501_Read32(pSmi, CURRENT_POWER_CLOCK);
clock = FIELD_SET(clock, CURRENT_POWER_CLOCK, MCLK_SELECT, 336);
clock = FIELD_SET(clock, CURRENT_POWER_CLOCK, MCLK_DIVIDER, 3);
@@ -437,70 +465,71 @@ programMode(SMIPtr pSmi, reg_table_t *register_table)
/* Calculate frame buffer address. */
value = 0;
fb_size = register_table->fb_width * register_table->height;
- if (FIELD_GET(regRead32(pSmi, CRT_DISPLAY_CTRL),
+ if (FIELD_GET(SMI501_Read32(pSmi, CRT_DISPLAY_CTRL),
CRT_DISPLAY_CTRL,
PLANE) == CRT_DISPLAY_CTRL_PLANE_ENABLE) {
- value = FIELD_GET(regRead32(pSmi, CRT_FB_ADDRESS),
+ value = FIELD_GET(SMI501_Read32(pSmi, CRT_FB_ADDRESS),
CRT_FB_ADDRESS, ADDRESS);
if (fb_size < value)
value = 0;
else
- value += FIELD_GET(regRead32(pSmi, CRT_FB_WIDTH),
+ value += FIELD_GET(SMI501_Read32(pSmi, CRT_FB_WIDTH),
CRT_FB_WIDTH, OFFSET) *
- (FIELD_GET(regRead32(pSmi, CRT_VERTICAL_TOTAL),
+ (FIELD_GET(SMI501_Read32(pSmi, CRT_VERTICAL_TOTAL),
CRT_VERTICAL_TOTAL, DISPLAY_END) + 1);
}
/* Program panel registers. */
- regWrite32(pSmi, PANEL_FB_ADDRESS,
- FIELD_SET(0, PANEL_FB_ADDRESS, STATUS, PENDING) |
- FIELD_SET(0, PANEL_FB_ADDRESS, EXT, LOCAL) |
- FIELD_VALUE(0, PANEL_FB_ADDRESS, ADDRESS, value));
-
- regWrite32(pSmi, PANEL_FB_WIDTH,
- FIELD_VALUE(0, PANEL_FB_WIDTH, WIDTH,
- register_table->fb_width) |
- FIELD_VALUE(0, PANEL_FB_WIDTH, OFFSET,
- register_table->fb_width));
-
- regWrite32(pSmi, PANEL_WINDOW_WIDTH,
- FIELD_VALUE(0, PANEL_WINDOW_WIDTH, WIDTH,
- register_table->width) |
- FIELD_VALUE(0, PANEL_WINDOW_WIDTH, X, 0));
-
- regWrite32(pSmi, PANEL_WINDOW_HEIGHT,
- FIELD_VALUE(0, PANEL_WINDOW_HEIGHT, HEIGHT,
- register_table->height) |
- FIELD_VALUE(0, PANEL_WINDOW_HEIGHT, Y, 0));
-
- regWrite32(pSmi, PANEL_PLANE_TL,
- FIELD_VALUE(0, PANEL_PLANE_TL, TOP, 0) |
- FIELD_VALUE(0, PANEL_PLANE_TL, LEFT, 0));
-
- regWrite32(pSmi, PANEL_PLANE_BR,
- FIELD_VALUE(0, PANEL_PLANE_BR, BOTTOM,
- register_table->height - 1) |
- FIELD_VALUE(0, PANEL_PLANE_BR, RIGHT,
- register_table->width - 1));
-
- regWrite32(pSmi, PANEL_HORIZONTAL_TOTAL,
- register_table->horizontal_total);
- regWrite32(pSmi, PANEL_HORIZONTAL_SYNC,
- register_table->horizontal_sync);
- regWrite32(pSmi, PANEL_VERTICAL_TOTAL,
- register_table->vertical_total);
- regWrite32(pSmi, PANEL_VERTICAL_SYNC,
- register_table->vertical_sync);
+ SMI501_Write32(pSmi, PANEL_FB_ADDRESS,
+ FIELD_SET(0, PANEL_FB_ADDRESS, STATUS, PENDING) |
+ FIELD_SET(0, PANEL_FB_ADDRESS, EXT, LOCAL) |
+ FIELD_VALUE(0, PANEL_FB_ADDRESS, ADDRESS, value));
+
+ SMI501_Write32(pSmi, PANEL_FB_WIDTH,
+ FIELD_VALUE(0, PANEL_FB_WIDTH, WIDTH,
+ register_table->fb_width) |
+ FIELD_VALUE(0, PANEL_FB_WIDTH, OFFSET,
+ register_table->fb_width));
+
+ SMI501_Write32(pSmi, PANEL_WINDOW_WIDTH,
+ FIELD_VALUE(0, PANEL_WINDOW_WIDTH, WIDTH,
+ register_table->width) |
+ FIELD_VALUE(0, PANEL_WINDOW_WIDTH, X, 0));
+
+ SMI501_Write32(pSmi, PANEL_WINDOW_HEIGHT,
+ FIELD_VALUE(0, PANEL_WINDOW_HEIGHT, HEIGHT,
+ register_table->height) |
+ FIELD_VALUE(0, PANEL_WINDOW_HEIGHT, Y, 0));
+
+ SMI501_Write32(pSmi, PANEL_PLANE_TL,
+ FIELD_VALUE(0, PANEL_PLANE_TL, TOP, 0) |
+ FIELD_VALUE(0, PANEL_PLANE_TL, LEFT, 0));
+
+ SMI501_Write32(pSmi, PANEL_PLANE_BR,
+ FIELD_VALUE(0, PANEL_PLANE_BR, BOTTOM,
+ register_table->height - 1) |
+ FIELD_VALUE(0, PANEL_PLANE_BR, RIGHT,
+ register_table->width - 1));
+
+ SMI501_Write32(pSmi, PANEL_HORIZONTAL_TOTAL,
+ register_table->horizontal_total);
+ SMI501_Write32(pSmi, PANEL_HORIZONTAL_SYNC,
+ register_table->horizontal_sync);
+ SMI501_Write32(pSmi, PANEL_VERTICAL_TOTAL,
+ register_table->vertical_total);
+ SMI501_Write32(pSmi, PANEL_VERTICAL_SYNC,
+ register_table->vertical_sync);
/* Program panel display control register. */
- value = regRead32(pSmi, PANEL_DISPLAY_CTRL) &
+ value = SMI501_Read32(pSmi, PANEL_DISPLAY_CTRL) &
FIELD_CLEAR(PANEL_DISPLAY_CTRL, VSYNC_PHASE) &
FIELD_CLEAR(PANEL_DISPLAY_CTRL, HSYNC_PHASE) &
FIELD_CLEAR(PANEL_DISPLAY_CTRL, TIMING) &
FIELD_CLEAR(PANEL_DISPLAY_CTRL, PLANE) &
FIELD_CLEAR(PANEL_DISPLAY_CTRL, FORMAT);
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, value | register_table->control);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, value |
+ register_table->control);
/* Palette RAM. */
palette_ram = PANEL_PALETTE_RAM;
@@ -508,12 +537,12 @@ programMode(SMIPtr pSmi, reg_table_t *register_table)
/* Turn on panel. */
panelPowerSequence(pSmi, PANEL_ON, 4);
- regWrite32(pSmi, MISC_CTRL,
- FIELD_SET (regRead32 (pSmi, MISC_CTRL), MISC_CTRL,
- DAC_POWER, ENABLE));
- regWrite32(pSmi, CRT_DISPLAY_CTRL,
- FIELD_SET (regRead32 (pSmi, CRT_DISPLAY_CTRL),
- CRT_DISPLAY_CTRL, SELECT, PANEL));
+ SMI501_Write32(pSmi, MISC_CTRL,
+ FIELD_SET(SMI501_Read32(pSmi, MISC_CTRL), MISC_CTRL,
+ DAC_POWER, ENABLE));
+ SMI501_Write32(pSmi, CRT_DISPLAY_CTRL,
+ FIELD_SET(SMI501_Read32(pSmi, CRT_DISPLAY_CTRL),
+ CRT_DISPLAY_CTRL, SELECT, PANEL));
}
/* Program CRT. */
@@ -527,49 +556,49 @@ programMode(SMIPtr pSmi, reg_table_t *register_table)
setPower(pSmi, gate, clock | register_table->clock);
/* Turn on DAC. */
- regWrite32(pSmi, MISC_CTRL, FIELD_SET(regRead32(pSmi, MISC_CTRL),
- MISC_CTRL, DAC_POWER, ENABLE));
+ SMI501_Write32(pSmi, MISC_CTRL, FIELD_SET(SMI501_Read32(pSmi, MISC_CTRL),
+ MISC_CTRL, DAC_POWER, ENABLE));
/* Calculate frame buffer address. */
value = 0;
fb_size = register_table->fb_width * register_table->height;
- if (FIELD_GET(regRead32(pSmi, PANEL_DISPLAY_CTRL),
+ if (FIELD_GET(SMI501_Read32(pSmi, PANEL_DISPLAY_CTRL),
PANEL_DISPLAY_CTRL,
PLANE) == PANEL_DISPLAY_CTRL_PLANE_ENABLE) {
- value = FIELD_GET(regRead32(pSmi, PANEL_FB_ADDRESS),
+ value = FIELD_GET(SMI501_Read32(pSmi, PANEL_FB_ADDRESS),
PANEL_FB_ADDRESS, ADDRESS);
if (fb_size < value)
value = 0;
else
- value += FIELD_GET(regRead32(pSmi, PANEL_FB_WIDTH),
+ value += FIELD_GET(SMI501_Read32(pSmi, PANEL_FB_WIDTH),
PANEL_FB_WIDTH, OFFSET) *
- FIELD_GET(regRead32(pSmi, PANEL_WINDOW_HEIGHT),
+ FIELD_GET(SMI501_Read32(pSmi, PANEL_WINDOW_HEIGHT),
PANEL_WINDOW_HEIGHT, HEIGHT);
}
/* Program CRT registers. */
- regWrite32(pSmi, CRT_FB_ADDRESS,
- FIELD_SET(0, CRT_FB_ADDRESS, STATUS, PENDING) |
- FIELD_SET(0, CRT_FB_ADDRESS, EXT, LOCAL) |
- FIELD_VALUE(0, CRT_FB_ADDRESS, ADDRESS, value));
-
- regWrite32(pSmi, CRT_FB_WIDTH,
- FIELD_VALUE(0, CRT_FB_WIDTH, WIDTH,
- register_table->fb_width) |
- FIELD_VALUE(0, CRT_FB_WIDTH, OFFSET,
- register_table->fb_width));
-
- regWrite32(pSmi, CRT_HORIZONTAL_TOTAL,
- register_table->horizontal_total);
- regWrite32(pSmi, CRT_HORIZONTAL_SYNC,
- register_table->horizontal_sync);
- regWrite32(pSmi, CRT_VERTICAL_TOTAL,
- register_table->vertical_total);
- regWrite32(pSmi, CRT_VERTICAL_SYNC,
- register_table->vertical_sync);
+ SMI501_Write32(pSmi, CRT_FB_ADDRESS,
+ FIELD_SET(0, CRT_FB_ADDRESS, STATUS, PENDING) |
+ FIELD_SET(0, CRT_FB_ADDRESS, EXT, LOCAL) |
+ FIELD_VALUE(0, CRT_FB_ADDRESS, ADDRESS, value));
+
+ SMI501_Write32(pSmi, CRT_FB_WIDTH,
+ FIELD_VALUE(0, CRT_FB_WIDTH, WIDTH,
+ register_table->fb_width) |
+ FIELD_VALUE(0, CRT_FB_WIDTH, OFFSET,
+ register_table->fb_width));
+
+ SMI501_Write32(pSmi, CRT_HORIZONTAL_TOTAL,
+ register_table->horizontal_total);
+ SMI501_Write32(pSmi, CRT_HORIZONTAL_SYNC,
+ register_table->horizontal_sync);
+ SMI501_Write32(pSmi, CRT_VERTICAL_TOTAL,
+ register_table->vertical_total);
+ SMI501_Write32(pSmi, CRT_VERTICAL_SYNC,
+ register_table->vertical_sync);
/* Program CRT display control register. */
- value = regRead32(pSmi, CRT_DISPLAY_CTRL) &
+ value = SMI501_Read32(pSmi, CRT_DISPLAY_CTRL) &
FIELD_CLEAR(CRT_DISPLAY_CTRL, VSYNC_PHASE) &
FIELD_CLEAR(CRT_DISPLAY_CTRL, HSYNC_PHASE) &
FIELD_CLEAR(CRT_DISPLAY_CTRL, SELECT) &
@@ -577,13 +606,13 @@ programMode(SMIPtr pSmi, reg_table_t *register_table)
FIELD_CLEAR(CRT_DISPLAY_CTRL, PLANE) &
FIELD_CLEAR(CRT_DISPLAY_CTRL, FORMAT);
- regWrite32(pSmi, CRT_DISPLAY_CTRL, value | register_table->control);
+ SMI501_Write32(pSmi, CRT_DISPLAY_CTRL, value | register_table->control);
/* Palette RAM. */
palette_ram = CRT_PALETTE_RAM;
/* Turn on CRT. */
- setDPMS(pSmi, DPMS_ON);
+ SMI501_SetDPMS(pSmi, DPMS_ON);
}
/* In case of 8-bpp, fill palette. */
@@ -597,7 +626,7 @@ programMode(SMIPtr pSmi, reg_table_t *register_table)
for (offset = 0; offset < 256 * 4; offset += 4) {
/* Store current RGB value. */
/* ERROR!!!!! IGX RGB should be a function, maybe RGB16?
- regWrite32(pSmi, (palette_ram + offset),
+ SMI501_Write32(pSmi, (palette_ram + offset),
(gray ? (RGB((gray + 50) / 100,
(gray + 50) / 100,
(gray + 50) / 100))
@@ -628,7 +657,7 @@ programMode(SMIPtr pSmi, reg_table_t *register_table)
/* Start with RGB = 0,0,0. */
value = 0x000000;
for (offset = 0; offset < 256 * 4; offset += 4) {
- regWrite32(pSmi, palette_ram + offset, value);
+ SMI501_Write32(pSmi, palette_ram + offset, value);
/* Advance RGB by 1,1,1. */
value += 0x010101;
}
@@ -690,7 +719,7 @@ setPower(SMIPtr pSmi, unsigned int nGates, unsigned int Clock)
unsigned int control_value;
/* Get current power mode. */
- control_value = FIELD_GET(regRead32(pSmi, POWER_MODE_CTRL),
+ control_value = FIELD_GET(SMI501_Read32(pSmi, POWER_MODE_CTRL),
POWER_MODE_CTRL, MODE);
switch (control_value) {
@@ -719,46 +748,18 @@ setPower(SMIPtr pSmi, unsigned int nGates, unsigned int Clock)
}
/* Program new power mode. */
- regWrite32(pSmi, gate_reg, nGates);
- regWrite32(pSmi, clock_reg, Clock);
- regWrite32(pSmi, POWER_MODE_CTRL, control_value);
+ SMI501_Write32(pSmi, gate_reg, nGates);
+ SMI501_Write32(pSmi, clock_reg, Clock);
+ SMI501_Write32(pSmi, POWER_MODE_CTRL, control_value);
/* When returning from sleep, wait until finished. */
/* IGX -- comment out for now, gets us in an infinite loop!
- while (FIELD_GET(regRead32(pSmi, POWER_MODE_CTRL),
+ while (FIELD_GET(SMI501_Read32(pSmi, POWER_MODE_CTRL),
POWER_MODE_CTRL,
SLEEP_STATUS) == POWER_MODE_CTRL_SLEEP_STATUS_ACTIVE) ;
*/
}
-/* Set DPMS state. */
-void
-setDPMS(SMIPtr pSmi, DPMS_t state)
-{
- unsigned int value;
-
- value = regRead32(pSmi, SYSTEM_CTRL);
- switch (state) {
- case DPMS_ON:
- value = FIELD_SET(value, SYSTEM_CTRL, DPMS, VPHP);
- break;
-
- case DPMS_STANDBY:
- value = FIELD_SET(value, SYSTEM_CTRL, DPMS, VPHN);
- break;
-
- case DPMS_SUSPEND:
- value = FIELD_SET(value, SYSTEM_CTRL, DPMS, VNHP);
- break;
-
- case DPMS_OFF:
- value = FIELD_SET(value, SYSTEM_CTRL, DPMS, VNHN);
- break;
- }
-
- regWrite32(pSmi, SYSTEM_CTRL, value);
-}
-
/* Panel Code */
/**********************************************************************
*
@@ -788,7 +789,7 @@ panelWaitVSync(SMIPtr pSmi, int vsync_count)
/* Wait for end of vsync */
timeout = 0;
do {
- status = FIELD_GET(regRead32(pSmi, CMD_INTPR_STATUS),
+ status = FIELD_GET(SMI501_Read32(pSmi, CMD_INTPR_STATUS),
CMD_INTPR_STATUS, PANEL_SYNC);
if (++timeout == VSYNCTIMEOUT)
break;
@@ -797,7 +798,7 @@ panelWaitVSync(SMIPtr pSmi, int vsync_count)
/* Wait for start of vsync */
timeout = 0;
do {
- status = FIELD_GET(regRead32(pSmi, CMD_INTPR_STATUS),
+ status = FIELD_GET(SMI501_Read32(pSmi, CMD_INTPR_STATUS),
CMD_INTPR_STATUS, PANEL_SYNC);
if (++timeout == VSYNCTIMEOUT)
break;
@@ -830,55 +831,55 @@ panelWaitVSync(SMIPtr pSmi, int vsync_count)
static void
panelPowerSequence(SMIPtr pSmi, panel_state_t on_off, int vsync_delay)
{
- unsigned int panelControl = regRead32(pSmi, PANEL_DISPLAY_CTRL);
+ unsigned int panelControl = SMI501_Read32(pSmi, PANEL_DISPLAY_CTRL);
if (on_off == PANEL_ON) {
/* Turn on FPVDDEN. */
panelControl = FIELD_SET(panelControl,
PANEL_DISPLAY_CTRL, FPVDDEN, HIGH);
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
panelWaitVSync(pSmi, vsync_delay);
/* Turn on FPDATA. */
panelControl = FIELD_SET(panelControl,
PANEL_DISPLAY_CTRL, DATA, ENABLE);
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
panelWaitVSync(pSmi, vsync_delay);
/* Turn on FPVBIAS. */
panelControl = FIELD_SET(panelControl,
PANEL_DISPLAY_CTRL, VBIASEN, HIGH);
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
panelWaitVSync(pSmi, vsync_delay);
/* Turn on FPEN. */
panelControl = FIELD_SET(panelControl,
PANEL_DISPLAY_CTRL, FPEN, HIGH);
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
}
else {
/* Turn off FPEN. */
panelControl = FIELD_SET(panelControl,
PANEL_DISPLAY_CTRL, FPEN, LOW);
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
panelWaitVSync(pSmi, vsync_delay);
/* Turn off FPVBIASEN. */
panelControl = FIELD_SET(panelControl,
PANEL_DISPLAY_CTRL, VBIASEN, LOW);
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
panelWaitVSync(pSmi, vsync_delay);
/* Turn off FPDATA. */
panelControl = FIELD_SET(panelControl,
PANEL_DISPLAY_CTRL, DATA, DISABLE);
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
panelWaitVSync(pSmi, vsync_delay);
/* Turn off FPVDDEN. */
panelControl = FIELD_SET(panelControl,
PANEL_DISPLAY_CTRL, FPVDDEN, LOW);
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, panelControl);
}
}
@@ -907,8 +908,8 @@ panelUseCRT(SMIPtr pSmi, BOOL bEnable)
unsigned int panel_ctrl = 0;
unsigned int crt_ctrl = 0;
- panel_ctrl = regRead32(pSmi, PANEL_DISPLAY_CTRL);
- crt_ctrl = regRead32(pSmi, CRT_DISPLAY_CTRL);
+ panel_ctrl = SMI501_Read32(pSmi, PANEL_DISPLAY_CTRL);
+ crt_ctrl = SMI501_Read32(pSmi, CRT_DISPLAY_CTRL);
if (bEnable) {
/* Enable panel graphics plane */
@@ -931,8 +932,8 @@ panelUseCRT(SMIPtr pSmi, BOOL bEnable)
crt_ctrl = FIELD_SET(crt_ctrl, CRT_DISPLAY_CTRL, SELECT, CRT);
}
- regWrite32(pSmi, PANEL_DISPLAY_CTRL, panel_ctrl);
- regWrite32(pSmi, CRT_DISPLAY_CTRL, crt_ctrl);
+ SMI501_Write32(pSmi, PANEL_DISPLAY_CTRL, panel_ctrl);
+ SMI501_Write32(pSmi, CRT_DISPLAY_CTRL, crt_ctrl);
}
void
diff --git a/src/smi_501.h b/src/smi_501.h
index 6002fae..06cb1d3 100644
--- a/src/smi_501.h
+++ b/src/smi_501.h
@@ -44,7 +44,7 @@ authorization from the XFree86 Project and Silicon Motion.
/* In Kb - documentation says it is 64Kb... */
#define FB_RESERVE4USB 512
-/* Power constants to use with setDPMS function. */
+/* Power constants to use with SMI501_SetDPMS function. */
typedef enum _DPMS_t {
DPMS_ON,
DPMS_STANDBY,
@@ -215,11 +215,14 @@ typedef enum _panel_state_t {
/******************************************************************************
* F U N C T I O N P R O T O T Y P E S
******************************************************************************/
-/* Set DPMS state. */
-void setDPMS(SMIPtr pSmi, DPMS_t state);
-/* Calculate memory clock settings of input clock. */
+void SMI501_SetDPMS(SMIPtr pSmi, DPMS_t state);
+Bool SMI501_SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
+unsigned int SMI501_Read32(SMIPtr pSmi, unsigned int nOffset);
+void SMI501_Write32(SMIPtr pSmi, unsigned int nOffset, unsigned int nData);
-/* Init flags and values used in init_crt structure */
+/* FIXME does something use it? */
+void DisableOverlay(SMIPtr pSmi);
+void EnableOverlay(SMIPtr pSmi);
/* TV clock phase select */
#define DISP_CRT_TVP 0x00000100
@@ -305,18 +308,6 @@ void setDPMS(SMIPtr pSmi, DPMS_t state);
(((b) & RGB565_B_MASK) >> RGB565_B_SHIFT)) \
)
-/* Sets the same mode both on panel and crt */
-Bool SMI501_SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
-
-unsigned int regRead32(SMIPtr pSmi, unsigned int nOffset);
-void regWrite32(SMIPtr pSmi, unsigned int nOffset, unsigned int nData);
-
-
-/* FIXME does something use it? */
-void DisableOverlay(SMIPtr pSmi);
-void EnableOverlay(SMIPtr pSmi);
-
-
/* REGISTER DEFINITIONS */
/* regSC.h */
diff --git a/src/smi_accel.c b/src/smi_accel.c
index 6e66677..f894eff 100644
--- a/src/smi_accel.c
+++ b/src/smi_accel.c
@@ -83,7 +83,7 @@ SMI_AccelSync(ScrnInfoPtr pScrn)
int i, dwVal;
for (i = 0x1000000; i > 0; i--) {
- dwVal = regRead32(pSmi, CMD_INTPR_STATUS);
+ dwVal = SMI501_Read32(pSmi, CMD_INTPR_STATUS);
if (FIELD_GET(dwVal, CMD_INTPR_STATUS,
2D_ENGINE) == CMD_INTPR_STATUS_2D_ENGINE_IDLE &&
FIELD_GET(dwVal, CMD_INTPR_STATUS,
diff --git a/src/smi_driver.c b/src/smi_driver.c
index b14f178..a989f60 100644
--- a/src/smi_driver.c
+++ b/src/smi_driver.c
@@ -1822,10 +1822,10 @@ SMI_DetectPanelSize(ScrnInfoPtr pScrn)
pSmi->lcd = 1;
}
else if (IS_MSOC(pSmi)) {
- pSmi->lcdWidth = FIELD_GET(regRead32(pSmi, PANEL_WINDOW_WIDTH),
- PANEL_WINDOW_WIDTH, WIDTH);
- pSmi->lcdHeight = FIELD_GET(regRead32(pSmi, PANEL_WINDOW_HEIGHT),
- PANEL_WINDOW_HEIGHT, HEIGHT);
+ pSmi->lcdWidth = FIELD_GET(SMI501_Read32(pSmi, PANEL_WINDOW_WIDTH),
+ PANEL_WINDOW_WIDTH, WIDTH);
+ pSmi->lcdHeight = FIELD_GET(SMI501_Read32(pSmi, PANEL_WINDOW_HEIGHT),
+ PANEL_WINDOW_HEIGHT, HEIGHT);
}
else {
/* panel size detection for hardware other than 730 */
@@ -2014,12 +2014,13 @@ SMI_DetectMem(ScrnInfoPtr pScrn)
unsigned int value;
unsigned int total_memory;
- value = regRead32(pSmi, DRAM_CTRL);
+ value = SMI501_Read32(pSmi, DRAM_CTRL);
if (FIELD_GET(value, DRAM_CTRL, SIZE) == DRAM_CTRL_SIZE_4) {
/*
* SM107 : Need to re-assign number of local memory banks
*/
- regWrite32(pSmi, DRAM_CTRL, FIELD_SET(value, DRAM_CTRL, BANKS, 2));
+ SMI501_Write32(pSmi, DRAM_CTRL, FIELD_SET(value, DRAM_CTRL,
+ BANKS, 2));
total_memory = 4 * 1024;
}
else
@@ -3659,9 +3660,8 @@ SMI_DisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode,
VGAOUT8_INDEX(pSmi, VGA_SEQ_INDEX, VGA_SEQ_DATA, 0x24, SR24);
#endif
}
- else {
- setDPMS(pSmi, PowerManagementMode);
- }
+ else
+ SMI501_SetDPMS(pSmi, PowerManagementMode);
/* Save the current power state */
pSmi->CurrentDPMS = PowerManagementMode;