diff options
author | Venu Byravarasu <vbyravarasu@nvidia.com> | 2012-01-31 10:11:29 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2012-03-22 23:50:37 -0700 |
commit | 735af9b8ba9baffef1bb7ad1ab21f5228cf07ece (patch) | |
tree | 282a3ae16859f763644e8fe1ae3b1f112a3bf6fc /arch/arm/mach-tegra/tegra_odm_fuses.c | |
parent | 7962c7bea861a51b005e028abb8213eb199f4e92 (diff) |
arm: tegra: fuse: Keep fuse register visible always
Fuse registers are made visible during init.
As they need not be masked and unmasked during
every fuse access, removing these functions.
bug 933113
Reviewed-on: http://git-master/r/78355
Change-Id: If95c021b9ec377ba9610eedd481ec3c8ff6bf874
Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-on: http://git-master/r/78714
Reviewed-by: Automatic_Commit_Validation_User
Rebase-Id: R8f5b08db1d8cd4562ed5cbe08dded39ccbbdb674
Diffstat (limited to 'arch/arm/mach-tegra/tegra_odm_fuses.c')
-rw-r--r-- | arch/arm/mach-tegra/tegra_odm_fuses.c | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/arch/arm/mach-tegra/tegra_odm_fuses.c b/arch/arm/mach-tegra/tegra_odm_fuses.c index 96f69f4b0458..7b75f211300b 100644 --- a/arch/arm/mach-tegra/tegra_odm_fuses.c +++ b/arch/arm/mach-tegra/tegra_odm_fuses.c @@ -302,20 +302,6 @@ static void fuse_cmd_sense(void) wait_for_idle(); } -static void fuse_reg_hide(void) -{ - u32 reg = tegra_fuse_readl(0x48); - reg &= ~(1 << 28); - tegra_fuse_writel(reg, 0x48); -} - -static void fuse_reg_unhide(void) -{ - u32 reg = tegra_fuse_readl(0x48); - reg |= (1 << 28); - tegra_fuse_writel(reg, 0x48); -} - static void get_fuse(enum fuse_io_param io_param, u32 *out) { int start_bit = fuse_info_tbl[io_param].start_bit; @@ -372,7 +358,6 @@ int tegra_fuse_read(enum fuse_io_param io_param, u32 *data, int size) mutex_lock(&fuse_lock); clk_enable(clk_fuse); - fuse_reg_unhide(); fuse_cmd_sense(); if (io_param == SBK_DEVKEY_STATUS) { @@ -389,7 +374,6 @@ int tegra_fuse_read(enum fuse_io_param io_param, u32 *data, int size) get_fuse(io_param, data); } - fuse_reg_hide(); clk_disable(clk_fuse); mutex_unlock(&fuse_lock); @@ -635,16 +619,12 @@ int tegra_fuse_program(struct fuse_data *pgm_data, u32 flags) clk_enable(clk_fuse); - /* make all the fuse registers visible */ - fuse_reg_unhide(); - /* check that fuse options write access hasn't been disabled */ mutex_lock(&fuse_lock); reg = tegra_fuse_readl(FUSE_DIS_PGM); mutex_unlock(&fuse_lock); if (reg) { pr_err("fuse programming disabled"); - fuse_reg_hide(); clk_disable(clk_fuse); return -EACCES; } @@ -695,9 +675,6 @@ int tegra_fuse_program(struct fuse_data *pgm_data, u32 flags) /* disable software writes to the fuse registers */ tegra_fuse_writel(1, FUSE_WRITE_ACCESS); - /* make all the fuse registers invisible */ - fuse_reg_hide(); - /* apply the fuse values immediately instead of resetting the chip */ fuse_cmd_sense(); @@ -919,7 +896,6 @@ static void __exit tegra_fuse_program_exit(void) { fuse_power_disable(); - fuse_reg_hide(); if (!IS_ERR_OR_NULL(vdd_fuse)) regulator_put(vdd_fuse); |