mmc: set a suitable max_discard_sectors value for HC
v3 cover mmc: set a suitable max_discard_sectors value for HC
Hi,
This is the version 3 patch which set a suitable max_discard_sectors value for SDHCI host controller. In this patch, a new quirk is added for such controller.
max_discard_sectors is a parameter of MMC driver request queue. This value can limit how many sectors will be passed down to host for erasing. The original value for this parameter is UINT_MAX which means there is no limitation for the count of sectors to pass down for erasing.
But some SDHCI host controller cannot erase too many sectors at one time. It may generate a timeout interrupt since the time erasing used is longer than the timeout time host can wait.
So these patches add a new quirk for such SDHCI host controller and let it erase only signle eraseblock each time. This will be safe for such SDHCI host to use.
patch1: add a new quirk for SDHCI host controller. Also add a new routine mmc_set_discard_limit which is used to set max_discard_sectors value for such SDHCI host controller.
patch2: set timeout control register for such SDHCI host controller.
patch3: add this quirk for MFLD SDHCI host controller.
Change-log:
patch1: let mmc_set_discard_limit can return value UINT_MAX.
patch2: no change.
patch3: no change.
Thanks
Chuanxiao
Hi all,
Can these patches be accepted? My SDHCI host controller really needs these patches to use Trim/Erase feature. If anyone has concern about these patches, do please let me know and I would like to fix them. Thanks.
Quoted 45 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Chuanxiao Dong
Sent: Thursday, December 02, 2010 7:25 PM
To: [email protected]
Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: [PATVH v3 0/3]mmc: set a suitablemax_discard_sectorsvalue for HCHi,
This is the version 3 patch which set a suitablemax_discard_sectorsvalue for SDHCI host controller. In this patch, a new quirk is added for such controller.
max_discard_sectorsis a parameter of MMC driver request queue. This value can limit how many sectors will be passed down to host for erasing. The original value for this parameter isUINT_MAXwhich means there is no limitation for the count of sectors to pass down for erasing.But some SDHCI host controller cannot erase too many sectors at one time. It may generate a timeout interrupt since the time erasing used is longer than the timeout time host can wait.
So these patches add a new quirk for such SDHCI host controller and let it erase only signle eraseblock each time. This will be safe for such SDHCI host to use.
patch1: add a new quirk for SDHCI host controller. Also add a new routine
mmc_set_discard_limitwhich is used to setmax_discard_sectorsvalue for such SDHCI host controller.
patch2: set timeout control register for such SDHCI host controller.
patch3: add this quirk for MFLD SDHCI host controller.Change-log:
patch1: letmmc_set_discard_limitcan return valueUINT_MAX.
patch2: no change.
patch3: no change.Thanks
Chuanxiao
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html