diff mbox

PCI,parisc: Enable 64-bit bus addresses on PA-RISC

Message ID 20150902161729.GA2444@ls3530.box
State Not Applicable
Headers show

Commit Message

Helge Deller Sept. 2, 2015, 4:17 p.m. UTC
Commit 3a9ad0b ("PCI: Add pci_bus_addr_t") unconditionally introduced usage of
64-bit PCI bus addresses on all 64-bit platforms which broke PA-RISC.

It turned out that due to enabling the 64-bit addresses, the PCI logic decided
to use the GMMIO instead of the LMMIO region. This commit simply disables
registering the GMMIO and thus we fall back to use the LMMIO region as before.

Reverts commit 45ea2a5fed6dacb9bb0558d8b21eacc1c45d5bb4
("PCI: Don't use 64-bit bus addresses on PA-RISC")

To: linux-parisc@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Meelis Roos <mroos@linux.ee>
Cc: stable@vger.kernel.org  # v3.19+
Signed-off-by: Helge Deller <deller@gmx.de>


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Meelis Roos Sept. 14, 2015, 7:41 a.m. UTC | #1
> Commit 3a9ad0b ("PCI: Add pci_bus_addr_t") unconditionally introduced usage of
> 64-bit PCI bus addresses on all 64-bit platforms which broke PA-RISC.
> 
> It turned out that due to enabling the 64-bit addresses, the PCI logic decided
> to use the GMMIO instead of the LMMIO region. This commit simply disables
> registering the GMMIO and thus we fall back to use the LMMIO region as before.
> 
> Reverts commit 45ea2a5fed6dacb9bb0558d8b21eacc1c45d5bb4
> ("PCI: Don't use 64-bit bus addresses on PA-RISC")

Seems to work fine on my A500, RP3410 and RP3440, with 4.3.0-rc1.

> To: linux-parisc@vger.kernel.org
> Cc: linux-pci@vger.kernel.org
> Cc: Bjorn Helgaas <bhelgaas@google.com>
> Cc: Meelis Roos <mroos@linux.ee>
> Cc: stable@vger.kernel.org  # v3.19+
> Signed-off-by: Helge Deller <deller@gmx.de>
> 
> 
> diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c
> index dceb9dd..a32c1f6 100644
> --- a/drivers/parisc/lba_pci.c
> +++ b/drivers/parisc/lba_pci.c
> @@ -1556,8 +1556,11 @@ lba_driver_probe(struct parisc_device *dev)
>  	if (lba_dev->hba.lmmio_space.flags)
>  		pci_add_resource_offset(&resources, &lba_dev->hba.lmmio_space,
>  					lba_dev->hba.lmmio_space_offset);
> -	if (lba_dev->hba.gmmio_space.flags)
> -		pci_add_resource(&resources, &lba_dev->hba.gmmio_space);
> +	if (lba_dev->hba.gmmio_space.flags) {
> +		/* pci_add_resource(&resources, &lba_dev->hba.gmmio_space); */
> +		pr_warn("LBA: Not registering GMMIO space %pR\n",
> +			&lba_dev->hba.gmmio_space);
> +	}
>  
>  	pci_add_resource(&resources, &lba_dev->hba.bus_num);
>  
> diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
> index 944f500..73de4ef 100644
> --- a/drivers/pci/Kconfig
> +++ b/drivers/pci/Kconfig
> @@ -2,7 +2,7 @@
>  # PCI configuration
>  #
>  config PCI_BUS_ADDR_T_64BIT
> -	def_bool y if (ARCH_DMA_ADDR_T_64BIT || (64BIT && !PARISC))
> +	def_bool y if (ARCH_DMA_ADDR_T_64BIT || 64BIT)
>  	depends on PCI
>  
>  config PCI_MSI
>
diff mbox

Patch

diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c
index dceb9dd..a32c1f6 100644
--- a/drivers/parisc/lba_pci.c
+++ b/drivers/parisc/lba_pci.c
@@ -1556,8 +1556,11 @@  lba_driver_probe(struct parisc_device *dev)
 	if (lba_dev->hba.lmmio_space.flags)
 		pci_add_resource_offset(&resources, &lba_dev->hba.lmmio_space,
 					lba_dev->hba.lmmio_space_offset);
-	if (lba_dev->hba.gmmio_space.flags)
-		pci_add_resource(&resources, &lba_dev->hba.gmmio_space);
+	if (lba_dev->hba.gmmio_space.flags) {
+		/* pci_add_resource(&resources, &lba_dev->hba.gmmio_space); */
+		pr_warn("LBA: Not registering GMMIO space %pR\n",
+			&lba_dev->hba.gmmio_space);
+	}
 
 	pci_add_resource(&resources, &lba_dev->hba.bus_num);
 
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
index 944f500..73de4ef 100644
--- a/drivers/pci/Kconfig
+++ b/drivers/pci/Kconfig
@@ -2,7 +2,7 @@ 
 # PCI configuration
 #
 config PCI_BUS_ADDR_T_64BIT
-	def_bool y if (ARCH_DMA_ADDR_T_64BIT || (64BIT && !PARISC))
+	def_bool y if (ARCH_DMA_ADDR_T_64BIT || 64BIT)
 	depends on PCI
 
 config PCI_MSI