diff options
author | Kevin Brace <kevinbrace@gmx.com> | 2017-07-07 14:14:53 -0500 |
---|---|---|
committer | Kevin Brace <kevinbrace@gmx.com> | 2017-07-07 14:14:53 -0500 |
commit | d1a10f7cf55bcf09f2515258cc8bd4a1ff1cf056 (patch) | |
tree | a53cb4f6952cb71226bfa1736343712cae842135 | |
parent | f6925580b54bb258d0e19501012de41052e993ca (diff) |
Added via_fp_secondary_soft_power_seq
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
-rw-r--r-- | drivers/gpu/drm/via/via_fp.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/drivers/gpu/drm/via/via_fp.c b/drivers/gpu/drm/via/via_fp.c index cbe9a0389773..20b494234c55 100644 --- a/drivers/gpu/drm/via/via_fp.c +++ b/drivers/gpu/drm/via/via_fp.c @@ -297,6 +297,73 @@ via_fp_primary_soft_power_seq(struct via_device *dev_priv, bool power_state) DRM_DEBUG_KMS("Exiting via_fp_primary_soft_power_seq.\n"); } +static void +via_fp_secondary_soft_power_seq(struct via_device *dev_priv, bool power_state) +{ + DRM_DEBUG_KMS("Entered via_fp_secondary_soft_power_seq.\n"); + + /* Turn off FP hardware power sequence. */ + via_fp_set_secondary_hard_power(VGABASE, false); + + /* Use software FP power sequence control. */ + via_fp_set_secondary_power_seq_type(VGABASE, false); + + if (power_state) { + /* Turn on FP Display Period. */ + via_fp_set_secondary_direct_display_period(VGABASE, true); + + /* Wait for TD0 ms. */ + mdelay(TD0); + + /* Turn on FP VDD rail. */ + via_fp_set_secondary_soft_vdd(VGABASE, true); + + /* Wait for TD1 ms. */ + mdelay(TD1); + + /* Turn on FP data transmission. */ + via_fp_set_secondary_soft_data(VGABASE, true); + + /* Wait for TD2 ms. */ + mdelay(TD2); + + /* Turn on FP VEE rail. */ + via_fp_set_secondary_soft_vee(VGABASE, true); + + /* Wait for TD3 ms. */ + mdelay(TD3); + + /* Turn on FP back light. */ + via_fp_set_secondary_soft_back_light(VGABASE, true); + } else { + /* Turn off FP back light. */ + via_fp_set_secondary_soft_back_light(VGABASE, false); + + /* Wait for TD3 ms. */ + mdelay(TD3); + + /* Turn off FP VEE rail. */ + via_fp_set_secondary_soft_vee(VGABASE, false); + + /* Wait for TD2 ms. */ + mdelay(TD2); + + /* Turn off FP data transmission. */ + via_fp_set_secondary_soft_data(VGABASE, false); + + /* Wait for TD1 ms. */ + mdelay(TD1); + + /* Turn off FP VDD rail. */ + via_fp_set_secondary_soft_vdd(VGABASE, false); + + /* Turn off FP Display Period. */ + via_fp_set_secondary_direct_display_period(VGABASE, false); + } + + DRM_DEBUG_KMS("Exiting via_fp_secondary_soft_power_seq.\n"); +} + /* * Sets flat panel I/O pad state. */ |