aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/firewire/core-device.c10
-rw-r--r--drivers/firewire/core-iso.c2
-rw-r--r--drivers/firewire/core-topology.c16
-rw-r--r--drivers/firewire/core-transaction.c84
4 files changed, 57 insertions, 55 deletions
diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c
index 92b633d643f2..781fd7374ae9 100644
--- a/drivers/firewire/core-device.c
+++ b/drivers/firewire/core-device.c
@@ -107,11 +107,11 @@ static int textual_leaf_to_string(const u32 *block, char *buf, size_t size)
107} 107}
108 108
109/** 109/**
110 * fw_csr_string - reads a string from the configuration ROM 110 * fw_csr_string() - reads a string from the configuration ROM
111 * @directory: e.g. root directory or unit directory 111 * @directory: e.g. root directory or unit directory
112 * @key: the key of the preceding directory entry 112 * @key: the key of the preceding directory entry
113 * @buf: where to put the string 113 * @buf: where to put the string
114 * @size: size of @buf, in bytes 114 * @size: size of @buf, in bytes
115 * 115 *
116 * The string is taken from a minimal ASCII text descriptor leaf after 116 * The string is taken from a minimal ASCII text descriptor leaf after
117 * the immediate entry with @key. The string is zero-terminated. 117 * the immediate entry with @key. The string is zero-terminated.
diff --git a/drivers/firewire/core-iso.c b/drivers/firewire/core-iso.c
index 99c20f1b613a..4fe932e60fb8 100644
--- a/drivers/firewire/core-iso.c
+++ b/drivers/firewire/core-iso.c
@@ -272,7 +272,7 @@ static void deallocate_channel(struct fw_card *card, int irm_id,
272} 272}
273 273
274/** 274/**
275 * fw_iso_resource_manage - Allocate or deallocate a channel and/or bandwidth 275 * fw_iso_resource_manage() - Allocate or deallocate a channel and/or bandwidth
276 * 276 *
277 * In parameters: card, generation, channels_mask, bandwidth, allocate 277 * In parameters: card, generation, channels_mask, bandwidth, allocate
278 * Out parameters: channel, bandwidth 278 * Out parameters: channel, bandwidth
diff --git a/drivers/firewire/core-topology.c b/drivers/firewire/core-topology.c
index 88d5133ae702..09be1a635505 100644
--- a/drivers/firewire/core-topology.c
+++ b/drivers/firewire/core-topology.c
@@ -174,12 +174,7 @@ static inline struct fw_node *fw_node(struct list_head *l)
174 return list_entry(l, struct fw_node, link); 174 return list_entry(l, struct fw_node, link);
175} 175}
176 176
177/** 177/*
178 * build_tree - Build the tree representation of the topology
179 * @self_ids: array of self IDs to create the tree from
180 * @self_id_count: the length of the self_ids array
181 * @local_id: the node ID of the local node
182 *
183 * This function builds the tree representation of the topology given 178 * This function builds the tree representation of the topology given
184 * by the self IDs from the latest bus reset. During the construction 179 * by the self IDs from the latest bus reset. During the construction
185 * of the tree, the function checks that the self IDs are valid and 180 * of the tree, the function checks that the self IDs are valid and
@@ -420,11 +415,10 @@ static void move_tree(struct fw_node *node0, struct fw_node *node1, int port)
420 } 415 }
421} 416}
422 417
423/** 418/*
424 * update_tree - compare the old topology tree for card with the new 419 * Compare the old topology tree for card with the new one specified by root.
425 * one specified by root. Queue the nodes and mark them as either 420 * Queue the nodes and mark them as either found, lost or updated.
426 * found, lost or updated. Update the nodes in the card topology tree 421 * Update the nodes in the card topology tree as we go.
427 * as we go.
428 */ 422 */
429static void update_tree(struct fw_card *card, struct fw_node *root) 423static void update_tree(struct fw_card *card, struct fw_node *root)
430{ 424{
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
index fcb455c08200..7813da8a1293 100644
--- a/drivers/firewire/core-transaction.c
+++ b/drivers/firewire/core-transaction.c
@@ -273,43 +273,49 @@ static int allocate_tlabel(struct fw_card *card)
273} 273}
274 274
275/** 275/**
276 * This function provides low-level access to the IEEE1394 transaction 276 * fw_send_request() - submit a request packet for transmission
277 * logic. Most C programs would use either fw_read(), fw_write() or 277 * @card: interface to send the request at
278 * fw_lock() instead - those function are convenience wrappers for 278 * @t: transaction instance to which the request belongs
279 * this function. The fw_send_request() function is primarily 279 * @tcode: transaction code
280 * provided as a flexible, one-stop entry point for languages bindings 280 * @destination_id: destination node ID, consisting of bus_ID and phy_ID
281 * and protocol bindings. 281 * @generation: bus generation in which request and response are valid
282 * @speed: transmission speed
283 * @offset: 48bit wide offset into destination's address space
284 * @payload: data payload for the request subaction
285 * @length: length of the payload, in bytes
286 * @callback: function to be called when the transaction is completed
287 * @callback_data: data to be passed to the transaction completion callback
282 * 288 *
283 * FIXME: Document this function further, in particular the possible 289 * Submit a request packet into the asynchronous request transmission queue.
284 * values for rcode in the callback. In short, we map ACK_COMPLETE to 290 * Can be called from atomic context. If you prefer a blocking API, use
285 * RCODE_COMPLETE, internal errors set errno and set rcode to 291 * fw_run_transaction() in a context that can sleep.
286 * RCODE_SEND_ERROR (which is out of range for standard ieee1394
287 * rcodes). All other rcodes are forwarded unchanged. For all
288 * errors, payload is NULL, length is 0.
289 * 292 *
290 * Can not expect the callback to be called before the function 293 * In case of lock requests, specify one of the firewire-core specific %TCODE_
291 * returns, though this does happen in some cases (ACK_COMPLETE and 294 * constants instead of %TCODE_LOCK_REQUEST in @tcode.
292 * errors).
293 * 295 *
294 * The payload is only used for write requests and must not be freed 296 * Make sure that the value in @destination_id is not older than the one in
295 * until the callback has been called. 297 * @generation. Otherwise the request is in danger to be sent to a wrong node.
296 * 298 *
297 * @param card the card from which to send the request 299 * In case of asynchronous stream packets i.e. %TCODE_STREAM_DATA, the caller
298 * @param tcode the tcode for this transaction. Do not use
299 * TCODE_LOCK_REQUEST directly, instead use TCODE_LOCK_MASK_SWAP
300 * etc. to specify tcode and ext_tcode.
301 * @param node_id the destination node ID (bus ID and PHY ID concatenated)
302 * @param generation the generation for which node_id is valid
303 * @param speed the speed to use for sending the request
304 * @param offset the 48 bit offset on the destination node
305 * @param payload the data payload for the request subaction
306 * @param length the length in bytes of the data to read
307 * @param callback function to be called when the transaction is completed
308 * @param callback_data pointer to arbitrary data, which will be
309 * passed to the callback
310 *
311 * In case of asynchronous stream packets i.e. TCODE_STREAM_DATA, the caller
312 * needs to synthesize @destination_id with fw_stream_packet_destination_id(). 300 * needs to synthesize @destination_id with fw_stream_packet_destination_id().
301 * It will contain tag, channel, and sy data instead of a node ID then.
302 *
303 * The payload buffer at @data is going to be DMA-mapped except in case of
304 * quadlet-sized payload or of local (loopback) requests. Hence make sure that
305 * the buffer complies with the restrictions for DMA-mapped memory. The
306 * @payload must not be freed before the @callback is called.
307 *
308 * In case of request types without payload, @data is NULL and @length is 0.
309 *
310 * After the transaction is completed successfully or unsuccessfully, the
311 * @callback will be called. Among its parameters is the response code which
312 * is either one of the rcodes per IEEE 1394 or, in case of internal errors,
313 * the firewire-core specific %RCODE_SEND_ERROR.
314 *
315 * Note some timing corner cases: fw_send_request() may complete much earlier
316 * than when the request packet actually hits the wire. On the other hand,
317 * transaction completion and hence execution of @callback may happen even
318 * before fw_send_request() returns.
313 */ 319 */
314void fw_send_request(struct fw_card *card, struct fw_transaction *t, int tcode, 320void fw_send_request(struct fw_card *card, struct fw_transaction *t, int tcode,
315 int destination_id, int generation, int speed, 321 int destination_id, int generation, int speed,
@@ -375,9 +381,11 @@ static void transaction_callback(struct fw_card *card, int rcode,
375} 381}
376 382
377/** 383/**
378 * fw_run_transaction - send request and sleep until transaction is completed 384 * fw_run_transaction() - send request and sleep until transaction is completed
379 * 385 *
380 * Returns the RCODE. 386 * Returns the RCODE. See fw_send_request() for parameter documentation.
387 * Unlike fw_send_request(), @data points to the payload of the request or/and
388 * to the payload of the response.
381 */ 389 */
382int fw_run_transaction(struct fw_card *card, int tcode, int destination_id, 390int fw_run_transaction(struct fw_card *card, int tcode, int destination_id,
383 int generation, int speed, unsigned long long offset, 391 int generation, int speed, unsigned long long offset,
@@ -495,9 +503,9 @@ static bool is_in_fcp_region(u64 offset, size_t length)
495} 503}
496 504
497/** 505/**
498 * fw_core_add_address_handler - register for incoming requests 506 * fw_core_add_address_handler() - register for incoming requests
499 * @handler: callback 507 * @handler: callback
500 * @region: region in the IEEE 1212 node space address range 508 * @region: region in the IEEE 1212 node space address range
501 * 509 *
502 * region->start, ->end, and handler->length have to be quadlet-aligned. 510 * region->start, ->end, and handler->length have to be quadlet-aligned.
503 * 511 *
@@ -552,7 +560,7 @@ int fw_core_add_address_handler(struct fw_address_handler *handler,
552EXPORT_SYMBOL(fw_core_add_address_handler); 560EXPORT_SYMBOL(fw_core_add_address_handler);
553 561
554/** 562/**
555 * fw_core_remove_address_handler - unregister an address handler 563 * fw_core_remove_address_handler() - unregister an address handler
556 */ 564 */
557void fw_core_remove_address_handler(struct fw_address_handler *handler) 565void fw_core_remove_address_handler(struct fw_address_handler *handler)
558{ 566{