Skip to content

Commit

Permalink
pmdomain: mediatek: Move bools to a flags field
Browse files Browse the repository at this point in the history
To simplify the macros, use a flags field for simple bools. This is in
preparation for more flags.

Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com>
Tested-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://lore.kernel.org/r/20230918093751.1188668-3-msp@baylibre.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
  • Loading branch information
scosu authored and storulf committed Oct 17, 2023
1 parent f4e7692 commit c6bee73
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
6 changes: 3 additions & 3 deletions drivers/pmdomain/mediatek/mtk-pm-domains.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ static int _scpsys_bus_protect_enable(const struct scpsys_bus_prot_data *bpd, st
if (!mask)
break;

if (bpd[i].bus_prot_reg_update)
if (bpd[i].flags & BUS_PROT_REG_UPDATE)
regmap_set_bits(regmap, bpd[i].bus_prot_set, mask);
else
regmap_write(regmap, bpd[i].bus_prot_set, mask);
Expand Down Expand Up @@ -165,12 +165,12 @@ static int _scpsys_bus_protect_disable(const struct scpsys_bus_prot_data *bpd,
if (!mask)
continue;

if (bpd[i].bus_prot_reg_update)
if (bpd[i].flags & BUS_PROT_REG_UPDATE)
regmap_clear_bits(regmap, bpd[i].bus_prot_clr, mask);
else
regmap_write(regmap, bpd[i].bus_prot_clr, mask);

if (bpd[i].ignore_clr_ack)
if (bpd[i].flags & BUS_PROT_IGNORE_CLR_ACK)
continue;

ret = regmap_read_poll_timeout(regmap, bpd[i].bus_prot_sta,
Expand Down
19 changes: 11 additions & 8 deletions drivers/pmdomain/mediatek/mtk-pm-domains.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,23 +42,27 @@

#define SPM_MAX_BUS_PROT_DATA 6

#define _BUS_PROT(_mask, _set, _clr, _sta, _update, _ignore) { \
enum scpsys_bus_prot_flags {
BUS_PROT_REG_UPDATE = BIT(1),
BUS_PROT_IGNORE_CLR_ACK = BIT(2),
};

#define _BUS_PROT(_mask, _set, _clr, _sta, _flags) { \
.bus_prot_mask = (_mask), \
.bus_prot_set = _set, \
.bus_prot_clr = _clr, \
.bus_prot_sta = _sta, \
.bus_prot_reg_update = _update, \
.ignore_clr_ack = _ignore, \
.flags = _flags \
}

#define BUS_PROT_WR(_mask, _set, _clr, _sta) \
_BUS_PROT(_mask, _set, _clr, _sta, false, false)
_BUS_PROT(_mask, _set, _clr, _sta, 0)

#define BUS_PROT_WR_IGN(_mask, _set, _clr, _sta) \
_BUS_PROT(_mask, _set, _clr, _sta, false, true)
_BUS_PROT(_mask, _set, _clr, _sta, BUS_PROT_IGNORE_CLR_ACK)

#define BUS_PROT_UPDATE(_mask, _set, _clr, _sta) \
_BUS_PROT(_mask, _set, _clr, _sta, true, false)
_BUS_PROT(_mask, _set, _clr, _sta, BUS_PROT_REG_UPDATE)

#define BUS_PROT_UPDATE_TOPAXI(_mask) \
BUS_PROT_UPDATE(_mask, \
Expand All @@ -71,8 +75,7 @@ struct scpsys_bus_prot_data {
u32 bus_prot_set;
u32 bus_prot_clr;
u32 bus_prot_sta;
bool bus_prot_reg_update;
bool ignore_clr_ack;
u8 flags;
};

/**
Expand Down

0 comments on commit c6bee73

Please sign in to comment.