tree:
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-4.9
head: c536a440ded6c6c660528ac5568f00ed522f13ac
commit: a789ef33ea7a127f8fb5d07b23820f7bb1ea6f1e [87/88] drm/dp_mst: Increase ACT retry
timeout to 3s
config: x86_64-randconfig-m001-20200622 (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
struct drm_dp_sideband_msg_reply_body *repmsg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:423:59: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_remote_dpcd_read(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_remote_dpcd_read':
drivers/gpu/drm/drm_dp_mst_topology.c:427:8: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_reply_body'
repmsg->u.remote_dpcd_read_ack.port_number = raw->msg[idx] & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:427:50: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
repmsg->u.remote_dpcd_read_ack.port_number = raw->msg[idx] & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:444:20: warning: 'struct
drm_dp_sideband_msg_reply_body' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_sideband_msg_reply_body *repmsg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:443:60: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_remote_dpcd_write(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_remote_dpcd_write':
drivers/gpu/drm/drm_dp_mst_topology.c:447:8: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_reply_body'
repmsg->u.remote_dpcd_write_ack.port_number = raw->msg[idx] & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:447:51: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
repmsg->u.remote_dpcd_write_ack.port_number = raw->msg[idx] & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:458:20: warning: 'struct
drm_dp_sideband_msg_reply_body' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_sideband_msg_reply_body *repmsg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:457:62: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_remote_i2c_read_ack(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_remote_i2c_read_ack':
drivers/gpu/drm/drm_dp_mst_topology.c:462:8: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_reply_body'
repmsg->u.remote_i2c_read_ack.port_number = (raw->msg[idx] & 0xf);
^~
drivers/gpu/drm/drm_dp_mst_topology.c:462:50: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
repmsg->u.remote_i2c_read_ack.port_number = (raw->msg[idx] & 0xf);
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:477:17: warning: 'struct
drm_dp_sideband_msg_reply_body' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_sideband_msg_reply_body *repmsg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:476:66: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_enum_path_resources_ack(struct
drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_enum_path_resources_ack':
drivers/gpu/drm/drm_dp_mst_topology.c:480:8: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_reply_body'
repmsg->u.path_resources.port_number = (raw->msg[idx] >> 4) & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:480:45: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
repmsg->u.path_resources.port_number = (raw->msg[idx] >> 4) & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:499:17: warning: 'struct
drm_dp_sideband_msg_reply_body' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_sideband_msg_reply_body *repmsg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:498:63: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_allocate_payload_ack(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_allocate_payload_ack':
drivers/gpu/drm/drm_dp_mst_topology.c:502:8: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_reply_body'
repmsg->u.allocate_payload.port_number = (raw->msg[idx] >> 4) & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:502:47: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
repmsg->u.allocate_payload.port_number = (raw->msg[idx] >> 4) & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:521:18: warning: 'struct
drm_dp_sideband_msg_reply_body' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_sideband_msg_reply_body *repmsg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:520:60: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_query_payload_ack(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_query_payload_ack':
drivers/gpu/drm/drm_dp_mst_topology.c:524:8: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_reply_body'
repmsg->u.query_payload.port_number = (raw->msg[idx] >> 4) & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:524:44: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
repmsg->u.query_payload.port_number = (raw->msg[idx] >> 4) & 0xf;
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:539:13: warning: 'struct
drm_dp_sideband_msg_reply_body' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_sideband_msg_reply_body *msg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:538:48: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_reply(struct drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_reply':
drivers/gpu/drm/drm_dp_mst_topology.c:541:24: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_reply_body'
memset(msg, 0, sizeof(*msg));
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:542:24: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
msg->reply_type = (raw->msg[0] & 0x80) >> 7;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:553:7: error: 'DP_LINK_ADDRESS'
undeclared (first use in this function); did you mean 'ISA_END_ADDRESS'?
case DP_LINK_ADDRESS:
^~~~~~~~~~~~~~~
ISA_END_ADDRESS
> drivers/gpu/drm/drm_dp_mst_topology.c:554:45: error: passing
argument 1 of 'drm_dp_sideband_parse_link_address' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return
drm_dp_sideband_parse_link_address(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:371:13: note: expected 'struct
drm_dp_sideband_msg_rx *' but argument is of type 'struct drm_dp_sideband_msg_rx
*'
static bool drm_dp_sideband_parse_link_address(struct drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:554:50: error: passing argument 2 of
'drm_dp_sideband_parse_link_address' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return drm_dp_sideband_parse_link_address(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:371:13: note: expected 'struct
drm_dp_sideband_msg_reply_body *' but argument is of type 'struct
drm_dp_sideband_msg_reply_body *'
static bool drm_dp_sideband_parse_link_address(struct drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:555:7: error: 'DP_QUERY_PAYLOAD'
undeclared (first use in this function)
case DP_QUERY_PAYLOAD:
^~~~~~~~~~~~~~~~
> drivers/gpu/drm/drm_dp_mst_topology.c:556:50: error: passing
argument 1 of 'drm_dp_sideband_parse_query_payload_ack' from incompatible pointer
type [-Werror=incompatible-pointer-types]
return
drm_dp_sideband_parse_query_payload_ack(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:520:13: note: expected 'struct
drm_dp_sideband_msg_rx *' but argument is of type 'struct drm_dp_sideband_msg_rx
*'
static bool drm_dp_sideband_parse_query_payload_ack(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:556:55: error: passing argument 2 of
'drm_dp_sideband_parse_query_payload_ack' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return drm_dp_sideband_parse_query_payload_ack(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:520:13: note: expected 'struct
drm_dp_sideband_msg_reply_body *' but argument is of type 'struct
drm_dp_sideband_msg_reply_body *'
static bool drm_dp_sideband_parse_query_payload_ack(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:557:7: error: 'DP_REMOTE_DPCD_READ'
undeclared (first use in this function)
case DP_REMOTE_DPCD_READ:
^~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/drm_dp_mst_topology.c:558:49: error: passing
argument 1 of 'drm_dp_sideband_parse_remote_dpcd_read' from incompatible pointer
type [-Werror=incompatible-pointer-types]
return
drm_dp_sideband_parse_remote_dpcd_read(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:423:13: note: expected 'struct
drm_dp_sideband_msg_rx *' but argument is of type 'struct drm_dp_sideband_msg_rx
*'
static bool drm_dp_sideband_parse_remote_dpcd_read(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:558:54: error: passing argument 2 of
'drm_dp_sideband_parse_remote_dpcd_read' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return drm_dp_sideband_parse_remote_dpcd_read(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:423:13: note: expected 'struct
drm_dp_sideband_msg_reply_body *' but argument is of type 'struct
drm_dp_sideband_msg_reply_body *'
static bool drm_dp_sideband_parse_remote_dpcd_read(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:559:7: error: 'DP_REMOTE_DPCD_WRITE'
undeclared (first use in this function); did you mean 'DP_REMOTE_DPCD_READ'?
case DP_REMOTE_DPCD_WRITE:
^~~~~~~~~~~~~~~~~~~~
DP_REMOTE_DPCD_READ
> drivers/gpu/drm/drm_dp_mst_topology.c:560:50: error: passing
argument 1 of 'drm_dp_sideband_parse_remote_dpcd_write' from incompatible pointer
type [-Werror=incompatible-pointer-types]
return
drm_dp_sideband_parse_remote_dpcd_write(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:443:13: note: expected 'struct
drm_dp_sideband_msg_rx *' but argument is of type 'struct drm_dp_sideband_msg_rx
*'
static bool drm_dp_sideband_parse_remote_dpcd_write(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:560:55: error: passing argument 2 of
'drm_dp_sideband_parse_remote_dpcd_write' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return drm_dp_sideband_parse_remote_dpcd_write(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:443:13: note: expected 'struct
drm_dp_sideband_msg_reply_body *' but argument is of type 'struct
drm_dp_sideband_msg_reply_body *'
static bool drm_dp_sideband_parse_remote_dpcd_write(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:561:7: error: 'DP_REMOTE_I2C_READ'
undeclared (first use in this function); did you mean 'DP_REMOTE_DPCD_READ'?
case DP_REMOTE_I2C_READ:
^~~~~~~~~~~~~~~~~~
DP_REMOTE_DPCD_READ
> drivers/gpu/drm/drm_dp_mst_topology.c:562:52: error: passing
argument 1 of 'drm_dp_sideband_parse_remote_i2c_read_ack' from incompatible
pointer type [-Werror=incompatible-pointer-types]
return
drm_dp_sideband_parse_remote_i2c_read_ack(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:457:13: note: expected 'struct
drm_dp_sideband_msg_rx *' but argument is of type 'struct drm_dp_sideband_msg_rx
*'
static bool drm_dp_sideband_parse_remote_i2c_read_ack(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:562:57: error: passing argument 2 of
'drm_dp_sideband_parse_remote_i2c_read_ack' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return drm_dp_sideband_parse_remote_i2c_read_ack(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:457:13: note: expected 'struct
drm_dp_sideband_msg_reply_body *' but argument is of type 'struct
drm_dp_sideband_msg_reply_body *'
static bool drm_dp_sideband_parse_remote_i2c_read_ack(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:563:7: error: 'DP_ENUM_PATH_RESOURCES'
undeclared (first use in this function); did you mean 'SD_SHARE_PKG_RESOURCES'?
case DP_ENUM_PATH_RESOURCES:
^~~~~~~~~~~~~~~~~~~~~~
SD_SHARE_PKG_RESOURCES
> drivers/gpu/drm/drm_dp_mst_topology.c:564:56: error: passing
argument 1 of 'drm_dp_sideband_parse_enum_path_resources_ack' from incompatible
pointer type [-Werror=incompatible-pointer-types]
return
drm_dp_sideband_parse_enum_path_resources_ack(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:476:13: note: expected 'struct
drm_dp_sideband_msg_rx *' but argument is of type 'struct drm_dp_sideband_msg_rx
*'
static bool drm_dp_sideband_parse_enum_path_resources_ack(struct
drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:564:61: error: passing argument 2 of
'drm_dp_sideband_parse_enum_path_resources_ack' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return drm_dp_sideband_parse_enum_path_resources_ack(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:476:13: note: expected 'struct
drm_dp_sideband_msg_reply_body *' but argument is of type 'struct
drm_dp_sideband_msg_reply_body *'
static bool drm_dp_sideband_parse_enum_path_resources_ack(struct
drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:565:7: error: 'DP_ALLOCATE_PAYLOAD'
undeclared (first use in this function); did you mean 'DP_QUERY_PAYLOAD'?
case DP_ALLOCATE_PAYLOAD:
^~~~~~~~~~~~~~~~~~~
DP_QUERY_PAYLOAD
> drivers/gpu/drm/drm_dp_mst_topology.c:566:53: error: passing
argument 1 of 'drm_dp_sideband_parse_allocate_payload_ack' from incompatible
pointer type [-Werror=incompatible-pointer-types]
return
drm_dp_sideband_parse_allocate_payload_ack(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:498:13: note: expected 'struct
drm_dp_sideband_msg_rx *' but argument is of type 'struct drm_dp_sideband_msg_rx
*'
static bool drm_dp_sideband_parse_allocate_payload_ack(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:566:58: error: passing argument 2 of
'drm_dp_sideband_parse_allocate_payload_ack' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return drm_dp_sideband_parse_allocate_payload_ack(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:498:13: note: expected 'struct
drm_dp_sideband_msg_reply_body *' but argument is of type 'struct
drm_dp_sideband_msg_reply_body *'
static bool drm_dp_sideband_parse_allocate_payload_ack(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:568:3: error: implicit declaration of function
'DRM_ERROR'; did you mean 'TIME_ERROR'?
[-Werror=implicit-function-declaration]
DRM_ERROR("Got unknown reply 0x%02x\n", msg->req_type);
^~~~~~~~~
TIME_ERROR
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:574:18: warning: 'struct
drm_dp_sideband_msg_req_body' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_sideband_msg_req_body *msg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:573:67: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_connection_status_notify(struct
drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_connection_status_notify':
drivers/gpu/drm/drm_dp_mst_topology.c:578:5: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_req_body'
msg->u.conn_stat.port_number = (raw->msg[idx] & 0xf0) >> 4;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:578:37: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
msg->u.conn_stat.port_number = (raw->msg[idx] & 0xf0) >> 4;
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:601:18: warning: 'struct
drm_dp_sideband_msg_req_body' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_sideband_msg_req_body *msg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:600:65: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_resource_status_notify(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_resource_status_notify':
drivers/gpu/drm/drm_dp_mst_topology.c:605:5: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_req_body'
msg->u.resource_stat.port_number = (raw->msg[idx] & 0xf0) >> 4;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:605:41: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
msg->u.resource_stat.port_number = (raw->msg[idx] & 0xf0) >> 4;
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:624:18: warning: 'struct
drm_dp_sideband_msg_req_body' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_sideband_msg_req_body *msg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:623:46: warning: 'struct
drm_dp_sideband_msg_rx' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_sideband_parse_req(struct drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_sideband_parse_req':
drivers/gpu/drm/drm_dp_mst_topology.c:626:24: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_req_body'
memset(msg, 0, sizeof(*msg));
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:627:22: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_rx'
msg->req_type = (raw->msg[0] & 0x7f);
^~
drivers/gpu/drm/drm_dp_mst_topology.c:630:7: error:
'DP_CONNECTION_STATUS_NOTIFY' undeclared (first use in this function)
case DP_CONNECTION_STATUS_NOTIFY:
^~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/drm_dp_mst_topology.c:631:57: error: passing
argument 1 of 'drm_dp_sideband_parse_connection_status_notify' from incompatible
pointer type [-Werror=incompatible-pointer-types]
return
drm_dp_sideband_parse_connection_status_notify(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:573:13: note: expected 'struct
drm_dp_sideband_msg_rx *' but argument is of type 'struct drm_dp_sideband_msg_rx
*'
static bool drm_dp_sideband_parse_connection_status_notify(struct
drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:631:62: error: passing argument 2 of
'drm_dp_sideband_parse_connection_status_notify' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return drm_dp_sideband_parse_connection_status_notify(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:573:13: note: expected 'struct
drm_dp_sideband_msg_req_body *' but argument is of type 'struct
drm_dp_sideband_msg_req_body *'
static bool drm_dp_sideband_parse_connection_status_notify(struct
drm_dp_sideband_msg_rx *raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:632:7: error: 'DP_RESOURCE_STATUS_NOTIFY'
undeclared (first use in this function); did you mean
'DP_CONNECTION_STATUS_NOTIFY'?
case DP_RESOURCE_STATUS_NOTIFY:
^~~~~~~~~~~~~~~~~~~~~~~~~
DP_CONNECTION_STATUS_NOTIFY
> drivers/gpu/drm/drm_dp_mst_topology.c:633:55: error: passing
argument 1 of 'drm_dp_sideband_parse_resource_status_notify' from incompatible
pointer type [-Werror=incompatible-pointer-types]
return
drm_dp_sideband_parse_resource_status_notify(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:600:13: note: expected 'struct
drm_dp_sideband_msg_rx *' but argument is of type 'struct drm_dp_sideband_msg_rx
*'
static bool drm_dp_sideband_parse_resource_status_notify(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:633:60: error: passing argument 2 of
'drm_dp_sideband_parse_resource_status_notify' from incompatible pointer type
[-Werror=incompatible-pointer-types]
return drm_dp_sideband_parse_resource_status_notify(raw, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:600:13: note: expected 'struct
drm_dp_sideband_msg_req_body *' but argument is of type 'struct
drm_dp_sideband_msg_req_body *'
static bool drm_dp_sideband_parse_resource_status_notify(struct drm_dp_sideband_msg_rx
*raw,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:640:36: warning: 'struct
drm_dp_sideband_msg_tx' declared inside parameter list will not be visible outside of
this definition or declaration
static int build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32
offset, u8 num_bytes, u8 *bytes)
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'build_dpcd_write':
drivers/gpu/drm/drm_dp_mst_topology.c:642:38: error: storage size of 'req'
isn't known
struct drm_dp_sideband_msg_req_body req;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:644:17: error: 'DP_REMOTE_DPCD_WRITE'
undeclared (first use in this function); did you mean 'REQ_OP_WRITE'?
req.req_type = DP_REMOTE_DPCD_WRITE;
^~~~~~~~~~~~~~~~~~~~
REQ_OP_WRITE
> drivers/gpu/drm/drm_dp_mst_topology.c:649:35: error: passing
argument 2 of 'drm_dp_encode_sideband_req' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_encode_sideband_req(&req,
msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:196:13: note: expected 'struct
drm_dp_sideband_msg_tx *' but argument is of type 'struct drm_dp_sideband_msg_tx
*'
static void drm_dp_encode_sideband_req(struct drm_dp_sideband_msg_req_body *req,
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:642:38: warning: unused variable 'req'
[-Wunused-variable]
struct drm_dp_sideband_msg_req_body req;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:654:38: warning: 'struct
drm_dp_sideband_msg_tx' declared inside parameter list will not be visible outside of
this definition or declaration
static int build_link_address(struct drm_dp_sideband_msg_tx *msg)
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'build_link_address':
drivers/gpu/drm/drm_dp_mst_topology.c:656:38: error: storage size of 'req'
isn't known
struct drm_dp_sideband_msg_req_body req;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:658:17: error: 'DP_LINK_ADDRESS'
undeclared (first use in this function); did you mean 'ISA_END_ADDRESS'?
req.req_type = DP_LINK_ADDRESS;
^~~~~~~~~~~~~~~
ISA_END_ADDRESS
drivers/gpu/drm/drm_dp_mst_topology.c:659:35: error: passing argument 2 of
'drm_dp_encode_sideband_req' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_encode_sideband_req(&req, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:196:13: note: expected 'struct
drm_dp_sideband_msg_tx *' but argument is of type 'struct drm_dp_sideband_msg_tx
*'
static void drm_dp_encode_sideband_req(struct drm_dp_sideband_msg_req_body *req,
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:656:38: warning: unused variable 'req'
[-Wunused-variable]
struct drm_dp_sideband_msg_req_body req;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:663:45: warning: 'struct
drm_dp_sideband_msg_tx' declared inside parameter list will not be visible outside of
this definition or declaration
static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int
port_num)
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'build_enum_path_resources':
drivers/gpu/drm/drm_dp_mst_topology.c:665:38: error: storage size of 'req'
isn't known
struct drm_dp_sideband_msg_req_body req;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:667:17: error: 'DP_ENUM_PATH_RESOURCES'
undeclared (first use in this function); did you mean 'SD_SHARE_PKG_RESOURCES'?
req.req_type = DP_ENUM_PATH_RESOURCES;
^~~~~~~~~~~~~~~~~~~~~~
SD_SHARE_PKG_RESOURCES
drivers/gpu/drm/drm_dp_mst_topology.c:669:35: error: passing argument 2 of
'drm_dp_encode_sideband_req' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_encode_sideband_req(&req, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:196:13: note: expected 'struct
drm_dp_sideband_msg_tx *' but argument is of type 'struct drm_dp_sideband_msg_tx
*'
static void drm_dp_encode_sideband_req(struct drm_dp_sideband_msg_req_body *req,
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:670:5: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_tx'
msg->path_msg = true;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:665:38: warning: unused variable 'req'
[-Wunused-variable]
struct drm_dp_sideband_msg_req_body req;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:674:42: warning: 'struct
drm_dp_sideband_msg_tx' declared inside parameter list will not be visible outside of
this definition or declaration
static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_num,
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'build_allocate_payload':
drivers/gpu/drm/drm_dp_mst_topology.c:679:38: error: storage size of 'req'
isn't known
struct drm_dp_sideband_msg_req_body req;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:681:17: error: 'DP_ALLOCATE_PAYLOAD'
undeclared (first use in this function)
req.req_type = DP_ALLOCATE_PAYLOAD;
^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:688:35: error: passing argument 2 of
'drm_dp_encode_sideband_req' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_encode_sideband_req(&req, msg);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:196:13: note: expected 'struct
drm_dp_sideband_msg_tx *' but argument is of type 'struct drm_dp_sideband_msg_tx
*'
static void drm_dp_encode_sideband_req(struct drm_dp_sideband_msg_req_body *req,
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:689:5: error: dereferencing pointer to incomplete
type 'struct drm_dp_sideband_msg_tx'
msg->path_msg = true;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:679:38: warning: unused variable 'req'
[-Wunused-variable]
struct drm_dp_sideband_msg_req_body req;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:694:13: warning: 'struct drm_dp_vcpi'
declared inside parameter list will not be visible outside of this definition or
declaration
struct drm_dp_vcpi *vcpi)
^~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:693:48: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
static int drm_dp_mst_assign_payload_id(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/mmu.h:5:0,
from include/linux/mm_types.h:17,
from include/linux/sched.h:27,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_mst_assign_payload_id':
drivers/gpu/drm/drm_dp_mst_topology.c:698:17: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_topology_mgr'
mutex_lock(&mgr->payload_lock);
^
include/linux/mutex.h:146:44: note: in definition of macro 'mutex_lock'
#define mutex_lock(lock) mutex_lock_nested(lock, 0)
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:715:6: error: dereferencing pointer to incomplete
type 'struct drm_dp_vcpi'
vcpi->vcpi = vcpi_ret + 1;
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:722:46: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
static void drm_dp_mst_put_payload_id(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/mmu.h:5:0,
from include/linux/mm_types.h:17,
from include/linux/sched.h:27,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_mst_put_payload_id':
drivers/gpu/drm/drm_dp_mst_topology.c:729:17: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_topology_mgr'
mutex_lock(&mgr->payload_lock);
^
include/linux/mutex.h:146:44: note: in definition of macro 'mutex_lock'
#define mutex_lock(lock) mutex_lock_nested(lock, 0)
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:744:17: warning: 'struct
drm_dp_sideband_msg_tx' declared inside parameter list will not be visible outside of
this definition or declaration
struct drm_dp_sideband_msg_tx *txmsg)
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:743:38: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
static bool check_txmsg_state(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'check_txmsg_state':
drivers/gpu/drm/drm_dp_mst_topology.c:753:14: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_tx'
ret = (txmsg->state == DRM_DP_SIDEBAND_TX_RX ||
^~
drivers/gpu/drm/drm_dp_mst_topology.c:753:25: error: 'DRM_DP_SIDEBAND_TX_RX'
undeclared (first use in this function)
ret = (txmsg->state == DRM_DP_SIDEBAND_TX_RX ||
^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:754:25: error:
'DRM_DP_SIDEBAND_TX_TIMEOUT' undeclared (first use in this function); did you mean
'DRM_DP_SIDEBAND_TX_RX'?
txmsg->state == DRM_DP_SIDEBAND_TX_TIMEOUT);
^~~~~~~~~~~~~~~~~~~~~~~~~~
DRM_DP_SIDEBAND_TX_RX
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:759:16: warning: 'struct
drm_dp_sideband_msg_tx' declared inside parameter list will not be visible outside of
this definition or declaration
struct drm_dp_sideband_msg_tx *txmsg)
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:758:44: warning: 'struct
drm_dp_mst_branch' declared inside parameter list will not be visible outside of this
definition or declaration
static int drm_dp_mst_wait_tx_reply(struct drm_dp_mst_branch *mstb,
^~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_mst_wait_tx_reply':
drivers/gpu/drm/drm_dp_mst_topology.c:761:44: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_branch'
struct drm_dp_mst_topology_mgr *mgr = mstb->mgr;
^~
In file included from include/linux/completion.h:11:0,
from include/linux/rcupdate.h:43,
from include/linux/rbtree.h:34,
from include/linux/sched.h:22,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
> drivers/gpu/drm/drm_dp_mst_topology.c:765:24: error: passing
argument 1 of 'check_txmsg_state' from incompatible pointer type
[-Werror=incompatible-pointer-types]
check_txmsg_state(mgr, txmsg),
^
include/linux/wait.h:241:17: note: in definition of macro
'___wait_cond_timeout'
bool __cond = (condition); \
^~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:764:8: note: in expansion of macro
'wait_event_timeout'
ret = wait_event_timeout(mgr->tx_waitq,
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:743:13: note: expected 'struct
drm_dp_mst_topology_mgr *' but argument is of type 'struct drm_dp_mst_topology_mgr
*'
static bool check_txmsg_state(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~
In file included from include/linux/completion.h:11:0,
from include/linux/rcupdate.h:43,
from include/linux/rbtree.h:34,
from include/linux/sched.h:22,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c:765:29: error: passing argument 2 of
'check_txmsg_state' from incompatible pointer type
[-Werror=incompatible-pointer-types]
check_txmsg_state(mgr, txmsg),
^
include/linux/wait.h:241:17: note: in definition of macro
'___wait_cond_timeout'
bool __cond = (condition); \
^~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:764:8: note: in expansion of macro
'wait_event_timeout'
ret = wait_event_timeout(mgr->tx_waitq,
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:743:13: note: expected 'struct
drm_dp_sideband_msg_tx *' but argument is of type 'struct drm_dp_sideband_msg_tx
*'
static bool check_txmsg_state(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~
In file included from include/linux/completion.h:11:0,
from include/linux/rcupdate.h:43,
from include/linux/rbtree.h:34,
from include/linux/sched.h:22,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c:764:30: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_topology_mgr'
ret = wait_event_timeout(mgr->tx_waitq,
^
include/linux/wait.h:273:39: note: in definition of macro '___wait_event'
long __int = prepare_to_wait_event(&wq, &__wait, state);\
^~
include/linux/wait.h:382:11: note: in expansion of macro
'__wait_event_timeout'
__ret = __wait_event_timeout(wq, condition, timeout); \
^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:764:8: note: in expansion of macro
'wait_event_timeout'
ret = wait_event_timeout(mgr->tx_waitq,
^~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/drm_dp_mst_topology.c:765:24: error: passing
argument 1 of 'check_txmsg_state' from incompatible pointer type
[-Werror=incompatible-pointer-types]
check_txmsg_state(mgr, txmsg),
^
include/linux/wait.h:275:7: note: in definition of macro '___wait_event'
if (condition) \
^~~~~~~~~
include/linux/wait.h:354:20: note: in expansion of macro
'___wait_cond_timeout'
___wait_event(wq, ___wait_cond_timeout(condition), \
^~~~~~~~~~~~~~~~~~~~
include/linux/wait.h:382:11: note: in expansion of macro
'__wait_event_timeout'
__ret = __wait_event_timeout(wq, condition, timeout); \
^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:764:8: note: in expansion of macro
'wait_event_timeout'
ret = wait_event_timeout(mgr->tx_waitq,
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:743:13: note: expected 'struct
drm_dp_mst_topology_mgr *' but argument is of type 'struct drm_dp_mst_topology_mgr
*'
static bool check_txmsg_state(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~
In file included from include/linux/completion.h:11:0,
from include/linux/rcupdate.h:43,
from include/linux/rbtree.h:34,
from include/linux/sched.h:22,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c:765:29: error: passing argument 2 of
'check_txmsg_state' from incompatible pointer type
[-Werror=incompatible-pointer-types]
check_txmsg_state(mgr, txmsg),
^
include/linux/wait.h:275:7: note: in definition of macro '___wait_event'
if (condition) \
^~~~~~~~~
include/linux/wait.h:354:20: note: in expansion of macro
'___wait_cond_timeout'
___wait_event(wq, ___wait_cond_timeout(condition), \
^~~~~~~~~~~~~~~~~~~~
include/linux/wait.h:382:11: note: in expansion of macro
'__wait_event_timeout'
__ret = __wait_event_timeout(wq, condition, timeout); \
^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:764:8: note: in expansion of macro
'wait_event_timeout'
ret = wait_event_timeout(mgr->tx_waitq,
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:743:13: note: expected 'struct
drm_dp_sideband_msg_tx *' but argument is of type 'struct drm_dp_sideband_msg_tx
*'
static bool check_txmsg_state(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:769:12: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_tx'
if (txmsg->state == DRM_DP_SIDEBAND_TX_TIMEOUT) {
^~
drivers/gpu/drm/drm_dp_mst_topology.c:769:23: error:
'DRM_DP_SIDEBAND_TX_TIMEOUT' undeclared (first use in this function); did you mean
'MAX_SCHEDULE_TIMEOUT'?
if (txmsg->state == DRM_DP_SIDEBAND_TX_TIMEOUT) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
MAX_SCHEDULE_TIMEOUT
drivers/gpu/drm/drm_dp_mst_topology.c:780:23: error:
'DRM_DP_SIDEBAND_TX_QUEUED' undeclared (first use in this function); did you mean
'DRM_DP_SIDEBAND_TX_TIMEOUT'?
if (txmsg->state == DRM_DP_SIDEBAND_TX_QUEUED ||
^~~~~~~~~~~~~~~~~~~~~~~~~
DRM_DP_SIDEBAND_TX_TIMEOUT
drivers/gpu/drm/drm_dp_mst_topology.c:781:23: error:
'DRM_DP_SIDEBAND_TX_START_SEND' undeclared (first use in this function); did you
mean 'DRM_DP_SIDEBAND_TX_QUEUED'?
txmsg->state == DRM_DP_SIDEBAND_TX_START_SEND) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DRM_DP_SIDEBAND_TX_QUEUED
drivers/gpu/drm/drm_dp_mst_topology.c:786:23: error: 'DRM_DP_SIDEBAND_TX_SENT'
undeclared (first use in this function); did you mean
'DRM_DP_SIDEBAND_TX_QUEUED'?
txmsg->state == DRM_DP_SIDEBAND_TX_SENT) {
^~~~~~~~~~~~~~~~~~~~~~~
DRM_DP_SIDEBAND_TX_QUEUED
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_add_mst_branch_device':
drivers/gpu/drm/drm_dp_mst_topology.c:800:9: error: implicit declaration of function
'kzalloc'; did you mean 'd_alloc'?
[-Werror=implicit-function-declaration]
mstb = kzalloc(sizeof(*mstb), GFP_KERNEL);
^~~~~~~
d_alloc
drivers/gpu/drm/drm_dp_mst_topology.c:800:24: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_branch'
mstb = kzalloc(sizeof(*mstb), GFP_KERNEL);
^~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:808:2: error: implicit declaration of function
'kref_init'; did you mean 'cred_init'?
[-Werror=implicit-function-declaration]
kref_init(&mstb->kref);
^~~~~~~~~
cred_init
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:812:41: warning: 'struct kref' declared
inside parameter list will not be visible outside of this definition or declaration
static void drm_dp_free_mst_port(struct kref *kref);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:814:50: warning: 'struct kref' declared
inside parameter list will not be visible outside of this definition or declaration
static void drm_dp_free_mst_branch_device(struct kref *kref)
^~~~
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:23:0:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_free_mst_branch_device':
> include/linux/kernel.h:837:48: error: initialization from
incompatible pointer type [-Werror=incompatible-pointer-types]
const typeof(
((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:816:35: note: in expansion of macro
'container_of'
struct drm_dp_mst_branch *mstb = container_of(kref, struct drm_dp_mst_branch, kref);
^~~~~~~~~~~~
include/linux/kernel.h:837:48: note: (near initialization for 'mstb')
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:816:35: note: in expansion of macro
'container_of'
struct drm_dp_mst_branch *mstb = container_of(kref, struct drm_dp_mst_branch, kref);
^~~~~~~~~~~~
In file included from include/linux/compiler.h:74:0,
from include/linux/linkage.h:4,
from include/linux/kernel.h:6,
from drivers/gpu/drm/drm_dp_mst_topology.c:23:
include/linux/compiler-gcc.h:182:2: error: invalid use of undefined type 'struct
drm_dp_mst_branch'
__builtin_offsetof(a, b)
^
include/linux/stddef.h:16:32: note: in expansion of macro
'__compiler_offsetof'
#define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
^~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:838:29: note: in expansion of macro 'offsetof'
(type *)( (char *)__mptr - offsetof(type,member) );})
^~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:816:35: note: in expansion of macro
'container_of'
struct drm_dp_mst_branch *mstb = container_of(kref, struct drm_dp_mst_branch, kref);
^~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:819:4: error: implicit declaration of function
'kref_put'; did you mean 'key_put'?
[-Werror=implicit-function-declaration]
kref_put(&mstb->port_parent->kref, drm_dp_free_mst_port);
^~~~~~~~
key_put
drivers/gpu/drm/drm_dp_mst_topology.c:821:2: error: implicit declaration of function
'kfree' [-Werror=implicit-function-declaration]
kfree(mstb);
^~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:824:53: warning: 'struct kref' declared
inside parameter list will not be visible outside of this definition or declaration
static void drm_dp_destroy_mst_branch_device(struct kref *kref)
^~~~
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:23:0:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_destroy_mst_branch_device':
> include/linux/kernel.h:837:48: error: initialization from
incompatible pointer type [-Werror=incompatible-pointer-types]
const typeof(
((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:826:35: note: in expansion of macro
'container_of'
struct drm_dp_mst_branch *mstb = container_of(kref, struct drm_dp_mst_branch, kref);
^~~~~~~~~~~~
include/linux/kernel.h:837:48: note: (near initialization for 'mstb')
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:826:35: note: in expansion of macro
'container_of'
struct drm_dp_mst_branch *mstb = container_of(kref, struct drm_dp_mst_branch, kref);
^~~~~~~~~~~~
In file included from include/linux/compiler.h:74:0,
from include/linux/linkage.h:4,
from include/linux/kernel.h:6,
from drivers/gpu/drm/drm_dp_mst_topology.c:23:
include/linux/compiler-gcc.h:182:2: error: invalid use of undefined type 'struct
drm_dp_mst_branch'
__builtin_offsetof(a, b)
^
include/linux/stddef.h:16:32: note: in expansion of macro
'__compiler_offsetof'
#define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
^~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:838:29: note: in expansion of macro 'offsetof'
(type *)( (char *)__mptr - offsetof(type,member) );})
^~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:826:35: note: in expansion of macro
'container_of'
struct drm_dp_mst_branch *mstb = container_of(kref, struct drm_dp_mst_branch, kref);
^~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:837:3: error: implicit declaration of function
'kref_get'; did you mean 'key_get'?
[-Werror=implicit-function-declaration]
kref_get(&mstb->port_parent->kref);
^~~~~~~~
key_get
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:23:0:
include/linux/list.h:554:43: error: dereferencing pointer to incomplete type
'struct drm_dp_mst_port'
for (pos = list_first_entry(head, typeof(*pos), member), \
include/linux/kernel.h:837:18: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^~~~
include/linux/list.h:393:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^~~~~~~~~~
include/linux/list.h:554:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member), \
^~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:844:2: note: in expansion of macro
'list_for_each_entry_safe'
list_for_each_entry_safe(port, tmp, &mstb->ports, next) {
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/preempt.h:10:0,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:35,
from include/linux/time.h:5,
from include/uapi/linux/timex.h:56,
from include/linux/timex.h:56,
from include/linux/sched.h:19,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
include/linux/list.h:554:57: warning: left-hand operand of comma expression has no
effect [-Wunused-value]
for (pos = list_first_entry(head, typeof(*pos), member), \
^
drivers/gpu/drm/drm_dp_mst_topology.c:844:2: note: in expansion of macro
'list_for_each_entry_safe'
list_for_each_entry_safe(port, tmp, &mstb->ports, next) {
^~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/drm_dp_mst_topology.c:846:19: error: passing
argument 1 of 'drm_dp_put_port' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_put_port(port);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:44:13: note: expected 'struct drm_dp_mst_port
*' but argument is of type 'struct drm_dp_mst_port *'
static void drm_dp_put_port(struct drm_dp_mst_port *port);
^~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:852:30: error:
'DRM_DP_SIDEBAND_TX_TIMEOUT' undeclared (first use in this function); did you mean
'MAX_SCHEDULE_TIMEOUT'?
mstb->tx_slots[0]->state = DRM_DP_SIDEBAND_TX_TIMEOUT;
^~~~~~~~~~~~~~~~~~~~~~~~~~
MAX_SCHEDULE_TIMEOUT
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:875:45: warning: 'struct drm_dp_mst_port'
declared inside parameter list will not be visible outside of this definition or
declaration
static void drm_dp_port_teardown_pdt(struct drm_dp_mst_port *port, int old_pdt)
^~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_port_teardown_pdt':
drivers/gpu/drm/drm_dp_mst_topology.c:880:7: error:
'DP_PEER_DEVICE_DP_LEGACY_CONV' undeclared (first use in this function)
case DP_PEER_DEVICE_DP_LEGACY_CONV:
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:881:7: error: 'DP_PEER_DEVICE_SST_SINK'
undeclared (first use in this function); did you mean
'DP_PEER_DEVICE_DP_LEGACY_CONV'?
case DP_PEER_DEVICE_SST_SINK:
^~~~~~~~~~~~~~~~~~~~~~~
DP_PEER_DEVICE_DP_LEGACY_CONV
drivers/gpu/drm/drm_dp_mst_topology.c:883:38: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_port'
drm_dp_mst_unregister_i2c_bus(&port->aux);
^~
drivers/gpu/drm/drm_dp_mst_topology.c:885:7: error:
'DP_PEER_DEVICE_MST_BRANCHING' undeclared (first use in this function); did you
mean 'DP_PEER_DEVICE_SST_SINK'?
case DP_PEER_DEVICE_MST_BRANCHING:
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_PEER_DEVICE_SST_SINK
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:893:40: warning: 'struct kref' declared
inside parameter list will not be visible outside of this definition or declaration
static void drm_dp_destroy_port(struct kref *kref)
^~~~
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:23:0:
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_destroy_port':
include/linux/kernel.h:837:27: error: dereferencing pointer to incomplete type
'struct drm_dp_mst_port'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:895:33: note: in expansion of macro
'container_of'
struct drm_dp_mst_port *port = container_of(kref, struct drm_dp_mst_port, kref);
^~~~~~~~~~~~
> include/linux/kernel.h:837:48: error: initialization from
incompatible pointer type [-Werror=incompatible-pointer-types]
const typeof(
((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:895:33: note: in expansion of macro
'container_of'
struct drm_dp_mst_port *port = container_of(kref, struct drm_dp_mst_port, kref);
^~~~~~~~~~~~
include/linux/kernel.h:837:48: note: (near initialization for 'port')
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:895:33: note: in expansion of macro
'container_of'
struct drm_dp_mst_port *port = container_of(kref, struct drm_dp_mst_port, kref);
^~~~~~~~~~~~
In file included from include/linux/compiler.h:74:0,
from include/linux/linkage.h:4,
from include/linux/kernel.h:6,
from drivers/gpu/drm/drm_dp_mst_topology.c:23:
include/linux/compiler-gcc.h:182:2: error: invalid use of undefined type 'struct
drm_dp_mst_port'
__builtin_offsetof(a, b)
^
include/linux/stddef.h:16:32: note: in expansion of macro
'__compiler_offsetof'
#define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
^~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:838:29: note: in expansion of macro 'offsetof'
(type *)( (char *)__mptr - offsetof(type,member) );})
^~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:895:33: note: in expansion of macro
'container_of'
struct drm_dp_mst_port *port = container_of(kref, struct drm_dp_mst_port, kref);
^~~~~~~~~~~~
In file included from arch/x86/include/asm/mmu.h:5:0,
from include/linux/mm_types.h:17,
from include/linux/sched.h:27,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c:913:19: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_topology_mgr'
mutex_lock(&mgr->destroy_connector_lock);
^
include/linux/mutex.h:146:44: note: in definition of macro 'mutex_lock'
#define mutex_lock(lock) mutex_lock_nested(lock, 0)
^~~~
> drivers/gpu/drm/drm_dp_mst_topology.c:922:28: error: passing
argument 1 of 'drm_dp_port_teardown_pdt' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_port_teardown_pdt(port,
port->pdt);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:875:13: note: expected 'struct
drm_dp_mst_port *' but argument is of type 'struct drm_dp_mst_port *'
static void drm_dp_port_teardown_pdt(struct drm_dp_mst_port *port, int old_pdt)
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:923:15: error: 'DP_PEER_DEVICE_NONE'
undeclared (first use in this function); did you mean 'DPM_ORDER_NONE'?
port->pdt = DP_PEER_DEVICE_NONE;
^~~~~~~~~~~~~~~~~~~
DPM_ORDER_NONE
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:928:36: warning: 'struct drm_dp_mst_port'
declared inside parameter list will not be visible outside of this definition or
declaration
static void drm_dp_put_port(struct drm_dp_mst_port *port)
^~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:928:13: error: conflicting types for
'drm_dp_put_port'
static void drm_dp_put_port(struct drm_dp_mst_port *port)
^~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:44:13: note: previous declaration of
'drm_dp_put_port' was here
static void drm_dp_put_port(struct drm_dp_mst_port *port);
^~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_put_port':
drivers/gpu/drm/drm_dp_mst_topology.c:930:16: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_port'
kref_put(&port->kref, drm_dp_destroy_port);
^~
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:23:0:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_mst_get_validated_mstb_ref_locked':
include/linux/list.h:480:43: error: dereferencing pointer to incomplete type
'struct drm_dp_mst_port'
for (pos = list_first_entry(head, typeof(*pos), member); \
include/linux/kernel.h:837:18: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^~~~
include/linux/list.h:393:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^~~~~~~~~~
include/linux/list.h:480:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:941:2: note: in expansion of macro
'list_for_each_entry'
list_for_each_entry(port, &mstb->ports, next) {
^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:951:71: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
static struct drm_dp_mst_branch *drm_dp_get_validated_mstb_ref(struct
drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_branch *mstb)
^~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/mmu.h:5:0,
from include/linux/mm_types.h:17,
from include/linux/sched.h:27,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_get_validated_mstb_ref':
drivers/gpu/drm/drm_dp_mst_topology.c:954:17: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_topology_mgr'
mutex_lock(&mgr->lock);
^
include/linux/mutex.h:146:44: note: in definition of macro 'mutex_lock'
#define mutex_lock(lock) mutex_lock_nested(lock, 0)
^~~~
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:23:0:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_mst_get_port_ref_locked':
include/linux/list.h:480:43: error: dereferencing pointer to incomplete type
'struct drm_dp_mst_port'
for (pos = list_first_entry(head, typeof(*pos), member); \
include/linux/kernel.h:837:18: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^~~~
include/linux/list.h:393:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^~~~~~~~~~
include/linux/list.h:480:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:965:2: note: in expansion of macro
'list_for_each_entry'
list_for_each_entry(port, &mstb->ports, next) {
^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:979:69: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
static struct drm_dp_mst_port *drm_dp_get_validated_port_ref(struct
drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port)
^~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/mmu.h:5:0,
from include/linux/mm_types.h:17,
from include/linux/sched.h:27,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_get_validated_port_ref':
drivers/gpu/drm/drm_dp_mst_topology.c:982:17: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_topology_mgr'
mutex_lock(&mgr->lock);
^
include/linux/mutex.h:146:44: note: in definition of macro 'mutex_lock'
#define mutex_lock(lock) mutex_lock_nested(lock, 0)
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_port_setup_pdt':
drivers/gpu/drm/drm_dp_mst_topology.c:1033:7: error:
'DP_PEER_DEVICE_DP_LEGACY_CONV' undeclared (first use in this function)
case DP_PEER_DEVICE_DP_LEGACY_CONV:
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1034:7: error: 'DP_PEER_DEVICE_SST_SINK'
undeclared (first use in this function); did you mean
'DP_PEER_DEVICE_DP_LEGACY_CONV'?
case DP_PEER_DEVICE_SST_SINK:
^~~~~~~~~~~~~~~~~~~~~~~
DP_PEER_DEVICE_DP_LEGACY_CONV
drivers/gpu/drm/drm_dp_mst_topology.c:1038:7: error:
'DP_PEER_DEVICE_MST_BRANCHING' undeclared (first use in this function); did you
mean 'DP_PEER_DEVICE_SST_SINK'?
case DP_PEER_DEVICE_MST_BRANCHING:
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_PEER_DEVICE_SST_SINK
drivers/gpu/drm/drm_dp_mst_topology.c:1029:6: warning: variable 'ret' set but
not used [-Wunused-but-set-variable]
int ret;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_check_mstb_guid':
drivers/gpu/drm/drm_dp_mst_topology.c:1064:6: error: 'DP_GUID' undeclared
(first use in this function); did you mean 'AT_EUID'?
DP_GUID,
^~~~~~~
AT_EUID
drivers/gpu/drm/drm_dp_mst_topology.c:1069:10: error: implicit declaration of function
'drm_dp_dpcd_write'; did you mean 'build_dpcd_write'?
[-Werror=implicit-function-declaration]
ret = drm_dp_dpcd_write(
^~~~~~~~~~~~~~~~~
build_dpcd_write
drivers/gpu/drm/drm_dp_mst_topology.c:1055:6: warning: variable 'ret' set but
not used [-Wunused-but-set-variable]
int ret;
^~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'build_mst_prop_path':
drivers/gpu/drm/drm_dp_mst_topology.c:1085:50: error: dereferencing pointer to
incomplete type 'const struct drm_dp_mst_branch'
snprintf(proppath, proppath_size, "mst:%d",
mstb->mgr->conn_base_id);
^~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:1098:15: warning: 'struct
drm_dp_link_addr_reply_port' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_link_addr_reply_port *port_msg)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_add_port':
drivers/gpu/drm/drm_dp_mst_topology.c:1105:39: error: dereferencing pointer to
incomplete type 'struct drm_dp_link_addr_reply_port'
port = drm_dp_get_port(mstb, port_msg->port_number);
^~
> drivers/gpu/drm/drm_dp_mst_topology.c:1143:48: error: passing
argument 2 of 'drm_dp_send_enum_path_resources' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_send_enum_path_resources(mstb->mgr, mstb, port);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:56:12: note: expected 'struct
drm_dp_mst_branch *' but argument is of type 'struct drm_dp_mst_branch *'
static int drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1143:54: error: passing argument 3 of
'drm_dp_send_enum_path_resources' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_send_enum_path_resources(mstb->mgr, mstb, port);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:56:12: note: expected 'struct drm_dp_mst_port
*' but argument is of type 'struct drm_dp_mst_port *'
static int drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1150:28: error: passing argument 1 of
'drm_dp_port_teardown_pdt' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_port_teardown_pdt(port, old_pdt);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:875:13: note: expected 'struct
drm_dp_mst_port *' but argument is of type 'struct drm_dp_mst_port *'
static void drm_dp_port_teardown_pdt(struct drm_dp_mst_port *port, int old_pdt)
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1168:20: error: passing argument 1 of
'drm_dp_put_port' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_put_port(port);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:928:13: note: expected 'struct
drm_dp_mst_port *' but argument is of type 'struct drm_dp_mst_port *'
static void drm_dp_put_port(struct drm_dp_mst_port *port)
^~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1171:21: error:
'DP_PEER_DEVICE_DP_LEGACY_CONV' undeclared (first use in this function)
if ((port->pdt == DP_PEER_DEVICE_DP_LEGACY_CONV ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1172:21: error: 'DP_PEER_DEVICE_SST_SINK'
undeclared (first use in this function); did you mean
'DP_PEER_DEVICE_DP_LEGACY_CONV'?
port->pdt == DP_PEER_DEVICE_SST_SINK) &&
^~~~~~~~~~~~~~~~~~~~~~~
DP_PEER_DEVICE_DP_LEGACY_CONV
drivers/gpu/drm/drm_dp_mst_topology.c:1173:25: error: 'DP_MST_LOGICAL_PORT_0'
undeclared (first use in this function)
port->port_num >= DP_MST_LOGICAL_PORT_0) {
^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1174:24: error: implicit declaration of function
'drm_get_edid'; did you mean 'drm_fixp_div'?
[-Werror=implicit-function-declaration]
port->cached_edid = drm_get_edid(port->connector, &port->aux.ddc);
^~~~~~~~~~~~
drm_fixp_div
drivers/gpu/drm/drm_dp_mst_topology.c:1175:4: error: implicit declaration of function
'drm_mode_connector_set_tile_property' [-Werror=implicit-function-declaration]
drm_mode_connector_set_tile_property(port->connector);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1182:18: error: passing argument 1 of
'drm_dp_put_port' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_put_port(port);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:928:13: note: expected 'struct
drm_dp_mst_port *' but argument is of type 'struct drm_dp_mst_port *'
static void drm_dp_put_port(struct drm_dp_mst_port *port)
^~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:1186:18: warning: 'struct
drm_dp_connection_status_notify' declared inside parameter list will not be visible
outside of this definition or declaration
struct drm_dp_connection_status_notify *conn_stat)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_update_port':
drivers/gpu/drm/drm_dp_mst_topology.c:1192:40: error: dereferencing pointer to
incomplete type 'struct drm_dp_connection_status_notify'
port = drm_dp_get_port(mstb, conn_stat->port_number);
^~
drivers/gpu/drm/drm_dp_mst_topology.c:1211:28: error: passing argument 1 of
'drm_dp_port_teardown_pdt' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_port_teardown_pdt(port, old_pdt);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:875:13: note: expected 'struct
drm_dp_mst_port *' but argument is of type 'struct drm_dp_mst_port *'
static void drm_dp_port_teardown_pdt(struct drm_dp_mst_port *port, int old_pdt)
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1217:18: error: passing argument 1 of
'drm_dp_put_port' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_put_port(port);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:928:13: note: expected 'struct
drm_dp_mst_port *' but argument is of type 'struct drm_dp_mst_port *'
static void drm_dp_put_port(struct drm_dp_mst_port *port)
^~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:1223:70: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
static struct drm_dp_mst_branch *drm_dp_get_mst_branch_device(struct
drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/mmu.h:5:0,
from include/linux/mm_types.h:17,
from include/linux/sched.h:27,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_get_mst_branch_device':
drivers/gpu/drm/drm_dp_mst_topology.c:1231:17: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_topology_mgr'
mutex_lock(&mgr->lock);
^
include/linux/mutex.h:146:44: note: in definition of macro 'mutex_lock'
#define mutex_lock(lock) mutex_lock_nested(lock, 0)
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:1284:9: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/mmu.h:5:0,
from include/linux/mm_types.h:17,
from include/linux/sched.h:27,
from drivers/gpu/drm/drm_dp_mst_topology.c:27:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_get_mst_branch_device_by_guid':
drivers/gpu/drm/drm_dp_mst_topology.c:1290:17: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_topology_mgr'
mutex_lock(&mgr->lock);
^
include/linux/mutex.h:146:44: note: in definition of macro 'mutex_lock'
#define mutex_lock(lock) mutex_lock_nested(lock, 0)
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:1301:55: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
static void drm_dp_check_and_send_link_address(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_check_and_send_link_address':
> drivers/gpu/drm/drm_dp_mst_topology.c:1307:28: error: passing
argument 1 of 'drm_dp_send_link_address' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_send_link_address(mgr, mstb);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:54:13: note: expected 'struct
drm_dp_mst_topology_mgr *' but argument is of type 'struct drm_dp_mst_topology_mgr
*'
static void drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1307:33: error: passing argument 2 of
'drm_dp_send_link_address' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_send_link_address(mgr, mstb);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:54:13: note: expected 'struct
drm_dp_mst_branch *' but argument is of type 'struct drm_dp_mst_branch *'
static void drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1317:36: error: passing argument 1 of
'drm_dp_send_enum_path_resources' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_send_enum_path_resources(mgr, mstb, port);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:56:12: note: expected 'struct
drm_dp_mst_topology_mgr *' but argument is of type 'struct drm_dp_mst_topology_mgr
*'
static int drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1317:41: error: passing argument 2 of
'drm_dp_send_enum_path_resources' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_send_enum_path_resources(mgr, mstb, port);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:56:12: note: expected 'struct
drm_dp_mst_branch *' but argument is of type 'struct drm_dp_mst_branch *'
static int drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1317:47: error: passing argument 3 of
'drm_dp_send_enum_path_resources' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_send_enum_path_resources(mgr, mstb, port);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c:56:12: note: expected 'struct drm_dp_mst_port
*' but argument is of type 'struct drm_dp_mst_port *'
static int drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/drm_dp_mst_topology.c:1320:47: error: passing
argument 1 of 'drm_dp_get_validated_mstb_ref' from incompatible pointer type
[-Werror=incompatible-pointer-types]
mstb_child =
drm_dp_get_validated_mstb_ref(mgr, port->mstb);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:951:34: note: expected 'struct
drm_dp_mst_topology_mgr *' but argument is of type 'struct drm_dp_mst_topology_mgr
*'
static struct drm_dp_mst_branch *drm_dp_get_validated_mstb_ref(struct
drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_branch *mstb)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:23:0:
drivers/gpu/drm/drm_dp_mst_topology.c: In function
'drm_dp_mst_link_probe_work':
include/linux/kernel.h:837:27: error: dereferencing pointer to incomplete type
'struct drm_dp_mst_topology_mgr'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:1331:40: note: in expansion of macro
'container_of'
struct drm_dp_mst_topology_mgr *mgr = container_of(work, struct
drm_dp_mst_topology_mgr, work);
^~~~~~~~~~~~
include/linux/kernel.h:837:48: error: initialization from incompatible pointer type
[-Werror=incompatible-pointer-types]
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:1331:40: note: in expansion of macro
'container_of'
struct drm_dp_mst_topology_mgr *mgr = container_of(work, struct
drm_dp_mst_topology_mgr, work);
^~~~~~~~~~~~
include/linux/kernel.h:837:48: note: (near initialization for 'mgr')
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/gpu/drm/drm_dp_mst_topology.c:1331:40: note: in expansion of macro
'container_of'
struct drm_dp_mst_topology_mgr *mgr = container_of(work, struct
drm_dp_mst_topology_mgr, work);
^~~~~~~~~~~~
In file included from include/linux/compiler.h:74:0,
from include/linux/linkage.h:4,
from include/linux/kernel.h:6,
from drivers/gpu/drm/drm_dp_mst_topology.c:23:
include/linux/compiler-gcc.h:182:2: error: invalid use of undefined type 'struct
drm_dp_mst_topology_mgr'
__builtin_offsetof(a, b)
^
include/linux/stddef.h:16:32: note: in expansion of macro
'__compiler_offsetof'
#define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
^~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:838:29: note: in expansion of macro 'offsetof'
(type *)( (char *)__mptr - offsetof(type,member) );})
^~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1331:40: note: in expansion of macro
'container_of'
struct drm_dp_mst_topology_mgr *mgr = container_of(work, struct
drm_dp_mst_topology_mgr, work);
^~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1341:38: error: passing argument 1 of
'drm_dp_check_and_send_link_address' from incompatible pointer type
[-Werror=incompatible-pointer-types]
drm_dp_check_and_send_link_address(mgr, mstb);
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:1301:13: note: expected 'struct
drm_dp_mst_topology_mgr *' but argument is of type 'struct drm_dp_mst_topology_mgr
*'
static void drm_dp_check_and_send_link_address(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:1346:41: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
static bool drm_dp_validate_guid(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1346:13: error: conflicting types for
'drm_dp_validate_guid'
static bool drm_dp_validate_guid(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:59:13: note: previous declaration of
'drm_dp_validate_guid' was here
static bool drm_dp_validate_guid(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1375:44: warning: 'struct
drm_dp_mst_topology_mgr' declared inside parameter list will not be visible outside of
this definition or declaration
static int drm_dp_send_sideband_msg(struct drm_dp_mst_topology_mgr *mgr,
^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_send_sideband_msg':
drivers/gpu/drm/drm_dp_mst_topology.c:1379:21: error:
'DP_SIDEBAND_MSG_UP_REP_BASE' undeclared (first use in this function)
int regbase = up ? DP_SIDEBAND_MSG_UP_REP_BASE : DP_SIDEBAND_MSG_DOWN_REQ_BASE;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1379:51: error:
'DP_SIDEBAND_MSG_DOWN_REQ_BASE' undeclared (first use in this function); did you
mean 'DP_SIDEBAND_MSG_UP_REP_BASE'?
int regbase = up ? DP_SIDEBAND_MSG_UP_REP_BASE : DP_SIDEBAND_MSG_DOWN_REQ_BASE;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_SIDEBAND_MSG_UP_REP_BASE
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:23:0:
drivers/gpu/drm/drm_dp_mst_topology.c:1387:20: error: dereferencing pointer to
incomplete type 'struct drm_dp_mst_topology_mgr'
tosend = min3(mgr->max_dpcd_transaction_bytes, 16, total);
^
include/linux/kernel.h:738:2: note: in definition of macro '__min'
t1 min1 = (x); \
^~
include/linux/kernel.h:757:23: note: in expansion of macro 'min'
#define min3(x, y, z) min((typeof(x))min(x, y), z)
^~~
drivers/gpu/drm/drm_dp_mst_topology.c:1387:12: note: in expansion of macro
'min3'
tosend = min3(mgr->max_dpcd_transaction_bytes, 16, total);
^~~~
drivers/gpu/drm/drm_dp_mst_topology.c: At top level:
drivers/gpu/drm/drm_dp_mst_topology.c:1408:14: warning: 'struct
drm_dp_sideband_msg_tx' declared inside parameter list will not be visible outside of
this definition or declaration
struct drm_dp_sideband_msg_tx *txmsg)
^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1407:42: warning: 'struct
drm_dp_sideband_msg_hdr' declared inside parameter list will not be visible outside of
this definition or declaration
static int set_hdr_from_dst_qlock(struct drm_dp_sideband_msg_hdr *hdr,
^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'set_hdr_from_dst_qlock':
drivers/gpu/drm/drm_dp_mst_topology.c:1410:40: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_tx'
struct drm_dp_mst_branch *mstb = txmsg->dst;
^~
drivers/gpu/drm/drm_dp_mst_topology.c:1430:18: error:
'DP_CONNECTION_STATUS_NOTIFY' undeclared (first use in this function)
if (req_type == DP_CONNECTION_STATUS_NOTIFY ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:1431:15: error:
'DP_RESOURCE_STATUS_NOTIFY' undeclared (first use in this function); did you mean
'DP_CONNECTION_STATUS_NOTIFY'?
req_type == DP_RESOURCE_STATUS_NOTIFY)
^~~~~~~~~~~~~~~~~~~~~~~~~
DP_CONNECTION_STATUS_NOTIFY
drivers/gpu/drm/drm_dp_mst_topology.c:1432:6: error: dereferencing pointer to
incomplete type 'struct drm_dp_sideband_msg_hdr'
vim +/drm_dp_sideband_parse_link_address +554 drivers/gpu/drm/drm_dp_mst_topology.c
ad7f8a1f9ced7f Dave Airlie 2014-06-05 537
ad7f8a1f9ced7f Dave Airlie 2014-06-05 538 static bool drm_dp_sideband_parse_reply(struct
drm_dp_sideband_msg_rx *raw,
ad7f8a1f9ced7f Dave Airlie 2014-06-05 539 struct drm_dp_sideband_msg_reply_body
*msg)
ad7f8a1f9ced7f Dave Airlie 2014-06-05 540 {
ad7f8a1f9ced7f Dave Airlie 2014-06-05 541 memset(msg, 0, sizeof(*msg));
ad7f8a1f9ced7f Dave Airlie 2014-06-05 542 msg->reply_type = (raw->msg[0] &
0x80) >> 7;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 543 msg->req_type = (raw->msg[0] &
0x7f);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 544
ad7f8a1f9ced7f Dave Airlie 2014-06-05 545 if (msg->reply_type) {
ad7f8a1f9ced7f Dave Airlie 2014-06-05 546 memcpy(msg->u.nak.guid,
&raw->msg[1], 16);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 547 msg->u.nak.reason = raw->msg[17];
ad7f8a1f9ced7f Dave Airlie 2014-06-05 548 msg->u.nak.nak_data = raw->msg[18];
ad7f8a1f9ced7f Dave Airlie 2014-06-05 549 return false;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 550 }
ad7f8a1f9ced7f Dave Airlie 2014-06-05 551
ad7f8a1f9ced7f Dave Airlie 2014-06-05 552 switch (msg->req_type) {
ad7f8a1f9ced7f Dave Airlie 2014-06-05 553 case DP_LINK_ADDRESS:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @554 return
drm_dp_sideband_parse_link_address(raw, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 555 case DP_QUERY_PAYLOAD:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @556 return
drm_dp_sideband_parse_query_payload_ack(raw, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 557 case DP_REMOTE_DPCD_READ:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @558 return
drm_dp_sideband_parse_remote_dpcd_read(raw, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 559 case DP_REMOTE_DPCD_WRITE:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @560 return
drm_dp_sideband_parse_remote_dpcd_write(raw, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 561 case DP_REMOTE_I2C_READ:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @562 return
drm_dp_sideband_parse_remote_i2c_read_ack(raw, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 563 case DP_ENUM_PATH_RESOURCES:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @564 return
drm_dp_sideband_parse_enum_path_resources_ack(raw, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 565 case DP_ALLOCATE_PAYLOAD:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @566 return
drm_dp_sideband_parse_allocate_payload_ack(raw, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 567 default:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 568 DRM_ERROR("Got unknown reply
0x%02x\n", msg->req_type);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 569 return false;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 570 }
ad7f8a1f9ced7f Dave Airlie 2014-06-05 571 }
ad7f8a1f9ced7f Dave Airlie 2014-06-05 572
ad7f8a1f9ced7f Dave Airlie 2014-06-05 573 static bool
drm_dp_sideband_parse_connection_status_notify(struct drm_dp_sideband_msg_rx *raw,
ad7f8a1f9ced7f Dave Airlie 2014-06-05 574 struct drm_dp_sideband_msg_req_body
*msg)
ad7f8a1f9ced7f Dave Airlie 2014-06-05 575 {
ad7f8a1f9ced7f Dave Airlie 2014-06-05 576 int idx = 1;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 577
ad7f8a1f9ced7f Dave Airlie 2014-06-05 578 msg->u.conn_stat.port_number =
(raw->msg[idx] & 0xf0) >> 4;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 579 idx++;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 580 if (idx > raw->curlen)
ad7f8a1f9ced7f Dave Airlie 2014-06-05 581 goto fail_len;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 582
ad7f8a1f9ced7f Dave Airlie 2014-06-05 583 memcpy(msg->u.conn_stat.guid,
&raw->msg[idx], 16);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 584 idx += 16;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 585 if (idx > raw->curlen)
ad7f8a1f9ced7f Dave Airlie 2014-06-05 586 goto fail_len;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 587
ad7f8a1f9ced7f Dave Airlie 2014-06-05 588 msg->u.conn_stat.legacy_device_plug_status
= (raw->msg[idx] >> 6) & 0x1;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 589
msg->u.conn_stat.displayport_device_plug_status = (raw->msg[idx] >> 5) &
0x1;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 590 msg->u.conn_stat.message_capability_status
= (raw->msg[idx] >> 4) & 0x1;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 591 msg->u.conn_stat.input_port =
(raw->msg[idx] >> 3) & 0x1;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 592 msg->u.conn_stat.peer_device_type =
(raw->msg[idx] & 0x7);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 593 idx++;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 594 return true;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 595 fail_len:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 596 DRM_DEBUG_KMS("connection status reply
parse length fail %d %d\n", idx, raw->curlen);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 597 return false;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 598 }
ad7f8a1f9ced7f Dave Airlie 2014-06-05 599
ad7f8a1f9ced7f Dave Airlie 2014-06-05 600 static bool
drm_dp_sideband_parse_resource_status_notify(struct drm_dp_sideband_msg_rx *raw,
ad7f8a1f9ced7f Dave Airlie 2014-06-05 601 struct drm_dp_sideband_msg_req_body
*msg)
ad7f8a1f9ced7f Dave Airlie 2014-06-05 602 {
ad7f8a1f9ced7f Dave Airlie 2014-06-05 603 int idx = 1;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 604
ad7f8a1f9ced7f Dave Airlie 2014-06-05 605 msg->u.resource_stat.port_number =
(raw->msg[idx] & 0xf0) >> 4;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 606 idx++;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 607 if (idx > raw->curlen)
ad7f8a1f9ced7f Dave Airlie 2014-06-05 608 goto fail_len;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 609
ad7f8a1f9ced7f Dave Airlie 2014-06-05 610 memcpy(msg->u.resource_stat.guid,
&raw->msg[idx], 16);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 611 idx += 16;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 612 if (idx > raw->curlen)
ad7f8a1f9ced7f Dave Airlie 2014-06-05 613 goto fail_len;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 614
ad7f8a1f9ced7f Dave Airlie 2014-06-05 615 msg->u.resource_stat.available_pbn =
(raw->msg[idx] << 8) | (raw->msg[idx + 1]);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 616 idx++;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 617 return true;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 618 fail_len:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 619 DRM_DEBUG_KMS("resource status reply
parse length fail %d %d\n", idx, raw->curlen);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 620 return false;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 621 }
ad7f8a1f9ced7f Dave Airlie 2014-06-05 622
ad7f8a1f9ced7f Dave Airlie 2014-06-05 623 static bool drm_dp_sideband_parse_req(struct
drm_dp_sideband_msg_rx *raw,
ad7f8a1f9ced7f Dave Airlie 2014-06-05 624 struct drm_dp_sideband_msg_req_body
*msg)
ad7f8a1f9ced7f Dave Airlie 2014-06-05 625 {
ad7f8a1f9ced7f Dave Airlie 2014-06-05 626 memset(msg, 0, sizeof(*msg));
ad7f8a1f9ced7f Dave Airlie 2014-06-05 627 msg->req_type = (raw->msg[0] &
0x7f);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 628
ad7f8a1f9ced7f Dave Airlie 2014-06-05 629 switch (msg->req_type) {
ad7f8a1f9ced7f Dave Airlie 2014-06-05 630 case DP_CONNECTION_STATUS_NOTIFY:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @631 return
drm_dp_sideband_parse_connection_status_notify(raw, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 632 case DP_RESOURCE_STATUS_NOTIFY:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @633 return
drm_dp_sideband_parse_resource_status_notify(raw, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 634 default:
ad7f8a1f9ced7f Dave Airlie 2014-06-05 635 DRM_ERROR("Got unknown request
0x%02x\n", msg->req_type);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 636 return false;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 637 }
ad7f8a1f9ced7f Dave Airlie 2014-06-05 638 }
ad7f8a1f9ced7f Dave Airlie 2014-06-05 639
ad7f8a1f9ced7f Dave Airlie 2014-06-05 640 static int build_dpcd_write(struct
drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes, u8 *bytes)
ad7f8a1f9ced7f Dave Airlie 2014-06-05 641 {
ad7f8a1f9ced7f Dave Airlie 2014-06-05 642 struct drm_dp_sideband_msg_req_body req;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 643
ad7f8a1f9ced7f Dave Airlie 2014-06-05 644 req.req_type = DP_REMOTE_DPCD_WRITE;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 645 req.u.dpcd_write.port_number = port_num;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 646 req.u.dpcd_write.dpcd_address = offset;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 647 req.u.dpcd_write.num_bytes = num_bytes;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 648 req.u.dpcd_write.bytes = bytes;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 @649 drm_dp_encode_sideband_req(&req, msg);
ad7f8a1f9ced7f Dave Airlie 2014-06-05 650
ad7f8a1f9ced7f Dave Airlie 2014-06-05 651 return 0;
ad7f8a1f9ced7f Dave Airlie 2014-06-05 652 }
ad7f8a1f9ced7f Dave Airlie 2014-06-05 653
:::::: The code at line 554 was first introduced by commit
:::::: ad7f8a1f9ced7f049f9b66d588723f243a7034cd drm/helper: add Displayport multi-stream
helper (v0.6)
:::::: TO: Dave Airlie <airlied(a)redhat.com>
:::::: CC: Dave Airlie <airlied(a)redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org