diff options
author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2023-08-16 11:41:10 +0900 |
---|---|---|
committer | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2023-10-11 20:59:57 +0900 |
commit | 179521da31de001c8a4ed4f4bc76fab061bb4092 (patch) | |
tree | da4cd4cc882e674213939620eb66593c951c523a | |
parent | b7b6dc777f90623cc0c774ed3ce599b6f1705d71 (diff) | |
download | libhinawa-179521da31de001c8a4ed4f4bc76fab061bb4092.tar.gz |
fw_fcp: add card_id private member
The numeric index of 1394 OHCI hardware used for communication is fixed
per each node, thus no need to retrieve it every time to dispatch event.
This commit adds card_id private member to eliminate useless function
call.
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
-rw-r--r-- | src/fw_fcp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/fw_fcp.c b/src/fw_fcp.c index cba9f9b..d1ab2e2 100644 --- a/src/fw_fcp.c +++ b/src/fw_fcp.c @@ -65,6 +65,7 @@ enum avc_status { typedef struct { HinawaFwNode *node; gulong bus_update_handler_id; + guint card_id; GList *transactions; GMutex transactions_mutex; @@ -490,11 +491,9 @@ static HinawaFwRcode handle_requested_signal(HinawaFwResp *resp, HinawaFwTcode t { HinawaFwFcp *self = HINAWA_FW_FCP(resp); HinawaFwFcpPrivate *priv = hinawa_fw_fcp_get_instance_private(self); - guint local_card_id; - g_object_get(priv->node, "card-id", &local_card_id, NULL); if (offset == FCP_RESPOND_ADDR && tcode == HINAWA_FW_TCODE_WRITE_BLOCK_REQUEST && - card_id == local_card_id) + card_id == priv->card_id) g_signal_emit(self, fw_fcp_sigs[FW_FCP_SIG_TYPE_RESPONDED], 0, tstamp, frame, length); // MEMO: Linux firewire subsystem already send response subaction to finish the transaction, @@ -554,6 +553,7 @@ gboolean hinawa_fw_fcp_bind(HinawaFwFcp *self, HinawaFwNode *node, GError **erro if (!hinawa_fw_resp_reserve(HINAWA_FW_RESP(self), node, FCP_RESPOND_ADDR, FCP_MAXIMUM_FRAME_BYTES, error)) return FALSE; + g_object_get(node, "card-id", &priv->card_id, NULL); priv->bus_update_handler_id = g_signal_connect(node, "bus-update", G_CALLBACK(handle_bus_update_signal), self); |