Skip to content

Commit ce51c2b

Browse files
committed
Merge tag 'mmc-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
Pull MMC updates from Ulf Hansson: "MMC core: - Initial support for SD express card/host MMC host: - mxc: Convert the driver to DT-only - mtk-sd: Add HS400 enhanced strobe support - mtk-sd: Add support for the MT8192 SoC variant - sdhci-acpi: Allow changing HS200/HS400 driver strength for AMDI0040 - sdhci-esdhc-imx: Convert the driver to DT-only - sdhci-pci-gli: Improve performance for HS400 mode for GL9763E - sdhci-pci-gli: Reduce power consumption for GL9755 - sdhci-xenon: Introduce ACPI support - tmio: Fix command error processing - tmio: Inform the core about the max_busy_timeout - tmio/renesas_sdhi: Support custom calculation of busy-wait time - renesas_sdhi: Reset SCC only when available - rtsx_pci: Add SD Express mode support for RTS5261 - rtsx_pci: Various fixes and improvements for RTS5261 MEMSTICK: - Minor fixes/improvements" * tag 'mmc-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (72 commits) dt-bindings: mmc: eliminate yamllint warnings mmc: sdhci-xenon: introduce ACPI support mmc: sdhci-xenon: use clk only with DT mmc: sdhci-xenon: switch to device_* API mmc: sdhci-xenon: use match data for controllers variants dt-bindings: mmc: Fix xlnx,mio-bank property values for arasan driver mmc: renesas_sdhi: populate hook for longer busy_wait mmc: tmio: add hook for custom busy_wait calculation mmc: tmio: set max_busy_timeout dt-bindings: mmc: imx: fix the wrongly dropped imx8qm compatible string mmc: sdhci-pci-gli: Disable slow mode in HS400 mode for GL9763E mmc: sdhci: Use more concise device_property_read_u64 memstick: r592: Fix error return in r592_probe() mmc: mxc: Convert the driver to DT-only mmc: mxs: Remove the unused .id_table mmc: sdhci-of-arasan: Fix fall-through warnings for Clang mmc: sdhci-pci-gli: Reduce power consumption for GL9755 mmc: mediatek: depend on COMMON_CLK to fix compile tests mmc: pxamci: Fix error return code in pxamci_probe mmc: sdhci: Update firmware interface API ...
2 parents 9d0d886 + 72b248c commit ce51c2b

52 files changed

Lines changed: 839 additions & 454 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/devicetree/bindings/mmc/arasan,sdhci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ properties:
147147

148148
xlnx,mio-bank:
149149
$ref: /schemas/types.yaml#/definitions/uint32
150-
enum: [0, 2]
150+
enum: [0, 1, 2]
151151
default: 0
152152
description:
153153
The MIO bank number in which the command and data lines are configured.

Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ properties:
3939
- fsl,imx8mn-usdhc
4040
- fsl,imx8mp-usdhc
4141
- fsl,imx8mq-usdhc
42+
- fsl,imx8qm-usdhc
4243
- fsl,imx8qxp-usdhc
4344
- const: fsl,imx7d-usdhc
4445

Documentation/devicetree/bindings/mmc/mtk-sd.txt

Lines changed: 0 additions & 75 deletions
This file was deleted.
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mmc/mtk-sd.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: MTK MSDC Storage Host Controller Binding
8+
9+
maintainers:
10+
- Chaotian Jing <chaotian.jing@mediatek.com>
11+
- Wenbin Mei <wenbin.mei@mediatek.com>
12+
13+
allOf:
14+
- $ref: mmc-controller.yaml#
15+
16+
properties:
17+
compatible:
18+
oneOf:
19+
- enum:
20+
- mediatek,mt2701-mmc
21+
- mediatek,mt2712-mmc
22+
- mediatek,mt6779-mmc
23+
- mediatek,mt7620-mmc
24+
- mediatek,mt7622-mmc
25+
- mediatek,mt8135-mmc
26+
- mediatek,mt8173-mmc
27+
- mediatek,mt8183-mmc
28+
- mediatek,mt8516-mmc
29+
- items:
30+
- const: mediatek,mt7623-mmc
31+
- const: mediatek,mt2701-mmc
32+
- items:
33+
- const: mediatek,mt8192-mmc
34+
- const: mediatek,mt8183-mmc
35+
36+
clocks:
37+
description:
38+
Should contain phandle for the clock feeding the MMC controller.
39+
minItems: 2
40+
maxItems: 8
41+
items:
42+
- description: source clock (required).
43+
- description: HCLK which used for host (required).
44+
- description: independent source clock gate (required for MT2712).
45+
- description: bus clock used for internal register access (required for MT2712 MSDC0/3).
46+
- description: msdc subsys clock gate (required for MT8192).
47+
- description: peripheral bus clock gate (required for MT8192).
48+
- description: AXI bus clock gate (required for MT8192).
49+
- description: AHB bus clock gate (required for MT8192).
50+
51+
clock-names:
52+
minItems: 2
53+
maxItems: 8
54+
items:
55+
- const: source
56+
- const: hclk
57+
- const: source_cg
58+
- const: bus_clk
59+
- const: sys_cg
60+
- const: pclk_cg
61+
- const: axi_cg
62+
- const: ahb_cg
63+
64+
pinctrl-names:
65+
items:
66+
- const: default
67+
- const: state_uhs
68+
69+
pinctrl-0:
70+
description:
71+
should contain default/high speed pin ctrl.
72+
maxItems: 1
73+
74+
pinctrl-1:
75+
description:
76+
should contain uhs mode pin ctrl.
77+
maxItems: 1
78+
79+
assigned-clocks:
80+
description:
81+
PLL of the source clock.
82+
maxItems: 1
83+
84+
assigned-clock-parents:
85+
description:
86+
parent of source clock, used for HS400 mode to get 400Mhz source clock.
87+
maxItems: 1
88+
89+
hs400-ds-delay:
90+
$ref: /schemas/types.yaml#/definitions/uint32
91+
description:
92+
HS400 DS delay setting.
93+
minimum: 0
94+
maximum: 0xffffffff
95+
96+
mediatek,hs200-cmd-int-delay:
97+
$ref: /schemas/types.yaml#/definitions/uint32
98+
description:
99+
HS200 command internal delay setting.
100+
This field has total 32 stages.
101+
The value is an integer from 0 to 31.
102+
minimum: 0
103+
maximum: 31
104+
105+
mediatek,hs400-cmd-int-delay:
106+
$ref: /schemas/types.yaml#/definitions/uint32
107+
description:
108+
HS400 command internal delay setting.
109+
This field has total 32 stages.
110+
The value is an integer from 0 to 31.
111+
minimum: 0
112+
maximum: 31
113+
114+
mediatek,hs400-cmd-resp-sel-rising:
115+
$ref: /schemas/types.yaml#/definitions/flag
116+
description:
117+
HS400 command response sample selection.
118+
If present, HS400 command responses are sampled on rising edges.
119+
If not present, HS400 command responses are sampled on falling edges.
120+
121+
mediatek,latch-ck:
122+
$ref: /schemas/types.yaml#/definitions/uint32
123+
description:
124+
Some SoCs do not support enhance_rx, need set correct latch-ck to avoid
125+
data crc error caused by stop clock(fifo full) Valid range = [0:0x7].
126+
if not present, default value is 0.
127+
applied to compatible "mediatek,mt2701-mmc".
128+
minimum: 0
129+
maximum: 7
130+
131+
resets:
132+
maxItems: 1
133+
134+
reset-names:
135+
const: hrst
136+
137+
required:
138+
- compatible
139+
- reg
140+
- interrupts
141+
- clocks
142+
- clock-names
143+
- pinctrl-names
144+
- pinctrl-0
145+
- pinctrl-1
146+
- vmmc-supply
147+
- vqmmc-supply
148+
149+
unevaluatedProperties: false
150+
151+
examples:
152+
- |
153+
#include <dt-bindings/interrupt-controller/irq.h>
154+
#include <dt-bindings/interrupt-controller/arm-gic.h>
155+
#include <dt-bindings/clock/mt8173-clk.h>
156+
mmc0: mmc@11230000 {
157+
compatible = "mediatek,mt8173-mmc";
158+
reg = <0x11230000 0x1000>;
159+
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>;
160+
vmmc-supply = <&mt6397_vemc_3v3_reg>;
161+
vqmmc-supply = <&mt6397_vio18_reg>;
162+
clocks = <&pericfg CLK_PERI_MSDC30_0>,
163+
<&topckgen CLK_TOP_MSDC50_0_H_SEL>;
164+
clock-names = "source", "hclk";
165+
pinctrl-names = "default", "state_uhs";
166+
pinctrl-0 = <&mmc0_pins_default>;
167+
pinctrl-1 = <&mmc0_pins_uhs>;
168+
assigned-clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>;
169+
assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
170+
hs400-ds-delay = <0x14015>;
171+
mediatek,hs200-cmd-int-delay = <26>;
172+
mediatek,hs400-cmd-int-delay = <14>;
173+
mediatek,hs400-cmd-resp-sel-rising;
174+
};
175+
176+
...

Documentation/devicetree/bindings/mmc/owl-mmc.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ properties:
1717
oneOf:
1818
- const: actions,owl-mmc
1919
- items:
20-
- const: actions,s700-mmc
20+
- enum:
21+
- actions,s500-mmc
22+
- actions,s700-mmc
2123
- const: actions,owl-mmc
2224

2325
reg:

drivers/memstick/core/memstick.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,6 @@ static void memstick_check(struct work_struct *work)
468468
host->card = card;
469469
if (device_register(&card->dev)) {
470470
put_device(&card->dev);
471-
kfree(host->card);
472471
host->card = NULL;
473472
}
474473
} else

drivers/memstick/core/mspro_block.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ static const char *mspro_block_attr_name(unsigned char tag)
276276
return "attr_devinfo";
277277
default:
278278
return NULL;
279-
};
279+
}
280280
}
281281

282282
typedef ssize_t (*sysfs_show_t)(struct device *dev,

drivers/memstick/host/jmb38x_ms.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,7 @@ static int jmb38x_ms_set_param(struct memstick_host *msh,
748748
clock_delay);
749749
host->ifmode = value;
750750
break;
751-
};
751+
}
752752
return 0;
753753
}
754754

drivers/memstick/host/r592.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -759,8 +759,10 @@ static int r592_probe(struct pci_dev *pdev, const struct pci_device_id *id)
759759
goto error3;
760760

761761
dev->mmio = pci_ioremap_bar(pdev, 0);
762-
if (!dev->mmio)
762+
if (!dev->mmio) {
763+
error = -ENOMEM;
763764
goto error4;
765+
}
764766

765767
dev->irq = pdev->irq;
766768
spin_lock_init(&dev->irq_lock);
@@ -786,12 +788,14 @@ static int r592_probe(struct pci_dev *pdev, const struct pci_device_id *id)
786788
&dev->dummy_dma_page_physical_address, GFP_KERNEL);
787789
r592_stop_dma(dev , 0);
788790

789-
if (request_irq(dev->irq, &r592_irq, IRQF_SHARED,
790-
DRV_NAME, dev))
791+
error = request_irq(dev->irq, &r592_irq, IRQF_SHARED,
792+
DRV_NAME, dev);
793+
if (error)
791794
goto error6;
792795

793796
r592_update_card_detect(dev);
794-
if (memstick_add_host(host))
797+
error = memstick_add_host(host);
798+
if (error)
795799
goto error7;
796800

797801
message("driver successfully loaded");

drivers/memstick/host/tifm_ms.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ static int tifm_ms_set_param(struct memstick_host *msh,
528528
} else
529529
return -EINVAL;
530530
break;
531-
};
531+
}
532532

533533
return 0;
534534
}

0 commit comments

Comments
 (0)