Skip to contentSkip to conversation

PCI: dwc: Use {upper,lower}_32_bits() macros for clarity

PATCH In review Stephen Boyd 3 participants 4 messages Dec 27, 2017 – Jan 2, 2018 PCI

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 PCI: dwc: Use {upper,lower}_32_bits() macros for clarity

We have macros for getting the upper or lower 32 bits of a number. Use them here to shave a couple lines off the code and provide clarity.

---

Changes from v1:
* Update dw_msi_setup_msg() too
* Reword commit text slightly

 drivers/pci/dwc/pcie-designware-host.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
drivers/pci/dwc/pcie-designware-host.c +4 -6
index 81e2157a7cfb..454b8d244071 100644
@@ -89,10 +89,8 @@ void dw_pcie_msi_init(struct pcie_port *pp)
 	msi_target = virt_to_phys((void *)pp->msi_data);
 
 	/* program the msi_data */
-	dw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_LO, 4,
-			    (u32)(msi_target & 0xffffffff));
-	dw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_HI, 4,
-			    (u32)(msi_target >> 32 & 0xffffffff));
+	dw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_LO, 4, lower_32_bits(msi_target));
+	dw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_HI, 4, upper_32_bits(msi_target));
 }
 
 static void dw_pcie_msi_clear_irq(struct pcie_port *pp, int irq)
@@ -189,8 +187,8 @@ static void dw_msi_setup_msg(struct pcie_port *pp, unsigned int irq, u32 pos)
 	else
 		msi_target = virt_to_phys((void *)pp->msi_data);
 
-	msg.address_lo = (u32)(msi_target & 0xffffffff);
-	msg.address_hi = (u32)(msi_target >> 32 & 0xffffffff);
+	msg.address_lo = lower_32_bits(msi_target);
+	msg.address_hi = upper_32_bits(msi_target);
 
 	if (pp->ops->get_msi_data)
 		msg.data = pp->ops->get_msi_data(pp, pos);
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#1 lore raw

Hi Stephen,

Às 11:25 PM de 12/27/2017, Stephen Boyd escreveu:

Quoted 33 lines

We have macros for getting the upper or lower 32 bits of a number. Use them here to shave a couple lines off the code and provide clarity.

---

Changes from v1:
* Update dw_msi_setup_msg() too
* Reword commit text slightly

 drivers/pci/dwc/pcie-designware-host.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
drivers/pci/dwc/pcie-designware-host.c +2 -4
index 81e2157a7cfb..454b8d244071 100644
@@ -89,10 +89,8 @@ void dw_pcie_msi_init(struct pcie_port *pp)
 	msi_target = virt_to_phys((void *)pp->msi_data);
 
 	/* program the msi_data */
-	dw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_LO, 4,
-			    (u32)(msi_target & 0xffffffff));
-	dw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_HI, 4,
-			    (u32)(msi_target >> 32 & 0xffffffff));
+	dw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_LO, 4, lower_32_bits(msi_target));
+	dw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_HI, 4, upper_32_bits(msi_target));
 }
 
 static void dw_pcie_msi_clear_irq(struct pcie_port *pp, int irq)

drivers/pci/dwc/pcie-designware-host.c static void dw_msi_setup_msg(struct pcie_port *pp, unsigned int irq, u32 pos) · line 194

Quoted 10 lines
drivers/pci/dwc/pcie-designware-host.c +2 -2
@@ -189,8 +187,8 @@ static void dw_msi_setup_msg(struct pcie_port *pp, unsigned int irq, u32 pos)
 	else
 		msi_target = virt_to_phys((void *)pp->msi_data);
 
-	msg.address_lo = (u32)(msi_target & 0xffffffff);
-	msg.address_hi = (u32)(msi_target >> 32 & 0xffffffff);
+	msg.address_lo = lower_32_bits(msi_target);
+	msg.address_hi = upper_32_bits(msi_target);
 
 	if (pp->ops->get_msi_data)
 		msg.data = pp->ops->get_msi_data(pp, pos);

Thanks for the patch.
Gustavo' patch-set targeting the update of the Interrupt API for pcie-designware* already does this modification, so I would suggest that we wait for Gustavo' patch to be stable and get the same modification.

Best regards,
Joao Pinto

#2 lore raw
Quoted 9 lines · Joao Pinto

drivers/pci/dwc/pcie-designware-host.c static void dw_msi_setup_msg(struct pcie_port *pp, unsigned int irq, u32 pos) · line 194

Quoted 3 lines
drivers/pci/dwc/pcie-designware-host.c +0 -0
 	if (pp->ops->get_msi_data)
 		msg.data = pp->ops->get_msi_data(pp, pos);

Thanks for the patch.
Gustavo' patch-set targeting the update of the Interrupt API for pcie-designware* already does this modification, so I would suggest that we wait for Gustavo' patch to be stable and get the same modification.

Ok.

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
#3 lore raw
Quoted 5 lines · Stephen Boyd
Quoted 4 lines · Joao Pinto
Quoted 3 lines
drivers/pci/dwc/pcie-designware-host.c +0 -0
 	if (pp->ops->get_msi_data)
 		msg.data = pp->ops->get_msi_data(pp, pos);
Quoted 7 lines
Quoted 5 lines

Thanks for the patch.
Gustavo' patch-set targeting the update of the Interrupt API for pcie-designware* already does this modification, so I would suggest that we wait for Gustavo' patch to be stable and get the same modification.

Ok.

Ok, marked as superseded, thanks.

Lorenzo