Re: scsi: ufs: Problem at init on msm8998

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 19/12/2018 18:27, Marc Gonzalez wrote:

> On 18/12/2018 17:54, Marc Gonzalez wrote:
> 
>> Now the fun begins, to find the tiny difference that makes/breaks everything :-)
> I thought I had found the problem:
> "clk_set_rate: ufs_unipro_core_clk_src" was not occurring.
> But, in fact, I think the bootloader already set the proper rate.

Found something fishy...


Downstream, the PHY clocks are:
		<&clock_gcc clk_ln_bb_clk1>,			// ???
		<&clock_gcc clk_gcc_ufs_clkref_clk>,		// 0x88004
		<&clock_gcc clk_gcc_ufs_phy_aux_hw_ctl_clk>;	// 0x76040


If I examine these clocks in debugfs:

# for F in ln_bb_clk1/* gcc_ufs_clkref_clk/* gcc_ufs_phy_aux_*/*; do echo $F; cat $F; done

ln_bb_clk1/enable
0
ln_bb_clk1/has_hw_gating
0
ln_bb_clk1/is_local
0
ln_bb_clk1/parent
None
ln_bb_clk1/print
ln_bb_clk1
ln_bb_clk1/rate
1000


gcc_ufs_clkref_clk/enable
0
gcc_ufs_clkref_clk/has_hw_gating
0
gcc_ufs_clkref_clk/is_local
1
gcc_ufs_clkref_clk/list_rates
gcc_ufs_clkref_clk/parent
None
gcc_ufs_clkref_clk/print
gcc_ufs_clkref_clk
                CBCR: 0x80000000
gcc_ufs_clkref_clk/rate
0


gcc_ufs_phy_aux_clk/enable
0
gcc_ufs_phy_aux_clk/has_hw_gating
0
gcc_ufs_phy_aux_clk/is_local
1
gcc_ufs_phy_aux_clk/list_rates
19200000
gcc_ufs_phy_aux_clk/parent
ufs_phy_aux_clk_src
gcc_ufs_phy_aux_clk/print
cxo_clk_src
ufs_phy_aux_clk_src
            CMD_RCGR: 0x80000000
            CFG_RCGR: 0x00000000
gcc_ufs_phy_aux_clk
                CBCR: 0x80000000
gcc_ufs_phy_aux_clk/rate
19200000


gcc_ufs_phy_aux_hw_ctl_clk/enable
0
gcc_ufs_phy_aux_hw_ctl_clk/has_hw_gating
0
gcc_ufs_phy_aux_hw_ctl_clk/is_local
1
gcc_ufs_phy_aux_hw_ctl_clk/parent
gcc_ufs_phy_aux_clk
gcc_ufs_phy_aux_hw_ctl_clk/print
cxo_clk_src
ufs_phy_aux_clk_src
            CMD_RCGR: 0x80000000
            CFG_RCGR: 0x00000000
gcc_ufs_phy_aux_clk
                CBCR: 0x80000000
gcc_ufs_phy_aux_hw_ctl_clk
gcc_ufs_phy_aux_hw_ctl_clk/rate
19200000


The gcc_ufs_phy_aux_clk ticks at 19.2 Mhz


Compare this with upstream:
		<&gcc GCC_UFS_CLKREF_CLK>,	// 0x88004
		<&gcc GCC_UFS_PHY_AUX_CLK>;	// 0x76040

(I provided only two clocks because the bindings doc says
		For "qcom,sdm845-qmp-ufs-phy" must contain:
			"ref", "ref_aux".
Jeffrey: does that look good to you? I'm using the sdm845 PHY BTW)


# for F in ln_bb_clk1/* gcc_ufs_clkref_clk/* gcc_ufs_phy_aux_*/*; do echo $F; cat $F; done


ln_bb_clk1/clk_accuracy
0
ln_bb_clk1/clk_duty_cycle
1/2
ln_bb_clk1/clk_enable_count
0
ln_bb_clk1/clk_flags
ln_bb_clk1/clk_notifier_count
0
ln_bb_clk1/clk_phase
0
ln_bb_clk1/clk_prepare_count
0
ln_bb_clk1/clk_protect_count
0
ln_bb_clk1/clk_rate
19200000


gcc_ufs_clkref_clk/clk_accuracy
0
gcc_ufs_clkref_clk/clk_duty_cycle
1/2
gcc_ufs_clkref_clk/clk_enable_count
0
gcc_ufs_clkref_clk/clk_flags
gcc_ufs_clkref_clk/clk_notifier_count
0
gcc_ufs_clkref_clk/clk_phase
0
gcc_ufs_clkref_clk/clk_prepare_count
0
gcc_ufs_clkref_clk/clk_protect_count
0
gcc_ufs_clkref_clk/clk_rate
19200000


gcc_ufs_phy_aux_clk/clk_accuracy
0
gcc_ufs_phy_aux_clk/clk_duty_cycle
1/2
gcc_ufs_phy_aux_clk/clk_enable_count
0
gcc_ufs_phy_aux_clk/clk_flags
gcc_ufs_phy_aux_clk/clk_notifier_count
0
gcc_ufs_phy_aux_clk/clk_phase
0
gcc_ufs_phy_aux_clk/clk_prepare_count
0
gcc_ufs_phy_aux_clk/clk_protect_count
0
gcc_ufs_phy_aux_clk/clk_rate
0


The gcc_ufs_phy_aux_clk rate is 0. That might be important...



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux