|
@@ -334,6 +334,17 @@ static size_t ib_cmrc_xfer_window ( struct ib_cmrc_connection *cmrc ) {
|
334
|
334
|
return ( cmrc->connected ? IB_MAX_PAYLOAD_SIZE : 0 );
|
335
|
335
|
}
|
336
|
336
|
|
|
337
|
+/**
|
|
338
|
+ * Identify device underlying CMRC connection
|
|
339
|
+ *
|
|
340
|
+ * @v cmrc CMRC connection
|
|
341
|
+ * @ret device Underlying device
|
|
342
|
+ */
|
|
343
|
+static struct device *
|
|
344
|
+ib_cmrc_identify_device ( struct ib_cmrc_connection *cmrc ) {
|
|
345
|
+ return cmrc->ibdev->dev;
|
|
346
|
+}
|
|
347
|
+
|
337
|
348
|
/** CMRC data transfer interface operations */
|
338
|
349
|
static struct interface_operation ib_cmrc_xfer_operations[] = {
|
339
|
350
|
INTF_OP ( xfer_deliver, struct ib_cmrc_connection *,
|
|
@@ -341,6 +352,8 @@ static struct interface_operation ib_cmrc_xfer_operations[] = {
|
341
|
352
|
INTF_OP ( xfer_window, struct ib_cmrc_connection *,
|
342
|
353
|
ib_cmrc_xfer_window ),
|
343
|
354
|
INTF_OP ( intf_close, struct ib_cmrc_connection *, ib_cmrc_close ),
|
|
355
|
+ INTF_OP ( identify_device, struct ib_cmrc_connection *,
|
|
356
|
+ ib_cmrc_identify_device ),
|
344
|
357
|
};
|
345
|
358
|
|
346
|
359
|
/** CMRC data transfer interface descriptor */
|