soundwire: intel: use FIELD_{GET|PREP}

use FIELD_{GET|PREP} in intel driver to get/set field values instead of
open coding masks and shift operations.

Signed-off-by: Vinod Koul <vkoul@kernel.org>
Tested-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200903114504.1202143-8-vkoul@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
Vinod Koul 2020-09-03 17:15:02 +05:30
parent 3cf25d63b1
commit 3b4979cabd

View File

@ -329,8 +329,7 @@ static int intel_link_power_up(struct sdw_intel *sdw)
/* set SyncPRD period */ /* set SyncPRD period */
sync_reg = intel_readl(shim, SDW_SHIM_SYNC); sync_reg = intel_readl(shim, SDW_SHIM_SYNC);
sync_reg |= (syncprd << sync_reg |= FIELD_PREP(SDW_SHIM_SYNC_SYNCPRD, syncprd);
SDW_REG_SHIFT(SDW_SHIM_SYNC_SYNCPRD));
/* Set SyncCPU bit */ /* Set SyncCPU bit */
sync_reg |= SDW_SHIM_SYNC_SYNCCPU; sync_reg |= SDW_SHIM_SYNC_SYNCCPU;
@ -340,10 +339,8 @@ static int intel_link_power_up(struct sdw_intel *sdw)
link_control = intel_readl(shim, SDW_SHIM_LCTL); link_control = intel_readl(shim, SDW_SHIM_LCTL);
/* only power-up enabled links */ /* only power-up enabled links */
spa_mask = sdw->link_res->link_mask << spa_mask = FIELD_PREP(SDW_SHIM_LCTL_SPA_MASK, sdw->link_res->link_mask);
SDW_REG_SHIFT(SDW_SHIM_LCTL_SPA_MASK); cpa_mask = FIELD_PREP(SDW_SHIM_LCTL_CPA_MASK, sdw->link_res->link_mask);
cpa_mask = sdw->link_res->link_mask <<
SDW_REG_SHIFT(SDW_SHIM_LCTL_CPA_MASK);
link_control |= spa_mask; link_control |= spa_mask;
@ -451,7 +448,7 @@ static int intel_shim_init(struct sdw_intel *sdw, bool clock_stop)
intel_shim_glue_to_master_ip(sdw); intel_shim_glue_to_master_ip(sdw);
act |= 0x1 << SDW_REG_SHIFT(SDW_SHIM_CTMCTL_DOAIS); act |= FIELD_PREP(SDW_SHIM_CTMCTL_DOAIS, 0x1);
act |= SDW_SHIM_CTMCTL_DACTQE; act |= SDW_SHIM_CTMCTL_DACTQE;
act |= SDW_SHIM_CTMCTL_DODS; act |= SDW_SHIM_CTMCTL_DODS;
intel_writew(shim, SDW_SHIM_CTMCTL(link_id), act); intel_writew(shim, SDW_SHIM_CTMCTL(link_id), act);
@ -514,10 +511,8 @@ static int intel_link_power_down(struct sdw_intel *sdw)
link_control = intel_readl(shim, SDW_SHIM_LCTL); link_control = intel_readl(shim, SDW_SHIM_LCTL);
/* only power-down enabled links */ /* only power-down enabled links */
spa_mask = (~sdw->link_res->link_mask) << spa_mask = FIELD_PREP(SDW_SHIM_LCTL_SPA_MASK, ~sdw->link_res->link_mask);
SDW_REG_SHIFT(SDW_SHIM_LCTL_SPA_MASK); cpa_mask = FIELD_PREP(SDW_SHIM_LCTL_CPA_MASK, sdw->link_res->link_mask);
cpa_mask = sdw->link_res->link_mask <<
SDW_REG_SHIFT(SDW_SHIM_LCTL_CPA_MASK);
link_control &= spa_mask; link_control &= spa_mask;
@ -604,12 +599,9 @@ static void intel_pdi_init(struct sdw_intel *sdw,
/* PCM Stream Capability */ /* PCM Stream Capability */
pcm_cap = intel_readw(shim, SDW_SHIM_PCMSCAP(link_id)); pcm_cap = intel_readw(shim, SDW_SHIM_PCMSCAP(link_id));
config->pcm_bd = (pcm_cap & SDW_SHIM_PCMSCAP_BSS) >> config->pcm_bd = FIELD_GET(SDW_SHIM_PCMSCAP_BSS, pcm_cap);
SDW_REG_SHIFT(SDW_SHIM_PCMSCAP_BSS); config->pcm_in = FIELD_GET(SDW_SHIM_PCMSCAP_ISS, pcm_cap);
config->pcm_in = (pcm_cap & SDW_SHIM_PCMSCAP_ISS) >> config->pcm_out = FIELD_GET(SDW_SHIM_PCMSCAP_OSS, pcm_cap);
SDW_REG_SHIFT(SDW_SHIM_PCMSCAP_ISS);
config->pcm_out = (pcm_cap & SDW_SHIM_PCMSCAP_OSS) >>
SDW_REG_SHIFT(SDW_SHIM_PCMSCAP_OSS);
dev_dbg(sdw->cdns.dev, "PCM cap bd:%d in:%d out:%d\n", dev_dbg(sdw->cdns.dev, "PCM cap bd:%d in:%d out:%d\n",
config->pcm_bd, config->pcm_in, config->pcm_out); config->pcm_bd, config->pcm_in, config->pcm_out);
@ -617,12 +609,9 @@ static void intel_pdi_init(struct sdw_intel *sdw,
/* PDM Stream Capability */ /* PDM Stream Capability */
pdm_cap = intel_readw(shim, SDW_SHIM_PDMSCAP(link_id)); pdm_cap = intel_readw(shim, SDW_SHIM_PDMSCAP(link_id));
config->pdm_bd = (pdm_cap & SDW_SHIM_PDMSCAP_BSS) >> config->pdm_bd = FIELD_GET(SDW_SHIM_PDMSCAP_BSS, pdm_cap);
SDW_REG_SHIFT(SDW_SHIM_PDMSCAP_BSS); config->pdm_in = FIELD_GET(SDW_SHIM_PDMSCAP_ISS, pdm_cap);
config->pdm_in = (pdm_cap & SDW_SHIM_PDMSCAP_ISS) >> config->pdm_out = FIELD_GET(SDW_SHIM_PDMSCAP_OSS, pdm_cap);
SDW_REG_SHIFT(SDW_SHIM_PDMSCAP_ISS);
config->pdm_out = (pdm_cap & SDW_SHIM_PDMSCAP_OSS) >>
SDW_REG_SHIFT(SDW_SHIM_PDMSCAP_OSS);
dev_dbg(sdw->cdns.dev, "PDM cap bd:%d in:%d out:%d\n", dev_dbg(sdw->cdns.dev, "PDM cap bd:%d in:%d out:%d\n",
config->pdm_bd, config->pdm_in, config->pdm_out); config->pdm_bd, config->pdm_in, config->pdm_out);
@ -649,8 +638,7 @@ intel_pdi_get_ch_cap(struct sdw_intel *sdw, unsigned int pdi_num, bool pcm)
} else { } else {
count = intel_readw(shim, SDW_SHIM_PDMSCAP(link_id)); count = intel_readw(shim, SDW_SHIM_PDMSCAP(link_id));
count = ((count & SDW_SHIM_PDMSCAP_CPSS) >> count = FIELD_GET(SDW_SHIM_PDMSCAP_CPSS, count);
SDW_REG_SHIFT(SDW_SHIM_PDMSCAP_CPSS));
} }
/* zero based values for channel count in register */ /* zero based values for channel count in register */
@ -724,10 +712,9 @@ intel_pdi_shim_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi)
else else
pdi_conf &= ~(SDW_SHIM_PCMSYCM_DIR); pdi_conf &= ~(SDW_SHIM_PCMSYCM_DIR);
pdi_conf |= (pdi->intel_alh_id << pdi_conf |= FIELD_PREP(SDW_SHIM_PCMSYCM_STREAM, pdi->intel_alh_id);
SDW_REG_SHIFT(SDW_SHIM_PCMSYCM_STREAM)); pdi_conf |= FIELD_PREP(SDW_SHIM_PCMSYCM_LCHN, pdi->l_ch_num);
pdi_conf |= (pdi->l_ch_num << SDW_REG_SHIFT(SDW_SHIM_PCMSYCM_LCHN)); pdi_conf |= FIELD_PREP(SDW_SHIM_PCMSYCM_HCHN, pdi->h_ch_num);
pdi_conf |= (pdi->h_ch_num << SDW_REG_SHIFT(SDW_SHIM_PCMSYCM_HCHN));
intel_writew(shim, SDW_SHIM_PCMSYCHM(link_id, pdi->num), pdi_conf); intel_writew(shim, SDW_SHIM_PCMSYCHM(link_id, pdi->num), pdi_conf);
} }
@ -747,11 +734,8 @@ intel_pdi_alh_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi)
/* Program Stream config ALH register */ /* Program Stream config ALH register */
conf = intel_readl(alh, SDW_ALH_STRMZCFG(pdi->intel_alh_id)); conf = intel_readl(alh, SDW_ALH_STRMZCFG(pdi->intel_alh_id));
conf |= (SDW_ALH_STRMZCFG_DMAT_VAL << conf |= FIELD_PREP(SDW_ALH_STRMZCFG_DMAT, SDW_ALH_STRMZCFG_DMAT_VAL);
SDW_REG_SHIFT(SDW_ALH_STRMZCFG_DMAT)); conf |= FIELD_PREP(SDW_ALH_STRMZCFG_CHN, pdi->ch_count - 1);
conf |= ((pdi->ch_count - 1) <<
SDW_REG_SHIFT(SDW_ALH_STRMZCFG_CHN));
intel_writel(alh, SDW_ALH_STRMZCFG(pdi->intel_alh_id), conf); intel_writel(alh, SDW_ALH_STRMZCFG(pdi->intel_alh_id), conf);
} }