Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
forked fromtorvalds/linux

Commit9ec7ccc

Browse files
committed
Merge tag 'drm-fixes-for-v4.16-rc7' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie: "A bunch of fixes all over the place (core, i915, amdgpu, imx, sun4i, ast, tegra, vmwgfx), nothing too serious or worrying at this stage. - one uapi fix to stop multi-planar images with getfb - Sun4i error path and clock fixes - udl driver mmap offset fix - i915 DP MST and GPU reset fixes - vmwgfx mutex and black screen fixes - imx array underflow fix and vblank fix - amdgpu: display fixes - exynos devicetree fix - ast mode fix"* tag 'drm-fixes-for-v4.16-rc7' of git://people.freedesktop.org/~airlied/linux: (29 commits) drm/ast: Fixed 1280x800 Display Issue drm: udl: Properly check framebuffer mmap offsets drm/i915: Specify which engines to reset following semaphore/event lockups drm/vmwgfx: Fix a destoy-while-held mutex problem. drm/vmwgfx: Fix black screen and device errors when running without fbdev drm: Reject getfb for multi-plane framebuffers drm/amd/display: Add one to EDID's audio channel count when passing to DC drm/amd/display: We shouldn't set format_default on plane as atomic driver drm/amd/display: Fix FMT truncation programming drm/amd/display: Allow truncation to 10 bits drm/sun4i: hdmi: Fix another error handling path in 'sun4i_hdmi_bind()' drm/sun4i: hdmi: Fix an error handling path in 'sun4i_hdmi_bind()' drm/i915/dp: Write to SET_POWER dpcd to enable MST hub. drm/amd/display: fix dereferencing possible ERR_PTR() drm/amd/display: Refine disable VGA drm/tegra: Shutdown on driver unbind drm/tegra: dsi: Don't disable regulator on ->exit() drm/tegra: dc: Detach IOMMU group from domain only once dt-bindings: exynos: Document #sound-dai-cells property of the HDMI node drm/imx: move arming of the vblank event to atomic_flush ...
2 parentse7d7743 +5a9f698 commit9ec7ccc

29 files changed

+176
-84
lines changed

‎Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Required properties:
1616
- ddc: phandle to the hdmi ddc node
1717
- phy: phandle to the hdmi phy node
1818
- samsung,syscon-phandle: phandle for system controller node for PMU.
19+
- #sound-dai-cells: should be 0.
1920

2021
Required properties for Exynos 4210, 4212, 5420 and 5433:
2122
- clocks: list of clock IDs from SoC clock driver.

‎drivers/gpu/drm/amd/amdgpu/amdgpu_device.c‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2063,9 +2063,12 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
20632063

20642064
DRM_INFO("amdgpu: finishing device.\n");
20652065
adev->shutdown= true;
2066-
if (adev->mode_info.mode_config_initialized)
2067-
drm_crtc_force_disable_all(adev->ddev);
2068-
2066+
if (adev->mode_info.mode_config_initialized){
2067+
if (!amdgpu_device_has_dc_support(adev))
2068+
drm_crtc_force_disable_all(adev->ddev);
2069+
else
2070+
drm_atomic_helper_shutdown(adev->ddev);
2071+
}
20692072
amdgpu_ib_pool_fini(adev);
20702073
amdgpu_fence_driver_fini(adev);
20712074
amdgpu_fbdev_fini(adev);

‎drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3134,8 +3134,6 @@ static int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
31343134

31353135
switch (aplane->base.type) {
31363136
caseDRM_PLANE_TYPE_PRIMARY:
3137-
aplane->base.format_default= true;
3138-
31393137
res=drm_universal_plane_init(
31403138
dm->adev->ddev,
31413139
&aplane->base,
@@ -4794,6 +4792,9 @@ static int dm_atomic_check_plane_state_fb(struct drm_atomic_state *state,
47944792
return-EDEADLK;
47954793

47964794
crtc_state=drm_atomic_get_crtc_state(plane_state->state,crtc);
4795+
if (IS_ERR(crtc_state))
4796+
returnPTR_ERR(crtc_state);
4797+
47974798
if (crtc->primary==plane&&crtc_state->active) {
47984799
if (!plane_state->fb)
47994800
return-EINVAL;

‎drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ enum dc_edid_status dm_helpers_parse_edid_caps(
109109
structcea_sad*sad=&sads[i];
110110

111111
edid_caps->audio_modes[i].format_code=sad->format;
112-
edid_caps->audio_modes[i].channel_count=sad->channels;
112+
edid_caps->audio_modes[i].channel_count=sad->channels+1;
113113
edid_caps->audio_modes[i].sample_rate=sad->freq;
114114
edid_caps->audio_modes[i].sample_size=sad->byte2;
115115
}

‎drivers/gpu/drm/amd/display/dc/dce/dce_hwseq.h‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,9 @@ struct dce_hwseq_registers {
496496
HWS_SF(,DOMAIN7_PG_STATUS,DOMAIN7_PGFSM_PWR_STATUS,mask_sh), \
497497
HWS_SF(,DC_IP_REQUEST_CNTL,IP_REQUEST_EN,mask_sh), \
498498
HWS_SF(,D1VGA_CONTROL,D1VGA_MODE_ENABLE,mask_sh),\
499+
HWS_SF(,D2VGA_CONTROL,D2VGA_MODE_ENABLE,mask_sh),\
500+
HWS_SF(,D3VGA_CONTROL,D3VGA_MODE_ENABLE,mask_sh),\
501+
HWS_SF(,D4VGA_CONTROL,D4VGA_MODE_ENABLE,mask_sh),\
499502
HWS_SF(,VGA_TEST_CONTROL,VGA_TEST_ENABLE,mask_sh),\
500503
HWS_SF(,VGA_TEST_CONTROL,VGA_TEST_RENDER_START,mask_sh),\
501504
HWS_SF(,LVTMA_PWRSEQ_CNTL,LVTMA_BLON,mask_sh), \
@@ -591,7 +594,10 @@ struct dce_hwseq_registers {
591594
type DENTIST_DISPCLK_WDIVIDER; \
592595
type VGA_TEST_ENABLE; \
593596
type VGA_TEST_RENDER_START; \
594-
type D1VGA_MODE_ENABLE;
597+
type D1VGA_MODE_ENABLE; \
598+
type D2VGA_MODE_ENABLE; \
599+
type D3VGA_MODE_ENABLE; \
600+
type D4VGA_MODE_ENABLE;
595601

596602
structdce_hwseq_shift {
597603
HWSEQ_REG_FIELD_LIST(uint8_t)

‎drivers/gpu/drm/amd/display/dc/dce/dce_opp.c‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,23 +128,22 @@ static void set_truncation(
128128
return;
129129
}
130130
/* on other format-to do */
131-
if (params->flags.TRUNCATE_ENABLED==0||
132-
params->flags.TRUNCATE_DEPTH==2)
131+
if (params->flags.TRUNCATE_ENABLED==0)
133132
return;
134133
/*Set truncation depth and Enable truncation*/
135134
REG_UPDATE_3(FMT_BIT_DEPTH_CONTROL,
136135
FMT_TRUNCATE_EN,1,
137136
FMT_TRUNCATE_DEPTH,
138-
params->flags.TRUNCATE_MODE,
137+
params->flags.TRUNCATE_DEPTH,
139138
FMT_TRUNCATE_MODE,
140-
params->flags.TRUNCATE_DEPTH);
139+
params->flags.TRUNCATE_MODE);
141140
}
142141

143142

144143
/**
145144
*set_spatial_dither
146145
*1) set spatial dithering mode: pattern of seed
147-
*2) setspatical dithering depth: 0 for 18bpp or 1 for 24bpp
146+
*2) setspatial dithering depth: 0 for 18bpp or 1 for 24bpp
148147
*3) set random seed
149148
*4) set random mode
150149
*lfsr is reset every frame or not reset

‎drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c‎

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -238,14 +238,24 @@ static void enable_power_gating_plane(
238238
staticvoiddisable_vga(
239239
structdce_hwseq*hws)
240240
{
241-
unsignedintin_vga_mode=0;
242-
243-
REG_GET(D1VGA_CONTROL,D1VGA_MODE_ENABLE,&in_vga_mode);
244-
245-
if (in_vga_mode==0)
241+
unsignedintin_vga1_mode=0;
242+
unsignedintin_vga2_mode=0;
243+
unsignedintin_vga3_mode=0;
244+
unsignedintin_vga4_mode=0;
245+
246+
REG_GET(D1VGA_CONTROL,D1VGA_MODE_ENABLE,&in_vga1_mode);
247+
REG_GET(D2VGA_CONTROL,D2VGA_MODE_ENABLE,&in_vga2_mode);
248+
REG_GET(D3VGA_CONTROL,D3VGA_MODE_ENABLE,&in_vga3_mode);
249+
REG_GET(D4VGA_CONTROL,D4VGA_MODE_ENABLE,&in_vga4_mode);
250+
251+
if (in_vga1_mode==0&&in_vga2_mode==0&&
252+
in_vga3_mode==0&&in_vga4_mode==0)
246253
return;
247254

248255
REG_WRITE(D1VGA_CONTROL,0);
256+
REG_WRITE(D2VGA_CONTROL,0);
257+
REG_WRITE(D3VGA_CONTROL,0);
258+
REG_WRITE(D4VGA_CONTROL,0);
249259

250260
/* HW Engineer's Notes:
251261
* During switch from vga->extended, if we set the VGA_TEST_ENABLE and

‎drivers/gpu/drm/ast/ast_tables.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ static const struct ast_vbios_dclk_info dclk_table[] = {
9797
{0x67,0x22,0x00},/* 0E: VCLK157_5*/
9898
{0x6A,0x22,0x00},/* 0F: VCLK162*/
9999
{0x4d,0x4c,0x80},/* 10: VCLK154*/
100-
{0xa7,0x78,0x80},/* 11: VCLK83.5*/
100+
{0x68,0x6f,0x80},/* 11: VCLK83.5*/
101101
{0x28,0x49,0x80},/* 12: VCLK106.5*/
102102
{0x37,0x49,0x80},/* 13: VCLK146.25*/
103103
{0x1f,0x45,0x80},/* 14: VCLK148.5*/
@@ -127,7 +127,7 @@ static const struct ast_vbios_dclk_info dclk_table_ast2500[] = {
127127
{0x67,0x22,0x00},/* 0E: VCLK157_5*/
128128
{0x6A,0x22,0x00},/* 0F: VCLK162*/
129129
{0x4d,0x4c,0x80},/* 10: VCLK154*/
130-
{0xa7,0x78,0x80},/* 11: VCLK83.5*/
130+
{0x68,0x6f,0x80},/* 11: VCLK83.5*/
131131
{0x28,0x49,0x80},/* 12: VCLK106.5*/
132132
{0x37,0x49,0x80},/* 13: VCLK146.25*/
133133
{0x1f,0x45,0x80},/* 14: VCLK148.5*/

‎drivers/gpu/drm/drm_framebuffer.c‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,12 @@ int drm_mode_getfb(struct drm_device *dev,
461461
if (!fb)
462462
return-ENOENT;
463463

464+
/* Multi-planar framebuffers need getfb2. */
465+
if (fb->format->num_planes>1) {
466+
ret=-EINVAL;
467+
gotoout;
468+
}
469+
464470
r->height=fb->height;
465471
r->width=fb->width;
466472
r->depth=fb->format->depth;
@@ -484,6 +490,7 @@ int drm_mode_getfb(struct drm_device *dev,
484490
ret=-ENODEV;
485491
}
486492

493+
out:
487494
drm_framebuffer_put(fb);
488495

489496
returnret;

‎drivers/gpu/drm/i915/intel_ddi.c‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2175,8 +2175,7 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
21752175
intel_prepare_dp_ddi_buffers(encoder,crtc_state);
21762176

21772177
intel_ddi_init_dp_buf_reg(encoder);
2178-
if (!is_mst)
2179-
intel_dp_sink_dpms(intel_dp,DRM_MODE_DPMS_ON);
2178+
intel_dp_sink_dpms(intel_dp,DRM_MODE_DPMS_ON);
21802179
intel_dp_start_link_train(intel_dp);
21812180
if (port!=PORT_A||INTEL_GEN(dev_priv) >=9)
21822181
intel_dp_stop_link_train(intel_dp);
@@ -2274,14 +2273,12 @@ static void intel_ddi_post_disable_dp(struct intel_encoder *encoder,
22742273
structdrm_i915_private*dev_priv=to_i915(encoder->base.dev);
22752274
structintel_digital_port*dig_port=enc_to_dig_port(&encoder->base);
22762275
structintel_dp*intel_dp=&dig_port->dp;
2277-
boolis_mst=intel_crtc_has_type(old_crtc_state,INTEL_OUTPUT_DP_MST);
22782276

22792277
/*
22802278
* Power down sink before disabling the port, otherwise we end
22812279
* up getting interrupts from the sink on detecting link loss.
22822280
*/
2283-
if (!is_mst)
2284-
intel_dp_sink_dpms(intel_dp,DRM_MODE_DPMS_OFF);
2281+
intel_dp_sink_dpms(intel_dp,DRM_MODE_DPMS_OFF);
22852282

22862283
intel_disable_ddi_buf(encoder);
22872284

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp