mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-05 14:14:54 +00:00
Regression fix for the IEEE 1394 subsystem:
Re-enable IRQ-based asynchronous request reception at addresses below 128 TB. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAABAgAGBQJTiIlwAAoJEHnzb7JUXXnQ+4oQAJ3ZHtqDJNP99qokiyVorDSw hk2b/nCF2A7PYGgYdyImDx+xiOdI7FE3T6vpDBrel/Vfc/eny3g1PSmklF0pmrgR LKyEAKmqRrEFKNevJPIAOyvf8jMV4E7mkKKp2iGN5s77CdW/KeoNfeP8yzRzMW3n ChG9yZIPWMVuoiGBL74iOZujETP3Y62CVRP9Anz3uG2I7oGQN+09uK+Qc58SR917 fbvJh8f2Yrf+st7oogwpFvKRlDqyskmoonWc39OCPcGeumQ9LycTs5KTMx4htVjW jf8bJDQ/xmHCvPpZpQtZiMbj5pmMkD9cSt0KvMHv4TuV/1NBFECITjoQ03//+byb RmxTH8GRryfpafTLL1Qlf+boecjEK9yuJ/k1YbDEt9YTc6x29oTqJjeXbli5r3FX f0MYLpDEdDH4GuKMgdvDt+CFzGI7NHWupjyYbm/uT0LCEvLhmKnh3z+3HhmUO2wD 7PoDp63t779YhiScnfA+P5CXmjnMjZNtqeCyJYiCDrzcCS3VVQVocFf3iEKF8xrf gOju+BZHuNzw5S3Tn0kf3LaexUW9eMD1LAYDooF1eqpl/hrmsYpLhw3mI7601CDa UNHTY2Wz6Y/2PwkpzKgsHrrKnyaQWak/kZl0jFy7lZhvJqFyNPe8nVWYRdPdVeHk /b/TKJZDiRQXZCrcfEXc =GDAT -----END PGP SIGNATURE----- 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:
commit
1326af2464
3 changed files with 11 additions and 8 deletions
|
@ -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:
|
||||||
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)
|
||||||
|
|
||||||
#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,
|
||||||
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;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue