>-----Original Message----- >From: Bart Van Assche [mailto:bvanassche@xxxxxxx] >Sent: Friday, January 13, 2023 5:12 AM >To: Martin K . Petersen <martin.petersen@xxxxxxxxxx> >Cc: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>; linux-scsi@xxxxxxxxxxxxxxx; Adrian >Hunter <adrian.hunter@xxxxxxxxx>; Alim Akhtar ><alim.akhtar@xxxxxxxxxxx>; Bart Van Assche <bvanassche@xxxxxxx>; >Kiwoong Kim <kwmad.kim@xxxxxxxxxxx>; James E.J. Bottomley ><jejb@xxxxxxxxxxxxx>; Krzysztof Kozlowski ><krzysztof.kozlowski@xxxxxxxxxx>; Chanho Park ><chanho61.park@xxxxxxxxxxx>; Bean Huo <beanhuo@xxxxxxxxxx> >Subject: [PATCH v2 2/3] scsi: ufs: Exynos: Fix the maximum segment size > >Prepare for enabling DMA clustering and also for supporting PAGE_SIZE != >4096 by declaring explicitly that the maximum segment size is 4096 bytes for >Exynos UFS host controllers. Add this code in >exynos_ufs_hce_enable_notify() such that it happens after >scsi_host_alloc() and before __scsi_init_queue() is called by the LUN scanning >code. > >Cc: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> >Cc: Kiwoong Kim <kwmad.kim@xxxxxxxxxxx> >Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> >--- Reviewed-by: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> Tested basic read/write on platform containing Exynos UFS HCI, so Tested-by: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> > drivers/ufs/host/ufs-exynos.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > >diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c >index 3cdac89a28b8..7c985fc38db1 100644 >--- a/drivers/ufs/host/ufs-exynos.c >+++ b/drivers/ufs/host/ufs-exynos.c >@@ -1300,6 +1300,14 @@ static int exynos_ufs_hce_enable_notify(struct >ufs_hba *hba, > > switch (status) { > case PRE_CHANGE: >+ /* >+ * The maximum segment size must be set after >scsi_host_alloc() >+ * has been called and before LUN scanning starts >+ * (ufshcd_async_scan()). Note: this callback may also be >called >+ * from other functions than ufshcd_init(). >+ */ >+ hba->host->max_segment_size = 4096; >+ > if (ufs->drv_data->pre_hce_enable) { > ret = ufs->drv_data->pre_hce_enable(ufs); > if (ret)