Skip to content

Commit 879db95

Browse files
committed
sm8550-6.18: Now we can use upstream sdhci-msm driver
Signed-off-by: Alex Ling <ling_kasim@hotmail.com>
1 parent db8c792 commit 879db95

55 files changed

Lines changed: 50916 additions & 26110 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
From 49ad200ca07429056562f776a46aed13b4de31b0 Mon Sep 17 00:00:00 2001
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Philippe Simons <simons.philippe@gmail.com>
33
Date: Mon, 21 Jul 2025 00:00:34 +0200
4-
Subject: [PATCH] msm/adreno: enable A32
4+
Subject: msm/adreno: enable A32
55

66
---
77
drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 5 ++++-
88
1 file changed, 4 insertions(+), 1 deletion(-)
99

1010
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
11-
index 53e2ff4406d8..f682aa5d1b2b 100644
11+
index 111111111111..222222222222 100644
1212
--- a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
1313
+++ b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
14-
@@ -1398,7 +1398,10 @@ static const struct adreno_info a7xx_gpus[] = {
15-
.address_space_size = SZ_16G,
14+
@@ -1461,7 +1461,10 @@ static const struct adreno_info a7xx_gpus[] = {
15+
},
1616
.preempt_record_size = 2860 * SZ_1K,
1717
}, {
1818
- .chip_ids = ADRENO_CHIP_IDS(0x43050a01), /* "C510v2" */
@@ -24,5 +24,5 @@ index 53e2ff4406d8..f682aa5d1b2b 100644
2424
.fw = {
2525
[ADRENO_FW_SQE] = "a740_sqe.fw",
2626
--
27-
2.50.1
27+
Armbian
2828

patch/kernel/archive/sm8550-6.18/0002-qcom-dispcc-sm8550-Fix-disp_cc_mdss_mdp_clk_src.patch

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From 2974d421bb6e5ab6994cd8923180a9c1da7ad035 Mon Sep 17 00:00:00 2001
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Philippe Simons <simons.philippe@gmail.com>
33
Date: Wed, 8 Oct 2025 21:06:15 +0200
4-
Subject: [PATCH] qcom: dispcc-sm8550: Fix disp_cc_mdss_mdp_clk_src
4+
Subject: qcom: dispcc-sm8550: Fix disp_cc_mdss_mdp_clk_src
55

66
Set CLK_OPS_PARENT_ENABLE to ensure the parent gets prepared and enabled
77
when switching to it, fixing an "rcg didn't update its configuration"
@@ -13,7 +13,7 @@ Signed-off-by: Philippe Simons <simons.philippe@gmail.com>
1313
1 file changed, 1 insertion(+), 1 deletion(-)
1414

1515
diff --git a/drivers/clk/qcom/dispcc-sm8550.c b/drivers/clk/qcom/dispcc-sm8550.c
16-
index f27140c649f5..5f75e1ccf38f 100644
16+
index 111111111111..222222222222 100644
1717
--- a/drivers/clk/qcom/dispcc-sm8550.c
1818
+++ b/drivers/clk/qcom/dispcc-sm8550.c
1919
@@ -622,7 +622,7 @@ static struct clk_rcg2 disp_cc_mdss_mdp_clk_src = {
@@ -26,5 +26,5 @@ index f27140c649f5..5f75e1ccf38f 100644
2626
},
2727
};
2828
--
29-
2.51.0
29+
Armbian
3030

patch/kernel/archive/sm8550-6.18/0030-input-rmi4-add-reset-gpio.patch

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
From cdcd4a5981e9aca951601d8e254fc0904fc1ae97 Mon Sep 17 00:00:00 2001
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Philippe Simons <simons.philippe@gmail.com>
33
Date: Thu, 21 Aug 2025 22:29:26 +0200
4-
Subject: [PATCH] input: rmi4: add reset-gpio
4+
Subject: input: rmi4: add reset-gpio
55

66
---
77
drivers/input/rmi4/rmi_driver.c | 1 -
8-
drivers/input/rmi4/rmi_driver.h | 2 ++
9-
drivers/input/rmi4/rmi_i2c.c | 22 ++++++++++++++++++++++
8+
drivers/input/rmi4/rmi_driver.h | 2 +
9+
drivers/input/rmi4/rmi_i2c.c | 22 ++++++++++
1010
3 files changed, 24 insertions(+), 1 deletion(-)
1111

1212
diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
13-
index 2168b6cd7167..ff6aed6a11c1 100644
13+
index 111111111111..222222222222 100644
1414
--- a/drivers/input/rmi4/rmi_driver.c
1515
+++ b/drivers/input/rmi4/rmi_driver.c
16-
@@ -30,7 +30,6 @@
16+
@@ -31,7 +31,6 @@
1717
#define RMI4_PAGE_MASK 0xFF00
1818

1919
#define RMI_DEVICE_RESET_CMD 0x01
@@ -22,7 +22,7 @@ index 2168b6cd7167..ff6aed6a11c1 100644
2222
void rmi_free_function_list(struct rmi_device *rmi_dev)
2323
{
2424
diff --git a/drivers/input/rmi4/rmi_driver.h b/drivers/input/rmi4/rmi_driver.h
25-
index 3bfe9013043e..e01453bd680f 100644
25+
index 111111111111..222222222222 100644
2626
--- a/drivers/input/rmi4/rmi_driver.h
2727
+++ b/drivers/input/rmi4/rmi_driver.h
2828
@@ -16,6 +16,8 @@
@@ -35,7 +35,7 @@ index 3bfe9013043e..e01453bd680f 100644
3535
.attrs = _attrs, \
3636
}
3737
diff --git a/drivers/input/rmi4/rmi_i2c.c b/drivers/input/rmi4/rmi_i2c.c
38-
index 3c0c5fd44702..b901168183ea 100644
38+
index 111111111111..222222222222 100644
3939
--- a/drivers/input/rmi4/rmi_i2c.c
4040
+++ b/drivers/input/rmi4/rmi_i2c.c
4141
@@ -4,6 +4,7 @@
@@ -97,5 +97,5 @@ index 3c0c5fd44702..b901168183ea 100644
9797
mutex_init(&rmi_i2c->page_mutex);
9898

9999
--
100-
2.50.1
100+
Armbian
101101

patch/kernel/archive/sm8550-6.18/0031_input--Add-driver-for-RSInput-Gamepad.patch

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
From 63cf9c45ac695a062d47213b5bc962785b6f9147 Mon Sep 17 00:00:00 2001
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Teguh Sobirin <teguh@sobir.in>
33
Date: Thu, 20 Feb 2025 14:50:30 +0800
4-
Subject: [PATCH] input: Add driver for RSInput Gamepad
4+
Subject: input: Add driver for RSInput Gamepad
55

66
Signed-off-by: Teguh Sobirin <teguh@sobir.in>
77
---
88
drivers/input/joystick/Kconfig | 4 +
99
drivers/input/joystick/Makefile | 1 +
10-
drivers/input/joystick/rsinput.c | 418 +++++++++++++++++++++++++++++++
11-
3 files changed, 423 insertions(+)
12-
create mode 100644 drivers/input/joystick/rsinput.c
10+
drivers/input/joystick/rsinput.c | 464 ++++++++++
11+
3 files changed, 469 insertions(+)
1312

1413
diff --git a/drivers/input/joystick/Kconfig b/drivers/input/joystick/Kconfig
15-
index 7755e5b454d2..0da3c0f44ecf 100644
14+
index 111111111111..222222222222 100644
1615
--- a/drivers/input/joystick/Kconfig
1716
+++ b/drivers/input/joystick/Kconfig
1817
@@ -383,6 +383,10 @@ config JOYSTICK_QWIIC
@@ -27,7 +26,7 @@ index 7755e5b454d2..0da3c0f44ecf 100644
2726
tristate "FlySky FS-iA6B RC Receiver"
2827
select SERIO
2928
diff --git a/drivers/input/joystick/Makefile b/drivers/input/joystick/Makefile
30-
index 9976f596a920..3de503e29489 100644
29+
index 111111111111..222222222222 100644
3130
--- a/drivers/input/joystick/Makefile
3231
+++ b/drivers/input/joystick/Makefile
3332
@@ -28,6 +28,7 @@ obj-$(CONFIG_JOYSTICK_N64) += n64joy.o
@@ -40,7 +39,7 @@ index 9976f596a920..3de503e29489 100644
4039
obj-$(CONFIG_JOYSTICK_SIDEWINDER) += sidewinder.o
4140
diff --git a/drivers/input/joystick/rsinput.c b/drivers/input/joystick/rsinput.c
4241
new file mode 100644
43-
index 000000000000..4a7096407712
42+
index 000000000000..111111111111
4443
--- /dev/null
4544
+++ b/drivers/input/joystick/rsinput.c
4645
@@ -0,0 +1,464 @@
@@ -509,5 +508,5 @@ index 000000000000..4a7096407712
509508
+MODULE_DESCRIPTION("RSInput Gamepad Driver");
510509
+MODULE_AUTHOR("Teguh Sobirin <teguh@sobir.in>");
511510
--
512-
2.34.1
511+
Armbian
513512

patch/kernel/archive/sm8550-6.18/0033_leds--Add-driver-for-HEROIC-HTR3212.patch

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
From dc0296918d672985a2bfd24c32d4ebfa52b61dbe Mon Sep 17 00:00:00 2001
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Teguh Sobirin <teguh@sobir.in>
33
Date: Mon, 27 Oct 2025 17:05:23 +0800
4-
Subject: [PATCH] leds: Add driver for HEROIC HTR3212
4+
Subject: leds: Add driver for HEROIC HTR3212
55

66
Signed-off-by: Teguh Sobirin <teguh@sobir.in>
77
---
8-
drivers/leds/Kconfig | 10 ++
8+
drivers/leds/Kconfig | 10 +
99
drivers/leds/Makefile | 1 +
10-
drivers/leds/leds-htr3212.c | 319 ++++++++++++++++++++++++++++++++++++
10+
drivers/leds/leds-htr3212.c | 319 ++++++++++
1111
3 files changed, 330 insertions(+)
12-
create mode 100644 drivers/leds/leds-htr3212.c
1312

1413
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
15-
index 6e3dce7e35a4..ac9ce34b765c 100644
14+
index 111111111111..222222222222 100644
1615
--- a/drivers/leds/Kconfig
1716
+++ b/drivers/leds/Kconfig
1817
@@ -218,6 +218,16 @@ config LEDS_EXPRESSWIRE
@@ -33,7 +32,7 @@ index 6e3dce7e35a4..ac9ce34b765c 100644
3332
tristate "LED support for CZ.NIC's Turris Omnia"
3433
depends on LEDS_CLASS_MULTICOLOR
3534
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
36-
index 9a0333ec1a86..36815a7526e9 100644
35+
index 111111111111..222222222222 100644
3736
--- a/drivers/leds/Makefile
3837
+++ b/drivers/leds/Makefile
3938
@@ -33,6 +33,7 @@ obj-$(CONFIG_LEDS_DA9052) += leds-da9052.o
@@ -46,7 +45,7 @@ index 9a0333ec1a86..36815a7526e9 100644
4645
obj-$(CONFIG_LEDS_IPAQ_MICRO) += leds-ipaq-micro.o
4746
diff --git a/drivers/leds/leds-htr3212.c b/drivers/leds/leds-htr3212.c
4847
new file mode 100644
49-
index 000000000000..8eb6c3c7866f
48+
index 000000000000..111111111111
5049
--- /dev/null
5150
+++ b/drivers/leds/leds-htr3212.c
5251
@@ -0,0 +1,319 @@
@@ -370,5 +369,5 @@ index 000000000000..8eb6c3c7866f
370369
+MODULE_DESCRIPTION("HEROIC HTR3212 LED Driver");
371370
+MODULE_LICENSE("GPL v2");
372371
--
373-
2.34.1
372+
Armbian
374373

patch/kernel/archive/sm8550-6.18/0036_ASoC--qcom--sc8280xp-Add-support-for-Primary-I2S.patch

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
From 7722e6175facbc15e6f9dfb1fc21f7f21a09d1c6 Mon Sep 17 00:00:00 2001
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Teguh Sobirin <teguh@sobir.in>
33
Date: Fri, 21 Feb 2025 20:13:47 +0800
4-
Subject: [PATCH] ASoC: qcom: sc8280xp Add support for Primary I2S
4+
Subject: ASoC: qcom: sc8280xp Add support for Primary I2S
55

66
Signed-off-by: Teguh Sobirin <teguh@sobir.in>
77
---
8-
sound/soc/qcom/sc8280xp.c | 38 +++++++++++++++++++++++++++++++++++++-
8+
sound/soc/qcom/sc8280xp.c | 38 +++++++++-
99
1 file changed, 37 insertions(+), 1 deletion(-)
1010

1111
diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c
12-
index 311377317176..f86f3ef42180 100644
12+
index 111111111111..222222222222 100644
1313
--- a/sound/soc/qcom/sc8280xp.c
1414
+++ b/sound/soc/qcom/sc8280xp.c
1515
@@ -2,6 +2,7 @@
@@ -20,15 +20,15 @@ index 311377317176..f86f3ef42180 100644
2020
#include <linux/module.h>
2121
#include <linux/platform_device.h>
2222
#include <sound/soc.h>
23-
@@ -20,6 +21,7 @@ struct sc8280xp_snd_data {
23+
@@ -21,6 +22,7 @@ struct sc8280xp_snd_data {
2424
struct sdw_stream_runtime *sruntime[AFE_PORT_MAX];
2525
struct snd_soc_jack jack;
2626
struct snd_soc_jack dp_jack[8];
2727
+ struct clk *i2s_clk;
2828
bool jack_setup;
2929
};
3030

31-
@@ -63,6 +65,28 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd)
31+
@@ -68,6 +70,28 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd)
3232
return qcom_snd_wcd_jack_setup(rtd, &data->jack, &data->jack_setup);
3333
}
3434

@@ -57,9 +57,9 @@ index 311377317176..f86f3ef42180 100644
5757
static void sc8280xp_snd_shutdown(struct snd_pcm_substream *substream)
5858
{
5959
struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
60-
@@ -70,6 +94,14 @@ static void sc8280xp_snd_shutdown(struct snd_pcm_substream *substream)
60+
@@ -75,6 +99,14 @@ static void sc8280xp_snd_shutdown(struct snd_pcm_substream *substream)
6161
struct sc8280xp_snd_data *pdata = snd_soc_card_get_drvdata(rtd->card);
62-
struct sdw_stream_runtime *sruntime = pdata->sruntime[cpu_dai->id];
62+
struct sdw_stream_runtime *sruntime = qcom_snd_sdw_get_stream(substream);
6363

6464
+ switch (cpu_dai->id) {
6565
+ case PRIMARY_MI2S_RX:
@@ -72,7 +72,7 @@ index 311377317176..f86f3ef42180 100644
7272
pdata->sruntime[cpu_dai->id] = NULL;
7373
sdw_release_stream(sruntime);
7474
}
75-
@@ -134,7 +166,7 @@ static int sc8280xp_snd_hw_free(struct snd_pcm_substream *substream)
75+
@@ -141,7 +173,7 @@ static int sc8280xp_snd_hw_free(struct snd_pcm_substream *substream)
7676
}
7777

7878
static const struct snd_soc_ops sc8280xp_be_ops = {
@@ -81,7 +81,7 @@ index 311377317176..f86f3ef42180 100644
8181
.shutdown = sc8280xp_snd_shutdown,
8282
.hw_params = sc8280xp_snd_hw_params,
8383
.hw_free = sc8280xp_snd_hw_free,
84-
@@ -178,6 +210,10 @@ static int sc8280xp_platform_probe(struct platform_device *pdev)
84+
@@ -185,6 +217,10 @@ static int sc8280xp_platform_probe(struct platform_device *pdev)
8585
if (ret)
8686
return ret;
8787

@@ -93,5 +93,5 @@ index 311377317176..f86f3ef42180 100644
9393
sc8280xp_add_be_ops(card);
9494
return devm_snd_soc_register_card(dev, card);
9595
--
96-
2.34.1
96+
Armbian
9797

patch/kernel/archive/sm8550-6.18/0042_mmc--sdhci-msm--Toggle-the-FIFO-write-clock-after-.patch

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From 10c0d24c9ab36e166b717bc89a0c0d7ec668c978 Mon Sep 17 00:00:00 2001
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Ram Prakash Gupta <quic_rampraka@quicinc.com>
33
Date: Tue, 22 Oct 2024 16:40:25 +0530
4-
Subject: [PATCH] mmc: sdhci-msm: Toggle the FIFO write clock after ungate
4+
Subject: mmc: sdhci-msm: Toggle the FIFO write clock after ungate
55

66
For Qualcomm SoCs with sdcc minor version 6B and more, command path
77
state machine is getting corrupted post clock ungate which is leading
@@ -11,30 +11,30 @@ Toggle the write fifo clock to reset the async fifo to fix this issue.
1111

1212
Signed-off-by: Ram Prakash Gupta <quic_rampraka@quicinc.com>
1313
---
14-
drivers/mmc/host/sdhci-msm.c | 41 ++++++++++++++++++++++++++++++++++++
14+
drivers/mmc/host/sdhci-msm.c | 41 ++++++++++
1515
1 file changed, 41 insertions(+)
1616

1717
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
18-
index 9473039ccb13..b3643aec5444 100644
18+
index 111111111111..222222222222 100644
1919
--- a/drivers/mmc/host/sdhci-msm.c
2020
+++ b/drivers/mmc/host/sdhci-msm.c
21-
@@ -158,6 +158,7 @@
21+
@@ -156,6 +156,7 @@
2222
/* CQHCI vendor specific registers */
2323
#define CQHCI_VENDOR_CFG1 0xA00
2424
#define CQHCI_VENDOR_DIS_RST_ON_CQ_EN (0x3 << 13)
2525
+#define RCLK_TOGGLE BIT(1)
2626

2727
struct sdhci_msm_offset {
2828
u32 core_hc_mode;
29-
@@ -303,6 +304,7 @@ struct sdhci_msm_host {
29+
@@ -300,6 +301,7 @@ struct sdhci_msm_host {
3030
u32 dll_config;
3131
u32 ddr_config;
3232
bool vqmmc_enabled;
3333
+ bool toggle_fifo_clk;
3434
};
3535

3636
static const struct sdhci_msm_offset *sdhci_priv_msm_offset(struct sdhci_host *host)
37-
@@ -1184,6 +1186,39 @@ static int sdhci_msm_restore_sdr_dll_config(struct sdhci_host *host)
37+
@@ -1178,6 +1180,39 @@ static int sdhci_msm_restore_sdr_dll_config(struct sdhci_host *host)
3838
return ret;
3939
}
4040

@@ -74,7 +74,7 @@ index 9473039ccb13..b3643aec5444 100644
7474
static void sdhci_msm_set_cdr(struct sdhci_host *host, bool enable)
7575
{
7676
const struct sdhci_msm_offset *msm_offset = sdhci_priv_msm_offset(host);
77-
@@ -2662,6 +2697,9 @@ static int sdhci_msm_probe(struct platform_device *pdev)
77+
@@ -2721,6 +2756,9 @@ static int sdhci_msm_probe(struct platform_device *pdev)
7878
if (core_major == 1 && core_minor >= 0x71)
7979
msm_host->uses_tassadar_dll = true;
8080

@@ -84,7 +84,7 @@ index 9473039ccb13..b3643aec5444 100644
8484
ret = sdhci_msm_register_vreg(msm_host);
8585
if (ret)
8686
goto clk_disable;
87-
@@ -2795,6 +2833,9 @@ static __maybe_unused int sdhci_msm_runtime_resume(struct device *dev)
87+
@@ -2850,6 +2888,9 @@ static int sdhci_msm_runtime_resume(struct device *dev)
8888
msm_host->bulk_clks);
8989
if (ret)
9090
return ret;
@@ -95,5 +95,5 @@ index 9473039ccb13..b3643aec5444 100644
9595
* Whenever core-clock is gated dynamically, it's needed to
9696
* restore the SDR DLL settings when the clock is ungated.
9797
--
98-
2.34.1
98+
Armbian
9999

patch/kernel/archive/sm8550-6.18/0047_ASoC--codecs--aw88166--AYN-Odin2-Specific-modifica.patch

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From 9dbdd074423d970a9dec9a60f8bb99f8cfafd6a1 Mon Sep 17 00:00:00 2001
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22
From: Teguh Sobirin <teguh@sobir.in>
33
Date: Mon, 27 Oct 2025 17:10:56 +0800
4-
Subject: [PATCH] ASoC: codecs: aw88166: AYN SM8550 Specific modification
4+
Subject: ASoC: codecs: aw88166: AYN SM8550 Specific modification
55

66
- AYN SM8550 have problem with regmap_raw_write under i2c_hub_*
77
- Add .ops in aw88166_dai
@@ -10,11 +10,11 @@ Subject: [PATCH] ASoC: codecs: aw88166: AYN SM8550 Specific modification
1010

1111
Signed-off-by: Teguh Sobirin <teguh@sobir.in>
1212
---
13-
sound/soc/codecs/aw88166.c | 100 ++++++++++++++++++++++++++++++++++---
13+
sound/soc/codecs/aw88166.c | 100 +++++++++-
1414
1 file changed, 94 insertions(+), 6 deletions(-)
1515

1616
diff --git a/sound/soc/codecs/aw88166.c b/sound/soc/codecs/aw88166.c
17-
index 28f62b991ef2..ea6f8a768f4e 100644
17+
index 111111111111..222222222222 100644
1818
--- a/sound/soc/codecs/aw88166.c
1919
+++ b/sound/soc/codecs/aw88166.c
2020
@@ -12,7 +12,10 @@
@@ -196,5 +196,5 @@ index 28f62b991ef2..ea6f8a768f4e 100644
196196
.probe = aw88166_i2c_probe,
197197
.id_table = aw88166_i2c_id,
198198
--
199-
2.34.1
199+
Armbian
200200

0 commit comments

Comments
 (0)