CM23: Reliable Write Request / Forced Programming Bits

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!

I have a question about the transfer of CM23 (SET_BLOCK_COUNT),
before starting a multiple block write CMD25.
I want to set some of this CMD23 bits:
BIT(31) stands for Reliable Write Request
BIT(24) stands for Forced Programming

I could only see usage of the Reliable Write Request for some rpmb ioctl:
https://github.com/torvalds/linux/blob/master/include/uapi/linux/mmc/ioctl.h#L13
https://github.com/torvalds/linux/blob/master/drivers/mmc/core/block.c#L550
sbc.arg = data.blocks | (idata->ic.write_flag & BIT(31));

But there are also BITS MMC_DATA_REL_WR, MMC_DATA_FORCED_PRG
https://github.com/torvalds/linux/blob/master/include/linux/mmc/core.h#L128
Used here:
https://github.com/torvalds/linux/blob/master/drivers/mmc/core/block.c#L1301
Which confuses me.

I am using the mmc_test code as example to execute a mmc block write.
https://github.com/torvalds/linux/blob/master/drivers/mmc/core/mmc_test.c#L190
So i set the BIT(24):
mrq->sbc->arg = blocks | BIT(24);
But then i realized that the sdhci mmc host uses SDHCI_AUTO_CMD23 and
mmc_test_prepare_sbc simply returns doing nothing.

What would be the correct way to set the BIT(24) with CMD23 in the
mmc_test example with a host which does SDHCI_AUTO_CMD23?



[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux