Skip to content

Commit

Permalink
phy: ti: am654: simplify return handling
Browse files Browse the repository at this point in the history
commit 51eb13160b83110723514580171ec25a9d7f3cbe from
git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git

commit b494bbb upstream.

Checking return value after each regfield write becomes
hard to read quickly as number of writes increase.

Simplify by checking for error only once.

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Link: https://lore.kernel.org/r/20200727194603.44636-3-nsekhar@ti.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Xulin Sun <xulin.sun@windriver.com>
  • Loading branch information
nsekhar authored and xulinsun committed Dec 1, 2020
1 parent 36ec19a commit a08e0fd
Showing 1 changed file with 20 additions and 28 deletions.
48 changes: 20 additions & 28 deletions drivers/phy/ti/phy-am654-serdes.c
Original file line number Diff line number Diff line change
Expand Up @@ -161,34 +161,32 @@ static void serdes_am654_disable_pll(struct serdes_am654 *phy)

static int serdes_am654_enable_txrx(struct serdes_am654 *phy)
{
int ret;
int ret = 0;

/* Enable TX */
ret = regmap_field_write(phy->fields[TX0_ENABLE], TX0_ENABLE_STATE);
if (ret)
return ret;
ret |= regmap_field_write(phy->fields[TX0_ENABLE], TX0_ENABLE_STATE);

/* Enable RX */
ret = regmap_field_write(phy->fields[RX0_ENABLE], RX0_ENABLE_STATE);
ret |= regmap_field_write(phy->fields[RX0_ENABLE], RX0_ENABLE_STATE);

if (ret)
return ret;
return -EIO;

return 0;
}

static int serdes_am654_disable_txrx(struct serdes_am654 *phy)
{
int ret;
int ret = 0;

/* Disable TX */
ret = regmap_field_write(phy->fields[TX0_ENABLE], TX0_DISABLE_STATE);
if (ret)
return ret;
ret |= regmap_field_write(phy->fields[TX0_ENABLE], TX0_DISABLE_STATE);

/* Disable RX */
ret = regmap_field_write(phy->fields[RX0_ENABLE], RX0_DISABLE_STATE);
ret |= regmap_field_write(phy->fields[RX0_ENABLE], RX0_DISABLE_STATE);

if (ret)
return ret;
return -EIO;

return 0;
}
Expand Down Expand Up @@ -311,19 +309,14 @@ static int serdes_am654_usb3_init(struct serdes_am654 *phy)

static int serdes_am654_pcie_init(struct serdes_am654 *phy)
{
int ret;
int ret = 0;

ret = regmap_field_write(phy->fields[CONFIG_VERSION], VERSION_VAL);
if (ret)
return ret;
ret |= regmap_field_write(phy->fields[CONFIG_VERSION], VERSION_VAL);
ret |= regmap_field_write(phy->fields[CMU_MASTER_CDN], 0x1);
ret |= regmap_field_write(phy->fields[L1_MASTER_CDN], 0x1);

ret = regmap_field_write(phy->fields[CMU_MASTER_CDN], 0x1);
if (ret)
return ret;

ret = regmap_field_write(phy->fields[L1_MASTER_CDN], 0x1);
if (ret)
return ret;
return -EIO;

return 0;
}
Expand All @@ -345,20 +338,19 @@ static int serdes_am654_init(struct phy *x)
static int serdes_am654_reset(struct phy *x)
{
struct serdes_am654 *phy = phy_get_drvdata(x);
int ret;
int ret = 0;

serdes_am654_disable_pll(phy);
serdes_am654_disable_txrx(phy);

ret = regmap_field_write(phy->fields[POR_EN], 0x1);
if (ret)
return ret;
ret |= regmap_field_write(phy->fields[POR_EN], 0x1);

mdelay(1);

ret = regmap_field_write(phy->fields[POR_EN], 0x0);
ret |= regmap_field_write(phy->fields[POR_EN], 0x0);

if (ret)
return ret;
return -EIO;

return 0;
}
Expand Down

0 comments on commit a08e0fd

Please sign in to comment.