drm/sun4i: frontend: Add proper definitions for format registers
This introduces proper definitions for the input and output format configuration registers instead of a macro and raw values in the code, with the intent to increase code readability and reduce indirections. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181123092515.2511-19-paul.kocialkowski@bootlin.com
This commit is contained in:
parent
47d0f9bdb1
commit
9579f91904
@ -108,7 +108,7 @@ static int sun4i_frontend_drm_format_to_input_fmt(uint32_t fmt, u32 *val)
|
|||||||
{
|
{
|
||||||
switch (fmt) {
|
switch (fmt) {
|
||||||
case DRM_FORMAT_XRGB8888:
|
case DRM_FORMAT_XRGB8888:
|
||||||
*val = 5;
|
*val = SUN4I_FRONTEND_INPUT_FMT_DATA_FMT_RGB;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -120,7 +120,7 @@ static int sun4i_frontend_drm_format_to_input_mode(uint32_t fmt, u32 *val)
|
|||||||
{
|
{
|
||||||
switch (fmt) {
|
switch (fmt) {
|
||||||
case DRM_FORMAT_XRGB8888:
|
case DRM_FORMAT_XRGB8888:
|
||||||
*val = 1;
|
*val = SUN4I_FRONTEND_INPUT_FMT_DATA_MOD_PACKED;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -132,7 +132,7 @@ static int sun4i_frontend_drm_format_to_input_sequence(uint32_t fmt, u32 *val)
|
|||||||
{
|
{
|
||||||
switch (fmt) {
|
switch (fmt) {
|
||||||
case DRM_FORMAT_XRGB8888:
|
case DRM_FORMAT_XRGB8888:
|
||||||
*val = 1;
|
*val = SUN4I_FRONTEND_INPUT_FMT_DATA_PS_XRGB;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -144,7 +144,7 @@ static int sun4i_frontend_drm_format_to_output_fmt(uint32_t fmt, u32 *val)
|
|||||||
{
|
{
|
||||||
switch (fmt) {
|
switch (fmt) {
|
||||||
case DRM_FORMAT_XRGB8888:
|
case DRM_FORMAT_XRGB8888:
|
||||||
*val = 2;
|
*val = SUN4I_FRONTEND_OUTPUT_FMT_DATA_FMT_XRGB8888;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -218,9 +218,7 @@ int sun4i_frontend_update_formats(struct sun4i_frontend *frontend,
|
|||||||
SUN4I_FRONTEND_BYPASS_CSC_EN);
|
SUN4I_FRONTEND_BYPASS_CSC_EN);
|
||||||
|
|
||||||
regmap_write(frontend->regs, SUN4I_FRONTEND_INPUT_FMT_REG,
|
regmap_write(frontend->regs, SUN4I_FRONTEND_INPUT_FMT_REG,
|
||||||
SUN4I_FRONTEND_INPUT_FMT_DATA_MOD(in_mod_val) |
|
in_mod_val | in_fmt_val | in_ps_val);
|
||||||
SUN4I_FRONTEND_INPUT_FMT_DATA_FMT(in_fmt_val) |
|
|
||||||
SUN4I_FRONTEND_INPUT_FMT_PS(in_ps_val));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO: It look like the A31 and A80 at least will need the
|
* TODO: It look like the A31 and A80 at least will need the
|
||||||
@ -228,7 +226,7 @@ int sun4i_frontend_update_formats(struct sun4i_frontend *frontend,
|
|||||||
* ARGB8888).
|
* ARGB8888).
|
||||||
*/
|
*/
|
||||||
regmap_write(frontend->regs, SUN4I_FRONTEND_OUTPUT_FMT_REG,
|
regmap_write(frontend->regs, SUN4I_FRONTEND_OUTPUT_FMT_REG,
|
||||||
SUN4I_FRONTEND_OUTPUT_FMT_DATA_FMT(out_fmt_val));
|
out_fmt_val);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -26,12 +26,12 @@
|
|||||||
#define SUN4I_FRONTEND_LINESTRD0_REG 0x040
|
#define SUN4I_FRONTEND_LINESTRD0_REG 0x040
|
||||||
|
|
||||||
#define SUN4I_FRONTEND_INPUT_FMT_REG 0x04c
|
#define SUN4I_FRONTEND_INPUT_FMT_REG 0x04c
|
||||||
#define SUN4I_FRONTEND_INPUT_FMT_DATA_MOD(mod) ((mod) << 8)
|
#define SUN4I_FRONTEND_INPUT_FMT_DATA_MOD_PACKED (1 << 8)
|
||||||
#define SUN4I_FRONTEND_INPUT_FMT_DATA_FMT(fmt) ((fmt) << 4)
|
#define SUN4I_FRONTEND_INPUT_FMT_DATA_FMT_RGB (5 << 4)
|
||||||
#define SUN4I_FRONTEND_INPUT_FMT_PS(ps) (ps)
|
#define SUN4I_FRONTEND_INPUT_FMT_DATA_PS_XRGB 1
|
||||||
|
|
||||||
#define SUN4I_FRONTEND_OUTPUT_FMT_REG 0x05c
|
#define SUN4I_FRONTEND_OUTPUT_FMT_REG 0x05c
|
||||||
#define SUN4I_FRONTEND_OUTPUT_FMT_DATA_FMT(fmt) (fmt)
|
#define SUN4I_FRONTEND_OUTPUT_FMT_DATA_FMT_XRGB8888 2
|
||||||
|
|
||||||
#define SUN4I_FRONTEND_CH0_INSIZE_REG 0x100
|
#define SUN4I_FRONTEND_CH0_INSIZE_REG 0x100
|
||||||
#define SUN4I_FRONTEND_INSIZE(h, w) ((((h) - 1) << 16) | (((w) - 1)))
|
#define SUN4I_FRONTEND_INSIZE(h, w) ((((h) - 1) << 16) | (((w) - 1)))
|
||||||
|
Loading…
Reference in New Issue
Block a user