mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
pci: fix checking PCI_REGION_MEM in pci_hose_phys_to_bus()
When converting between PCI bus and phys addresses, a two pass search
was introduced with preference to non-PCI_REGION_SYS_MEMORY regions.
See commit 2d43e873a2
.
However, since PCI_REGION_MEM is defined as 0, the if statement was
always asserted true: ((flags & PCI_REGION_MEM) == PCI_REGION_MEM)
This patch uses PCI_REGION_TYPE bit to check if the region is
PCI_REGION_MEM: ((flags & PCI_REGION_TYPE) == PCI_REGION_MEM)
Signed-off-by: Cheng Gu <chenggu@marvell.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
78e9e71c83
commit
3526285068
1 changed files with 2 additions and 2 deletions
|
@ -231,7 +231,7 @@ phys_addr_t pci_hose_bus_to_phys(struct pci_controller *hose,
|
|||
* if PCI_REGION_MEM is set we do a two pass search with preference
|
||||
* on matches that don't have PCI_REGION_SYS_MEMORY set
|
||||
*/
|
||||
if ((flags & PCI_REGION_MEM) == PCI_REGION_MEM) {
|
||||
if ((flags & PCI_REGION_TYPE) == PCI_REGION_MEM) {
|
||||
ret = __pci_hose_bus_to_phys(hose, bus_addr,
|
||||
flags, PCI_REGION_SYS_MEMORY, &phys_addr);
|
||||
if (!ret)
|
||||
|
@ -298,7 +298,7 @@ pci_addr_t pci_hose_phys_to_bus(struct pci_controller *hose,
|
|||
* if PCI_REGION_MEM is set we do a two pass search with preference
|
||||
* on matches that don't have PCI_REGION_SYS_MEMORY set
|
||||
*/
|
||||
if ((flags & PCI_REGION_MEM) == PCI_REGION_MEM) {
|
||||
if ((flags & PCI_REGION_TYPE) == PCI_REGION_MEM) {
|
||||
ret = __pci_hose_phys_to_bus(hose, phys_addr,
|
||||
flags, PCI_REGION_SYS_MEMORY, &bus_addr);
|
||||
if (!ret)
|
||||
|
|
Loading…
Reference in a new issue