All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Bunk <bunk@stusta.de>
To: scjody@modernduck.com
Cc: linux1394-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: [RFC: 2.6 patch] the overdue removal of RAW1394_REQ_ISO_{LISTEN,SEND}
Date: Fri, 7 Apr 2006 00:47:06 +0200	[thread overview]
Message-ID: <20060406224706.GD7118@stusta.de> (raw)

This patch contains the overdue removal of the RAW1394_REQ_ISO_SEND and 
RAW1394_REQ_ISO_LISTEN request types plus all support code for them.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 Documentation/feature-removal-schedule.txt |    9 --
 drivers/ieee1394/highlevel.c               |   15 ---
 drivers/ieee1394/highlevel.h               |    4 
 drivers/ieee1394/ieee1394_core.c           |    2 
 drivers/ieee1394/ieee1394_transactions.c   |   30 -------
 drivers/ieee1394/ieee1394_transactions.h   |    3 
 drivers/ieee1394/raw1394.c                 |   88 ---------------------
 drivers/ieee1394/raw1394.h                 |    4 
 8 files changed, 3 insertions(+), 152 deletions(-)

--- linux-2.6.17-rc1-mm1-full/Documentation/feature-removal-schedule.txt.old	2006-04-06 22:45:55.000000000 +0200
+++ linux-2.6.17-rc1-mm1-full/Documentation/feature-removal-schedule.txt	2006-04-06 22:46:04.000000000 +0200
@@ -48,15 +48,6 @@
 
 ---------------------------
 
-What:	raw1394: requests of type RAW1394_REQ_ISO_SEND, RAW1394_REQ_ISO_LISTEN
-When:	November 2005
-Why:	Deprecated in favour of the new ioctl-based rawiso interface, which is
-	more efficient.  You should really be using libraw1394 for raw1394
-	access anyway.
-Who:	Jody McIntyre <scjody@steamballoon.com>
-
----------------------------
-
 What:	Video4Linux API 1 ioctls and video_decoder.h from Video devices.
 When:	July 2006
 Why:	V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to 2.6
--- linux-2.6.17-rc1-mm1-full/drivers/ieee1394/raw1394.h.old	2006-04-06 22:44:51.000000000 +0200
+++ linux-2.6.17-rc1-mm1-full/drivers/ieee1394/raw1394.h	2006-04-06 22:45:44.000000000 +0200
@@ -17,11 +17,11 @@
 #define RAW1394_REQ_ASYNC_WRITE     101
 #define RAW1394_REQ_LOCK            102
 #define RAW1394_REQ_LOCK64          103
-#define RAW1394_REQ_ISO_SEND        104
+/* removed: RAW1394_REQ_ISO_SEND    104 */
 #define RAW1394_REQ_ASYNC_SEND      105
 #define RAW1394_REQ_ASYNC_STREAM    106
 
-#define RAW1394_REQ_ISO_LISTEN      200
+/* removed: RAW1394_REQ_ISO_LISTEN  200 */
 #define RAW1394_REQ_FCP_LISTEN      201
 #define RAW1394_REQ_RESET_BUS       202
 #define RAW1394_REQ_GET_ROM         203
--- linux-2.6.17-rc1-mm1-full/drivers/ieee1394/raw1394.c.old	2006-04-06 22:46:15.000000000 +0200
+++ linux-2.6.17-rc1-mm1-full/drivers/ieee1394/raw1394.c	2006-04-06 22:47:11.000000000 +0200
@@ -636,43 +636,6 @@
 	return sizeof(struct raw1394_request);
 }
 
-static void handle_iso_listen(struct file_info *fi, struct pending_request *req)
-{
-	int channel = req->req.misc;
-
-	if ((channel > 63) || (channel < -64)) {
-		req->req.error = RAW1394_ERROR_INVALID_ARG;
-	} else if (channel >= 0) {
-		/* allocate channel req.misc */
-		if (fi->listen_channels & (1ULL << channel)) {
-			req->req.error = RAW1394_ERROR_ALREADY;
-		} else {
-			if (hpsb_listen_channel
-			    (&raw1394_highlevel, fi->host, channel)) {
-				req->req.error = RAW1394_ERROR_ALREADY;
-			} else {
-				fi->listen_channels |= 1ULL << channel;
-				fi->iso_buffer = int2ptr(req->req.recvb);
-				fi->iso_buffer_length = req->req.length;
-			}
-		}
-	} else {
-		/* deallocate channel (one's complement neg) req.misc */
-		channel = ~channel;
-
-		if (fi->listen_channels & (1ULL << channel)) {
-			hpsb_unlisten_channel(&raw1394_highlevel, fi->host,
-					      channel);
-			fi->listen_channels &= ~(1ULL << channel);
-		} else {
-			req->req.error = RAW1394_ERROR_INVALID_ARG;
-		}
-	}
-
-	req->req.length = 0;
-	queue_complete_req(req);
-}
-
 static void handle_fcp_listen(struct file_info *fi, struct pending_request *req)
 {
 	if (req->req.misc) {
@@ -846,50 +809,6 @@
 	return sizeof(struct raw1394_request);
 }
 
-static int handle_iso_send(struct file_info *fi, struct pending_request *req,
-			   int channel)
-{
-	unsigned long flags;
-	struct hpsb_packet *packet;
-
-	packet = hpsb_make_isopacket(fi->host, req->req.length, channel & 0x3f,
-				     (req->req.misc >> 16) & 0x3,
-				     req->req.misc & 0xf);
-	if (!packet)
-		return -ENOMEM;
-
-	packet->speed_code = req->req.address & 0x3;
-
-	req->packet = packet;
-
-	if (copy_from_user(packet->data, int2ptr(req->req.sendb),
-			   req->req.length)) {
-		req->req.error = RAW1394_ERROR_MEMFAULT;
-		req->req.length = 0;
-		queue_complete_req(req);
-		return sizeof(struct raw1394_request);
-	}
-
-	req->req.length = 0;
-	hpsb_set_packet_complete_task(packet,
-				      (void (*)(void *))queue_complete_req,
-				      req);
-
-	spin_lock_irqsave(&fi->reqlists_lock, flags);
-	list_add_tail(&req->list, &fi->req_pending);
-	spin_unlock_irqrestore(&fi->reqlists_lock, flags);
-
-	/* Update the generation of the packet just before sending. */
-	packet->generation = req->req.generation;
-
-	if (hpsb_send_packet(packet) < 0) {
-		req->req.error = RAW1394_ERROR_SEND_ERROR;
-		queue_complete_req(req);
-	}
-
-	return sizeof(struct raw1394_request);
-}
-
 static int handle_async_send(struct file_info *fi, struct pending_request *req)
 {
 	unsigned long flags;
@@ -2272,9 +2191,6 @@
 		queue_complete_req(req);
 		return sizeof(struct raw1394_request);
 
-	case RAW1394_REQ_ISO_SEND:
-		return handle_iso_send(fi, req, node);
-
 	case RAW1394_REQ_ARM_REGISTER:
 		return arm_register(fi, req);
 
@@ -2290,10 +2206,6 @@
 	case RAW1394_REQ_RESET_NOTIFY:
 		return reset_notification(fi, req);
 
-	case RAW1394_REQ_ISO_LISTEN:
-		handle_iso_listen(fi, req);
-		return sizeof(struct raw1394_request);
-
 	case RAW1394_REQ_FCP_LISTEN:
 		handle_fcp_listen(fi, req);
 		return sizeof(struct raw1394_request);
--- linux-2.6.17-rc1-mm1-full/drivers/ieee1394/highlevel.h.old	2006-04-06 22:55:51.000000000 +0200
+++ linux-2.6.17-rc1-mm1-full/drivers/ieee1394/highlevel.h	2006-04-06 22:56:09.000000000 +0200
@@ -152,11 +152,9 @@
                               u64 start);
 
 /*
- * Enable or disable receving a certain isochronous channel through the
+ * Disable receving a certain isochronous channel through the
  * iso_receive op.
  */
-int hpsb_listen_channel(struct hpsb_highlevel *hl, struct hpsb_host *host,
-                         unsigned int channel);
 void hpsb_unlisten_channel(struct hpsb_highlevel *hl, struct hpsb_host *host,
                            unsigned int channel);
 
--- linux-2.6.17-rc1-mm1-full/drivers/ieee1394/highlevel.c.old	2006-04-06 22:56:17.000000000 +0200
+++ linux-2.6.17-rc1-mm1-full/drivers/ieee1394/highlevel.c	2006-04-06 22:56:22.000000000 +0200
@@ -439,21 +439,6 @@
         return retval;
 }
 
-int hpsb_listen_channel(struct hpsb_highlevel *hl, struct hpsb_host *host,
-                         unsigned int channel)
-{
-        if (channel > 63) {
-                HPSB_ERR("%s called with invalid channel", __FUNCTION__);
-                return -EINVAL;
-        }
-
-        if (host->iso_listen_count[channel]++ == 0) {
-                return host->driver->devctl(host, ISO_LISTEN_CHANNEL, channel);
-        }
-
-	return 0;
-}
-
 void hpsb_unlisten_channel(struct hpsb_highlevel *hl, struct hpsb_host *host,
                            unsigned int channel)
 {
--- linux-2.6.17-rc1-mm1-full/drivers/ieee1394/ieee1394_core.c.old	2006-04-06 22:56:30.000000000 +0200
+++ linux-2.6.17-rc1-mm1-full/drivers/ieee1394/ieee1394_core.c	2006-04-06 22:56:48.000000000 +0200
@@ -1223,7 +1223,6 @@
 EXPORT_SYMBOL(hpsb_make_lockpacket);
 EXPORT_SYMBOL(hpsb_make_lock64packet);
 EXPORT_SYMBOL(hpsb_make_phypacket);
-EXPORT_SYMBOL(hpsb_make_isopacket);
 EXPORT_SYMBOL(hpsb_read);
 EXPORT_SYMBOL(hpsb_write);
 EXPORT_SYMBOL(hpsb_packet_success);
@@ -1234,7 +1233,6 @@
 EXPORT_SYMBOL(hpsb_register_addrspace);
 EXPORT_SYMBOL(hpsb_unregister_addrspace);
 EXPORT_SYMBOL(hpsb_allocate_and_register_addrspace);
-EXPORT_SYMBOL(hpsb_listen_channel);
 EXPORT_SYMBOL(hpsb_unlisten_channel);
 EXPORT_SYMBOL(hpsb_get_hostinfo);
 EXPORT_SYMBOL(hpsb_create_hostinfo);
--- linux-2.6.17-rc1-mm1-full/drivers/ieee1394/ieee1394_transactions.h.old	2006-04-06 22:56:59.000000000 +0200
+++ linux-2.6.17-rc1-mm1-full/drivers/ieee1394/ieee1394_transactions.h	2006-04-06 22:57:03.000000000 +0200
@@ -20,9 +20,6 @@
 					  octlet_t arg);
 struct hpsb_packet *hpsb_make_phypacket(struct hpsb_host *host,
                                         quadlet_t data) ;
-struct hpsb_packet *hpsb_make_isopacket(struct hpsb_host *host,
-					int length, int channel,
-					int tag, int sync);
 struct hpsb_packet *hpsb_make_writepacket (struct hpsb_host *host, nodeid_t node,
 					   u64 addr, quadlet_t *buffer, size_t length);
 struct hpsb_packet *hpsb_make_streampacket(struct hpsb_host *host, u8 *buffer,
--- linux-2.6.17-rc1-mm1-full/drivers/ieee1394/ieee1394_transactions.c.old	2006-04-06 22:57:11.000000000 +0200
+++ linux-2.6.17-rc1-mm1-full/drivers/ieee1394/ieee1394_transactions.c	2006-04-06 22:58:21.000000000 +0200
@@ -79,18 +79,6 @@
 	packet->expect_response = 1;
 }
 
-static void fill_iso_packet(struct hpsb_packet *packet, int length, int channel,
-			    int tag, int sync)
-{
-	packet->header[0] = (length << 16) | (tag << 14) | (channel << 8)
-	    | (TCODE_ISO_DATA << 4) | sync;
-
-	packet->header_size = 4;
-	packet->data_size = length;
-	packet->type = hpsb_iso;
-	packet->tcode = TCODE_ISO_DATA;
-}
-
 static void fill_phy_packet(struct hpsb_packet *packet, quadlet_t data)
 {
 	packet->header[0] = data;
@@ -446,24 +434,6 @@
 	return p;
 }
 
-struct hpsb_packet *hpsb_make_isopacket(struct hpsb_host *host,
-					int length, int channel,
-					int tag, int sync)
-{
-	struct hpsb_packet *p;
-
-	p = hpsb_alloc_packet(length);
-	if (!p)
-		return NULL;
-
-	p->host = host;
-	fill_iso_packet(p, length, channel, tag, sync);
-
-	p->generation = get_hpsb_generation(host);
-
-	return p;
-}
-
 /*
  * FIXME - these functions should probably read from / write to user space to
  * avoid in kernel buffers for user space callers


             reply	other threads:[~2006-04-06 22:47 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-06 22:47 Adrian Bunk [this message]
2006-04-07  0:35 ` [RFC: 2.6 patch] the overdue removal of RAW1394_REQ_ISO_{LISTEN,SEND} Gene Heskett
2006-04-07  0:40   ` Lee Revell
2006-04-07  1:13     ` Gene Heskett
2006-04-07  2:09       ` Gene Heskett
2006-04-07  5:52   ` Denis Vlasenko
2006-04-07  6:15     ` Gene Heskett
2006-04-08  5:53 ` Stefan Richter
2006-04-08 19:18   ` Dan Dennedy
2006-04-08 19:49     ` Stefan Richter
2006-04-08 19:53       ` Stefan Richter
2006-04-18  9:45         ` Jody McIntyre
2006-04-18 23:59           ` Dan Dennedy
2006-04-09  1:25       ` Dan Dennedy
2006-04-18  9:48       ` Jody McIntyre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060406224706.GD7118@stusta.de \
    --to=bunk@stusta.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux1394-devel@lists.sourceforge.net \
    --cc=scjody@modernduck.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.