Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
27a45987
Commit
27a45987
authored
Aug 04, 2011
by
Ben Skeggs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
drm/nouveau/dp: restructure link training code
Signed-off-by:
Ben Skeggs
<
bskeggs@redhat.com
>
parent
a002fece
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
206 additions
and
352 deletions
+206
-352
drivers/gpu/drm/nouveau/nouveau_bios.c
drivers/gpu/drm/nouveau/nouveau_bios.c
+6
-7
drivers/gpu/drm/nouveau/nouveau_dp.c
drivers/gpu/drm/nouveau/nouveau_dp.c
+199
-327
drivers/gpu/drm/nouveau/nouveau_drv.h
drivers/gpu/drm/nouveau/nouveau_drv.h
+1
-1
drivers/gpu/drm/nouveau/nouveau_encoder.h
drivers/gpu/drm/nouveau/nouveau_encoder.h
+0
-17
No files found.
drivers/gpu/drm/nouveau/nouveau_bios.c
View file @
27a45987
...
@@ -1179,19 +1179,18 @@ init_dp_condition(struct nvbios *bios, uint16_t offset, struct init_exec *iexec)
...
@@ -1179,19 +1179,18 @@ init_dp_condition(struct nvbios *bios, uint16_t offset, struct init_exec *iexec)
*
*
*/
*/
struct
bit_displayport_encoder_table
*
dpe
=
NULL
;
struct
dcb_entry
*
dcb
=
bios
->
display
.
output
;
struct
dcb_entry
*
dcb
=
bios
->
display
.
output
;
struct
drm_device
*
dev
=
bios
->
dev
;
struct
drm_device
*
dev
=
bios
->
dev
;
uint8_t
cond
=
bios
->
data
[
offset
+
1
];
uint8_t
cond
=
bios
->
data
[
offset
+
1
];
int
dummy
;
uint8_t
*
table
,
headerlen
;
BIOSLOG
(
bios
,
"0x%04X: subop 0x%02X
\n
"
,
offset
,
cond
);
BIOSLOG
(
bios
,
"0x%04X: subop 0x%02X
\n
"
,
offset
,
cond
);
if
(
!
iexec
->
execute
)
if
(
!
iexec
->
execute
)
return
3
;
return
3
;
dpe
=
nouveau_bios_dp_table
(
dev
,
dcb
,
&
dummy
);
table
=
nouveau_bios_dp_table
(
dev
,
dcb
,
&
headerlen
);
if
(
!
dp
e
)
{
if
(
!
tabl
e
)
{
NV_ERROR
(
dev
,
"0x%04X: INIT_3A: no encoder table!!
\n
"
,
offset
);
NV_ERROR
(
dev
,
"0x%04X: INIT_3A: no encoder table!!
\n
"
,
offset
);
return
3
;
return
3
;
}
}
...
@@ -1208,7 +1207,7 @@ init_dp_condition(struct nvbios *bios, uint16_t offset, struct init_exec *iexec)
...
@@ -1208,7 +1207,7 @@ init_dp_condition(struct nvbios *bios, uint16_t offset, struct init_exec *iexec)
break
;
break
;
case
1
:
case
1
:
case
2
:
case
2
:
if
(
!
(
dpe
->
unknown
&
cond
))
if
(
!
(
table
[
5
]
&
cond
))
iexec
->
execute
=
false
;
iexec
->
execute
=
false
;
break
;
break
;
case
5
:
case
5
:
...
@@ -4480,7 +4479,7 @@ bios_output_config_match(struct drm_device *dev, struct dcb_entry *dcbent,
...
@@ -4480,7 +4479,7 @@ bios_output_config_match(struct drm_device *dev, struct dcb_entry *dcbent,
void
*
void
*
nouveau_bios_dp_table
(
struct
drm_device
*
dev
,
struct
dcb_entry
*
dcbent
,
nouveau_bios_dp_table
(
struct
drm_device
*
dev
,
struct
dcb_entry
*
dcbent
,
int
*
length
)
uint8_t
*
headerlen
)
{
{
struct
drm_nouveau_private
*
dev_priv
=
dev
->
dev_private
;
struct
drm_nouveau_private
*
dev_priv
=
dev
->
dev_private
;
struct
nvbios
*
bios
=
&
dev_priv
->
vbios
;
struct
nvbios
*
bios
=
&
dev_priv
->
vbios
;
...
@@ -4498,7 +4497,7 @@ nouveau_bios_dp_table(struct drm_device *dev, struct dcb_entry *dcbent,
...
@@ -4498,7 +4497,7 @@ nouveau_bios_dp_table(struct drm_device *dev, struct dcb_entry *dcbent,
return
NULL
;
return
NULL
;
}
}
*
length
=
table
[
4
];
*
headerlen
=
table
[
4
];
return
bios_output_config_match
(
dev
,
dcbent
,
return
bios_output_config_match
(
dev
,
dcbent
,
bios
->
display
.
dp_table_ptr
+
table
[
1
],
bios
->
display
.
dp_table_ptr
+
table
[
1
],
table
[
2
],
table
[
3
],
table
[
0
]
>=
0x21
);
table
[
2
],
table
[
3
],
table
[
0
]
>=
0x21
);
...
...
drivers/gpu/drm/nouveau/nouveau_dp.c
View file @
27a45987
This diff is collapsed.
Click to expand it.
drivers/gpu/drm/nouveau/nouveau_drv.h
View file @
27a45987
...
@@ -1081,7 +1081,7 @@ extern int get_pll_limits(struct drm_device *, uint32_t limit_match,
...
@@ -1081,7 +1081,7 @@ extern int get_pll_limits(struct drm_device *, uint32_t limit_match,
extern
int
nouveau_bios_run_display_table
(
struct
drm_device
*
,
u16
id
,
int
clk
,
extern
int
nouveau_bios_run_display_table
(
struct
drm_device
*
,
u16
id
,
int
clk
,
struct
dcb_entry
*
,
int
crtc
);
struct
dcb_entry
*
,
int
crtc
);
extern
void
*
nouveau_bios_dp_table
(
struct
drm_device
*
,
struct
dcb_entry
*
,
extern
void
*
nouveau_bios_dp_table
(
struct
drm_device
*
,
struct
dcb_entry
*
,
int
*
length
);
u8
*
headerlen
);
extern
bool
nouveau_bios_fp_mode
(
struct
drm_device
*
,
struct
drm_display_mode
*
);
extern
bool
nouveau_bios_fp_mode
(
struct
drm_device
*
,
struct
drm_display_mode
*
);
extern
uint8_t
*
nouveau_bios_embedded_edid
(
struct
drm_device
*
);
extern
uint8_t
*
nouveau_bios_embedded_edid
(
struct
drm_device
*
);
extern
int
nouveau_bios_parse_lvds_table
(
struct
drm_device
*
,
int
pxclk
,
extern
int
nouveau_bios_parse_lvds_table
(
struct
drm_device
*
,
int
pxclk
,
...
...
drivers/gpu/drm/nouveau/nouveau_encoder.h
View file @
27a45987
...
@@ -84,21 +84,4 @@ nouveau_encoder_connector_get(struct nouveau_encoder *encoder);
...
@@ -84,21 +84,4 @@ nouveau_encoder_connector_get(struct nouveau_encoder *encoder);
int
nv50_sor_create
(
struct
drm_connector
*
,
struct
dcb_entry
*
);
int
nv50_sor_create
(
struct
drm_connector
*
,
struct
dcb_entry
*
);
int
nv50_dac_create
(
struct
drm_connector
*
,
struct
dcb_entry
*
);
int
nv50_dac_create
(
struct
drm_connector
*
,
struct
dcb_entry
*
);
struct
bit_displayport_encoder_table
{
uint32_t
match
;
uint8_t
record_nr
;
uint8_t
unknown
;
uint16_t
script0
;
uint16_t
script1
;
uint16_t
unknown_table
;
}
__attribute__
((
packed
));
struct
bit_displayport_encoder_table_entry
{
uint8_t
vs_level
;
uint8_t
pre_level
;
uint8_t
reg0
;
uint8_t
reg1
;
uint8_t
reg2
;
}
__attribute__
((
packed
));
#endif
/* __NOUVEAU_ENCODER_H__ */
#endif
/* __NOUVEAU_ENCODER_H__ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment