<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/mmc/core/core.h, branch linux-4.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-05-22T08:59:13Z</updated>
<entry>
<title>mmc: block: Issue a cache flush only when it's enabled</title>
<updated>2021-05-22T08:59:13Z</updated>
<author>
<name>Avri Altman</name>
</author>
<published>2021-04-25T06:02:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0747a1d043c2c0c062fd40966f642c43247e2477'/>
<id>urn:sha1:0747a1d043c2c0c062fd40966f642c43247e2477</id>
<content type='text'>
commit 97fce126e279690105ee15be652b465fd96f9997 upstream.

In command queueing mode, the cache isn't flushed via the mmc_flush_cache()
function, but instead by issuing a CMDQ_TASK_MGMT (CMD48) with a
FLUSH_CACHE opcode. In this path, we need to check if cache has been
enabled, before deciding to flush the cache, along the lines of what's
being done in mmc_flush_cache().

To fix this problem, let's add a new bus ops callback -&gt;cache_enabled() and
implement it for the mmc bus type. In this way, the mmc block device driver
can call it to know whether cache flushing should be done.

Fixes: 1e8e55b67030 (mmc: block: Add CQE support)
Cc: stable@vger.kernel.org
Reported-by: Brendan Peter &lt;bpeter@lytx.com&gt;
Signed-off-by: Avri Altman &lt;avri.altman@wdc.com&gt;
Tested-by: Brendan Peter &lt;bpeter@lytx.com&gt;
Acked-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Link: https://lore.kernel.org/r/20210425060207.2591-2-avri.altman@wdc.com
Link: https://lore.kernel.org/r/20210425060207.2591-3-avri.altman@wdc.com
[Ulf: Squashed the two patches and made some minor updates]
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Drop the unused mmc_power_save|restore_host()</title>
<updated>2018-07-16T09:21:45Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2018-06-26T14:51:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=29772f8a73d88a5de648177d9d822055ab7d1ba6'/>
<id>urn:sha1:29772f8a73d88a5de648177d9d822055ab7d1ba6</id>
<content type='text'>
The last user of mmc_power_save|restore_host() APIs is gone, hence let's
drop them. Drop also the corresponding bus_ops callback,
-&gt;power_save|restore() as those becomes redundant.

Cc: Tony Lindgren &lt;tony@atomide.com&gt;
Cc: Eyal Reizer &lt;eyalreizer@gmail.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Share internal function to set initial signal voltage</title>
<updated>2018-05-08T07:33:50Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2018-04-05T19:24:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=508c9864ccede5dd4b8a7220b3fe6998763e4407'/>
<id>urn:sha1:508c9864ccede5dd4b8a7220b3fe6998763e4407</id>
<content type='text'>
Move the corresponding code for setting the initial signal voltage, from
mmc_power_up() into a new function, mmc_set_initial_signal_voltage().

Make the function internally available to the mmc core, as to allow the
following changes to make use of it.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Tested-by: Quentin Schulz &lt;quentin.schulz@bootlin.com&gt;
Reviewed-by: Shawn Lin &lt;shawn.lin@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>mmc: core: Export a function mmc_sw_reset() to allow soft reset of cards</title>
<updated>2018-05-08T07:33:42Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2018-04-05T11:42:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1433269c4d2461be1f36db5dbb453976b38996ff'/>
<id>urn:sha1:1433269c4d2461be1f36db5dbb453976b38996ff</id>
<content type='text'>
It's rather common that a firmware is loaded into an SDIO func device
memory, by the corresponding SDIO func driver during -&gt;probe() time.

However, to actually start running the new firmware, sometimes a soft reset
(no power cycle) and a re-initialization of the card is needed. This is for
example the case with the Espressif ESP8089 WiFi chips, when connected to
an SDIO interface.

To cope with this scenario, let's add a new exported function,
mmc_sw_reset(), which may be called when a soft reset and re-initialization
of the card are needed.

The mmc_sw_reset() is implemented on top of a new bus ops callback, similar
to how the mmc_hw_reset() has been implemented.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Tested-by: Quentin Schulz &lt;quentin.schulz@bootlin.com&gt;
Reviewed-by: Shawn Lin &lt;shawn.lin@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>mmc: core: Rename -&gt;reset() bus ops to -&gt;hw_reset()</title>
<updated>2018-05-08T07:33:29Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2018-04-05T11:24:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3a3db6030b64ceb4b4e41a6811168c5d90a9f7f8'/>
<id>urn:sha1:3a3db6030b64ceb4b4e41a6811168c5d90a9f7f8</id>
<content type='text'>
The bus ops -&gt;reset() executes a full HW reset of the card, as the calling
function mmc_hw_reset() also indicates by its name. Let's convert to follow
the similar names, for both the bus ops callback and for the corresponding
bus ops functions, as to clarify the purpose of code.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Tested-by: Quentin Schulz &lt;quentin.schulz@bootlin.com&gt;
Reviewed-by: Shawn Lin &lt;shawn.lin@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>mmc: core: Remove code no longer needed after the switch to blk-mq</title>
<updated>2017-12-11T12:05:58Z</updated>
<author>
<name>Adrian Hunter</name>
</author>
<published>2017-11-29T13:41:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=126b62700386da782f83579e9b0431ea76c2da3d'/>
<id>urn:sha1:126b62700386da782f83579e9b0431ea76c2da3d</id>
<content type='text'>
Remove code no longer needed after the switch to blk-mq.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Remove option not to use blk-mq</title>
<updated>2017-12-11T11:55:02Z</updated>
<author>
<name>Adrian Hunter</name>
</author>
<published>2017-11-29T13:41:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1bec43a3b181baebdf8a4cd739b480a9132601d7'/>
<id>urn:sha1:1bec43a3b181baebdf8a4cd739b480a9132601d7</id>
<content type='text'>
Remove config option MMC_MQ_DEFAULT and parameter mmc_use_blk_mq, so that
blk-mq must be used always.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Add parameter use_blk_mq</title>
<updated>2017-12-11T11:44:33Z</updated>
<author>
<name>Adrian Hunter</name>
</author>
<published>2017-11-29T13:41:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c3d53d0da69d127f488dc85638e9440220b268e8'/>
<id>urn:sha1:c3d53d0da69d127f488dc85638e9440220b268e8</id>
<content type='text'>
Until mmc has blk-mq support fully implemented and tested, add a parameter
use_blk_mq, set to true if config option MMC_MQ_DEFAULT is selected, which
it is by default.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Tested-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Make mmc_pre_req() and mmc_post_req() available</title>
<updated>2017-12-11T11:44:32Z</updated>
<author>
<name>Adrian Hunter</name>
</author>
<published>2017-11-29T13:41:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=afab1bb8b40c61458e009fdc323c9740f95fcd5b'/>
<id>urn:sha1:afab1bb8b40c61458e009fdc323c9740f95fcd5b</id>
<content type='text'>
Make mmc_pre_req() and mmc_post_req() available to the card drivers. Later
patches will make use of this.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Tested-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: use usleep_range rather than HZ magic in mmc_delay()</title>
<updated>2017-12-11T11:44:29Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2017-11-14T22:55:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=96455380ece1c786f0a8822ea8b312e6445a3d93'/>
<id>urn:sha1:96455380ece1c786f0a8822ea8b312e6445a3d93</id>
<content type='text'>
Documentation/timers/timers-howto.txt recommends to use usleep_range for
delays 1-20ms. Let's adhere to it. No need for messing with HZ and still
do busy looping these days.

Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
</feed>
