* [PATCH v2 1/8] spi: mt65xx: Simplify probe function with devm_spi_alloc_master
2022-04-07 11:44 [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation AngeloGioacchino Del Regno
@ 2022-04-07 11:44 ` AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 2/8] spi: mt65xx: Switch to device_get_match_data() AngeloGioacchino Del Regno
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-04-07 11:44 UTC (permalink / raw)
To: broonie
Cc: matthias.bgg, linux-spi, linux-arm-kernel, linux-mediatek,
linux-kernel, nfraprado, kernel, AngeloGioacchino Del Regno
Switch to the devm variant of spi_alloc_master() to save some gotos.
This patch is a cleanup that brings no functional changes.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/spi/spi-mt65xx.c | 43 +++++++++++++++-------------------------
1 file changed, 16 insertions(+), 27 deletions(-)
diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c
index 99ce570a88a7..4c84b67ac85c 100644
--- a/drivers/spi/spi-mt65xx.c
+++ b/drivers/spi/spi-mt65xx.c
@@ -1087,7 +1087,7 @@ static int mtk_spi_probe(struct platform_device *pdev)
const struct of_device_id *of_id;
int i, irq, ret, addr_bits;
- master = spi_alloc_master(&pdev->dev, sizeof(*mdata));
+ master = devm_spi_alloc_master(&pdev->dev, sizeof(*mdata));
if (!master) {
dev_err(&pdev->dev, "failed to alloc spi master\n");
return -ENOMEM;
@@ -1108,8 +1108,7 @@ static int mtk_spi_probe(struct platform_device *pdev)
of_id = of_match_node(mtk_spi_of_match, pdev->dev.of_node);
if (!of_id) {
dev_err(&pdev->dev, "failed to probe of_node\n");
- ret = -EINVAL;
- goto err_put_master;
+ return -EINVAL;
}
mdata = spi_master_get_devdata(master);
@@ -1136,16 +1135,13 @@ static int mtk_spi_probe(struct platform_device *pdev)
if (mdata->pad_num < 0) {
dev_err(&pdev->dev,
"No 'mediatek,pad-select' property\n");
- ret = -EINVAL;
- goto err_put_master;
+ return -EINVAL;
}
mdata->pad_sel = devm_kmalloc_array(&pdev->dev, mdata->pad_num,
sizeof(u32), GFP_KERNEL);
- if (!mdata->pad_sel) {
- ret = -ENOMEM;
- goto err_put_master;
- }
+ if (!mdata->pad_sel)
+ return -ENOMEM;
for (i = 0; i < mdata->pad_num; i++) {
of_property_read_u32_index(pdev->dev.of_node,
@@ -1154,24 +1150,19 @@ static int mtk_spi_probe(struct platform_device *pdev)
if (mdata->pad_sel[i] > MT8173_SPI_MAX_PAD_SEL) {
dev_err(&pdev->dev, "wrong pad-sel[%d]: %u\n",
i, mdata->pad_sel[i]);
- ret = -EINVAL;
- goto err_put_master;
+ return -EINVAL;
}
}
}
platform_set_drvdata(pdev, master);
mdata->base = devm_platform_ioremap_resource(pdev, 0);
- if (IS_ERR(mdata->base)) {
- ret = PTR_ERR(mdata->base);
- goto err_put_master;
- }
+ if (IS_ERR(mdata->base))
+ return PTR_ERR(mdata->base);
irq = platform_get_irq(pdev, 0);
- if (irq < 0) {
- ret = irq;
- goto err_put_master;
- }
+ if (irq < 0)
+ return irq;
if (!pdev->dev.dma_mask)
pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
@@ -1180,41 +1171,41 @@ static int mtk_spi_probe(struct platform_device *pdev)
IRQF_TRIGGER_NONE, dev_name(&pdev->dev), master);
if (ret) {
dev_err(&pdev->dev, "failed to register irq (%d)\n", ret);
- goto err_put_master;
+ return ret;
}
mdata->parent_clk = devm_clk_get(&pdev->dev, "parent-clk");
if (IS_ERR(mdata->parent_clk)) {
ret = PTR_ERR(mdata->parent_clk);
dev_err(&pdev->dev, "failed to get parent-clk: %d\n", ret);
- goto err_put_master;
+ return ret;
}
mdata->sel_clk = devm_clk_get(&pdev->dev, "sel-clk");
if (IS_ERR(mdata->sel_clk)) {
ret = PTR_ERR(mdata->sel_clk);
dev_err(&pdev->dev, "failed to get sel-clk: %d\n", ret);
- goto err_put_master;
+ return ret;
}
mdata->spi_clk = devm_clk_get(&pdev->dev, "spi-clk");
if (IS_ERR(mdata->spi_clk)) {
ret = PTR_ERR(mdata->spi_clk);
dev_err(&pdev->dev, "failed to get spi-clk: %d\n", ret);
- goto err_put_master;
+ return ret;
}
mdata->spi_hclk = devm_clk_get_optional(&pdev->dev, "hclk");
if (IS_ERR(mdata->spi_hclk)) {
ret = PTR_ERR(mdata->spi_hclk);
dev_err(&pdev->dev, "failed to get hclk: %d\n", ret);
- goto err_put_master;
+ return ret;
}
ret = clk_prepare_enable(mdata->spi_hclk);
if (ret < 0) {
dev_err(&pdev->dev, "failed to enable hclk (%d)\n", ret);
- goto err_put_master;
+ return ret;
}
ret = clk_prepare_enable(mdata->spi_clk);
@@ -1281,8 +1272,6 @@ static int mtk_spi_probe(struct platform_device *pdev)
clk_disable_unprepare(mdata->spi_clk);
err_disable_spi_hclk:
clk_disable_unprepare(mdata->spi_hclk);
-err_put_master:
- spi_master_put(master);
return ret;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/8] spi: mt65xx: Switch to device_get_match_data()
2022-04-07 11:44 [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 1/8] spi: mt65xx: Simplify probe function with devm_spi_alloc_master AngeloGioacchino Del Regno
@ 2022-04-07 11:44 ` AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 3/8] spi: mt65xx: Add and use pointer to struct device in mtk_spi_probe() AngeloGioacchino Del Regno
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-04-07 11:44 UTC (permalink / raw)
To: broonie
Cc: matthias.bgg, linux-spi, linux-arm-kernel, linux-mediatek,
linux-kernel, nfraprado, kernel, AngeloGioacchino Del Regno
Instead of performing yet another match check in the probe function,
simply switch to device_get_match_data().
This is a cleanup and brings no functional change.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/spi/spi-mt65xx.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c
index 4c84b67ac85c..4e0b520f9abe 100644
--- a/drivers/spi/spi-mt65xx.c
+++ b/drivers/spi/spi-mt65xx.c
@@ -1084,7 +1084,6 @@ static int mtk_spi_probe(struct platform_device *pdev)
{
struct spi_master *master;
struct mtk_spi *mdata;
- const struct of_device_id *of_id;
int i, irq, ret, addr_bits;
master = devm_spi_alloc_master(&pdev->dev, sizeof(*mdata));
@@ -1105,14 +1104,8 @@ static int mtk_spi_probe(struct platform_device *pdev)
master->set_cs_timing = mtk_spi_set_hw_cs_timing;
master->use_gpio_descriptors = true;
- of_id = of_match_node(mtk_spi_of_match, pdev->dev.of_node);
- if (!of_id) {
- dev_err(&pdev->dev, "failed to probe of_node\n");
- return -EINVAL;
- }
-
mdata = spi_master_get_devdata(master);
- mdata->dev_comp = of_id->data;
+ mdata->dev_comp = device_get_match_data(&pdev->dev);
if (mdata->dev_comp->enhance_timing)
master->mode_bits |= SPI_CS_HIGH;
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 3/8] spi: mt65xx: Add and use pointer to struct device in mtk_spi_probe()
2022-04-07 11:44 [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 1/8] spi: mt65xx: Simplify probe function with devm_spi_alloc_master AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 2/8] spi: mt65xx: Switch to device_get_match_data() AngeloGioacchino Del Regno
@ 2022-04-07 11:44 ` AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 4/8] spi: mt65xx: Move clock parent setting to remove clock disable gotos AngeloGioacchino Del Regno
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-04-07 11:44 UTC (permalink / raw)
To: broonie
Cc: matthias.bgg, linux-spi, linux-arm-kernel, linux-mediatek,
linux-kernel, nfraprado, kernel, AngeloGioacchino Del Regno
In preparation for switching to dev_err_probe() in this function, add
a pointer to struct device and replace all occurrences of '&pdev->dev'
to using this 'dev' pointer.
This is done for one-line fitting of the dev_err_probe() calls.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/spi/spi-mt65xx.c | 70 ++++++++++++++++++++--------------------
1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c
index 4e0b520f9abe..250a508427ee 100644
--- a/drivers/spi/spi-mt65xx.c
+++ b/drivers/spi/spi-mt65xx.c
@@ -1082,18 +1082,19 @@ static const struct spi_controller_mem_ops mtk_spi_mem_ops = {
static int mtk_spi_probe(struct platform_device *pdev)
{
+ struct device *dev = &pdev->dev;
struct spi_master *master;
struct mtk_spi *mdata;
int i, irq, ret, addr_bits;
- master = devm_spi_alloc_master(&pdev->dev, sizeof(*mdata));
+ master = devm_spi_alloc_master(dev, sizeof(*mdata));
if (!master) {
- dev_err(&pdev->dev, "failed to alloc spi master\n");
+ dev_err(dev, "failed to alloc spi master\n");
return -ENOMEM;
}
master->auto_runtime_pm = true;
- master->dev.of_node = pdev->dev.of_node;
+ master->dev.of_node = dev->of_node;
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST;
master->set_cs = mtk_spi_set_cs;
@@ -1105,7 +1106,7 @@ static int mtk_spi_probe(struct platform_device *pdev)
master->use_gpio_descriptors = true;
mdata = spi_master_get_devdata(master);
- mdata->dev_comp = device_get_match_data(&pdev->dev);
+ mdata->dev_comp = device_get_match_data(dev);
if (mdata->dev_comp->enhance_timing)
master->mode_bits |= SPI_CS_HIGH;
@@ -1116,32 +1117,31 @@ static int mtk_spi_probe(struct platform_device *pdev)
master->mode_bits |= SPI_LOOP;
if (mdata->dev_comp->ipm_design) {
- mdata->dev = &pdev->dev;
+ mdata->dev = dev;
master->mem_ops = &mtk_spi_mem_ops;
init_completion(&mdata->spimem_done);
}
if (mdata->dev_comp->need_pad_sel) {
- mdata->pad_num = of_property_count_u32_elems(
- pdev->dev.of_node,
+ mdata->pad_num = of_property_count_u32_elems(dev->of_node,
"mediatek,pad-select");
if (mdata->pad_num < 0) {
- dev_err(&pdev->dev,
+ dev_err(dev,
"No 'mediatek,pad-select' property\n");
return -EINVAL;
}
- mdata->pad_sel = devm_kmalloc_array(&pdev->dev, mdata->pad_num,
+ mdata->pad_sel = devm_kmalloc_array(dev, mdata->pad_num,
sizeof(u32), GFP_KERNEL);
if (!mdata->pad_sel)
return -ENOMEM;
for (i = 0; i < mdata->pad_num; i++) {
- of_property_read_u32_index(pdev->dev.of_node,
+ of_property_read_u32_index(dev->of_node,
"mediatek,pad-select",
i, &mdata->pad_sel[i]);
if (mdata->pad_sel[i] > MT8173_SPI_MAX_PAD_SEL) {
- dev_err(&pdev->dev, "wrong pad-sel[%d]: %u\n",
+ dev_err(dev, "wrong pad-sel[%d]: %u\n",
i, mdata->pad_sel[i]);
return -EINVAL;
}
@@ -1157,59 +1157,59 @@ static int mtk_spi_probe(struct platform_device *pdev)
if (irq < 0)
return irq;
- if (!pdev->dev.dma_mask)
- pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
+ if (!dev->dma_mask)
+ dev->dma_mask = &dev->coherent_dma_mask;
- ret = devm_request_irq(&pdev->dev, irq, mtk_spi_interrupt,
- IRQF_TRIGGER_NONE, dev_name(&pdev->dev), master);
+ ret = devm_request_irq(dev, irq, mtk_spi_interrupt,
+ IRQF_TRIGGER_NONE, dev_name(dev), master);
if (ret) {
- dev_err(&pdev->dev, "failed to register irq (%d)\n", ret);
+ dev_err(dev, "failed to register irq (%d)\n", ret);
return ret;
}
- mdata->parent_clk = devm_clk_get(&pdev->dev, "parent-clk");
+ mdata->parent_clk = devm_clk_get(dev, "parent-clk");
if (IS_ERR(mdata->parent_clk)) {
ret = PTR_ERR(mdata->parent_clk);
- dev_err(&pdev->dev, "failed to get parent-clk: %d\n", ret);
+ dev_err(dev, "failed to get parent-clk: %d\n", ret);
return ret;
}
- mdata->sel_clk = devm_clk_get(&pdev->dev, "sel-clk");
+ mdata->sel_clk = devm_clk_get(dev, "sel-clk");
if (IS_ERR(mdata->sel_clk)) {
ret = PTR_ERR(mdata->sel_clk);
- dev_err(&pdev->dev, "failed to get sel-clk: %d\n", ret);
+ dev_err(dev, "failed to get sel-clk: %d\n", ret);
return ret;
}
- mdata->spi_clk = devm_clk_get(&pdev->dev, "spi-clk");
+ mdata->spi_clk = devm_clk_get(dev, "spi-clk");
if (IS_ERR(mdata->spi_clk)) {
ret = PTR_ERR(mdata->spi_clk);
- dev_err(&pdev->dev, "failed to get spi-clk: %d\n", ret);
+ dev_err(dev, "failed to get spi-clk: %d\n", ret);
return ret;
}
- mdata->spi_hclk = devm_clk_get_optional(&pdev->dev, "hclk");
+ mdata->spi_hclk = devm_clk_get_optional(dev, "hclk");
if (IS_ERR(mdata->spi_hclk)) {
ret = PTR_ERR(mdata->spi_hclk);
- dev_err(&pdev->dev, "failed to get hclk: %d\n", ret);
+ dev_err(dev, "failed to get hclk: %d\n", ret);
return ret;
}
ret = clk_prepare_enable(mdata->spi_hclk);
if (ret < 0) {
- dev_err(&pdev->dev, "failed to enable hclk (%d)\n", ret);
+ dev_err(dev, "failed to enable hclk (%d)\n", ret);
return ret;
}
ret = clk_prepare_enable(mdata->spi_clk);
if (ret < 0) {
- dev_err(&pdev->dev, "failed to enable spi_clk (%d)\n", ret);
+ dev_err(dev, "failed to enable spi_clk (%d)\n", ret);
goto err_disable_spi_hclk;
}
ret = clk_set_parent(mdata->sel_clk, mdata->parent_clk);
if (ret < 0) {
- dev_err(&pdev->dev, "failed to clk_set_parent (%d)\n", ret);
+ dev_err(dev, "failed to clk_set_parent (%d)\n", ret);
goto err_disable_spi_clk;
}
@@ -1223,11 +1223,11 @@ static int mtk_spi_probe(struct platform_device *pdev)
clk_disable_unprepare(mdata->spi_hclk);
}
- pm_runtime_enable(&pdev->dev);
+ pm_runtime_enable(dev);
if (mdata->dev_comp->need_pad_sel) {
if (mdata->pad_num != master->num_chipselect) {
- dev_err(&pdev->dev,
+ dev_err(dev,
"pad_num does not match num_chipselect(%d != %d)\n",
mdata->pad_num, master->num_chipselect);
ret = -EINVAL;
@@ -1235,7 +1235,7 @@ static int mtk_spi_probe(struct platform_device *pdev)
}
if (!master->cs_gpiods && master->num_chipselect > 1) {
- dev_err(&pdev->dev,
+ dev_err(dev,
"cs_gpios not specified and num_chipselect > 1\n");
ret = -EINVAL;
goto err_disable_runtime_pm;
@@ -1246,21 +1246,21 @@ static int mtk_spi_probe(struct platform_device *pdev)
addr_bits = DMA_ADDR_EXT_BITS;
else
addr_bits = DMA_ADDR_DEF_BITS;
- ret = dma_set_mask(&pdev->dev, DMA_BIT_MASK(addr_bits));
+ ret = dma_set_mask(dev, DMA_BIT_MASK(addr_bits));
if (ret)
- dev_notice(&pdev->dev, "SPI dma_set_mask(%d) failed, ret:%d\n",
+ dev_notice(dev, "SPI dma_set_mask(%d) failed, ret:%d\n",
addr_bits, ret);
- ret = devm_spi_register_master(&pdev->dev, master);
+ ret = devm_spi_register_master(dev, master);
if (ret) {
- dev_err(&pdev->dev, "failed to register master (%d)\n", ret);
+ dev_err(dev, "failed to register master (%d)\n", ret);
goto err_disable_runtime_pm;
}
return 0;
err_disable_runtime_pm:
- pm_runtime_disable(&pdev->dev);
+ pm_runtime_disable(dev);
err_disable_spi_clk:
clk_disable_unprepare(mdata->spi_clk);
err_disable_spi_hclk:
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 4/8] spi: mt65xx: Move clock parent setting to remove clock disable gotos
2022-04-07 11:44 [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation AngeloGioacchino Del Regno
` (2 preceding siblings ...)
2022-04-07 11:44 ` [PATCH v2 3/8] spi: mt65xx: Add and use pointer to struct device in mtk_spi_probe() AngeloGioacchino Del Regno
@ 2022-04-07 11:44 ` AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 5/8] spi: mt65xx: Move pm_runtime_enable() call to remove all gotos AngeloGioacchino Del Regno
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-04-07 11:44 UTC (permalink / raw)
To: broonie
Cc: matthias.bgg, linux-spi, linux-arm-kernel, linux-mediatek,
linux-kernel, nfraprado, kernel, AngeloGioacchino Del Regno
Reparenting sel_clk to parent_clk can be done before enabling any of
spi_clk and spi_hclk. Move the call to clk_set_parent() for sel_clk
earlier, and call disable_unprepare() upon spi_clk prepare_enable()
failure to remove all clock disablement related gotos.
This commit is in preparation of a later cleanup.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/spi/spi-mt65xx.c | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c
index 250a508427ee..a2daba3bba91 100644
--- a/drivers/spi/spi-mt65xx.c
+++ b/drivers/spi/spi-mt65xx.c
@@ -1195,6 +1195,12 @@ static int mtk_spi_probe(struct platform_device *pdev)
return ret;
}
+ ret = clk_set_parent(mdata->sel_clk, mdata->parent_clk);
+ if (ret < 0) {
+ dev_err(dev, "failed to clk_set_parent (%d)\n", ret);
+ return ret;
+ }
+
ret = clk_prepare_enable(mdata->spi_hclk);
if (ret < 0) {
dev_err(dev, "failed to enable hclk (%d)\n", ret);
@@ -1204,13 +1210,8 @@ static int mtk_spi_probe(struct platform_device *pdev)
ret = clk_prepare_enable(mdata->spi_clk);
if (ret < 0) {
dev_err(dev, "failed to enable spi_clk (%d)\n", ret);
- goto err_disable_spi_hclk;
- }
-
- ret = clk_set_parent(mdata->sel_clk, mdata->parent_clk);
- if (ret < 0) {
- dev_err(dev, "failed to clk_set_parent (%d)\n", ret);
- goto err_disable_spi_clk;
+ clk_disable_unprepare(mdata->spi_hclk);
+ return ret;
}
mdata->spi_clk_hz = clk_get_rate(mdata->spi_clk);
@@ -1261,10 +1262,6 @@ static int mtk_spi_probe(struct platform_device *pdev)
err_disable_runtime_pm:
pm_runtime_disable(dev);
-err_disable_spi_clk:
- clk_disable_unprepare(mdata->spi_clk);
-err_disable_spi_hclk:
- clk_disable_unprepare(mdata->spi_hclk);
return ret;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 5/8] spi: mt65xx: Move pm_runtime_enable() call to remove all gotos
2022-04-07 11:44 [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation AngeloGioacchino Del Regno
` (3 preceding siblings ...)
2022-04-07 11:44 ` [PATCH v2 4/8] spi: mt65xx: Move clock parent setting to remove clock disable gotos AngeloGioacchino Del Regno
@ 2022-04-07 11:44 ` AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 6/8] spi: mt65xx: Simplify probe function with dev_err_probe() AngeloGioacchino Del Regno
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-04-07 11:44 UTC (permalink / raw)
To: broonie
Cc: matthias.bgg, linux-spi, linux-arm-kernel, linux-mediatek,
linux-kernel, nfraprado, kernel, AngeloGioacchino Del Regno
The last goto in the probe function can be removed by calling
pm_runtime_enable() right before devm_spi_register_master(), as
only some init checks were being performed after enabling pm.
This is a cleanup and brings no functional changes.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/spi/spi-mt65xx.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c
index a2daba3bba91..3f307b25433d 100644
--- a/drivers/spi/spi-mt65xx.c
+++ b/drivers/spi/spi-mt65xx.c
@@ -1224,22 +1224,18 @@ static int mtk_spi_probe(struct platform_device *pdev)
clk_disable_unprepare(mdata->spi_hclk);
}
- pm_runtime_enable(dev);
-
if (mdata->dev_comp->need_pad_sel) {
if (mdata->pad_num != master->num_chipselect) {
dev_err(dev,
"pad_num does not match num_chipselect(%d != %d)\n",
mdata->pad_num, master->num_chipselect);
- ret = -EINVAL;
- goto err_disable_runtime_pm;
+ return -EINVAL;
}
if (!master->cs_gpiods && master->num_chipselect > 1) {
dev_err(dev,
"cs_gpios not specified and num_chipselect > 1\n");
- ret = -EINVAL;
- goto err_disable_runtime_pm;
+ return -EINVAL;
}
}
@@ -1252,18 +1248,16 @@ static int mtk_spi_probe(struct platform_device *pdev)
dev_notice(dev, "SPI dma_set_mask(%d) failed, ret:%d\n",
addr_bits, ret);
+ pm_runtime_enable(dev);
+
ret = devm_spi_register_master(dev, master);
if (ret) {
+ pm_runtime_disable(dev);
dev_err(dev, "failed to register master (%d)\n", ret);
- goto err_disable_runtime_pm;
+ return ret;
}
return 0;
-
-err_disable_runtime_pm:
- pm_runtime_disable(dev);
-
- return ret;
}
static int mtk_spi_remove(struct platform_device *pdev)
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 6/8] spi: mt65xx: Simplify probe function with dev_err_probe()
2022-04-07 11:44 [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation AngeloGioacchino Del Regno
` (4 preceding siblings ...)
2022-04-07 11:44 ` [PATCH v2 5/8] spi: mt65xx: Move pm_runtime_enable() call to remove all gotos AngeloGioacchino Del Regno
@ 2022-04-07 11:44 ` AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 7/8] spi: mt65xx: Add kerneldoc for driver structures AngeloGioacchino Del Regno
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-04-07 11:44 UTC (permalink / raw)
To: broonie
Cc: matthias.bgg, linux-spi, linux-arm-kernel, linux-mediatek,
linux-kernel, nfraprado, kernel, AngeloGioacchino Del Regno
Switch to dev_err_probe() to remove all dev_err() -> return repeated
patterns, simplifying and shortening the probe function.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/spi/spi-mt65xx.c | 86 ++++++++++++++--------------------------
1 file changed, 29 insertions(+), 57 deletions(-)
diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c
index 3f307b25433d..111ce351359a 100644
--- a/drivers/spi/spi-mt65xx.c
+++ b/drivers/spi/spi-mt65xx.c
@@ -1088,10 +1088,8 @@ static int mtk_spi_probe(struct platform_device *pdev)
int i, irq, ret, addr_bits;
master = devm_spi_alloc_master(dev, sizeof(*mdata));
- if (!master) {
- dev_err(dev, "failed to alloc spi master\n");
- return -ENOMEM;
- }
+ if (!master)
+ return dev_err_probe(dev, -ENOMEM, "failed to alloc spi master\n");
master->auto_runtime_pm = true;
master->dev.of_node = dev->of_node;
@@ -1125,11 +1123,9 @@ static int mtk_spi_probe(struct platform_device *pdev)
if (mdata->dev_comp->need_pad_sel) {
mdata->pad_num = of_property_count_u32_elems(dev->of_node,
"mediatek,pad-select");
- if (mdata->pad_num < 0) {
- dev_err(dev,
+ if (mdata->pad_num < 0)
+ return dev_err_probe(dev, -EINVAL,
"No 'mediatek,pad-select' property\n");
- return -EINVAL;
- }
mdata->pad_sel = devm_kmalloc_array(dev, mdata->pad_num,
sizeof(u32), GFP_KERNEL);
@@ -1140,11 +1136,10 @@ static int mtk_spi_probe(struct platform_device *pdev)
of_property_read_u32_index(dev->of_node,
"mediatek,pad-select",
i, &mdata->pad_sel[i]);
- if (mdata->pad_sel[i] > MT8173_SPI_MAX_PAD_SEL) {
- dev_err(dev, "wrong pad-sel[%d]: %u\n",
- i, mdata->pad_sel[i]);
- return -EINVAL;
- }
+ if (mdata->pad_sel[i] > MT8173_SPI_MAX_PAD_SEL)
+ return dev_err_probe(dev, -EINVAL,
+ "wrong pad-sel[%d]: %u\n",
+ i, mdata->pad_sel[i]);
}
}
@@ -1162,56 +1157,38 @@ static int mtk_spi_probe(struct platform_device *pdev)
ret = devm_request_irq(dev, irq, mtk_spi_interrupt,
IRQF_TRIGGER_NONE, dev_name(dev), master);
- if (ret) {
- dev_err(dev, "failed to register irq (%d)\n", ret);
- return ret;
- }
+ if (ret)
+ return dev_err_probe(dev, ret, "failed to register irq\n");
mdata->parent_clk = devm_clk_get(dev, "parent-clk");
- if (IS_ERR(mdata->parent_clk)) {
- ret = PTR_ERR(mdata->parent_clk);
- dev_err(dev, "failed to get parent-clk: %d\n", ret);
- return ret;
- }
+ if (IS_ERR(mdata->parent_clk))
+ return dev_err_probe(dev, PTR_ERR(mdata->parent_clk),
+ "failed to get parent-clk\n");
mdata->sel_clk = devm_clk_get(dev, "sel-clk");
- if (IS_ERR(mdata->sel_clk)) {
- ret = PTR_ERR(mdata->sel_clk);
- dev_err(dev, "failed to get sel-clk: %d\n", ret);
- return ret;
- }
+ if (IS_ERR(mdata->sel_clk))
+ return dev_err_probe(dev, PTR_ERR(mdata->sel_clk), "failed to get sel-clk\n");
mdata->spi_clk = devm_clk_get(dev, "spi-clk");
- if (IS_ERR(mdata->spi_clk)) {
- ret = PTR_ERR(mdata->spi_clk);
- dev_err(dev, "failed to get spi-clk: %d\n", ret);
- return ret;
- }
+ if (IS_ERR(mdata->spi_clk))
+ return dev_err_probe(dev, PTR_ERR(mdata->spi_clk), "failed to get spi-clk\n");
mdata->spi_hclk = devm_clk_get_optional(dev, "hclk");
- if (IS_ERR(mdata->spi_hclk)) {
- ret = PTR_ERR(mdata->spi_hclk);
- dev_err(dev, "failed to get hclk: %d\n", ret);
- return ret;
- }
+ if (IS_ERR(mdata->spi_hclk))
+ return dev_err_probe(dev, PTR_ERR(mdata->spi_hclk), "failed to get hclk\n");
ret = clk_set_parent(mdata->sel_clk, mdata->parent_clk);
- if (ret < 0) {
- dev_err(dev, "failed to clk_set_parent (%d)\n", ret);
- return ret;
- }
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "failed to clk_set_parent\n");
ret = clk_prepare_enable(mdata->spi_hclk);
- if (ret < 0) {
- dev_err(dev, "failed to enable hclk (%d)\n", ret);
- return ret;
- }
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "failed to enable hclk\n");
ret = clk_prepare_enable(mdata->spi_clk);
if (ret < 0) {
- dev_err(dev, "failed to enable spi_clk (%d)\n", ret);
clk_disable_unprepare(mdata->spi_hclk);
- return ret;
+ return dev_err_probe(dev, ret, "failed to enable spi_clk\n");
}
mdata->spi_clk_hz = clk_get_rate(mdata->spi_clk);
@@ -1225,18 +1202,14 @@ static int mtk_spi_probe(struct platform_device *pdev)
}
if (mdata->dev_comp->need_pad_sel) {
- if (mdata->pad_num != master->num_chipselect) {
- dev_err(dev,
+ if (mdata->pad_num != master->num_chipselect)
+ return dev_err_probe(dev, -EINVAL,
"pad_num does not match num_chipselect(%d != %d)\n",
mdata->pad_num, master->num_chipselect);
- return -EINVAL;
- }
- if (!master->cs_gpiods && master->num_chipselect > 1) {
- dev_err(dev,
+ if (!master->cs_gpiods && master->num_chipselect > 1)
+ return dev_err_probe(dev, -EINVAL,
"cs_gpios not specified and num_chipselect > 1\n");
- return -EINVAL;
- }
}
if (mdata->dev_comp->dma_ext)
@@ -1253,8 +1226,7 @@ static int mtk_spi_probe(struct platform_device *pdev)
ret = devm_spi_register_master(dev, master);
if (ret) {
pm_runtime_disable(dev);
- dev_err(dev, "failed to register master (%d)\n", ret);
- return ret;
+ return dev_err_probe(dev, ret, "failed to register master\n");
}
return 0;
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 7/8] spi: mt65xx: Add kerneldoc for driver structures
2022-04-07 11:44 [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation AngeloGioacchino Del Regno
` (5 preceding siblings ...)
2022-04-07 11:44 ` [PATCH v2 6/8] spi: mt65xx: Simplify probe function with dev_err_probe() AngeloGioacchino Del Regno
@ 2022-04-07 11:44 ` AngeloGioacchino Del Regno
2022-04-07 11:44 ` [PATCH v2 8/8] spi: mt65xx: Fix definitions indentation AngeloGioacchino Del Regno
2022-04-20 21:41 ` [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation Mark Brown
8 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-04-07 11:44 UTC (permalink / raw)
To: broonie
Cc: matthias.bgg, linux-spi, linux-arm-kernel, linux-mediatek,
linux-kernel, nfraprado, kernel, AngeloGioacchino Del Regno
One of the two structures was already partially documented, but not
in kerneldoc format: enhance readability by adding the missing
documentation bits and use kerneldoc.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/spi/spi-mt65xx.c | 39 ++++++++++++++++++++++++++++++++++-----
1 file changed, 34 insertions(+), 5 deletions(-)
diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c
index 111ce351359a..b1472556c5b0 100644
--- a/drivers/spi/spi-mt65xx.c
+++ b/drivers/spi/spi-mt65xx.c
@@ -110,20 +110,49 @@
#define DMA_ADDR_EXT_BITS (36)
#define DMA_ADDR_DEF_BITS (32)
+/**
+ * struct mtk_spi_compatible - device data structure
+ * @need_pad_sel: Enable pad (pins) selection in SPI controller
+ * @must_tx: Must explicitly send dummy TX bytes to do RX only transfer
+ * @enhance_timing: Enable adjusting cfg register to enhance time accuracy
+ * @dma_ext: DMA address extension supported
+ * @no_need_unprepare: Don't unprepare the SPI clk during runtime
+ * @ipm_design: Adjust/extend registers to support IPM design IP features
+ */
struct mtk_spi_compatible {
bool need_pad_sel;
- /* Must explicitly send dummy Tx bytes to do Rx only transfer */
bool must_tx;
- /* some IC design adjust cfg register to enhance time accuracy */
bool enhance_timing;
- /* some IC support DMA addr extension */
bool dma_ext;
- /* some IC no need unprepare SPI clk */
bool no_need_unprepare;
- /* IPM design adjust and extend register to support more features */
bool ipm_design;
};
+/**
+ * struct mtk_spi - SPI driver instance
+ * @base: Start address of the SPI controller registers
+ * @state: SPI controller state
+ * @pad_num: Number of pad_sel entries
+ * @pad_sel: Groups of pins to select
+ * @parent_clk: Parent of sel_clk
+ * @sel_clk: SPI master mux clock
+ * @spi_clk: Peripheral clock
+ * @spi_hclk: AHB bus clock
+ * @cur_transfer: Currently processed SPI transfer
+ * @xfer_len: Number of bytes to transfer
+ * @num_xfered: Number of transferred bytes
+ * @tx_sgl: TX transfer scatterlist
+ * @rx_sgl: RX transfer scatterlist
+ * @tx_sgl_len: Size of TX DMA transfer
+ * @rx_sgl_len: Size of RX DMA transfer
+ * @dev_comp: Device data structure
+ * @spi_clk_hz: Current SPI clock in Hz
+ * @spimem_done: SPI-MEM operation completion
+ * @use_spimem: Enables SPI-MEM
+ * @dev: Device pointer
+ * @tx_dma: DMA start for SPI-MEM TX
+ * @rx_dma: DMA start for SPI-MEM RX
+ */
struct mtk_spi {
void __iomem *base;
u32 state;
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 8/8] spi: mt65xx: Fix definitions indentation
2022-04-07 11:44 [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation AngeloGioacchino Del Regno
` (6 preceding siblings ...)
2022-04-07 11:44 ` [PATCH v2 7/8] spi: mt65xx: Add kerneldoc for driver structures AngeloGioacchino Del Regno
@ 2022-04-07 11:44 ` AngeloGioacchino Del Regno
2022-04-20 21:41 ` [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation Mark Brown
8 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-04-07 11:44 UTC (permalink / raw)
To: broonie
Cc: matthias.bgg, linux-spi, linux-arm-kernel, linux-mediatek,
linux-kernel, nfraprado, kernel, AngeloGioacchino Del Regno
Some definitions at the beginning of this file were wrongly
indented: fix the indentation for all of these and, while at
it, also move the MTK_SPI_IDLE and MTK_SPI_PAUSED down, as to
implicitly group the hardware related definitions to the
software (driver) related ones.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/spi/spi-mt65xx.c | 154 +++++++++++++++++++--------------------
1 file changed, 77 insertions(+), 77 deletions(-)
diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c
index b1472556c5b0..0a3b9f7eed30 100644
--- a/drivers/spi/spi-mt65xx.c
+++ b/drivers/spi/spi-mt65xx.c
@@ -20,95 +20,95 @@
#include <linux/spi/spi-mem.h>
#include <linux/dma-mapping.h>
-#define SPI_CFG0_REG 0x0000
-#define SPI_CFG1_REG 0x0004
-#define SPI_TX_SRC_REG 0x0008
-#define SPI_RX_DST_REG 0x000c
-#define SPI_TX_DATA_REG 0x0010
-#define SPI_RX_DATA_REG 0x0014
-#define SPI_CMD_REG 0x0018
-#define SPI_STATUS0_REG 0x001c
-#define SPI_PAD_SEL_REG 0x0024
-#define SPI_CFG2_REG 0x0028
-#define SPI_TX_SRC_REG_64 0x002c
-#define SPI_RX_DST_REG_64 0x0030
-#define SPI_CFG3_IPM_REG 0x0040
-
-#define SPI_CFG0_SCK_HIGH_OFFSET 0
-#define SPI_CFG0_SCK_LOW_OFFSET 8
-#define SPI_CFG0_CS_HOLD_OFFSET 16
-#define SPI_CFG0_CS_SETUP_OFFSET 24
-#define SPI_ADJUST_CFG0_CS_HOLD_OFFSET 0
-#define SPI_ADJUST_CFG0_CS_SETUP_OFFSET 16
-
-#define SPI_CFG1_CS_IDLE_OFFSET 0
-#define SPI_CFG1_PACKET_LOOP_OFFSET 8
-#define SPI_CFG1_PACKET_LENGTH_OFFSET 16
-#define SPI_CFG1_GET_TICK_DLY_OFFSET 29
-#define SPI_CFG1_GET_TICK_DLY_OFFSET_V1 30
-
-#define SPI_CFG1_GET_TICK_DLY_MASK 0xe0000000
-#define SPI_CFG1_GET_TICK_DLY_MASK_V1 0xc0000000
-
-#define SPI_CFG1_CS_IDLE_MASK 0xff
-#define SPI_CFG1_PACKET_LOOP_MASK 0xff00
-#define SPI_CFG1_PACKET_LENGTH_MASK 0x3ff0000
-#define SPI_CFG1_IPM_PACKET_LENGTH_MASK GENMASK(31, 16)
-#define SPI_CFG2_SCK_HIGH_OFFSET 0
-#define SPI_CFG2_SCK_LOW_OFFSET 16
-
-#define SPI_CMD_ACT BIT(0)
-#define SPI_CMD_RESUME BIT(1)
-#define SPI_CMD_RST BIT(2)
-#define SPI_CMD_PAUSE_EN BIT(4)
-#define SPI_CMD_DEASSERT BIT(5)
-#define SPI_CMD_SAMPLE_SEL BIT(6)
-#define SPI_CMD_CS_POL BIT(7)
-#define SPI_CMD_CPHA BIT(8)
-#define SPI_CMD_CPOL BIT(9)
-#define SPI_CMD_RX_DMA BIT(10)
-#define SPI_CMD_TX_DMA BIT(11)
-#define SPI_CMD_TXMSBF BIT(12)
-#define SPI_CMD_RXMSBF BIT(13)
-#define SPI_CMD_RX_ENDIAN BIT(14)
-#define SPI_CMD_TX_ENDIAN BIT(15)
-#define SPI_CMD_FINISH_IE BIT(16)
-#define SPI_CMD_PAUSE_IE BIT(17)
-#define SPI_CMD_IPM_NONIDLE_MODE BIT(19)
-#define SPI_CMD_IPM_SPIM_LOOP BIT(21)
-#define SPI_CMD_IPM_GET_TICKDLY_OFFSET 22
+#define SPI_CFG0_REG 0x0000
+#define SPI_CFG1_REG 0x0004
+#define SPI_TX_SRC_REG 0x0008
+#define SPI_RX_DST_REG 0x000c
+#define SPI_TX_DATA_REG 0x0010
+#define SPI_RX_DATA_REG 0x0014
+#define SPI_CMD_REG 0x0018
+#define SPI_STATUS0_REG 0x001c
+#define SPI_PAD_SEL_REG 0x0024
+#define SPI_CFG2_REG 0x0028
+#define SPI_TX_SRC_REG_64 0x002c
+#define SPI_RX_DST_REG_64 0x0030
+#define SPI_CFG3_IPM_REG 0x0040
+
+#define SPI_CFG0_SCK_HIGH_OFFSET 0
+#define SPI_CFG0_SCK_LOW_OFFSET 8
+#define SPI_CFG0_CS_HOLD_OFFSET 16
+#define SPI_CFG0_CS_SETUP_OFFSET 24
+#define SPI_ADJUST_CFG0_CS_HOLD_OFFSET 0
+#define SPI_ADJUST_CFG0_CS_SETUP_OFFSET 16
+
+#define SPI_CFG1_CS_IDLE_OFFSET 0
+#define SPI_CFG1_PACKET_LOOP_OFFSET 8
+#define SPI_CFG1_PACKET_LENGTH_OFFSET 16
+#define SPI_CFG1_GET_TICK_DLY_OFFSET 29
+#define SPI_CFG1_GET_TICK_DLY_OFFSET_V1 30
+
+#define SPI_CFG1_GET_TICK_DLY_MASK 0xe0000000
+#define SPI_CFG1_GET_TICK_DLY_MASK_V1 0xc0000000
+
+#define SPI_CFG1_CS_IDLE_MASK 0xff
+#define SPI_CFG1_PACKET_LOOP_MASK 0xff00
+#define SPI_CFG1_PACKET_LENGTH_MASK 0x3ff0000
+#define SPI_CFG1_IPM_PACKET_LENGTH_MASK GENMASK(31, 16)
+#define SPI_CFG2_SCK_HIGH_OFFSET 0
+#define SPI_CFG2_SCK_LOW_OFFSET 16
+
+#define SPI_CMD_ACT BIT(0)
+#define SPI_CMD_RESUME BIT(1)
+#define SPI_CMD_RST BIT(2)
+#define SPI_CMD_PAUSE_EN BIT(4)
+#define SPI_CMD_DEASSERT BIT(5)
+#define SPI_CMD_SAMPLE_SEL BIT(6)
+#define SPI_CMD_CS_POL BIT(7)
+#define SPI_CMD_CPHA BIT(8)
+#define SPI_CMD_CPOL BIT(9)
+#define SPI_CMD_RX_DMA BIT(10)
+#define SPI_CMD_TX_DMA BIT(11)
+#define SPI_CMD_TXMSBF BIT(12)
+#define SPI_CMD_RXMSBF BIT(13)
+#define SPI_CMD_RX_ENDIAN BIT(14)
+#define SPI_CMD_TX_ENDIAN BIT(15)
+#define SPI_CMD_FINISH_IE BIT(16)
+#define SPI_CMD_PAUSE_IE BIT(17)
+#define SPI_CMD_IPM_NONIDLE_MODE BIT(19)
+#define SPI_CMD_IPM_SPIM_LOOP BIT(21)
+#define SPI_CMD_IPM_GET_TICKDLY_OFFSET 22
#define SPI_CMD_IPM_GET_TICKDLY_MASK GENMASK(24, 22)
#define PIN_MODE_CFG(x) ((x) / 2)
-#define SPI_CFG3_IPM_HALF_DUPLEX_DIR BIT(2)
-#define SPI_CFG3_IPM_HALF_DUPLEX_EN BIT(3)
-#define SPI_CFG3_IPM_XMODE_EN BIT(4)
-#define SPI_CFG3_IPM_NODATA_FLAG BIT(5)
-#define SPI_CFG3_IPM_CMD_BYTELEN_OFFSET 8
-#define SPI_CFG3_IPM_ADDR_BYTELEN_OFFSET 12
+#define SPI_CFG3_IPM_HALF_DUPLEX_DIR BIT(2)
+#define SPI_CFG3_IPM_HALF_DUPLEX_EN BIT(3)
+#define SPI_CFG3_IPM_XMODE_EN BIT(4)
+#define SPI_CFG3_IPM_NODATA_FLAG BIT(5)
+#define SPI_CFG3_IPM_CMD_BYTELEN_OFFSET 8
+#define SPI_CFG3_IPM_ADDR_BYTELEN_OFFSET 12
-#define SPI_CFG3_IPM_CMD_PIN_MODE_MASK GENMASK(1, 0)
-#define SPI_CFG3_IPM_CMD_BYTELEN_MASK GENMASK(11, 8)
-#define SPI_CFG3_IPM_ADDR_BYTELEN_MASK GENMASK(15, 12)
+#define SPI_CFG3_IPM_CMD_PIN_MODE_MASK GENMASK(1, 0)
+#define SPI_CFG3_IPM_CMD_BYTELEN_MASK GENMASK(11, 8)
+#define SPI_CFG3_IPM_ADDR_BYTELEN_MASK GENMASK(15, 12)
-#define MT8173_SPI_MAX_PAD_SEL 3
+#define MT8173_SPI_MAX_PAD_SEL 3
-#define MTK_SPI_PAUSE_INT_STATUS 0x2
+#define MTK_SPI_PAUSE_INT_STATUS 0x2
-#define MTK_SPI_IDLE 0
-#define MTK_SPI_PAUSED 1
+#define MTK_SPI_MAX_FIFO_SIZE 32U
+#define MTK_SPI_PACKET_SIZE 1024
+#define MTK_SPI_IPM_PACKET_SIZE SZ_64K
+#define MTK_SPI_IPM_PACKET_LOOP SZ_256
-#define MTK_SPI_MAX_FIFO_SIZE 32U
-#define MTK_SPI_PACKET_SIZE 1024
-#define MTK_SPI_IPM_PACKET_SIZE SZ_64K
-#define MTK_SPI_IPM_PACKET_LOOP SZ_256
+#define MTK_SPI_IDLE 0
+#define MTK_SPI_PAUSED 1
-#define MTK_SPI_32BITS_MASK (0xffffffff)
+#define MTK_SPI_32BITS_MASK (0xffffffff)
-#define DMA_ADDR_EXT_BITS (36)
-#define DMA_ADDR_DEF_BITS (32)
+#define DMA_ADDR_EXT_BITS (36)
+#define DMA_ADDR_DEF_BITS (32)
/**
* struct mtk_spi_compatible - device data structure
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation
2022-04-07 11:44 [PATCH v2 0/8] MediaTek SPI controller cleanups and documentation AngeloGioacchino Del Regno
` (7 preceding siblings ...)
2022-04-07 11:44 ` [PATCH v2 8/8] spi: mt65xx: Fix definitions indentation AngeloGioacchino Del Regno
@ 2022-04-20 21:41 ` Mark Brown
8 siblings, 0 replies; 10+ messages in thread
From: Mark Brown @ 2022-04-20 21:41 UTC (permalink / raw)
To: angelogioacchino.delregno
Cc: linux-mediatek, nfraprado, linux-arm-kernel, kernel,
matthias.bgg, linux-kernel, linux-spi
On Thu, 7 Apr 2022 13:44:20 +0200, AngeloGioacchino Del Regno wrote:
> This series performs some cleanups to the spi-mt65xx driver, removing
> all gotos, simplifying the probe function and adding kerneldoc to the
> driver structures.
>
> Changes in v2:
> - Rebased over next-20220407 for new spimem commits
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
Thanks!
[1/8] spi: mt65xx: Simplify probe function with devm_spi_alloc_master
commit: ace145802350e0f8eec4a40522a1b1d5a4f90114
[2/8] spi: mt65xx: Switch to device_get_match_data()
commit: 7f7cdef7288a7da117a54249b680b04f503f8a67
[3/8] spi: mt65xx: Add and use pointer to struct device in mtk_spi_probe()
commit: 6b4440584b92851af44b235ad825c8554dd143c0
[4/8] spi: mt65xx: Move clock parent setting to remove clock disable gotos
commit: 5dee8bb8d14dc7536cec58cc1d94148dce89dfc5
[5/8] spi: mt65xx: Move pm_runtime_enable() call to remove all gotos
commit: 5088b3136439896c2858173402f32dada4db69f6
[6/8] spi: mt65xx: Simplify probe function with dev_err_probe()
commit: 20cdbb80095711decef6401f839aca8476be1910
[7/8] spi: mt65xx: Add kerneldoc for driver structures
commit: 3c5cd2e23fe4c840b437496e131e1f74afaebbbd
[8/8] spi: mt65xx: Fix definitions indentation
commit: 8e8a9e364a3b3053f689a649df1107e61b9e3bed
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 10+ messages in thread