提交 1326af24 编写于 作者: L Linus Torvalds

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
...@@ -25,9 +25,11 @@ using data transfer rates in the order of 10MB/s or more. ...@@ -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 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 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 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 more common hardware such as x86, x86-64 and PowerPC.
Agere/LSI FW643e and FW643e2 controllers are known to support access to
physical addresses above 4 GB. 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, 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 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: ...@@ -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- compliant, they are based on TI PCILynx chips and require drivers for Win-
dows operating systems. dows operating systems.
The mentioned kernel log message contains ">4 GB phys DMA" in case of The mentioned kernel log message contains the string "physUB" if the
OHCI-1394 controllers which support accesses above this limit. 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: 2) Establish a working FireWire cable connection:
......
...@@ -237,8 +237,8 @@ static inline bool is_next_generation(int new_generation, int old_generation) ...@@ -237,8 +237,8 @@ static inline bool is_next_generation(int new_generation, int old_generation)
#define LOCAL_BUS 0xffc0 #define LOCAL_BUS 0xffc0
/* arbitrarily chosen maximum range for physical DMA: 128 TB */ /* OHCI-1394's default upper bound for physical DMA: 4 GB */
#define FW_MAX_PHYSICAL_RANGE (128ULL << 40) #define FW_MAX_PHYSICAL_RANGE (1ULL << 32)
void fw_core_handle_request(struct fw_card *card, struct fw_packet *request); 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); 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, ...@@ -3716,7 +3716,7 @@ static int pci_probe(struct pci_dev *dev,
version >> 16, version & 0xff, ohci->card.index, version >> 16, version & 0xff, ohci->card.index,
ohci->n_ir, ohci->n_it, ohci->quirks, ohci->n_ir, ohci->n_it, ohci->quirks,
reg_read(ohci, OHCI1394_PhyUpperBound) ? reg_read(ohci, OHCI1394_PhyUpperBound) ?
", >4 GB phys DMA" : ""); ", physUB" : "");
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册