Merge tag 'firewire-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394
Pull firewire fix from Stefan Richter: "A regression fix for the IEEE 1394 subsystem: re-enable IRQ-based asynchronous request reception at addresses below 128 TB" * tag 'firewire-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: firewire: revert to 4 GB RDMA, fix protocols using Memory Space
This commit is contained in:
@@ -25,9 +25,11 @@ using data transfer rates in the order of 10MB/s or more.
|
||||
With most FireWire controllers, memory access is limited to the low 4 GB
|
||||
of physical address space. This can be a problem on IA64 machines where
|
||||
memory is located mostly above that limit, but it is rarely a problem on
|
||||
more common hardware such as x86, x86-64 and PowerPC. However, at least
|
||||
Agere/LSI FW643e and FW643e2 controllers are known to support access to
|
||||
physical addresses above 4 GB.
|
||||
more common hardware such as x86, x86-64 and PowerPC.
|
||||
|
||||
At least LSI FW643e and FW643e2 controllers are known to support access to
|
||||
physical addresses above 4 GB, but this feature is currently not enabled by
|
||||
Linux.
|
||||
|
||||
Together with a early initialization of the OHCI-1394 controller for debugging,
|
||||
this facility proved most useful for examining long debugs logs in the printk
|
||||
@@ -101,8 +103,9 @@ Step-by-step instructions for using firescope with early OHCI initialization:
|
||||
compliant, they are based on TI PCILynx chips and require drivers for Win-
|
||||
dows operating systems.
|
||||
|
||||
The mentioned kernel log message contains ">4 GB phys DMA" in case of
|
||||
OHCI-1394 controllers which support accesses above this limit.
|
||||
The mentioned kernel log message contains the string "physUB" if the
|
||||
controller implements a writable Physical Upper Bound register. This is
|
||||
required for physical DMA above 4 GB (but not utilized by Linux yet).
|
||||
|
||||
2) Establish a working FireWire cable connection:
|
||||
|
||||
|
@@ -237,8 +237,8 @@ static inline bool is_next_generation(int new_generation, int old_generation)
|
||||
|
||||
#define LOCAL_BUS 0xffc0
|
||||
|
||||
/* arbitrarily chosen maximum range for physical DMA: 128 TB */
|
||||
#define FW_MAX_PHYSICAL_RANGE (128ULL << 40)
|
||||
/* OHCI-1394's default upper bound for physical DMA: 4 GB */
|
||||
#define FW_MAX_PHYSICAL_RANGE (1ULL << 32)
|
||||
|
||||
void fw_core_handle_request(struct fw_card *card, struct fw_packet *request);
|
||||
void fw_core_handle_response(struct fw_card *card, struct fw_packet *packet);
|
||||
|
@@ -3716,7 +3716,7 @@ static int pci_probe(struct pci_dev *dev,
|
||||
version >> 16, version & 0xff, ohci->card.index,
|
||||
ohci->n_ir, ohci->n_it, ohci->quirks,
|
||||
reg_read(ohci, OHCI1394_PhyUpperBound) ?
|
||||
", >4 GB phys DMA" : "");
|
||||
", physUB" : "");
|
||||
|
||||
return 0;
|
||||
|
||||
|
Reference in New Issue
Block a user