Commit 85bb4457 authored by Santosh Yaraganavi's avatar Santosh Yaraganavi Committed by James Bottomley
Browse files

[SCSI] ufs: Assign UTRLBAU = upper_32_ bits(UTRLD base address)



UTP Transfer request list base registers UTRLBA and UTRLBAU
must be assigned, lower-32 and upper-32 bits of UTRLD list
physical base addresses respectively.

Currently UTRLBAU is being assigned lower-32 bits of UTRLD
physical base address. This will cause an issue with
controllers that can support 64-bit addressing.

This patch correctly assigns upper-32 bits of UTRLD physical
base address to UTRLBAU.

Reported-by: default avatarRene De Jong <rene.dejong@arm.com>
Signed-off-by: default avatarSantosh Yaraganavi <santoshsy@gmail.com>
Reviewed-by: default avatarVinayak Holikatti <vinholikatti@gmail.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent b3b8abd8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1032,11 +1032,11 @@ static int ufshcd_initialize_hba(struct ufs_hba *hba)
		return -EIO;

	/* Configure UTRL and UTMRL base address registers */
	writel(hba->utrdl_dma_addr,
	       (hba->mmio_base + REG_UTP_TRANSFER_REQ_LIST_BASE_L));
	writel(lower_32_bits(hba->utrdl_dma_addr),
	       (hba->mmio_base + REG_UTP_TRANSFER_REQ_LIST_BASE_L));
	writel(upper_32_bits(hba->utrdl_dma_addr),
	       (hba->mmio_base + REG_UTP_TRANSFER_REQ_LIST_BASE_H));
	writel(hba->utmrdl_dma_addr,
	writel(lower_32_bits(hba->utmrdl_dma_addr),
	       (hba->mmio_base + REG_UTP_TASK_REQ_LIST_BASE_L));
	writel(upper_32_bits(hba->utmrdl_dma_addr),
	       (hba->mmio_base + REG_UTP_TASK_REQ_LIST_BASE_H));