| .. | .. |
|---|
| 23 | 23 | * Authors: Dave Airlie |
|---|
| 24 | 24 | * Alex Deucher |
|---|
| 25 | 25 | */ |
|---|
| 26 | | -#include <drm/drmP.h> |
|---|
| 26 | + |
|---|
| 27 | +#include <linux/pci.h> |
|---|
| 28 | + |
|---|
| 27 | 29 | #include <drm/drm_crtc_helper.h> |
|---|
| 28 | 30 | #include <drm/amdgpu_drm.h> |
|---|
| 29 | 31 | #include "amdgpu.h" |
|---|
| 30 | 32 | #include "amdgpu_connectors.h" |
|---|
| 33 | +#include "amdgpu_display.h" |
|---|
| 31 | 34 | #include "atom.h" |
|---|
| 32 | 35 | #include "atombios_encoders.h" |
|---|
| 33 | 36 | #include "atombios_dp.h" |
|---|
| .. | .. |
|---|
| 67 | 70 | amdgpu_atombios_encoder_get_backlight_level(struct amdgpu_encoder *amdgpu_encoder) |
|---|
| 68 | 71 | { |
|---|
| 69 | 72 | struct drm_device *dev = amdgpu_encoder->base.dev; |
|---|
| 70 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 73 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 71 | 74 | |
|---|
| 72 | 75 | if (!(adev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU)) |
|---|
| 73 | 76 | return 0; |
|---|
| .. | .. |
|---|
| 81 | 84 | { |
|---|
| 82 | 85 | struct drm_encoder *encoder = &amdgpu_encoder->base; |
|---|
| 83 | 86 | struct drm_device *dev = amdgpu_encoder->base.dev; |
|---|
| 84 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 87 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 85 | 88 | struct amdgpu_encoder_atom_dig *dig; |
|---|
| 86 | 89 | |
|---|
| 87 | 90 | if (!(adev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU)) |
|---|
| .. | .. |
|---|
| 149 | 152 | struct amdgpu_backlight_privdata *pdata = bl_get_data(bd); |
|---|
| 150 | 153 | struct amdgpu_encoder *amdgpu_encoder = pdata->encoder; |
|---|
| 151 | 154 | struct drm_device *dev = amdgpu_encoder->base.dev; |
|---|
| 152 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 155 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 153 | 156 | |
|---|
| 154 | 157 | return amdgpu_atombios_encoder_get_backlight_level_from_reg(adev); |
|---|
| 155 | 158 | } |
|---|
| .. | .. |
|---|
| 163 | 166 | struct drm_connector *drm_connector) |
|---|
| 164 | 167 | { |
|---|
| 165 | 168 | struct drm_device *dev = amdgpu_encoder->base.dev; |
|---|
| 166 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 169 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 167 | 170 | struct backlight_device *bd; |
|---|
| 168 | 171 | struct backlight_properties props; |
|---|
| 169 | 172 | struct amdgpu_backlight_privdata *pdata; |
|---|
| .. | .. |
|---|
| 226 | 229 | amdgpu_atombios_encoder_fini_backlight(struct amdgpu_encoder *amdgpu_encoder) |
|---|
| 227 | 230 | { |
|---|
| 228 | 231 | struct drm_device *dev = amdgpu_encoder->base.dev; |
|---|
| 229 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 232 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 230 | 233 | struct backlight_device *bd = NULL; |
|---|
| 231 | 234 | struct amdgpu_encoder_atom_dig *dig; |
|---|
| 232 | 235 | |
|---|
| .. | .. |
|---|
| 316 | 319 | amdgpu_atombios_encoder_setup_dac(struct drm_encoder *encoder, int action) |
|---|
| 317 | 320 | { |
|---|
| 318 | 321 | struct drm_device *dev = encoder->dev; |
|---|
| 319 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 322 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 320 | 323 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| 321 | 324 | DAC_ENCODER_CONTROL_PS_ALLOCATION args; |
|---|
| 322 | 325 | int index = 0; |
|---|
| .. | .. |
|---|
| 379 | 382 | amdgpu_atombios_encoder_setup_dvo(struct drm_encoder *encoder, int action) |
|---|
| 380 | 383 | { |
|---|
| 381 | 384 | struct drm_device *dev = encoder->dev; |
|---|
| 382 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 385 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 383 | 386 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| 384 | 387 | union dvo_encoder_control args; |
|---|
| 385 | 388 | int index = GetIndexIntoMasterTable(COMMAND, DVOEncoderControl); |
|---|
| .. | .. |
|---|
| 570 | 573 | int action, int panel_mode) |
|---|
| 571 | 574 | { |
|---|
| 572 | 575 | struct drm_device *dev = encoder->dev; |
|---|
| 573 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 576 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 574 | 577 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| 575 | 578 | struct amdgpu_encoder_atom_dig *dig = amdgpu_encoder->enc_priv; |
|---|
| 576 | 579 | struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); |
|---|
| .. | .. |
|---|
| 759 | 762 | uint8_t lane_num, uint8_t lane_set) |
|---|
| 760 | 763 | { |
|---|
| 761 | 764 | struct drm_device *dev = encoder->dev; |
|---|
| 762 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 765 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 763 | 766 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| 764 | 767 | struct amdgpu_encoder_atom_dig *dig = amdgpu_encoder->enc_priv; |
|---|
| 765 | 768 | struct drm_connector *connector; |
|---|
| .. | .. |
|---|
| 1175 | 1178 | { |
|---|
| 1176 | 1179 | struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); |
|---|
| 1177 | 1180 | struct drm_device *dev = amdgpu_connector->base.dev; |
|---|
| 1178 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 1181 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 1179 | 1182 | union dig_transmitter_control args; |
|---|
| 1180 | 1183 | int index = GetIndexIntoMasterTable(COMMAND, UNIPHYTransmitterControl); |
|---|
| 1181 | 1184 | uint8_t frev, crev; |
|---|
| .. | .. |
|---|
| 1222 | 1225 | int action) |
|---|
| 1223 | 1226 | { |
|---|
| 1224 | 1227 | struct drm_device *dev = encoder->dev; |
|---|
| 1225 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 1228 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 1226 | 1229 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| 1227 | 1230 | struct amdgpu_encoder *ext_amdgpu_encoder = to_amdgpu_encoder(ext_encoder); |
|---|
| 1228 | 1231 | union external_encoder_control args; |
|---|
| .. | .. |
|---|
| 1463 | 1466 | amdgpu_atombios_encoder_set_crtc_source(struct drm_encoder *encoder) |
|---|
| 1464 | 1467 | { |
|---|
| 1465 | 1468 | struct drm_device *dev = encoder->dev; |
|---|
| 1466 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 1469 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 1467 | 1470 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| 1468 | 1471 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); |
|---|
| 1469 | 1472 | union crtc_source_param args; |
|---|
| .. | .. |
|---|
| 1670 | 1673 | void |
|---|
| 1671 | 1674 | amdgpu_atombios_encoder_init_dig(struct amdgpu_device *adev) |
|---|
| 1672 | 1675 | { |
|---|
| 1673 | | - struct drm_device *dev = adev->ddev; |
|---|
| 1676 | + struct drm_device *dev = adev_to_drm(adev); |
|---|
| 1674 | 1677 | struct drm_encoder *encoder; |
|---|
| 1675 | 1678 | |
|---|
| 1676 | 1679 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
|---|
| .. | .. |
|---|
| 1698 | 1701 | struct drm_connector *connector) |
|---|
| 1699 | 1702 | { |
|---|
| 1700 | 1703 | struct drm_device *dev = encoder->dev; |
|---|
| 1701 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 1704 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 1702 | 1705 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| 1703 | 1706 | struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); |
|---|
| 1704 | 1707 | |
|---|
| .. | .. |
|---|
| 1748 | 1751 | struct drm_connector *connector) |
|---|
| 1749 | 1752 | { |
|---|
| 1750 | 1753 | struct drm_device *dev = encoder->dev; |
|---|
| 1751 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 1754 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 1752 | 1755 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| 1753 | 1756 | struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); |
|---|
| 1754 | 1757 | uint32_t bios_0_scratch; |
|---|
| .. | .. |
|---|
| 1787 | 1790 | struct drm_connector *connector) |
|---|
| 1788 | 1791 | { |
|---|
| 1789 | 1792 | struct drm_device *dev = encoder->dev; |
|---|
| 1790 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 1793 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 1791 | 1794 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| 1792 | 1795 | struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); |
|---|
| 1793 | 1796 | struct drm_encoder *ext_encoder = amdgpu_get_external_encoder(encoder); |
|---|
| .. | .. |
|---|
| 1845 | 1848 | bool connected) |
|---|
| 1846 | 1849 | { |
|---|
| 1847 | 1850 | struct drm_device *dev = connector->dev; |
|---|
| 1848 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 1851 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 1849 | 1852 | struct amdgpu_connector *amdgpu_connector = |
|---|
| 1850 | 1853 | to_amdgpu_connector(connector); |
|---|
| 1851 | 1854 | struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); |
|---|
| .. | .. |
|---|
| 1996 | 1999 | amdgpu_atombios_encoder_get_lcd_info(struct amdgpu_encoder *encoder) |
|---|
| 1997 | 2000 | { |
|---|
| 1998 | 2001 | struct drm_device *dev = encoder->base.dev; |
|---|
| 1999 | | - struct amdgpu_device *adev = dev->dev_private; |
|---|
| 2002 | + struct amdgpu_device *adev = drm_to_adev(dev); |
|---|
| 2000 | 2003 | struct amdgpu_mode_info *mode_info = &adev->mode_info; |
|---|
| 2001 | 2004 | int index = GetIndexIntoMasterTable(DATA, LVDS_Info); |
|---|
| 2002 | 2005 | uint16_t data_offset, misc; |
|---|