aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2014-08-07 02:36:12 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2014-08-07 02:36:12 -0400
commit5e2aa2ed08e2e280121dc7cf5609c87d464f12ef (patch)
treeca7d7b1480285e3b617fecc5b41f0ce150a82c32 /drivers/firewire
parentf62d14a8072b9756db36ba394e2b267470a40240 (diff)
parentfc8104bc5a3f6f49d79f45f2706f79f77a9fb2ae (diff)
Merge branch 'next' into for-linus
Prepare first round of input updates for 3.17.
Diffstat (limited to 'drivers/firewire')
-rw-r--r--drivers/firewire/Kconfig3
-rw-r--r--drivers/firewire/core.h5
-rw-r--r--drivers/firewire/net.c4
-rw-r--r--drivers/firewire/ohci.c11
4 files changed, 15 insertions, 8 deletions
diff --git a/drivers/firewire/Kconfig b/drivers/firewire/Kconfig
index 7a701a58bbf0..145974f9662b 100644
--- a/drivers/firewire/Kconfig
+++ b/drivers/firewire/Kconfig
@@ -1,5 +1,6 @@
1menu "IEEE 1394 (FireWire) support" 1menu "IEEE 1394 (FireWire) support"
2 depends on PCI || BROKEN 2 depends on HAS_DMA
3 depends on PCI || COMPILE_TEST
3 # firewire-core does not depend on PCI but is 4 # firewire-core does not depend on PCI but is
4 # not useful without PCI controller driver 5 # not useful without PCI controller driver
5 6
diff --git a/drivers/firewire/core.h b/drivers/firewire/core.h
index c98764aeeec6..e1480ff683d2 100644
--- a/drivers/firewire/core.h
+++ b/drivers/firewire/core.h
@@ -118,7 +118,6 @@ int fw_card_add(struct fw_card *card,
118 u32 max_receive, u32 link_speed, u64 guid); 118 u32 max_receive, u32 link_speed, u64 guid);
119void fw_core_remove_card(struct fw_card *card); 119void fw_core_remove_card(struct fw_card *card);
120int fw_compute_block_crc(__be32 *block); 120int fw_compute_block_crc(__be32 *block);
121void fw_schedule_bus_reset(struct fw_card *card, bool delayed, bool short_reset);
122void fw_schedule_bm_work(struct fw_card *card, unsigned long delay); 121void fw_schedule_bm_work(struct fw_card *card, unsigned long delay);
123 122
124/* -cdev */ 123/* -cdev */
@@ -237,8 +236,8 @@ static inline bool is_next_generation(int new_generation, int old_generation)
237 236
238#define LOCAL_BUS 0xffc0 237#define LOCAL_BUS 0xffc0
239 238
240/* arbitrarily chosen maximum range for physical DMA: 128 TB */ 239/* OHCI-1394's default upper bound for physical DMA: 4 GB */
241#define FW_MAX_PHYSICAL_RANGE (128ULL << 40) 240#define FW_MAX_PHYSICAL_RANGE (1ULL << 32)
242 241
243void fw_core_handle_request(struct fw_card *card, struct fw_packet *request); 242void fw_core_handle_request(struct fw_card *card, struct fw_packet *request);
244void fw_core_handle_response(struct fw_card *card, struct fw_packet *packet); 243void fw_core_handle_response(struct fw_card *card, struct fw_packet *packet);
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c
index 4af0a7bad7f2..c3986452194d 100644
--- a/drivers/firewire/net.c
+++ b/drivers/firewire/net.c
@@ -1462,8 +1462,8 @@ static int fwnet_probe(struct fw_unit *unit,
1462 1462
1463 net = alloc_netdev(sizeof(*dev), "firewire%d", fwnet_init_dev); 1463 net = alloc_netdev(sizeof(*dev), "firewire%d", fwnet_init_dev);
1464 if (net == NULL) { 1464 if (net == NULL) {
1465 ret = -ENOMEM; 1465 mutex_unlock(&fwnet_device_mutex);
1466 goto out; 1466 return -ENOMEM;
1467 } 1467 }
1468 1468
1469 allocated_netdev = true; 1469 allocated_netdev = true;
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index 8db663219560..57985410f12f 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -282,6 +282,7 @@ static char ohci_driver_name[] = KBUILD_MODNAME;
282#define PCI_DEVICE_ID_TI_TSB82AA2 0x8025 282#define PCI_DEVICE_ID_TI_TSB82AA2 0x8025
283#define PCI_DEVICE_ID_VIA_VT630X 0x3044 283#define PCI_DEVICE_ID_VIA_VT630X 0x3044
284#define PCI_REV_ID_VIA_VT6306 0x46 284#define PCI_REV_ID_VIA_VT6306 0x46
285#define PCI_DEVICE_ID_VIA_VT6315 0x3403
285 286
286#define QUIRK_CYCLE_TIMER 0x1 287#define QUIRK_CYCLE_TIMER 0x1
287#define QUIRK_RESET_PACKET 0x2 288#define QUIRK_RESET_PACKET 0x2
@@ -334,6 +335,12 @@ static const struct {
334 {PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT630X, PCI_REV_ID_VIA_VT6306, 335 {PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT630X, PCI_REV_ID_VIA_VT6306,
335 QUIRK_CYCLE_TIMER | QUIRK_IR_WAKE}, 336 QUIRK_CYCLE_TIMER | QUIRK_IR_WAKE},
336 337
338 {PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT6315, 0,
339 QUIRK_CYCLE_TIMER | QUIRK_NO_MSI},
340
341 {PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT6315, PCI_ANY_ID,
342 0},
343
337 {PCI_VENDOR_ID_VIA, PCI_ANY_ID, PCI_ANY_ID, 344 {PCI_VENDOR_ID_VIA, PCI_ANY_ID, PCI_ANY_ID,
338 QUIRK_CYCLE_TIMER | QUIRK_NO_MSI}, 345 QUIRK_CYCLE_TIMER | QUIRK_NO_MSI},
339}; 346};
@@ -3498,7 +3505,7 @@ static int ohci_flush_iso_completions(struct fw_iso_context *base)
3498 } 3505 }
3499 3506
3500 clear_bit_unlock(0, &ctx->flushing_completions); 3507 clear_bit_unlock(0, &ctx->flushing_completions);
3501 smp_mb__after_clear_bit(); 3508 smp_mb__after_atomic();
3502 } 3509 }
3503 3510
3504 tasklet_enable(&ctx->context.tasklet); 3511 tasklet_enable(&ctx->context.tasklet);
@@ -3716,7 +3723,7 @@ static int pci_probe(struct pci_dev *dev,
3716 version >> 16, version & 0xff, ohci->card.index, 3723 version >> 16, version & 0xff, ohci->card.index,
3717 ohci->n_ir, ohci->n_it, ohci->quirks, 3724 ohci->n_ir, ohci->n_it, ohci->quirks,
3718 reg_read(ohci, OHCI1394_PhyUpperBound) ? 3725 reg_read(ohci, OHCI1394_PhyUpperBound) ?
3719 ", >4 GB phys DMA" : ""); 3726 ", physUB" : "");
3720 3727
3721 return 0; 3728 return 0;
3722 3729