diff options
Diffstat (limited to 'drivers/ieee1394/highlevel.c')
-rw-r--r-- | drivers/ieee1394/highlevel.c | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/drivers/ieee1394/highlevel.c b/drivers/ieee1394/highlevel.c index 83a493312751..b6425469b6ee 100644 --- a/drivers/ieee1394/highlevel.c +++ b/drivers/ieee1394/highlevel.c | |||
@@ -483,37 +483,6 @@ int hpsb_unregister_addrspace(struct hpsb_highlevel *hl, struct hpsb_host *host, | |||
483 | return retval; | 483 | return retval; |
484 | } | 484 | } |
485 | 485 | ||
486 | /** | ||
487 | * hpsb_listen_channel - enable receving a certain isochronous channel | ||
488 | * | ||
489 | * Reception is handled through the @hl's iso_receive op. | ||
490 | */ | ||
491 | int hpsb_listen_channel(struct hpsb_highlevel *hl, struct hpsb_host *host, | ||
492 | unsigned int channel) | ||
493 | { | ||
494 | if (channel > 63) { | ||
495 | HPSB_ERR("%s called with invalid channel", __FUNCTION__); | ||
496 | return -EINVAL; | ||
497 | } | ||
498 | if (host->iso_listen_count[channel]++ == 0) | ||
499 | return host->driver->devctl(host, ISO_LISTEN_CHANNEL, channel); | ||
500 | return 0; | ||
501 | } | ||
502 | |||
503 | /** | ||
504 | * hpsb_unlisten_channel - disable receving a certain isochronous channel | ||
505 | */ | ||
506 | void hpsb_unlisten_channel(struct hpsb_highlevel *hl, struct hpsb_host *host, | ||
507 | unsigned int channel) | ||
508 | { | ||
509 | if (channel > 63) { | ||
510 | HPSB_ERR("%s called with invalid channel", __FUNCTION__); | ||
511 | return; | ||
512 | } | ||
513 | if (--host->iso_listen_count[channel] == 0) | ||
514 | host->driver->devctl(host, ISO_UNLISTEN_CHANNEL, channel); | ||
515 | } | ||
516 | |||
517 | static void init_hpsb_highlevel(struct hpsb_host *host) | 486 | static void init_hpsb_highlevel(struct hpsb_host *host) |
518 | { | 487 | { |
519 | INIT_LIST_HEAD(&dummy_zero_addr.host_list); | 488 | INIT_LIST_HEAD(&dummy_zero_addr.host_list); |
@@ -570,20 +539,6 @@ void highlevel_host_reset(struct hpsb_host *host) | |||
570 | read_unlock_irqrestore(&hl_irqs_lock, flags); | 539 | read_unlock_irqrestore(&hl_irqs_lock, flags); |
571 | } | 540 | } |
572 | 541 | ||
573 | void highlevel_iso_receive(struct hpsb_host *host, void *data, size_t length) | ||
574 | { | ||
575 | unsigned long flags; | ||
576 | struct hpsb_highlevel *hl; | ||
577 | int channel = (((quadlet_t *)data)[0] >> 8) & 0x3f; | ||
578 | |||
579 | read_lock_irqsave(&hl_irqs_lock, flags); | ||
580 | list_for_each_entry(hl, &hl_irqs, irq_list) { | ||
581 | if (hl->iso_receive) | ||
582 | hl->iso_receive(host, channel, data, length); | ||
583 | } | ||
584 | read_unlock_irqrestore(&hl_irqs_lock, flags); | ||
585 | } | ||
586 | |||
587 | void highlevel_fcp_request(struct hpsb_host *host, int nodeid, int direction, | 542 | void highlevel_fcp_request(struct hpsb_host *host, int nodeid, int direction, |
588 | void *data, size_t length) | 543 | void *data, size_t length) |
589 | { | 544 | { |