[03/14] drm/ast: Implement register helpers in ast_drv.h
Sui Jingfeng
suijingfeng at loongson.cn
Sat Jun 17 06:54:27 UTC 2023
On 2023/6/16 21:52, Thomas Zimmermann wrote:
> There are already a number of register I/O functions in ast_drv.h.
> For consistency, move the remaining functions there as well. No
> functional changes.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
Reviewed-by: Sui Jingfeng <suijingfeng at loongson.cn>
> ---
> drivers/gpu/drm/ast/ast_drv.h | 34 ++++++++++++++++++++++++----------
> drivers/gpu/drm/ast/ast_main.c | 28 ----------------------------
> 2 files changed, 24 insertions(+), 38 deletions(-)
>
> diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
> index fc4760a67596f..0141705beaee9 100644
> --- a/drivers/gpu/drm/ast/ast_drv.h
> +++ b/drivers/gpu/drm/ast/ast_drv.h
> @@ -257,22 +257,36 @@ static inline void ast_io_write8(struct ast_device *ast, u32 reg, u8 val)
> iowrite8(val, ast->ioregs + reg);
> }
>
> -static inline void ast_set_index_reg(struct ast_device *ast,
> - uint32_t base, uint8_t index,
> - uint8_t val)
> +static inline u8 ast_get_index_reg(struct ast_device *ast, u32 base, u8 index)
> +{
> + ast_io_write8(ast, base, index);
> + ++base;
> + return ast_io_read8(ast, base);
> +}
> +
> +static inline u8 ast_get_index_reg_mask(struct ast_device *ast, u32 base, u8 index,
> + u8 preserve_mask)
> +{
> + u8 val = ast_get_index_reg(ast, base, index);
> +
> + return val & preserve_mask;
> +}
> +
> +static inline void ast_set_index_reg(struct ast_device *ast, u32 base, u8 index, u8 val)
> {
> ast_io_write8(ast, base, index);
> ++base;
> ast_io_write8(ast, base, val);
> }
>
> -void ast_set_index_reg_mask(struct ast_device *ast,
> - uint32_t base, uint8_t index,
> - uint8_t mask, uint8_t val);
> -uint8_t ast_get_index_reg(struct ast_device *ast,
> - uint32_t base, uint8_t index);
> -uint8_t ast_get_index_reg_mask(struct ast_device *ast,
> - uint32_t base, uint8_t index, uint8_t mask);
> +static inline void ast_set_index_reg_mask(struct ast_device *ast, u32 base, u8 index,
> + u8 preserve_mask, u8 val)
> +{
> + u8 tmp = ast_get_index_reg_mask(ast, base, index, preserve_mask);
> +
> + tmp |= val;
> + ast_set_index_reg(ast, base, index, tmp);
> +}
>
> static inline void ast_open_key(struct ast_device *ast)
> {
> diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
> index da33cfc6366ec..862fdf02f6100 100644
> --- a/drivers/gpu/drm/ast/ast_main.c
> +++ b/drivers/gpu/drm/ast/ast_main.c
> @@ -35,34 +35,6 @@
>
> #include "ast_drv.h"
>
> -void ast_set_index_reg_mask(struct ast_device *ast,
> - uint32_t base, uint8_t index,
> - uint8_t mask, uint8_t val)
> -{
> - u8 tmp;
> - ast_io_write8(ast, base, index);
> - tmp = (ast_io_read8(ast, base + 1) & mask) | val;
> - ast_set_index_reg(ast, base, index, tmp);
> -}
> -
> -uint8_t ast_get_index_reg(struct ast_device *ast,
> - uint32_t base, uint8_t index)
> -{
> - uint8_t ret;
> - ast_io_write8(ast, base, index);
> - ret = ast_io_read8(ast, base + 1);
> - return ret;
> -}
> -
> -uint8_t ast_get_index_reg_mask(struct ast_device *ast,
> - uint32_t base, uint8_t index, uint8_t mask)
> -{
> - uint8_t ret;
> - ast_io_write8(ast, base, index);
> - ret = ast_io_read8(ast, base + 1) & mask;
> - return ret;
> -}
> -
> static void ast_detect_config_mode(struct drm_device *dev, u32 *scu_rev)
> {
> struct device_node *np = dev->dev->of_node;
--
Jingfeng
More information about the dri-devel
mailing list