Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
b0f43dcc
Commit
b0f43dcc
authored
Dec 01, 2008
by
Roland Dreier
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'ehca' and 'mlx4' into for-linus
parents
7ec4f463
42ab01c3
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
53 additions
and
1 deletion
+53
-1
drivers/infiniband/hw/mlx4/cq.c
drivers/infiniband/hw/mlx4/cq.c
+5
-0
drivers/net/mlx4/main.c
drivers/net/mlx4/main.c
+8
-0
drivers/net/mlx4/mlx4.h
drivers/net/mlx4/mlx4.h
+1
-0
drivers/net/mlx4/port.c
drivers/net/mlx4/port.c
+38
-1
include/linux/mlx4/device.h
include/linux/mlx4/device.h
+1
-0
No files found.
drivers/infiniband/hw/mlx4/cq.c
View file @
b0f43dcc
...
...
@@ -343,6 +343,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
{
struct
mlx4_ib_dev
*
dev
=
to_mdev
(
ibcq
->
device
);
struct
mlx4_ib_cq
*
cq
=
to_mcq
(
ibcq
);
struct
mlx4_mtt
mtt
;
int
outst_cqe
;
int
err
;
...
...
@@ -376,10 +377,13 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
goto
out
;
}
mtt
=
cq
->
buf
.
mtt
;
err
=
mlx4_cq_resize
(
dev
->
dev
,
&
cq
->
mcq
,
entries
,
&
cq
->
resize_buf
->
buf
.
mtt
);
if
(
err
)
goto
err_buf
;
mlx4_mtt_cleanup
(
dev
->
dev
,
&
mtt
);
if
(
ibcq
->
uobject
)
{
cq
->
buf
=
cq
->
resize_buf
->
buf
;
cq
->
ibcq
.
cqe
=
cq
->
resize_buf
->
cqe
;
...
...
@@ -406,6 +410,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
goto
out
;
err_buf:
mlx4_mtt_cleanup
(
dev
->
dev
,
&
cq
->
resize_buf
->
buf
.
mtt
);
if
(
!
ibcq
->
uobject
)
mlx4_ib_free_cq_buf
(
dev
,
&
cq
->
resize_buf
->
buf
,
cq
->
resize_buf
->
cqe
);
...
...
drivers/net/mlx4/main.c
View file @
b0f43dcc
...
...
@@ -753,6 +753,7 @@ static int mlx4_setup_hca(struct mlx4_dev *dev)
struct
mlx4_priv
*
priv
=
mlx4_priv
(
dev
);
int
err
;
int
port
;
__be32
ib_port_default_caps
;
err
=
mlx4_init_uar_table
(
dev
);
if
(
err
)
{
...
...
@@ -852,6 +853,13 @@ static int mlx4_setup_hca(struct mlx4_dev *dev)
}
for
(
port
=
1
;
port
<=
dev
->
caps
.
num_ports
;
port
++
)
{
ib_port_default_caps
=
0
;
err
=
mlx4_get_port_ib_caps
(
dev
,
port
,
&
ib_port_default_caps
);
if
(
err
)
mlx4_warn
(
dev
,
"failed to get port %d default "
"ib capabilities (%d). Continuing with "
"caps = 0
\n
"
,
port
,
err
);
dev
->
caps
.
ib_port_def_cap
[
port
]
=
ib_port_default_caps
;
err
=
mlx4_SET_PORT
(
dev
,
port
);
if
(
err
)
{
mlx4_err
(
dev
,
"Failed to set port %d, aborting
\n
"
,
...
...
drivers/net/mlx4/mlx4.h
View file @
b0f43dcc
...
...
@@ -385,5 +385,6 @@ void mlx4_init_mac_table(struct mlx4_dev *dev, struct mlx4_mac_table *table);
void
mlx4_init_vlan_table
(
struct
mlx4_dev
*
dev
,
struct
mlx4_vlan_table
*
table
);
int
mlx4_SET_PORT
(
struct
mlx4_dev
*
dev
,
u8
port
);
int
mlx4_get_port_ib_caps
(
struct
mlx4_dev
*
dev
,
u8
port
,
__be32
*
caps
);
#endif
/* MLX4_H */
drivers/net/mlx4/port.c
View file @
b0f43dcc
...
...
@@ -258,6 +258,42 @@ out:
}
EXPORT_SYMBOL_GPL
(
mlx4_unregister_vlan
);
int
mlx4_get_port_ib_caps
(
struct
mlx4_dev
*
dev
,
u8
port
,
__be32
*
caps
)
{
struct
mlx4_cmd_mailbox
*
inmailbox
,
*
outmailbox
;
u8
*
inbuf
,
*
outbuf
;
int
err
;
inmailbox
=
mlx4_alloc_cmd_mailbox
(
dev
);
if
(
IS_ERR
(
inmailbox
))
return
PTR_ERR
(
inmailbox
);
outmailbox
=
mlx4_alloc_cmd_mailbox
(
dev
);
if
(
IS_ERR
(
outmailbox
))
{
mlx4_free_cmd_mailbox
(
dev
,
inmailbox
);
return
PTR_ERR
(
outmailbox
);
}
inbuf
=
inmailbox
->
buf
;
outbuf
=
outmailbox
->
buf
;
memset
(
inbuf
,
0
,
256
);
memset
(
outbuf
,
0
,
256
);
inbuf
[
0
]
=
1
;
inbuf
[
1
]
=
1
;
inbuf
[
2
]
=
1
;
inbuf
[
3
]
=
1
;
*
(
__be16
*
)
(
&
inbuf
[
16
])
=
cpu_to_be16
(
0x0015
);
*
(
__be32
*
)
(
&
inbuf
[
20
])
=
cpu_to_be32
(
port
);
err
=
mlx4_cmd_box
(
dev
,
inmailbox
->
dma
,
outmailbox
->
dma
,
port
,
3
,
MLX4_CMD_MAD_IFC
,
MLX4_CMD_TIME_CLASS_C
);
if
(
!
err
)
*
caps
=
*
(
__be32
*
)
(
outbuf
+
84
);
mlx4_free_cmd_mailbox
(
dev
,
inmailbox
);
mlx4_free_cmd_mailbox
(
dev
,
outmailbox
);
return
err
;
}
int
mlx4_SET_PORT
(
struct
mlx4_dev
*
dev
,
u8
port
)
{
struct
mlx4_cmd_mailbox
*
mailbox
;
...
...
@@ -273,7 +309,8 @@ int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port)
((
u8
*
)
mailbox
->
buf
)[
3
]
=
6
;
((
__be16
*
)
mailbox
->
buf
)[
4
]
=
cpu_to_be16
(
1
<<
15
);
((
__be16
*
)
mailbox
->
buf
)[
6
]
=
cpu_to_be16
(
1
<<
15
);
}
}
else
((
__be32
*
)
mailbox
->
buf
)[
1
]
=
dev
->
caps
.
ib_port_def_cap
[
port
];
err
=
mlx4_cmd
(
dev
,
mailbox
->
dma
,
port
,
is_eth
,
MLX4_CMD_SET_PORT
,
MLX4_CMD_TIME_CLASS_B
);
...
...
include/linux/mlx4/device.h
View file @
b0f43dcc
...
...
@@ -179,6 +179,7 @@ struct mlx4_caps {
int
num_ports
;
int
vl_cap
[
MLX4_MAX_PORTS
+
1
];
int
ib_mtu_cap
[
MLX4_MAX_PORTS
+
1
];
__be32
ib_port_def_cap
[
MLX4_MAX_PORTS
+
1
];
u64
def_mac
[
MLX4_MAX_PORTS
+
1
];
int
eth_mtu_cap
[
MLX4_MAX_PORTS
+
1
];
int
gid_table_len
[
MLX4_MAX_PORTS
+
1
];
...
...
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