diff options
author | Kevin Brace <kevinbrace@gmx.com> | 2017-07-12 11:04:00 -0500 |
---|---|---|
committer | Kevin Brace <kevinbrace@gmx.com> | 2017-07-12 11:04:00 -0500 |
commit | ee3110634db3d87ab527c582dff10f5fd6a4d1a6 (patch) | |
tree | dcb6b9e92c7ffd9f3a64709e4ad5700b91e06e69 | |
parent | 0259543082a0fd8d7919dcf6eb0c8797eef42d98 (diff) |
Added viaFPCastleRockSoftPowerSeq
This function is untested since the developer does not own a CLE266
chipset based computer with FP support.
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
-rw-r--r-- | drivers/gpu/drm/via/via_fp.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/drivers/gpu/drm/via/via_fp.c b/drivers/gpu/drm/via/via_fp.c index 9c1128e56750..7bfc56e73820 100644 --- a/drivers/gpu/drm/via/via_fp.c +++ b/drivers/gpu/drm/via/via_fp.c @@ -234,6 +234,59 @@ via_disable_internal_lvds(struct drm_encoder *encoder) } static void +via_fp_castle_rock_soft_power_seq(struct via_device *dev_priv, + bool power_state) +{ + DRM_DEBUG_KMS("Entered via_fp_castle_rock_soft_power_seq.\n"); + + if (power_state) { + /* Wait for 25 ms. */ + mdelay(25); + + /* Turn on FP VDD rail. */ + via_fp_set_primary_soft_vdd(VGABASE, true); + + /* Wait for 510 ms. */ + mdelay(510); + + /* Turn on FP data transmission. */ + via_fp_set_primary_soft_data(VGABASE, true); + + /* Wait for 1 ms. */ + mdelay(1); + + /* Turn on FP VEE rail. */ + via_fp_set_primary_soft_vee(VGABASE, true); + + /* Turn on FP back light. */ + via_fp_set_primary_soft_back_light(VGABASE, true); + } else { + /* Wait for 1 ms. */ + mdelay(1); + + /* Turn off FP back light. */ + via_fp_set_primary_soft_back_light(VGABASE, false); + + /* Turn off FP VEE rail. */ + via_fp_set_primary_soft_vee(VGABASE, false); + + /* Wait for 510 ms. */ + mdelay(510); + + /* Turn off FP data transmission. */ + via_fp_set_primary_soft_data(VGABASE, false); + + /* Wait for 25 ms. */ + mdelay(25); + + /* Turn off FP VDD rail. */ + via_fp_set_primary_soft_vdd(VGABASE, false); + } + + DRM_DEBUG_KMS("Exiting via_fp_castle_rock_soft_power_seq.\n"); +} + +static void via_fp_primary_soft_power_seq(struct via_device *dev_priv, bool power_state) { DRM_DEBUG_KMS("Entered via_fp_primary_soft_power_seq.\n"); @@ -406,6 +459,8 @@ via_fp_power(struct via_device *dev_priv, unsigned short device, switch (device) { case PCI_DEVICE_ID_VIA_CLE266: + via_fp_castle_rock_soft_power_seq(dev_priv, + power_state); break; case PCI_DEVICE_ID_VIA_KM400: case PCI_DEVICE_ID_VIA_CN700: |