ASoC: Intel: catpt: Code cleanup

Cezary Rojewski <cezary.rojewski@intel.com> says:

All of the changes found here are cleanups and from functional
perspective, have no impact - either unused code is being removed or
existing code is altered to use helpers/macros to improve readability.

Collateral of recent fixes [1].  There is one more patchset with similar
goal following this one.  Before the team managed to actually fix the
problem, a number of changes were added to make the code easier to
understand for people who are not the author (me).

[1]: https://lore.kernel.org/linux-sound/20260528083444.1439233-1-cezary.rojewski@intel.com/

Link: https://patch.msgid.link/20260603085827.1964796-1-cezary.rojewski@intel.com
This commit is contained in:
Mark Brown 2026-06-04 17:00:29 +01:00
commit 38b75d81a0
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0
7 changed files with 28 additions and 82 deletions

View File

@ -17,7 +17,6 @@ struct catpt_dev;
extern const struct attribute_group *catpt_attr_groups[];
void catpt_sram_init(struct resource *sram, u32 start, u32 size);
void catpt_sram_free(struct resource *sram);
struct resource *
catpt_request_region(struct resource *root, resource_size_t size);

View File

@ -233,12 +233,9 @@ static void catpt_dev_init(struct catpt_dev *cdev, struct device *dev,
cdev->devfmt[CATPT_SSP_IFACE_0].iface = UINT_MAX;
cdev->devfmt[CATPT_SSP_IFACE_1].iface = UINT_MAX;
resource_set_range(&cdev->dram, spec->host_dram_offset, catpt_dram_size(cdev));
resource_set_range(&cdev->iram, spec->host_iram_offset, catpt_iram_size(cdev));
catpt_ipc_init(&cdev->ipc, dev);
catpt_sram_init(&cdev->dram, spec->host_dram_offset,
catpt_dram_size(cdev));
catpt_sram_init(&cdev->iram, spec->host_iram_offset,
catpt_iram_size(cdev));
}
static int catpt_acpi_probe(struct platform_device *pdev)
@ -287,7 +284,7 @@ static int catpt_acpi_probe(struct platform_device *pdev)
if (ret)
return ret;
cdev->dxbuf_vaddr = dmam_alloc_coherent(dev, catpt_dram_size(cdev),
cdev->dxbuf_vaddr = dmam_alloc_coherent(dev, resource_size(&cdev->dram),
&cdev->dxbuf_paddr, GFP_KERNEL);
if (!cdev->dxbuf_vaddr)
return -ENOMEM;

View File

@ -5,6 +5,7 @@
// Author: Cezary Rojewski <cezary.rojewski@intel.com>
//
#include <linux/cleanup.h>
#include <linux/devcoredump.h>
#include <linux/dma-mapping.h>
#include <linux/firmware.h>
@ -43,7 +44,6 @@ struct dma_chan *catpt_dma_request_config_chan(struct catpt_dev *cdev)
}
memset(&config, 0, sizeof(config));
config.direction = DMA_MEM_TO_DEV;
config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
config.src_maxburst = 16;
@ -121,7 +121,7 @@ int catpt_dmac_probe(struct catpt_dev *cdev)
if (!dmac)
return -ENOMEM;
dmac->regs = cdev->lpe_ba + cdev->spec->host_dma_offset[CATPT_DMA_DEVID];
dmac->regs = catpt_dma_addr(cdev, CATPT_DMA_DEVID);
dmac->dev = cdev->dev;
dmac->irq = cdev->irq;
@ -256,17 +256,15 @@ static int catpt_dsp_select_lpclock(struct catpt_dev *cdev, bool lp, bool waiti)
u32 mask, reg, val;
int ret;
mutex_lock(&cdev->clk_mutex);
guard(mutex)(&cdev->clk_mutex);
val = lp ? CATPT_CS_LPCS : 0;
reg = catpt_readl_shim(cdev, CS1) & CATPT_CS_LPCS;
dev_dbg(cdev->dev, "LPCS [0x%08lx] 0x%08x -> 0x%08x",
CATPT_CS_LPCS, reg, val);
if (reg == val) {
mutex_unlock(&cdev->clk_mutex);
if (reg == val)
return 0;
}
if (waiti) {
/* wait for DSP to signal WAIT state */
@ -276,10 +274,8 @@ static int catpt_dsp_select_lpclock(struct catpt_dev *cdev, bool lp, bool waiti)
if (ret) {
dev_warn(cdev->dev, "await WAITI timeout\n");
/* no signal - only high clock selection allowed */
if (lp) {
mutex_unlock(&cdev->clk_mutex);
if (lp)
return 0;
}
}
}
@ -303,7 +299,6 @@ static int catpt_dsp_select_lpclock(struct catpt_dev *cdev, bool lp, bool waiti)
/* update PLL accordingly */
cdev->spec->pll_shutdown(cdev, lp);
mutex_unlock(&cdev->clk_mutex);
return 0;
}
@ -502,7 +497,7 @@ int catpt_coredump(struct catpt_dev *cdev)
hdr->size = resource_size(&cdev->iram);
pos += sizeof(*hdr);
memcpy_fromio(pos, cdev->lpe_ba + cdev->iram.start, hdr->size);
memcpy_fromio(pos, catpt_iram_addr(cdev), hdr->size);
pos += hdr->size;
hdr = (struct catpt_dump_section_hdr *)pos;
@ -512,7 +507,7 @@ int catpt_coredump(struct catpt_dev *cdev)
hdr->size = resource_size(&cdev->dram);
pos += sizeof(*hdr);
memcpy_fromio(pos, cdev->lpe_ba + cdev->dram.start, hdr->size);
memcpy_fromio(pos, catpt_dram_addr(cdev), hdr->size);
pos += hdr->size;
hdr = (struct catpt_dump_section_hdr *)pos;

View File

@ -128,14 +128,9 @@ int catpt_dsp_send_msg_timeout(struct catpt_dev *cdev,
struct catpt_ipc_msg request,
struct catpt_ipc_msg *reply, int timeout, const char *name)
{
struct catpt_ipc *ipc = &cdev->ipc;
int ret;
guard(mutex)(&cdev->ipc.mutex);
mutex_lock(&ipc->mutex);
ret = catpt_dsp_do_send_msg(cdev, request, reply, timeout, name);
mutex_unlock(&ipc->mutex);
return ret;
return catpt_dsp_do_send_msg(cdev, request, reply, timeout, name);
}
int catpt_dsp_send_msg(struct catpt_dev *cdev, struct catpt_ipc_msg request,

View File

@ -7,6 +7,7 @@
#include <linux/dma-mapping.h>
#include <linux/firmware.h>
#include <linux/ioport.h>
#include <linux/slab.h>
#include "core.h"
#include "registers.h"
@ -50,12 +51,6 @@ struct catpt_fw_block_hdr {
u32 rsvd;
} __packed;
void catpt_sram_init(struct resource *sram, u32 start, u32 size)
{
sram->start = start;
sram->end = start + size - 1;
}
void catpt_sram_free(struct resource *sram)
{
struct resource *res, *save;

View File

@ -99,19 +99,15 @@ catpt_get_stream_template(struct snd_pcm_substream *substream)
}
/* Caller responsible for holding ->stream_mutex. */
struct catpt_stream_runtime *
catpt_stream_find(struct catpt_dev *cdev, u8 stream_hw_id)
struct catpt_stream_runtime *catpt_stream_find(struct catpt_dev *cdev, u8 stream_hw_id)
{
struct catpt_stream_runtime *pos, *result = NULL;
struct catpt_stream_runtime *stream;
list_for_each_entry(pos, &cdev->stream_list, node) {
if (pos->info.stream_hw_id == stream_hw_id) {
result = pos;
break;
}
}
list_for_each_entry(stream, &cdev->stream_list, node)
if (stream->info.stream_hw_id == stream_hw_id)
return stream;
return result;
return NULL;
}
/* Caller responsible for holding ->stream_mutex. */
@ -972,32 +968,7 @@ static int catpt_loopback_mute_put(struct snd_kcontrol *kctl, struct snd_ctl_ele
return 1;
}
static int catpt_waves_switch_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
return 0;
}
static int catpt_waves_switch_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
return 0;
}
static int catpt_waves_param_get(struct snd_kcontrol *kcontrol,
unsigned int __user *bytes,
unsigned int size)
{
return 0;
}
static int catpt_waves_param_put(struct snd_kcontrol *kcontrol,
const unsigned int __user *bytes,
unsigned int size)
{
return 0;
}
static bool catpt_loopback_mute;
static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(catpt_volume_tlv, -9000, 300, 1);
#define CATPT_VOLUME_CTL(kname, pname) { \
@ -1014,20 +985,12 @@ static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(catpt_volume_tlv, -9000, 300, 1);
}
static const struct snd_kcontrol_new component_kcontrols[] = {
/* Master volume (mixer stream) */
CATPT_VOLUME_CTL("Master Playback Volume", MIXER),
/* Individual volume controls for offload and capture */
CATPT_VOLUME_CTL("Media0 Playback Volume", OFFLOAD1),
CATPT_VOLUME_CTL("Media1 Playback Volume", OFFLOAD2),
CATPT_VOLUME_CTL("Mic Capture Volume", CAPTURE1),
SOC_SINGLE_BOOL_EXT("Loopback Mute", (unsigned long)&(bool[1]) {0},
catpt_loopback_mute_get, catpt_loopback_mute_put),
/* Enable or disable WAVES module */
SOC_SINGLE_BOOL_EXT("Waves Switch", 0,
catpt_waves_switch_get, catpt_waves_switch_put),
/* WAVES module parameter control */
SND_SOC_BYTES_TLV("Waves Set Param", 128,
catpt_waves_param_get, catpt_waves_param_put),
CATPT_VOLUME_CTL("Master Playback Volume", MIXER),
CATPT_VOLUME_CTL("Media0 Playback Volume", OFFLOAD1),
CATPT_VOLUME_CTL("Media1 Playback Volume", OFFLOAD2),
CATPT_VOLUME_CTL("Mic Capture Volume", CAPTURE1),
SOC_SINGLE_BOOL_EXT("Loopback Mute", (unsigned long)&catpt_loopback_mute,
catpt_loopback_mute_get, catpt_loopback_mute_put),
};
static const struct snd_soc_dapm_widget component_widgets[] = {

View File

@ -144,6 +144,8 @@
#define catpt_dram_addr(cdev) \
((cdev)->lpe_ba + (cdev)->spec->host_dram_offset)
#define catpt_iram_addr(cdev) \
((cdev)->lpe_ba + (cdev)->spec->host_iram_offset)
#define catpt_shim_addr(cdev) \
((cdev)->lpe_ba + (cdev)->spec->host_shim_offset)
#define catpt_dma_addr(cdev, dma) \