mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
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:
commit
38b75d81a0
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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[] = {
|
||||
|
|
|
|||
|
|
@ -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) \
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user