Quelle sdhci-msm.c
Sprache: C
|
|
// SPDX-License-Identifier: GPL-2.0-only
/*
* drivers/mmc/host/sdhci-msm.c - Qualcomm SDHCI Platform driver
*
* Copyright (java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
*/
/h>
include.>
#i<//consumer
#include <inux.hjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
#nclude linux/pm_opp>
#nclude <inux/reseth
#include<inuxiopollh
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
##include"-."
#include <linux/of.h>
#include <linux/pinctrl/consumer.h>
#include <linux/reset.h>
#include <soc/qcom/ice.h>
#include "sdhci-cqhci.h"
#include "sdhci-pltfm.hi"dhcipltfm.java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
# c.h
#define define CORE_VERSION_MAJOR_SHIFT 28
#define CORE_VERSION_MAJOR_SHIFT 28
#define #define CORE_VERSION_MAJOR_MASK0 < CORE_VERSION_MAJOR_SHIFTjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
#define java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
#define CORE_MCI_GENERICS 0x70
#define #define SWITCHABLE_SIGNALING_VOLTAGE(29)
#define HC_MODE_EN 0x1
#define CORE_POWER 0x0
#define define FF_CLK_SW_RST_DIS BIT(13)
#define java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
#define CORE_PWRCTL_BUS_OFF BIT(0#efine BIT()
#define CORE_PWRCTL_BUS_ONdefine BIT()
#define CORE_PWRCTL_IO_LOW BIT(2)
#define #define CORE_PWRCTL_BUS_SUC BIT(java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
#define CORE_PWRCTL_BUS_SUCCESSCORE_PWRCTL_IO_SUCCESS 2java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
#define REQ_BUS_OFF BIT()
#define CORE_PWRCTL_IO_SUCCESS BIT(2)
##defineREQ_BUS_ON ()
#define define REQ_IO_LOW()
#define REQ_BUS_ON BIT(1)
#define REQ_IO_LOW #define REQ_IO_HIGH BIT
##define 0
# java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
# 16
#java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 29
#define define CORE_CK_OUT_EN 18)
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 28
defineBIT17
#define java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 37
BIT19java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
#define # BIT()
#define CORE_CMD_DAT_TRACK_SEL BIT(d 29)
#java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 38
java.lang.NullPointerException
#define define CORE_CLK_PWRSAVEjava.lang.StringIndexOutOfBoundsException: Range [28, 24) out of bounds for length 31
#3<8
#define(<8java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
#define definejava.lang.StringIndexOutOfBoundsException: Range [34, 30) out of bounds for length 38
#define BIAS_OK_SIGNAL #define CORE_HC_SELECT_IN_SDR50 (4 <19)
#define DLL_CONFIG_3_LOW_FREQ_VALdefineCORE_HC_SELECT_IN_HS400( <19
#define 0x10
#define CORE_VENDOR_SPEC_POR_VAL 0xa9c
)
#define CORE_1_8V_SUPPORT26
#CORE_VOLT_SUPPORT(java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 65
3<8java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
java.lang.NullPointerException
# BIT16
#definejava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 41
java.lang.NullPointerException
# java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 41
#define CORE_CSR_CDC_COARSE_CAL_CFGxjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
#define CORE_3_0V_SUPPORT BIT(25)
#26)
#define define CORE_CSR_CDC_STATUS0 0x164
##0java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
##definejava.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 35
#java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 37
#define CORE_CSR_CDC_CTLR_CFG1 0x134
0138
#define CORE_TIMER_ENA BIT(16)
#define CORE_CSR_CDC_CAL_TIMER_CFG1 0x13C
java.lang.StringIndexOutOfBoundsException: Range [31, 7) out of bounds for length 39
d xjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
##400000
xjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
djava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 50
#define24
##definejava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 59
d (java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
#define BIT1
#define MSM_PWR_IRQ_TIMEOUT_MS5000
java.lang.NullPointerException
# 3)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#define java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
#definejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#define java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
#java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 27
#(xf< java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 50
d 24
#define CMUX_SHIFT_PHASE_MASK (7 <<java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
##definejava.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 49
/* Timeout value to avoid infinite waiting for pwr_irq */;
#IMEOUT_MS 5000
/* Max load for eMMC Vdd supply */
#defineu32java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19
/* Max load for eMMC Vdd-io supply */
#define u32 core_pwrctl_status
/* Max load for SD Vdd supply */
#define ;
/* Max load for SD Vdd-io supply */
#define SD_VQMMC_MAX_LOAD_UA 22000
u32java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
msm_hostjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
#core_vendor_spec_func2
_->val java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
/* CQHCI vendor specific registers */java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
#define CQHCI_VENDOR_CFG1u32core_ddr_config;
#define u32 core_dll_usr_ctl; /* Present on SDCC5.1 onwards */
tructsdhci_msm_offsetjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
u32 core_mci_data_cnt.=0java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
u32java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 27
u32;
,
1 <31,
u32 core_testbus_config;
u32 java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 31
.java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 29
,
core_pwrctl_ctl = 0x24c,
u32 core_pwrctl_mask;
u32 core_pwrctl_clear;
u32 ;
u32 .core_dll_config 0x200,
u32 .core_dll_status=0208,
u32 core_dll_status;
u32 core_vendor_spec;
u32 core_vendor_spec_adma_err_addr0;
u32 .core_vendor_spec=0x20c,
u32 core_vendor_spec_func2;
u32 ;
u32 .core_vendor_spec_adm =0218
u32 java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
u32 core_dll_config_2;
u32 core_dll_config_3;
u32 core_ddr_config_old; /* Applicable to sdcc minor ver < 0x49 */
u32 core_ddr_config;
u32 core_dll_usr_ctl; /* Present on SDCC5.1 onwards */
};
static struct sdhci_msm_offset sdhci_msm_v5_offset=java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
.java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 28
.java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 26
. = 0,
.core_mci_version = 0x318,
. =x78,
. =java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
.core_mci_version ,
. =( <31)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
.core_testbus_ena=1 <3,
.core_pwrctl_status = 0x240,
.core_pwrctl_mask = 0.core_testbus_sel2 = (1 <,
.core_pwrctl_clear = 0x248,
,
.core_sdcc_debug_reg = =x,
.core_pwrctl_clear0
.java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 26
. xcjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
.java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 27
.core_vendor_spec_adma_err_addr1java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
.java.lang.StringIndexOutOfBoundsException: Range [28, 24) out of bounds for length 33
.core_vendor_spec3
.core_dll_config_2 java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
. x250
.core_dll_config_2}
.core_dll_config_3
=x25c
.core_dll_usr_ctl = *java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 63
;
static const ;
.core_hc_mode = 0x78,
.java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
=0
.core_mci_fifo_cnt = 0x44,
.core_mci_version = 0x050,
.core_generics = 0x70,
.core_testbus_config = 0x0cc,
.* and choose the data_struc DT
.core_testbus_ena = (1 << 3),
.core_testbus_sel2 = (1 << 4),
.core_pwrctl_status = 0xdc,
.core_pwrctl_mask = 0struct sdhci_msm_variant_info {
.core_pwrctl_clear ;
.core_pwrctl_ctl = 0xe8,
. restore_dll_configjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
.core_dll_config 0x100,
.core_dll_status = 0x108,
.core_vendor_spec = 0x10c sdhci_msm_offset *ffsetjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
.java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
.struct platform_device *pdev
. =0x110
pwr_irq /* power irq */
.core_ddr_200_cfg = 0 struct clk *bus_clk; /* SD bus *
.core_vendor_spec3= 010java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
.core_dll_config_2 = 0x1b4
.core_ddr_config_old =#fdef
. structqcom_ice *ce;
};
struct sdhci_msm_variant_ops {
#ndif
void unsigned long ;
u32 offset);
};
/*
* bool ;
structure based onversion info .
*/
struct sdhci_msm_variant_info {
bool mci_removed;
bool;
curr_io_level;
const struct pwr_irq_wait;
}
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Range [23, 7) out of bounds for length 30
void const *;
int pwr_irq; /* power irq */
clk *;/
struct clk *xo_clk; /* TCXO clk needed for FLL feature of cm_dll*/use_cdr;
/* core, iface, cal and sleep clocks */ updated_ddr_cfg;
struct clk_bulk_databulk_clks[4];
#ifdef ;
struct java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
#endif}
unsigned java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
struct mmc_host *mmc;
bool use_14lpp_dll_reset;
bool tuning_donejava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
boolcalibration_donejava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
u8 saved_tuning_phase;
bool use_cdclp533;
u32 java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 2
curr_io_level;
wait_queue_head_t pwr_irq_wait;
bool pwr_irq_flag;
u32 caps_0;
bool mci_removed;
bool * core_mem region before wasjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
const struct (struct *ostjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
const sdhci_pltfm_host ()java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
bool use_cdr;
u32 transfer_mode;
bool updated_ddr_cfg;
bool uses_tassadar_dll;
u32 java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
;
bool java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
}
*s *ostjava.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
return msm_host->offset;
}
/*
* APIs struct *ltfm_host = sdhci_priv()
* core_mem
*/
static u32 sdhci_msm_mci_variant_readl_relaxed(struct sdhci_host *host,
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
{
struct sdhci_pltfm_host *pltfm_host
static (struct sdhci_host*ost)
{
}
static u32 sdhci_msm_v5_variant_readl_relaxed(struct sdhci_host *host,
u32 offset)
{
return readl_relaxed(host->ioaddr + offset);
}
static void sdhci_msm_mci_variant_writel_relaxed(u32 *usesthe fasterclock(00400) forsomeof parts and
struct sdhci_host *host, u32 offset)
{
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host);
writel_relaxed * send the actualrequired 50200)the .
}
static void sdhci_msm_v5_variant_writel_relaxed(u32 val,
struct sdhci_host *host, u32 offset)
{
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
static unsigned int msm_get_clock_mult_for_bus_mode(struct sdhci_host *host)
{
struct mmc_ios ios = host->mmc->ios;
/*
host-fjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 38
clockwill setformode
* uses the faster clock(100/400MHz) for some of its parts and
* struct=;
*/
if (ios.timing = *java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 64
ios.timing == MMC_TIMING_MMC_DDR52 ||
.= java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 42
host->flags & SDHCI_HS400_TUNING0].java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
return 2;
return 1;
}
static void msm_set_clock_rate_for_bus_mode(struct sdhci_host *host,
unsignedint clock)
{
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
*=;
struct mmc_ios curr_ios = host->mmc->ios;
struct clk *core_clk = msm_host->bulk_clks[0].clk;
achieved_rate
unsigned int desired_rate;
intintjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
intrc java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 60
mult = msm_get_clock_mult_for_bus_mode(host);
desired_rate = clock * mult;
rc =java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 60
if (rc) {
pr_err("%s: Failed to set clock at rate %u at pr_err(% to set at java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 61
mmc_hostname(host->mmc), desired_rate, curr_ios.timing);
return;
}
/*
* Qualcomm clock mmc_hostname(host, java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 65
*>=java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
*itjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
*/
achieved_rate =
if( java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 34
(s Hz% Hz"
mmc_hostname(host->mmc), desired_rate, achieved_rate)
host-mmc>actual_clock =achieved_rate /mult;
/* Stash the rate we requested to use in sdhci_msm_runtime_resume() */
java.lang.StringIndexOutOfBoundsException: Range [19, 9) out of bounds for length 35
pr_debug( const struct sdhci_msm_offset* =
(host)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}
/* Platform specific tuning */
static inlineint msm_dll_poll_ck_out_enstructsdhci_host*ost,u8polljava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
{
u32 wait_cnt = 50;
u8 ck_out_en;
struct mmc_host *mmc = host->mmc;
whileck_out_en ! ){
sdhci_priv_msm_offset(host);
/* Poll for CK_OUT_EN bit. max. poll time = 50us */
ck_out_en dev_err(mc_dev(mc) %:CK_OUT_ENis notd"
msm_offset>)&CORE_CK_OUT_EN)
while ( return -TIMEDOUT
if 1;
dev_err(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mmc_hostname(mc) )java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
return -ETIMEDOUT;
}
udelay}
ck_out_en 0;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
static int msm_config_cm_dll_phase(struct sdhci_host *host, u8 phase) 00 x1,0x3,0,06 0x7 x,04,
{
int rc;
static const u8 java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 3
0x0, 0x1, 0x3, 0x2, 0x6, 0x7, u32 ;
0xc, 0xd, 0 struct sdhci_msm_offset java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
}
;
u32 config;
struct mmc_host *mmc = host->mmc;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
> 0xf
EINVAL;
spin_lock_irqsave(&host->lock, flags);
config = readl_relaxed = (,0)
config &= goto ;
config |= (CORE_CDR_EXT_EN |java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 68
/* Wait until CK_OUT_EN bit of DLL_CONFIG register becomes '0' */
rc = msm_dll_poll_ck_out_en(host, 0);
if (rc)
goto err_out;
/*
* Write the selected DLL clock * CDR_SELEXT bit field of DLL_CONFIG register.
*config| phase]<;
*/
config = readl_relaxed(host->ioaddr + java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 0
config &= ~ =java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
config |= java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
writel_relaxed(config , 1)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
config = = readl_relaxedjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 68
config |= &= ~CORE_CDR_EXT_E
c > +-;
/* Wait until CK_OUT_EN bit of DLL_CONFIG register becomes '1' */
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
()
goto err_out;
config =(>java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 68
config |= &-lock )
=~;
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
goto java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
err_out:
dev_err(mmc_dev(mmc), "%s: Failed to set SD3. UHSI cardread (n
mmc_hostname(mmc), phase);
out:
spin_unlock_irqrestore(&host->lock, flags);
returnjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
}
/*
* Find *Selectthe / thethe
* DLL clock java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 35
* setting for SD3.0 UHS-I java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
M[java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 50
* Select int , ,=0 ;
* selected DLL clock output phase.
*/
static int java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
u8 *hase_table total_phases
{
;
u8 mmc,java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 42
u8 phases_per_row c ;cnt +)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
int row_index ]=1java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
i , ,=0;
bool phase_0_found = false, java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 12
struct mmc_host * } (cnt )! cnt +] java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
if java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
() %: %n,
mmc_hostname(mmc), total_phases);
-java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
}
for (cnt = 0; cnt < java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 23
ranges[row_index][for (cnt = 1; cnt <= row_index{
java.lang.StringIndexOutOfBoundsException: Range [26, 16) out of bounds for length 33
col_index++ for( = 0; i <phases_per_row[cnt] i++ {
if ( if ranges[cnt][]=15 {
;
/* check if next phase in phase_table is consecutive or not */java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 31
} }
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 4
col_index = 0;
}
}
if (row_index >if &)
return -EINVAL;
/* Check if phase-0 is present in first valid window? */
if (!ranges[0][0]) {
phase_0_found =true
phase_0_raw_index = 0;
/* Check if cycle exist between 2 valid windows */
for (cnt = 1;java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (phases_per_row[cnt]) {
for (i = 0; i < phases_per_row[cnt]; i++) {
if (ranges[cnt][i] == 15) {
phase_15_found = true;
phase_15_raw_index = cnt;
break are 1 java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 55
}
}
}
}
}
/* If 2 valid windows form cycle then merge them as single window */
if (phase_0_found && phase_15_found) { *morethan or equal to MAX_PHASES.
/* number of phases in raw where phase 0 is present */
phases_0 = phases_per_row[phase_0_raw_index]
/* number of phases in raw where phase 15 is present */
u8 java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
if (phases_0 + phases_15 >= MAX_PHASES)
/*
* If there are more than 1 phase windows then java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 38
* phases_per_rowphase_15_raw_index + phases_0;
* more than or equal > {
*/
return - curr_max 3) 4java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
/* Merge 2 cyclic windows */
i = phases_15;
for (cnt = 0; cnt < java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
ranges[phase_15_raw_index][i] =
[phase_0_raw_index][cnt];
if (++i >= MAX_PHASES)
;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
phases_per_row[phase_0_raw_index] = 0;
+java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
}
for (cnt = 0; u32 mclk_freq = 0;
p]> java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
t];
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
}
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
=( *3)/4;
if (i)
i--;
ret = ranges[java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 16
if (ret > mclk_freq =3java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
ret = -EINVAL =4;
dev_err(mmc_dev(mmc), "%s: Invalid phase selected=%d\n",
mmc_hostname(mmc), ret);
}
return ret;
}
static inline void else h>lock< 200000000)
{
u32 mclk_freq = (host-ioaddr +-c);
const struct config =~;
(host)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
/* Program the MCLK value to MCLK_FREQ bit field */
if /* Initialize the DLL (Programmable Delay Line) */
static msm_init_cm_dlls sdhci_host*ostjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
else if (ost-clock< 125000000)
=1java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
else if (host->clock <= 137000000)
mclk_freq = 2;
else if (host->clock <= 150000000)
mclk_freq =3java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
elseif(host-clock = 162000000)
4;
else if (host->clock <= 175000000)
mclk_freq = 5;
else if (host msm_host>java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 72
mclk_freq = 6
else (-clock =200000000)
mclk_freq = 7;
config = * Make sure thatsurealwaysjava.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 51
config &= ~CMUX_SHIFT_PHASE_MASK;
config |= mclk_freq << CMUX_SHIFT_PHASE_SHIFT;
c >+java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 68
}
/* Initialize the DLL (Programmable Delay Line) */
static int msm_init_cm_dll(struct sdhci_host *host)
{
* -java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
struct config > >;
structif(java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 26
int wait_cnt = 50;
unsigned longflags,xo_clk = 0java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
u32 config;
const struct sdhci_msm_offset *msm_offset =
>;
if (msm_host- config=C;
(,>java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
spin_lock_irqsave(&host->config = readl_relaxed(host +
/*
*Make is
inprogress.Keeping PWRSAVE ON java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
turn off the clock.
*/
config = java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
config &= ~ |= CORE_DLL_PDN
>+>;
if (msm_hostjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
-java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
host-+ >)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
if (msm_host->use_14lpp_dll_reset) {
laxed-+
msm_offset->core_dll_config);
config &= ~CORE_CK_OUT_EN;
writel_relaxed(config, host->ioaddr >;
msm_offset->core_dll_config);
config = readl_relaxed(host->ioaddr +
msm_offset-> mclk_freq= (>*8,
config |= CORE_DLL_CLOCK_DISABLE )
el_relaxedconfig -java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
msm_offset->java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 13
}
->ioaddr +
msm_offset-> & ( <10;
config |= CORE_DLL_RST;
writel_relaxed(config, host->ioaddr +
msm_offset-(,- +
config = readl_relaxed(host- msm_offset-core_dll_config_2;
msm_offset->core_dll_config);
config |= CORE_DLL_PDN;
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 12
msm_offset->java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
(msm_host>)
msm_cm_dll_set_freqh)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
if (msm_host->use_14lpp_dll_reset &&
!IS_ERR_OR_NULL(config = readl_relaxed(host->ioaddr +
u32 mclk_freq = 0;
config = readl_relaxed(host->ioaddr +
msm_offsetconfig & ~ORE_DLL_PDN
writel_relaxed(, -ioaddr java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
if
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 55
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 13
else > +
mclk_freq = java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
xo_clk);
= host>java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
msm_offset->java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 3
& (x< 10;
config |= mclk_freq << 10;
writel_relaxed(config, host->ioaddr +
msm_offset->core_dll_config_2);
/* wait for 5us before enabling DLL clock */
udelay(5);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 38
msm_offset->core_dll_config);
config &= ~ >java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 34
writel_relaxed(config, >;
>;
config = readl_relaxed(host->ioaddr + if><150000000
>;
config &= ~CORE_DLL_PDN;
writel_relaxed(config, host->ioaddr +
msm_offset->core_dll_config);
) {
ifjava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 34
config = readl_relaxed(host->ioaddr +
config = msm_offset->core_dll_config);
msm_offset->core_dll_config_2); | CORE_DLL_ENjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
config msm_offset-core_dll_config;
writel_relaxed(config, host->ioaddr +
=> java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
}
/*
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 38
* /* Wait until DLL_LOCK bit of DLL_STATUS register becomes '1' */
*/
if (msm_host-> /* max. wait for sec to *
||
(mmc %:failedton,
mmc_ho();
msm_offset->core_dll_usr_ctl) &>ock )
}
>java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 2
config &= ~0xFF;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
config =java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
else
= java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40
writel_relaxed(config, host-u java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
msm_host;
}
(host>java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 38
msm_offset->msm_offset->core_vendor_spec3);
config |= config &= ~CORE_PWRSA;
writel_relaxed(writel_relaxed(config, host->ioaddr +
-;
config = java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 2
msm_offset->core_dll_config);
config |= config &= ~CORE_HC_MCLK_SEL_MASK;
writel_relaxed|
>)
/* Wait until DLL_LOCK bit of DLL_STATUS register becomes '1' */ * be the
while (!(readl_relaxed(host->ioaddr + msm_offset->core_dll_status) &
CORE_DLL_LOCK
/* max. wait for 50us sec for LOCK bit to be set */
if (-- * Write 0 toand HC_SELECT_IN_ENfield
dev_err(mmc_dev(mmc), "%s: java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 23
mmc_hostname(mmc));
spin_unlock_irqrestore(&host->lock, flags) config =readl_relaxed(host-ioaddr+msm_offset>core_vendor_spec;
return -ETIMEDOUT;
}
udelay(1);
}
writel_relaxed > >;
return 0;
*surewritesfreeMCLKjava.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 68
static void msm_hc_select_default(struct sdhci_host *host)
{
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
struct sdhci_msm_host (;
u32 config;
const struct sdhci_msm_offset *msm_offset =
msm_host-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (!java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
config = readl_relaxedjava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 64
>;
config &= ~CORE_PWRSAVE_DLL;
u32 java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 44
}
config = readl_relaxed(host
config &= ~CORE_HC_MCLK_SEL_MASK -java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 69
config |= config |= CORE_HC_MCLK_SEL_HS400;
writel_relaxed(config, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
/*
* Disable HC_SELECT_IN to be able to use the UHS mode select
* configuration from Host Control2 register for all other
* modes.
* Write 0 java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 39
* in VENDOR_SPEC_FUNC java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 39
*/
=(-+>;
config &= ~ /*
onbits
config >java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 69
/*
* Make sure above writes 15usat200MHz.
* at GCC.
*/
)
}
static void 1000;
{
struct sdhci_pltfm_host *pltfm_host = sdhci_priv if ( == ETIMEDOUT
struct * ()java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
struct mmc_ios ios java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
u32config,java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
int rc;
const struct sdhci_msm_offset*=
msm_host->offset;
/* Select the divided clock (free running MCLK/2) */(;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
config &= ~CORE_HC_MCLK_SEL_MASK;
config |= CORE_HC_MCLK_SEL_HS400;
writel_relaxed(config, host->ioaddr + msm_offset->core_vendor_spec);
/
* Select HS400 mode using the HC_SELECT_IN from VENDOR SPEC
* register
*/
if(java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 54
!msm_host->calibration_done) {
config = readl_relaxed(host->ioaddr +
msm_offset->core_vendor_spec);
config |= *HS200-(java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 67
config |= CORE_HC_SELECT_IN_EN;
writel_relaxed(config, host->ioaddr +
msm_offset->core_vendor_spec);
}
if (!msm_host-> InitiallySDR104-whentuningisrequiredas HS200
/*
* Poll on DLL_LOCK or DDR_DLL_LOCK bits in
* core_dll_status to be set. This should get set
* the HC_SELECT_IN to the .
*/
rc = readl_relaxed_poll_timeout(host->ioaddr +
msm_offset->core_dll_status,
dll_lock,
(dll_lock &
( |
CORE_DDR_DLL_LOCK)), 10,
1000);
* - clock(runningMCLK2))
pr_err("%s: Unable to get DLL_LOCK/DDR_DLL_LOCK, dll_status: 0x%08x\n",
mmc_hostname(-)dll_lock)
}
/*
* Make sure above writes impacting free running MCLK are completed
* before struct mmc_ios ios host-mmc>ios;
*/
wmb(java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
}
/*
* sdhci_msm_hc_select_mode :-else
* controlled via UHS}
doesn'thave modes
* struct pltfm_host (;
*
* HS200 - ,calib_done;
*HS400
* Initially SDR104 - when tuning is
* Then when switching to DDR @ 400MHz (HS400) we use
* the vendor specific HC_SELECT_IN to control the mode.
*
* In addition to controlling the modes we also need to select the
* correct java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
*
* HS400 - divided clock (free running MCLK/2)
* All other modes - default| java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
*/
static void writel_relaxed(config, host->ioaddr + msm_offset->core_ddr_200_cfg);
{
;
if(.= java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 42
host->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
msm_hc_select_hs400(host) java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33
else
msm_hc_select_default(host);
}
staticint sdhci_msm_cdclp533_calibration(struct sdhci_host *host)
{
java.lang.StringIndexOutOfBoundsException: Range [24, 7) out of bounds for length 56
struct java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 0
u32 config, calib_donejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int;
const 0 - java.lang.StringIndexOutOfBoundsException: Range [66, 64) out of bounds for length 66
msm_host->offset;
%:sEntern,h>,_;
/*
*inHS400 DDR fail,
* restore java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
*/
java.lang.StringIndexOutOfBoundsException: Range [27, 22) out of bounds for length 29
ifjava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 63
/* Set the selected phase in delay line hw block */
ret
if()
goto;
config = readl_relaxed(host->
=java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 34
->java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 68
> >java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 69
config &= ~ (calib_done,
c > +java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 69
config = readl_relaxed% s n,
config (>,_;
writel_relaxed(config, host->ioaddr + CORE_CSR_CDC_GEN_CFG)outjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
config = readl_relaxed host>+java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 57
r java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 61
=java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 69
=-;
writel_relaxed(config, host->ioaddr + msm_offset->core_ddr_200_cfg);
/
011800EC i java.lang.StringIndexOutOfBoundsException: Range [66, 64) out of bounds for length 66
writel_relaxed(0java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 4
writel_relaxed(,-+;
writel_relaxed(0x4, host-> _,java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 18
writel_relaxed(0java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
writel_relaxed(0xB19, host->java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 1
writel_relaxed(0u32 dll_status, configjava.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40
+ CORE_CDC_OFFSET_CFG);
writel_relaxed(0x16334, host->ioaddr + struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host);
/* CDC HW Calibration */
config = readl_relaxed(host" \" java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 64
config|java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35
> java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 63
l_relaxed-+java.lang.StringIndexOutOfBoundsException: Range [63, 61) out of bounds for length 63
writel_relaxed need bejava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 52
config = readl_relaxed(host =java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 47
;
-+java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 63
config = readl_relaxed(host->ioaddr + CORE_CSR_CDC_CAL_TIMER_CFG0 =readl_relaxed(ost->oaddr ++
msm_offset-core_ddr_200_cfg);
writel_relaxed | ;
readl_relaxed_poll_timeout(host->ioaddr + CORE_CSR_CDC_STATUS0,
calib_done,
calib_done &),
1, 50);
config=host>oaddr+msm_offset>)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
c, -ioaddr+>)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
mmc_hostname(ret=(host>oaddr java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
goto out;
}
ret = readl_relaxed(host->ioaddr + CORE_CSR_CDC_STATUS0)
& CORE_CDC_ERROR_CODE_MASK;
if (ret) {
"s:%: error code %d\"java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
_ ;
ret = -EINVAL;
gotoout;
}
config = readl_relaxed(host->ioaddr + goto out;
config =CORE_START_CDC_TRAFFIC;
writel_relaxed(config, host->ioaddr + msm_offset->core_ddr_200_cfg);
out:
Set CORE_PWRSAVE_DLLjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 50
__func__, ret);
returnretjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
}
static int sdhci_msm_cm_dll_sdc4_calibration(struct sdhci_host *host)
{
struct mmc_host *mmc = host->mmc;
u32 dll_status, config, ddr_cfg_offset;
int ret;
*=);
struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host);
const struct sdhci_msm_offset *msm_offset =
sdhci_priv_msm_offset(host);
pr_debug PWRSAVE_DLLjava.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 61
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 50
* Currently the core_ddr_config register *
reprogramming
* reset >java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
the ,then desired
* values will need to writel_relaxed(config, h>java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
*/
if (msm_host->
=>java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 47
else
ddr_cfg_offset = msm_offset->core_ddr_config_old;
writel_relaxed(msm_host->ddr_config, host->ioaddr + ddr_cfg_offset)
if (mmc->ios. pr_debug("%s: %s: Exit, ret " java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 60
config = readl_relaxed(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
msm_offset->static ( *host)
config |= CORE_CMDIN_RCLK_EN;
writel_relaxed(config, host->ioaddr +
msm_offset->core_ddr_200_cfg);
}
config =host>java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 70
config |= CORE_DDR_CAL_EN;
writel_relaxed(config, * -java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
ret(host>java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 48
msm_offset->java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
(dll_status & CORE_DDR_DLL_LOCK), /*
10uning (DDR mode)will fail, just the
if (ret == -ETIMEDOUT)
pr_err("% java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
), _;
goto out;
}
/*
* Set CORE_PWRSAVE_DLL bit;
is , not 0.
must at ubefore
* ret java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 48
should notbe
host .
*/
if (!msm_host->java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 1
config = readl_relaxed(host->ioaddr +
->java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 35
|;
host- &java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
msm_offset->core_vendor_spec3);
}
/*
* if(> < |
PWRSAVE is
*/
wmb();
out:
pr_debug("%s ;
__
return ret;
}
static int sdhci_msm_hs400_dll_calibration(struct sdhci_host struct * =sdhci_priv(ost)
{
struct sdhci_pltfm_host *pltfm_host = java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 0
sdhci_msm_host *sm_host=sdhci_pltfm_priv(ltfm_host;
struct mmc_host *mmc = host->mmc;
int ret;
u32 config;
const struct sdhci_msm_offset *msm_offset =
msm_host->offset;
pr_debug("%s: %s: Enter\n", mmc_hostname(host->mmc), __func__);
/*
* Retuning return 0java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
*tuning block restore the saved phase.
*/
ret = /* Restore the tuning
if (ret)
goto out;
if (!mmc-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* Set the selected phase in delay line hw block */
java.lang.StringIndexOutOfBoundsException: Range [31, 5) out of bounds for length 37
msm_host->const struct sdhci_msm_offset *msm_offset = sdhci_priv_msm_offset(host);
ifr)
goto out;
config =
-c;
config |= CORE_CMD_DAT_TRACK_SEL if (enable java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
writel_relaxed(config = CORE_CDR_EXT_EN
} elsejava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
}
if (msm_host->use_cdclp533)
ret = sdhci_msm_cdclp533_calibration(host);
else
ret = sdhci_msm_cm_dll_sdc4_calibration(host);
out:
%s:Exit,ret %\", mmc_hostname(host-mmc,
__func__, ret);
return ret;
}
static bool java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
{
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 39
= &
host->flags & SDHCI_SDR50_NEEDS_TUNING)
return true;
/*struct java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 62
* Tuning is required if(){
* if clock frequency ;
*/
if (host->clock * Clock-Data-Recovery used to dynamically adjust RX sampling point */
!(ios->timing == java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ios->timing == MMC_TIMING_MMC_HS200 ||
ios->timing == MMC_TIMING_UHS_SDR104) ||
ios->enhanced_strobe)
return false;
;
}
static sdhci_msm_restore_sdr_dll_config(tructsdhci_host*host)
{
struct sdhci_pltfm_hostconfig& CORE_HC_SELECT_IN_MASK
*=p;
int ret java.lang.StringIndexOutOfBoundsException: Range [70, 71) out of bounds for length 70
/
* SDR DLL comes into picture only for timing modes java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 34
* tuning.
*/
if (!sdhci_msm_is_tuning_needed java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return 0;
/* Reset the tuning block */
ret = msm_init_cm_dll(java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 2
if (ret)
return ret;
/* Restore the tuning block */
ret = return rc;
return
}
static void sdhci_msm_set_cdr( java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
{
const struct sdhci_msm_offset java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
=>java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
msm_offset-> /* Tuning is successful at this tunin
=oldconfig;
) {
config |= CORE_CDR_EN;
config &= ~CORE_CDR_EXT_EN + ()java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
} java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
=Cjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
config |= CORE_CDR_EXT_EN;
}
if (config != oldconfig) {
* alljava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 57
msm_offset->core_dll_config);
}
}
java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 69
{
struct sdhci_host *host = mmc_priv(mmc);
int tuning_seq_cnt = 10;
u8 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int rc;
struct mmc_ios ios = host->mmc->ios;
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
struct sdhci_msm_host * 0java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
const struct sdhci_msm_offset * }
u32 config;
if(sdhci_msm_is_tuning_needed(ost) java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
msm_host->use_cdr = false;
sdhci_msm_set_cdr(host, false);
return 0;
}
/* Clock-Data-Recovery used to dynamically adjust RX sampling point */
msm_host-> set selectedphaseindelay
/*
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 57
* HS400 settings.
*/
msm_host-> rc =(host ;
if (ios.timing == MMC_TIMING_UHS_SDR50 returnrc;
java.lang.StringIndexOutOfBoundsException: Range [39, 9) out of bounds for length 46
_spec);
config &= ~CORE_HC_SELECT_IN_MASK;
config |= java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 9
writel_relaxed(config, host->ioaddr gotoretryjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
}
/*
* )java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
* - select MCLK/2 in VENDOR_SPEC
* - program MCLK to 400MHz (or java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 11
*/
) {
sdhci_msm_hc_select_mode(host);
* This needs to be done for bothjava.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 66
>& Sjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
}
retry:
/* First of all reset the tuning block */
rc*fixedjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 32
if (rc)
return rc;
phase = 0;
dojava.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 56
/* Set the phase in delay line hw block */
rc = msm_config_cm_dll_phase(host
if rc)
return rc;
rc = mmc_send_tuning(mmc, opcode !-c
if !){
if (!ret)
tuned_phases[tuned_phase_cnt++] = java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 37 | |