aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2018-02-02 12:31:27 -0500
committerAlex Deucher <alexander.deucher@amd.com>2018-02-19 14:19:19 -0500
commita3405d0c712df4b9fb34e6b1f6771b18f462bdd3 (patch)
treed1b6c2ebf562587840be5794f12a97f1fcce73cd /drivers/gpu/drm/amd
parente5e0e8671713633f89451280e694d14206b38ef0 (diff)
drm/amdgpu: remove unused display_vblank_wait interface
No longer used since we changed the MC programming sequence. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v10_0.c61
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v11_0.c61
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v6_0.c59
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v8_0.c61
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_virtual.c14
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c1
8 files changed, 0 insertions, 260 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 36ac07aee0eb..276c4ad1cb6e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1804,7 +1804,6 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
1804#define amdgpu_ih_decode_iv(adev, iv) (adev)->irq.ih_funcs->decode_iv((adev), (iv)) 1804#define amdgpu_ih_decode_iv(adev, iv) (adev)->irq.ih_funcs->decode_iv((adev), (iv))
1805#define amdgpu_ih_set_rptr(adev) (adev)->irq.ih_funcs->set_rptr((adev)) 1805#define amdgpu_ih_set_rptr(adev) (adev)->irq.ih_funcs->set_rptr((adev))
1806#define amdgpu_display_vblank_get_counter(adev, crtc) (adev)->mode_info.funcs->vblank_get_counter((adev), (crtc)) 1806#define amdgpu_display_vblank_get_counter(adev, crtc) (adev)->mode_info.funcs->vblank_get_counter((adev), (crtc))
1807#define amdgpu_display_vblank_wait(adev, crtc) (adev)->mode_info.funcs->vblank_wait((adev), (crtc))
1808#define amdgpu_display_backlight_set_level(adev, e, l) (adev)->mode_info.funcs->backlight_set_level((e), (l)) 1807#define amdgpu_display_backlight_set_level(adev, e, l) (adev)->mode_info.funcs->backlight_set_level((e), (l))
1809#define amdgpu_display_backlight_get_level(adev, e) (adev)->mode_info.funcs->backlight_get_level((e)) 1808#define amdgpu_display_backlight_get_level(adev, e) (adev)->mode_info.funcs->backlight_get_level((e))
1810#define amdgpu_display_hpd_sense(adev, h) (adev)->mode_info.funcs->hpd_sense((adev), (h)) 1809#define amdgpu_display_hpd_sense(adev, h) (adev)->mode_info.funcs->hpd_sense((adev), (h))
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
index ea1bd75bef35..d9533bbc467c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
@@ -267,8 +267,6 @@ struct amdgpu_display_funcs {
267 void (*bandwidth_update)(struct amdgpu_device *adev); 267 void (*bandwidth_update)(struct amdgpu_device *adev);
268 /* get frame count */ 268 /* get frame count */
269 u32 (*vblank_get_counter)(struct amdgpu_device *adev, int crtc); 269 u32 (*vblank_get_counter)(struct amdgpu_device *adev, int crtc);
270 /* wait for vblank */
271 void (*vblank_wait)(struct amdgpu_device *adev, int crtc);
272 /* set backlight level */ 270 /* set backlight level */
273 void (*backlight_set_level)(struct amdgpu_encoder *amdgpu_encoder, 271 void (*backlight_set_level)(struct amdgpu_encoder *amdgpu_encoder,
274 u8 level); 272 u8 level);
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
index 8161b6579715..7ea900010702 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
@@ -190,66 +190,6 @@ static void dce_v10_0_audio_endpt_wreg(struct amdgpu_device *adev,
190 spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags); 190 spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags);
191} 191}
192 192
193static bool dce_v10_0_is_in_vblank(struct amdgpu_device *adev, int crtc)
194{
195 if (RREG32(mmCRTC_STATUS + crtc_offsets[crtc]) &
196 CRTC_STATUS__CRTC_V_BLANK_MASK)
197 return true;
198 else
199 return false;
200}
201
202static bool dce_v10_0_is_counter_moving(struct amdgpu_device *adev, int crtc)
203{
204 u32 pos1, pos2;
205
206 pos1 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]);
207 pos2 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]);
208
209 if (pos1 != pos2)
210 return true;
211 else
212 return false;
213}
214
215/**
216 * dce_v10_0_vblank_wait - vblank wait asic callback.
217 *
218 * @adev: amdgpu_device pointer
219 * @crtc: crtc to wait for vblank on
220 *
221 * Wait for vblank on the requested crtc (evergreen+).
222 */
223static void dce_v10_0_vblank_wait(struct amdgpu_device *adev, int crtc)
224{
225 unsigned i = 100;
226
227 if (crtc >= adev->mode_info.num_crtc)
228 return;
229
230 if (!(RREG32(mmCRTC_CONTROL + crtc_offsets[crtc]) & CRTC_CONTROL__CRTC_MASTER_EN_MASK))
231 return;
232
233 /* depending on when we hit vblank, we may be close to active; if so,
234 * wait for another frame.
235 */
236 while (dce_v10_0_is_in_vblank(adev, crtc)) {
237 if (i++ == 100) {
238 i = 0;
239 if (!dce_v10_0_is_counter_moving(adev, crtc))
240 break;
241 }
242 }
243
244 while (!dce_v10_0_is_in_vblank(adev, crtc)) {
245 if (i++ == 100) {
246 i = 0;
247 if (!dce_v10_0_is_counter_moving(adev, crtc))
248 break;
249 }
250 }
251}
252
253static u32 dce_v10_0_vblank_get_counter(struct amdgpu_device *adev, int crtc) 193static u32 dce_v10_0_vblank_get_counter(struct amdgpu_device *adev, int crtc)
254{ 194{
255 if (crtc >= adev->mode_info.num_crtc) 195 if (crtc >= adev->mode_info.num_crtc)
@@ -3602,7 +3542,6 @@ static void dce_v10_0_encoder_add(struct amdgpu_device *adev,
3602static const struct amdgpu_display_funcs dce_v10_0_display_funcs = { 3542static const struct amdgpu_display_funcs dce_v10_0_display_funcs = {
3603 .bandwidth_update = &dce_v10_0_bandwidth_update, 3543 .bandwidth_update = &dce_v10_0_bandwidth_update,
3604 .vblank_get_counter = &dce_v10_0_vblank_get_counter, 3544 .vblank_get_counter = &dce_v10_0_vblank_get_counter,
3605 .vblank_wait = &dce_v10_0_vblank_wait,
3606 .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level, 3545 .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level,
3607 .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level, 3546 .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level,
3608 .hpd_sense = &dce_v10_0_hpd_sense, 3547 .hpd_sense = &dce_v10_0_hpd_sense,
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
index 00b3df281207..158b92ea435f 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
@@ -207,66 +207,6 @@ static void dce_v11_0_audio_endpt_wreg(struct amdgpu_device *adev,
207 spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags); 207 spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags);
208} 208}
209 209
210static bool dce_v11_0_is_in_vblank(struct amdgpu_device *adev, int crtc)
211{
212 if (RREG32(mmCRTC_STATUS + crtc_offsets[crtc]) &
213 CRTC_STATUS__CRTC_V_BLANK_MASK)
214 return true;
215 else
216 return false;
217}
218
219static bool dce_v11_0_is_counter_moving(struct amdgpu_device *adev, int crtc)
220{
221 u32 pos1, pos2;
222
223 pos1 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]);
224 pos2 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]);
225
226 if (pos1 != pos2)
227 return true;
228 else
229 return false;
230}
231
232/**
233 * dce_v11_0_vblank_wait - vblank wait asic callback.
234 *
235 * @adev: amdgpu_device pointer
236 * @crtc: crtc to wait for vblank on
237 *
238 * Wait for vblank on the requested crtc (evergreen+).
239 */
240static void dce_v11_0_vblank_wait(struct amdgpu_device *adev, int crtc)
241{
242 unsigned i = 100;
243
244 if (crtc < 0 || crtc >= adev->mode_info.num_crtc)
245 return;
246
247 if (!(RREG32(mmCRTC_CONTROL + crtc_offsets[crtc]) & CRTC_CONTROL__CRTC_MASTER_EN_MASK))
248 return;
249
250 /* depending on when we hit vblank, we may be close to active; if so,
251 * wait for another frame.
252 */
253 while (dce_v11_0_is_in_vblank(adev, crtc)) {
254 if (i++ == 100) {
255 i = 0;
256 if (!dce_v11_0_is_counter_moving(adev, crtc))
257 break;
258 }
259 }
260
261 while (!dce_v11_0_is_in_vblank(adev, crtc)) {
262 if (i++ == 100) {
263 i = 0;
264 if (!dce_v11_0_is_counter_moving(adev, crtc))
265 break;
266 }
267 }
268}
269
270static u32 dce_v11_0_vblank_get_counter(struct amdgpu_device *adev, int crtc) 210static u32 dce_v11_0_vblank_get_counter(struct amdgpu_device *adev, int crtc)
271{ 211{
272 if (crtc < 0 || crtc >= adev->mode_info.num_crtc) 212 if (crtc < 0 || crtc >= adev->mode_info.num_crtc)
@@ -3727,7 +3667,6 @@ static void dce_v11_0_encoder_add(struct amdgpu_device *adev,
3727static const struct amdgpu_display_funcs dce_v11_0_display_funcs = { 3667static const struct amdgpu_display_funcs dce_v11_0_display_funcs = {
3728 .bandwidth_update = &dce_v11_0_bandwidth_update, 3668 .bandwidth_update = &dce_v11_0_bandwidth_update,
3729 .vblank_get_counter = &dce_v11_0_vblank_get_counter, 3669 .vblank_get_counter = &dce_v11_0_vblank_get_counter,
3730 .vblank_wait = &dce_v11_0_vblank_wait,
3731 .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level, 3670 .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level,
3732 .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level, 3671 .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level,
3733 .hpd_sense = &dce_v11_0_hpd_sense, 3672 .hpd_sense = &dce_v11_0_hpd_sense,
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
index 24de4aaacf2e..03f19363f8f6 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
@@ -142,64 +142,6 @@ static void dce_v6_0_audio_endpt_wreg(struct amdgpu_device *adev,
142 spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags); 142 spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags);
143} 143}
144 144
145static bool dce_v6_0_is_in_vblank(struct amdgpu_device *adev, int crtc)
146{
147 if (RREG32(mmCRTC_STATUS + crtc_offsets[crtc]) & CRTC_STATUS__CRTC_V_BLANK_MASK)
148 return true;
149 else
150 return false;
151}
152
153static bool dce_v6_0_is_counter_moving(struct amdgpu_device *adev, int crtc)
154{
155 u32 pos1, pos2;
156
157 pos1 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]);
158 pos2 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]);
159
160 if (pos1 != pos2)
161 return true;
162 else
163 return false;
164}
165
166/**
167 * dce_v6_0_wait_for_vblank - vblank wait asic callback.
168 *
169 * @crtc: crtc to wait for vblank on
170 *
171 * Wait for vblank on the requested crtc (evergreen+).
172 */
173static void dce_v6_0_vblank_wait(struct amdgpu_device *adev, int crtc)
174{
175 unsigned i = 100;
176
177 if (crtc >= adev->mode_info.num_crtc)
178 return;
179
180 if (!(RREG32(mmCRTC_CONTROL + crtc_offsets[crtc]) & CRTC_CONTROL__CRTC_MASTER_EN_MASK))
181 return;
182
183 /* depending on when we hit vblank, we may be close to active; if so,
184 * wait for another frame.
185 */
186 while (dce_v6_0_is_in_vblank(adev, crtc)) {
187 if (i++ == 100) {
188 i = 0;
189 if (!dce_v6_0_is_counter_moving(adev, crtc))
190 break;
191 }
192 }
193
194 while (!dce_v6_0_is_in_vblank(adev, crtc)) {
195 if (i++ == 100) {
196 i = 0;
197 if (!dce_v6_0_is_counter_moving(adev, crtc))
198 break;
199 }
200 }
201}
202
203static u32 dce_v6_0_vblank_get_counter(struct amdgpu_device *adev, int crtc) 145static u32 dce_v6_0_vblank_get_counter(struct amdgpu_device *adev, int crtc)
204{ 146{
205 if (crtc >= adev->mode_info.num_crtc) 147 if (crtc >= adev->mode_info.num_crtc)
@@ -3409,7 +3351,6 @@ static void dce_v6_0_encoder_add(struct amdgpu_device *adev,
3409static const struct amdgpu_display_funcs dce_v6_0_display_funcs = { 3351static const struct amdgpu_display_funcs dce_v6_0_display_funcs = {
3410 .bandwidth_update = &dce_v6_0_bandwidth_update, 3352 .bandwidth_update = &dce_v6_0_bandwidth_update,
3411 .vblank_get_counter = &dce_v6_0_vblank_get_counter, 3353 .vblank_get_counter = &dce_v6_0_vblank_get_counter,
3412 .vblank_wait = &dce_v6_0_vblank_wait,
3413 .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level, 3354 .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level,
3414 .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level, 3355 .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level,
3415 .hpd_sense = &dce_v6_0_hpd_sense, 3356 .hpd_sense = &dce_v6_0_hpd_sense,
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
index 6fc3e05aadbc..8dbe97dff58c 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
@@ -140,66 +140,6 @@ static void dce_v8_0_audio_endpt_wreg(struct amdgpu_device *adev,
140 spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags); 140 spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags);
141} 141}
142 142
143static bool dce_v8_0_is_in_vblank(struct amdgpu_device *adev, int crtc)
144{
145 if (RREG32(mmCRTC_STATUS + crtc_offsets[crtc]) &
146 CRTC_STATUS__CRTC_V_BLANK_MASK)
147 return true;
148 else
149 return false;
150}
151
152static bool dce_v8_0_is_counter_moving(struct amdgpu_device *adev, int crtc)
153{
154 u32 pos1, pos2;
155
156 pos1 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]);
157 pos2 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]);
158
159 if (pos1 != pos2)
160 return true;
161 else
162 return false;
163}
164
165/**
166 * dce_v8_0_vblank_wait - vblank wait asic callback.
167 *
168 * @adev: amdgpu_device pointer
169 * @crtc: crtc to wait for vblank on
170 *
171 * Wait for vblank on the requested crtc (evergreen+).
172 */
173static void dce_v8_0_vblank_wait(struct amdgpu_device *adev, int crtc)
174{
175 unsigned i = 100;
176
177 if (crtc >= adev->mode_info.num_crtc)
178 return;
179
180 if (!(RREG32(mmCRTC_CONTROL + crtc_offsets[crtc]) & CRTC_CONTROL__CRTC_MASTER_EN_MASK))
181 return;
182
183 /* depending on when we hit vblank, we may be close to active; if so,
184 * wait for another frame.
185 */
186 while (dce_v8_0_is_in_vblank(adev, crtc)) {
187 if (i++ == 100) {
188 i = 0;
189 if (!dce_v8_0_is_counter_moving(adev, crtc))
190 break;
191 }
192 }
193
194 while (!dce_v8_0_is_in_vblank(adev, crtc)) {
195 if (i++ == 100) {
196 i = 0;
197 if (!dce_v8_0_is_counter_moving(adev, crtc))
198 break;
199 }
200 }
201}
202
203static u32 dce_v8_0_vblank_get_counter(struct amdgpu_device *adev, int crtc) 143static u32 dce_v8_0_vblank_get_counter(struct amdgpu_device *adev, int crtc)
204{ 144{
205 if (crtc >= adev->mode_info.num_crtc) 145 if (crtc >= adev->mode_info.num_crtc)
@@ -3493,7 +3433,6 @@ static void dce_v8_0_encoder_add(struct amdgpu_device *adev,
3493static const struct amdgpu_display_funcs dce_v8_0_display_funcs = { 3433static const struct amdgpu_display_funcs dce_v8_0_display_funcs = {
3494 .bandwidth_update = &dce_v8_0_bandwidth_update, 3434 .bandwidth_update = &dce_v8_0_bandwidth_update,
3495 .vblank_get_counter = &dce_v8_0_vblank_get_counter, 3435 .vblank_get_counter = &dce_v8_0_vblank_get_counter,
3496 .vblank_wait = &dce_v8_0_vblank_wait,
3497 .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level, 3436 .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level,
3498 .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level, 3437 .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level,
3499 .hpd_sense = &dce_v8_0_hpd_sense, 3438 .hpd_sense = &dce_v8_0_hpd_sense,
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
index 3d6cb0cc2b1d..8201a0929ca2 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
@@ -48,19 +48,6 @@ static void dce_virtual_set_crtc_vblank_interrupt_state(struct amdgpu_device *ad
48 int crtc, 48 int crtc,
49 enum amdgpu_interrupt_state state); 49 enum amdgpu_interrupt_state state);
50 50
51/**
52 * dce_virtual_vblank_wait - vblank wait asic callback.
53 *
54 * @adev: amdgpu_device pointer
55 * @crtc: crtc to wait for vblank on
56 *
57 * Wait for vblank on the requested crtc (evergreen+).
58 */
59static void dce_virtual_vblank_wait(struct amdgpu_device *adev, int crtc)
60{
61 return;
62}
63
64static u32 dce_virtual_vblank_get_counter(struct amdgpu_device *adev, int crtc) 51static u32 dce_virtual_vblank_get_counter(struct amdgpu_device *adev, int crtc)
65{ 52{
66 return 0; 53 return 0;
@@ -654,7 +641,6 @@ static int dce_virtual_connector_encoder_init(struct amdgpu_device *adev,
654static const struct amdgpu_display_funcs dce_virtual_display_funcs = { 641static const struct amdgpu_display_funcs dce_virtual_display_funcs = {
655 .bandwidth_update = &dce_virtual_bandwidth_update, 642 .bandwidth_update = &dce_virtual_bandwidth_update,
656 .vblank_get_counter = &dce_virtual_vblank_get_counter, 643 .vblank_get_counter = &dce_virtual_vblank_get_counter,
657 .vblank_wait = &dce_virtual_vblank_wait,
658 .backlight_set_level = NULL, 644 .backlight_set_level = NULL,
659 .backlight_get_level = NULL, 645 .backlight_get_level = NULL,
660 .hpd_sense = &dce_virtual_hpd_sense, 646 .hpd_sense = &dce_virtual_hpd_sense,
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index ad49c335c8d9..5928d9f0e4ef 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1568,7 +1568,6 @@ static int amdgpu_notify_freesync(struct drm_device *dev, void *data,
1568static const struct amdgpu_display_funcs dm_display_funcs = { 1568static const struct amdgpu_display_funcs dm_display_funcs = {
1569 .bandwidth_update = dm_bandwidth_update, /* called unconditionally */ 1569 .bandwidth_update = dm_bandwidth_update, /* called unconditionally */
1570 .vblank_get_counter = dm_vblank_get_counter,/* called unconditionally */ 1570 .vblank_get_counter = dm_vblank_get_counter,/* called unconditionally */
1571 .vblank_wait = NULL,
1572 .backlight_set_level = 1571 .backlight_set_level =
1573 dm_set_backlight_level,/* called unconditionally */ 1572 dm_set_backlight_level,/* called unconditionally */
1574 .backlight_get_level = 1573 .backlight_get_level =