Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 46b51ea2 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (83 commits)
  mmc: fix compile error when CONFIG_BLOCK is not enabled
  mmc: core: Cleanup eMMC4.5 conditionals
  mmc: omap_hsmmc: if multiblock reads are broken, disable them
  mmc: core: add workaround for controllers with broken multiblock reads
  mmc: core: Prevent too long response times for suspend
  mmc: recognise SDIO cards with SDIO_CCCR_REV 3.00
  mmc: sd: Handle SD3.0 cards not supporting UHS-I bus speed mode
  mmc: core: support HPI send command
  mmc: core: Add cache control for eMMC4.5 device
  mmc: core: Modify the timeout value for writing power class
  mmc: core: new discard feature support at eMMC v4.5
  mmc: core: mmc sanitize feature support for v4.5
  mmc: dw_mmc: modify DATA register offset
  mmc: sdhci-pci: add flag for devices that can support runtime PM
  mmc: omap_hsmmc: ensure pbias configuration is always done
  mmc: core: Add Power Off Notify Feature eMMC 4.5
  mmc: sdhci-s3c: fix potential NULL dereference
  mmc: replace printk with appropriate display macro
  mmc: core: Add default timeout value for CMD6
  mmc: sdhci-pci: add runtime pm support
  ...
parents 1fdb24e9 a6029e1f
Loading
Loading
Loading
Loading
+27 −0
Original line number Original line Diff line number Diff line
* NVIDIA Tegra Secure Digital Host Controller

This controller on Tegra family SoCs provides an interface for MMC, SD,
and SDIO types of memory cards.

Required properties:
- compatible : Should be "nvidia,<chip>-sdhci"
- reg : Should contain SD/MMC registers location and length
- interrupts : Should contain SD/MMC interrupt

Optional properties:
- cd-gpios : Specify GPIOs for card detection
- wp-gpios : Specify GPIOs for write protection
- power-gpios : Specify GPIOs for power control
- support-8bit : Boolean, indicates if 8-bit mode should be used.

Example:

sdhci@c8000200 {
	compatible = "nvidia,tegra20-sdhci";
	reg = <0xc8000200 0x200>;
	interrupts = <47>;
	cd-gpios = <&gpio 69 0>; /* gpio PI5 */
	wp-gpios = <&gpio 57 0>; /* gpio PH1 */
	power-gpios = <&gpio 155 0>; /* gpio PT3 */
	support-8bit;
};
+7 −1
Original line number Original line Diff line number Diff line
@@ -21,6 +21,11 @@ o fail_make_request
  /sys/block/<device>/make-it-fail or
  /sys/block/<device>/make-it-fail or
  /sys/block/<device>/<partition>/make-it-fail. (generic_make_request())
  /sys/block/<device>/<partition>/make-it-fail. (generic_make_request())


o fail_mmc_request

  injects MMC data errors on devices permitted by setting
  debugfs entries under /sys/kernel/debug/mmc0/fail_mmc_request

Configure fault-injection capabilities behavior
Configure fault-injection capabilities behavior
-----------------------------------------------
-----------------------------------------------


@@ -115,7 +120,8 @@ use the boot option:


	failslab=
	failslab=
	fail_page_alloc=
	fail_page_alloc=
	fail_make_request=<interval>,<probability>,<space>,<times>
	fail_make_request=
	mmc_core.fail_request=<interval>,<probability>,<space>,<times>


How to add new fault injection capability
How to add new fault injection capability
-----------------------------------------
-----------------------------------------
+1 −1
Original line number Original line Diff line number Diff line
@@ -319,7 +319,7 @@ void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data)
	if (!data)
	if (!data)
		return;
		return;


	for (i = 0; i < ATMEL_MCI_MAX_NR_SLOTS; i++) {
	for (i = 0; i < ATMCI_MAX_NR_SLOTS; i++) {
		if (data->slot[i].bus_width) {
		if (data->slot[i].bus_width) {
			/* input/irq */
			/* input/irq */
			if (data->slot[i].detect_pin) {
			if (data->slot[i].detect_pin) {
+0 −24
Original line number Original line Diff line number Diff line
@@ -175,12 +175,6 @@ static struct resource resources_sdc1[] = {
		.flags	= IORESOURCE_IRQ,
		.flags	= IORESOURCE_IRQ,
		.name	= "cmd_irq",
		.name	= "cmd_irq",
	},
	},
	{
		.start	= INT_SDC1_1,
		.end	= INT_SDC1_1,
		.flags	= IORESOURCE_IRQ,
		.name	= "pio_irq",
	},
	{
	{
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.name	= "status_irq"
		.name	= "status_irq"
@@ -203,12 +197,6 @@ static struct resource resources_sdc2[] = {
		.end	= INT_SDC2_0,
		.end	= INT_SDC2_0,
		.flags	= IORESOURCE_IRQ,
		.flags	= IORESOURCE_IRQ,
		.name	= "cmd_irq",
		.name	= "cmd_irq",
	},
		{
		.start	= INT_SDC2_1,
		.end	= INT_SDC2_1,
		.flags	= IORESOURCE_IRQ,
		.name	= "pio_irq",
	},
	},
	{
	{
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
@@ -232,12 +220,6 @@ static struct resource resources_sdc3[] = {
		.end	= INT_SDC3_0,
		.end	= INT_SDC3_0,
		.flags	= IORESOURCE_IRQ,
		.flags	= IORESOURCE_IRQ,
		.name	= "cmd_irq",
		.name	= "cmd_irq",
	},
		{
		.start	= INT_SDC3_1,
		.end	= INT_SDC3_1,
		.flags	= IORESOURCE_IRQ,
		.name	= "pio_irq",
	},
	},
	{
	{
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
@@ -261,12 +243,6 @@ static struct resource resources_sdc4[] = {
		.end	= INT_SDC4_0,
		.end	= INT_SDC4_0,
		.flags	= IORESOURCE_IRQ,
		.flags	= IORESOURCE_IRQ,
		.name	= "cmd_irq",
		.name	= "cmd_irq",
	},
		{
		.start	= INT_SDC4_1,
		.end	= INT_SDC4_1,
		.flags	= IORESOURCE_IRQ,
		.name	= "pio_irq",
	},
	},
	{
	{
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
+0 −24
Original line number Original line Diff line number Diff line
@@ -139,12 +139,6 @@ static struct resource resources_sdc1[] = {
		.flags	= IORESOURCE_IRQ,
		.flags	= IORESOURCE_IRQ,
		.name	= "cmd_irq",
		.name	= "cmd_irq",
	},
	},
	{
		.start	= INT_SDC1_1,
		.end	= INT_SDC1_1,
		.flags	= IORESOURCE_IRQ,
		.name	= "pio_irq",
	},
	{
	{
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.name	= "status_irq"
		.name	= "status_irq"
@@ -167,12 +161,6 @@ static struct resource resources_sdc2[] = {
		.end	= INT_SDC2_0,
		.end	= INT_SDC2_0,
		.flags	= IORESOURCE_IRQ,
		.flags	= IORESOURCE_IRQ,
		.name	= "cmd_irq",
		.name	= "cmd_irq",
	},
		{
		.start	= INT_SDC2_1,
		.end	= INT_SDC2_1,
		.flags	= IORESOURCE_IRQ,
		.name	= "pio_irq",
	},
	},
	{
	{
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
@@ -196,12 +184,6 @@ static struct resource resources_sdc3[] = {
		.end	= INT_SDC3_0,
		.end	= INT_SDC3_0,
		.flags	= IORESOURCE_IRQ,
		.flags	= IORESOURCE_IRQ,
		.name	= "cmd_irq",
		.name	= "cmd_irq",
	},
		{
		.start	= INT_SDC3_1,
		.end	= INT_SDC3_1,
		.flags	= IORESOURCE_IRQ,
		.name	= "pio_irq",
	},
	},
	{
	{
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
@@ -225,12 +207,6 @@ static struct resource resources_sdc4[] = {
		.end	= INT_SDC4_0,
		.end	= INT_SDC4_0,
		.flags	= IORESOURCE_IRQ,
		.flags	= IORESOURCE_IRQ,
		.name	= "cmd_irq",
		.name	= "cmd_irq",
	},
		{
		.start	= INT_SDC4_1,
		.end	= INT_SDC4_1,
		.flags	= IORESOURCE_IRQ,
		.name	= "pio_irq",
	},
	},
	{
	{
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
Loading