* [PATCH 2/6] mfd: cs42l43: Use __u8 type rather than u8 for firmware interface
2024-01-24 15:12 [PATCH 1/6] mfd: cs42l43: Tidy up header includes Charles Keepax
@ 2024-01-24 15:12 ` Charles Keepax
2024-01-24 15:12 ` [PATCH 3/6] mfd: cs42l43: Add time postfixes on defines Charles Keepax
` (4 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Charles Keepax @ 2024-01-24 15:12 UTC (permalink / raw)
To: lee, broonie; +Cc: alsa-devel, patches, linux-kernel, linux-spi
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
drivers/mfd/cs42l43.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mfd/cs42l43.c b/drivers/mfd/cs42l43.c
index 4e2bc5ad244a5..65a331481d975 100644
--- a/drivers/mfd/cs42l43.c
+++ b/drivers/mfd/cs42l43.c
@@ -55,8 +55,8 @@
struct cs42l43_patch_header {
__le16 version;
__le16 size;
- u8 reserved;
- u8 secure;
+ __u8 reserved;
+ __u8 secure;
__le16 bss_size;
__le32 apply_addr;
__le32 checksum;
--
2.30.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 3/6] mfd: cs42l43: Add time postfixes on defines
2024-01-24 15:12 [PATCH 1/6] mfd: cs42l43: Tidy up header includes Charles Keepax
2024-01-24 15:12 ` [PATCH 2/6] mfd: cs42l43: Use __u8 type rather than u8 for firmware interface Charles Keepax
@ 2024-01-24 15:12 ` Charles Keepax
2024-01-24 15:12 ` [PATCH 4/6] mfd: cs42l43: Add some missing dev_err_probes Charles Keepax
` (3 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Charles Keepax @ 2024-01-24 15:12 UTC (permalink / raw)
To: lee, broonie; +Cc: alsa-devel, patches, linux-kernel, linux-spi
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
drivers/mfd/cs42l43.c | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/drivers/mfd/cs42l43.c b/drivers/mfd/cs42l43.c
index 65a331481d975..aea0f8f485785 100644
--- a/drivers/mfd/cs42l43.c
+++ b/drivers/mfd/cs42l43.c
@@ -27,30 +27,30 @@
#include "cs42l43.h"
-#define CS42L43_RESET_DELAY 20
+#define CS42L43_RESET_DELAY_MS 20
-#define CS42L43_SDW_ATTACH_TIMEOUT 500
-#define CS42L43_SDW_DETACH_TIMEOUT 100
+#define CS42L43_SDW_ATTACH_TIMEOUT_MS 500
+#define CS42L43_SDW_DETACH_TIMEOUT_MS 100
#define CS42L43_MCU_BOOT_STAGE1 1
#define CS42L43_MCU_BOOT_STAGE2 2
#define CS42L43_MCU_BOOT_STAGE3 3
#define CS42L43_MCU_BOOT_STAGE4 4
-#define CS42L43_MCU_POLL 5000
-#define CS42L43_MCU_CMD_TIMEOUT 20000
+#define CS42L43_MCU_POLL_US 5000
+#define CS42L43_MCU_CMD_TIMEOUT_US 20000
#define CS42L43_MCU_UPDATE_FORMAT 3
#define CS42L43_MCU_UPDATE_OFFSET 0x100000
-#define CS42L43_MCU_UPDATE_TIMEOUT 500000
+#define CS42L43_MCU_UPDATE_TIMEOUT_US 500000
#define CS42L43_MCU_UPDATE_RETRIES 5
#define CS42L43_MCU_SUPPORTED_REV 0x2105
#define CS42L43_MCU_SHADOW_REGS_REQUIRED_REV 0x2200
#define CS42L43_MCU_SUPPORTED_BIOS_REV 0x0001
-#define CS42L43_VDDP_DELAY 50
-#define CS42L43_VDDD_DELAY 1000
+#define CS42L43_VDDP_DELAY_US 50
+#define CS42L43_VDDD_DELAY_US 1000
-#define CS42L43_AUTOSUSPEND_TIME 250
+#define CS42L43_AUTOSUSPEND_TIME_MS 250
struct cs42l43_patch_header {
__le16 version;
@@ -538,10 +538,10 @@ static int cs42l43_soft_reset(struct cs42l43 *cs42l43)
regcache_cache_only(cs42l43->regmap, true);
regmap_multi_reg_write_bypassed(cs42l43->regmap, reset, ARRAY_SIZE(reset));
- msleep(CS42L43_RESET_DELAY);
+ msleep(CS42L43_RESET_DELAY_MS);
if (cs42l43->sdw) {
- unsigned long timeout = msecs_to_jiffies(CS42L43_SDW_DETACH_TIMEOUT);
+ unsigned long timeout = msecs_to_jiffies(CS42L43_SDW_DETACH_TIMEOUT_MS);
unsigned long time;
time = wait_for_completion_timeout(&cs42l43->device_detach, timeout);
@@ -561,7 +561,7 @@ static int cs42l43_soft_reset(struct cs42l43 *cs42l43)
static int cs42l43_wait_for_attach(struct cs42l43 *cs42l43)
{
if (!cs42l43->attached) {
- unsigned long timeout = msecs_to_jiffies(CS42L43_SDW_ATTACH_TIMEOUT);
+ unsigned long timeout = msecs_to_jiffies(CS42L43_SDW_ATTACH_TIMEOUT_MS);
unsigned long time;
time = wait_for_completion_timeout(&cs42l43->device_attach, timeout);
@@ -603,7 +603,7 @@ static int cs42l43_mcu_stage_2_3(struct cs42l43 *cs42l43, bool shadow)
ret = regmap_read_poll_timeout(cs42l43->regmap, CS42L43_BOOT_STATUS,
val, (val == CS42L43_MCU_BOOT_STAGE3),
- CS42L43_MCU_POLL, CS42L43_MCU_CMD_TIMEOUT);
+ CS42L43_MCU_POLL_US, CS42L43_MCU_CMD_TIMEOUT_US);
if (ret) {
dev_err(cs42l43->dev, "Failed to move to stage 3: %d, 0x%x\n", ret, val);
return ret;
@@ -652,7 +652,7 @@ static int cs42l43_mcu_disable(struct cs42l43 *cs42l43)
ret = regmap_read_poll_timeout(cs42l43->regmap, CS42L43_SOFT_INT_SHADOW, val,
(val & CS42L43_CONTROL_APPLIED_INT_MASK),
- CS42L43_MCU_POLL, CS42L43_MCU_CMD_TIMEOUT);
+ CS42L43_MCU_POLL_US, CS42L43_MCU_CMD_TIMEOUT_US);
if (ret) {
dev_err(cs42l43->dev, "Failed to disable firmware: %d, 0x%x\n", ret, val);
return ret;
@@ -696,7 +696,7 @@ static void cs42l43_mcu_load_firmware(const struct firmware *firmware, void *con
ret = regmap_read_poll_timeout(cs42l43->regmap, CS42L43_SOFT_INT_SHADOW, val,
(val & CS42L43_PATCH_APPLIED_INT_MASK),
- CS42L43_MCU_POLL, CS42L43_MCU_UPDATE_TIMEOUT);
+ CS42L43_MCU_POLL_US, CS42L43_MCU_UPDATE_TIMEOUT_US);
if (ret) {
dev_err(cs42l43->dev, "Failed to update firmware: %d, 0x%x\n", ret, val);
cs42l43->firmware_error = ret;
@@ -957,7 +957,7 @@ static int cs42l43_power_up(struct cs42l43 *cs42l43)
}
/* vdd-p must be on for 50uS before any other supply */
- usleep_range(CS42L43_VDDP_DELAY, 2 * CS42L43_VDDP_DELAY);
+ usleep_range(CS42L43_VDDP_DELAY_US, 2 * CS42L43_VDDP_DELAY_US);
gpiod_set_value_cansleep(cs42l43->reset, 1);
@@ -973,7 +973,7 @@ static int cs42l43_power_up(struct cs42l43 *cs42l43)
goto err_core_supplies;
}
- usleep_range(CS42L43_VDDD_DELAY, 2 * CS42L43_VDDD_DELAY);
+ usleep_range(CS42L43_VDDD_DELAY_US, 2 * CS42L43_VDDD_DELAY_US);
return 0;
@@ -1057,7 +1057,7 @@ int cs42l43_dev_probe(struct cs42l43 *cs42l43)
if (ret)
return ret;
- pm_runtime_set_autosuspend_delay(cs42l43->dev, CS42L43_AUTOSUSPEND_TIME);
+ pm_runtime_set_autosuspend_delay(cs42l43->dev, CS42L43_AUTOSUSPEND_TIME_MS);
pm_runtime_use_autosuspend(cs42l43->dev);
pm_runtime_set_active(cs42l43->dev);
/*
--
2.30.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 4/6] mfd: cs42l43: Add some missing dev_err_probes
2024-01-24 15:12 [PATCH 1/6] mfd: cs42l43: Tidy up header includes Charles Keepax
2024-01-24 15:12 ` [PATCH 2/6] mfd: cs42l43: Use __u8 type rather than u8 for firmware interface Charles Keepax
2024-01-24 15:12 ` [PATCH 3/6] mfd: cs42l43: Add time postfixes on defines Charles Keepax
@ 2024-01-24 15:12 ` Charles Keepax
2024-01-24 15:12 ` [PATCH 5/6] mfd: cs42l43: Handle error from devm_pm_runtime_enable Charles Keepax
` (2 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Charles Keepax @ 2024-01-24 15:12 UTC (permalink / raw)
To: lee, broonie; +Cc: alsa-devel, patches, linux-kernel, linux-spi
Use of dev_err_probe was missed in the i2c and sdw parts of the code,
update the missing parts.
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
drivers/mfd/cs42l43-i2c.c | 9 +++------
drivers/mfd/cs42l43-sdw.c | 9 +++------
2 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/drivers/mfd/cs42l43-i2c.c b/drivers/mfd/cs42l43-i2c.c
index 7162274a0b551..c9e4ea76149a8 100644
--- a/drivers/mfd/cs42l43-i2c.c
+++ b/drivers/mfd/cs42l43-i2c.c
@@ -38,7 +38,6 @@ static const struct regmap_config cs42l43_i2c_regmap = {
static int cs42l43_i2c_probe(struct i2c_client *i2c)
{
struct cs42l43 *cs42l43;
- int ret;
cs42l43 = devm_kzalloc(&i2c->dev, sizeof(*cs42l43), GFP_KERNEL);
if (!cs42l43)
@@ -50,11 +49,9 @@ static int cs42l43_i2c_probe(struct i2c_client *i2c)
cs42l43->attached = true;
cs42l43->regmap = devm_regmap_init_i2c(i2c, &cs42l43_i2c_regmap);
- if (IS_ERR(cs42l43->regmap)) {
- ret = PTR_ERR(cs42l43->regmap);
- dev_err(cs42l43->dev, "Failed to allocate regmap: %d\n", ret);
- return ret;
- }
+ if (IS_ERR(cs42l43->regmap))
+ return dev_err_probe(cs42l43->dev, PTR_ERR(cs42l43->regmap),
+ "Failed to allocate regmap\n");
return cs42l43_dev_probe(cs42l43);
}
diff --git a/drivers/mfd/cs42l43-sdw.c b/drivers/mfd/cs42l43-sdw.c
index d6962a5a35f65..65f7b1d782486 100644
--- a/drivers/mfd/cs42l43-sdw.c
+++ b/drivers/mfd/cs42l43-sdw.c
@@ -171,7 +171,6 @@ static int cs42l43_sdw_probe(struct sdw_slave *sdw, const struct sdw_device_id *
{
struct cs42l43 *cs42l43;
struct device *dev = &sdw->dev;
- int ret;
cs42l43 = devm_kzalloc(dev, sizeof(*cs42l43), GFP_KERNEL);
if (!cs42l43)
@@ -181,11 +180,9 @@ static int cs42l43_sdw_probe(struct sdw_slave *sdw, const struct sdw_device_id *
cs42l43->sdw = sdw;
cs42l43->regmap = devm_regmap_init_sdw(sdw, &cs42l43_sdw_regmap);
- if (IS_ERR(cs42l43->regmap)) {
- ret = PTR_ERR(cs42l43->regmap);
- dev_err(cs42l43->dev, "Failed to allocate regmap: %d\n", ret);
- return ret;
- }
+ if (IS_ERR(cs42l43->regmap))
+ return dev_err_probe(cs42l43->dev, PTR_ERR(cs42l43->regmap),
+ "Failed to allocate regmap\n");
return cs42l43_dev_probe(cs42l43);
}
--
2.30.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 5/6] mfd: cs42l43: Handle error from devm_pm_runtime_enable
2024-01-24 15:12 [PATCH 1/6] mfd: cs42l43: Tidy up header includes Charles Keepax
` (2 preceding siblings ...)
2024-01-24 15:12 ` [PATCH 4/6] mfd: cs42l43: Add some missing dev_err_probes Charles Keepax
@ 2024-01-24 15:12 ` Charles Keepax
2024-01-24 15:12 ` [PATCH 6/6] spi: cs42l43: Tidy up header includes Charles Keepax
2024-01-24 15:20 ` [PATCH 1/6] mfd: " Charles Keepax
5 siblings, 0 replies; 10+ messages in thread
From: Charles Keepax @ 2024-01-24 15:12 UTC (permalink / raw)
To: lee, broonie; +Cc: alsa-devel, patches, linux-kernel, linux-spi
As it devm_pm_runtime_enable can fail due to memory allocations, it is
best to handle the error.
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
drivers/mfd/cs42l43.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/mfd/cs42l43.c b/drivers/mfd/cs42l43.c
index aea0f8f485785..56bd9dbbe10b0 100644
--- a/drivers/mfd/cs42l43.c
+++ b/drivers/mfd/cs42l43.c
@@ -1065,7 +1065,9 @@ int cs42l43_dev_probe(struct cs42l43 *cs42l43)
* the boot work runs.
*/
pm_runtime_get_noresume(cs42l43->dev);
- devm_pm_runtime_enable(cs42l43->dev);
+ ret = devm_pm_runtime_enable(cs42l43->dev);
+ if (ret)
+ return ret;
queue_work(system_long_wq, &cs42l43->boot_work);
--
2.30.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 6/6] spi: cs42l43: Tidy up header includes
2024-01-24 15:12 [PATCH 1/6] mfd: cs42l43: Tidy up header includes Charles Keepax
` (3 preceding siblings ...)
2024-01-24 15:12 ` [PATCH 5/6] mfd: cs42l43: Handle error from devm_pm_runtime_enable Charles Keepax
@ 2024-01-24 15:12 ` Charles Keepax
2024-01-24 15:16 ` Mark Brown
2024-01-24 15:20 ` [PATCH 1/6] mfd: " Charles Keepax
5 siblings, 1 reply; 10+ messages in thread
From: Charles Keepax @ 2024-01-24 15:12 UTC (permalink / raw)
To: lee, broonie; +Cc: alsa-devel, patches, linux-kernel, linux-spi
Including some missing headers.
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
The changes to the MFD headers necessitate the inclusion of of.h here to
keep things building, hence my including this SPI change in the this MFD
series. The rest of the SPI fixups will be sent separately, as they are
also not dependent on this change.
Thanks,
Charles
drivers/spi/spi-cs42l43.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/spi/spi-cs42l43.c b/drivers/spi/spi-cs42l43.c
index d239fc5a49ccc..fb62807fc991c 100644
--- a/drivers/spi/spi-cs42l43.c
+++ b/drivers/spi/spi-cs42l43.c
@@ -11,7 +11,9 @@
#include <linux/errno.h>
#include <linux/mfd/cs42l43.h>
#include <linux/mfd/cs42l43-regs.h>
+#include <linux/mod_devicetable.h>
#include <linux/module.h>
+#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
--
2.30.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 6/6] spi: cs42l43: Tidy up header includes
2024-01-24 15:12 ` [PATCH 6/6] spi: cs42l43: Tidy up header includes Charles Keepax
@ 2024-01-24 15:16 ` Mark Brown
2024-01-24 15:20 ` Charles Keepax
0 siblings, 1 reply; 10+ messages in thread
From: Mark Brown @ 2024-01-24 15:16 UTC (permalink / raw)
To: Charles Keepax; +Cc: lee, alsa-devel, patches, linux-kernel, linux-spi
[-- Attachment #1: Type: text/plain, Size: 735 bytes --]
On Wed, Jan 24, 2024 at 03:12:22PM +0000, Charles Keepax wrote:
> Including some missing headers.
>
> Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> ---
>
> The changes to the MFD headers necessitate the inclusion of of.h here to
> keep things building, hence my including this SPI change in the this MFD
> series. The rest of the SPI fixups will be sent separately, as they are
> also not dependent on this change.
If this is needed to keep things building then presumably it should be
before or part of whatever change introduces the requirement, otherwise
we have a bisection issue. Anyway:
Acked-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 6/6] spi: cs42l43: Tidy up header includes
2024-01-24 15:16 ` Mark Brown
@ 2024-01-24 15:20 ` Charles Keepax
0 siblings, 0 replies; 10+ messages in thread
From: Charles Keepax @ 2024-01-24 15:20 UTC (permalink / raw)
To: Mark Brown; +Cc: lee, alsa-devel, patches, linux-kernel, linux-spi
On Wed, Jan 24, 2024 at 03:16:25PM +0000, Mark Brown wrote:
> On Wed, Jan 24, 2024 at 03:12:22PM +0000, Charles Keepax wrote:
> > Including some missing headers.
> >
> > Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> > Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> > ---
> >
> > The changes to the MFD headers necessitate the inclusion of of.h here to
> > keep things building, hence my including this SPI change in the this MFD
> > series. The rest of the SPI fixups will be sent separately, as they are
> > also not dependent on this change.
>
> If this is needed to keep things building then presumably it should be
> before or part of whatever change introduces the requirement, otherwise
> we have a bisection issue. Anyway:
>
> Acked-by: Mark Brown <broonie@kernel.org>
Yup it should will, I forgot to CC Andy too, so this is a good
excuse to resend :-)
Thanks,
Charles
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/6] mfd: cs42l43: Tidy up header includes
2024-01-24 15:12 [PATCH 1/6] mfd: cs42l43: Tidy up header includes Charles Keepax
` (4 preceding siblings ...)
2024-01-24 15:12 ` [PATCH 6/6] spi: cs42l43: Tidy up header includes Charles Keepax
@ 2024-01-24 15:20 ` Charles Keepax
2024-01-24 20:31 ` Andy Shevchenko
5 siblings, 1 reply; 10+ messages in thread
From: Charles Keepax @ 2024-01-24 15:20 UTC (permalink / raw)
To: lee, broonie, andy.shevchenko
Cc: alsa-devel, patches, linux-kernel, linux-spi
On Wed, Jan 24, 2024 at 03:12:17PM +0000, Charles Keepax wrote:
> Use more forward declarations, move header guards to cover other
> includes, and rely less on including headers through other headers.
>
> Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> ---
Apologies Andy, I forgot to CC you on this series, hopefully you
can pick up off the list, but let me know if you want me to
resend.
Thanks,
Charles
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/6] mfd: cs42l43: Tidy up header includes
2024-01-24 15:20 ` [PATCH 1/6] mfd: " Charles Keepax
@ 2024-01-24 20:31 ` Andy Shevchenko
0 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2024-01-24 20:31 UTC (permalink / raw)
To: Charles Keepax; +Cc: lee, broonie, alsa-devel, patches, linux-kernel, linux-spi
On Wed, Jan 24, 2024 at 5:20 PM Charles Keepax
<ckeepax@opensource.cirrus.com> wrote:
> On Wed, Jan 24, 2024 at 03:12:17PM +0000, Charles Keepax wrote:
> > Use more forward declarations, move header guards to cover other
> > includes, and rely less on including headers through other headers.
...
> Apologies Andy, I forgot to CC you on this series, hopefully you
> can pick up off the list, but let me know if you want me to
> resend.
Suggested-by automatically being converted to Cc, how do you send your series?
P.S> I saw that you sent a v2 already, am I right?
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 10+ messages in thread