mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-03 09:26:48 +07:00
V4L/DVB: cx88: convert core->tvaudio into an enum
Using an enum and removing the default case from switch statements accessing the value enables the compiler to emit a warning (enabled with -Wall) when an audio mode is not handled. This highlights an omission in the function cx88_dsp_detect_stereo_sap() (in cx88-dsp.c) not handling WW_EIAJ and WW_M. Signed-off-by: Lawrence Rust <lawrence@softsystem.co.uk> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
3053814c1c
commit
d06b49ed18
@ -879,7 +879,7 @@ static int set_tvaudio(struct cx88_core *core)
|
||||
} else {
|
||||
printk("%s/0: tvaudio support needs work for this tv norm [%s], sorry\n",
|
||||
core->name, v4l2_norm_to_name(core->tvnorm));
|
||||
core->tvaudio = 0;
|
||||
core->tvaudio = WW_NONE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -175,7 +175,13 @@ static s32 detect_a2_a2m_eiaj(struct cx88_core *core, s16 x[], u32 N)
|
||||
stereo_freq = FREQ_EIAJ_STEREO;
|
||||
dual_freq = FREQ_EIAJ_DUAL;
|
||||
break;
|
||||
default:
|
||||
case WW_NONE:
|
||||
case WW_BTSC:
|
||||
case WW_I:
|
||||
case WW_L:
|
||||
case WW_I2SPT:
|
||||
case WW_FM:
|
||||
case WW_I2SADC:
|
||||
printk(KERN_WARNING "%s/0: unsupported audio mode %d for %s\n",
|
||||
core->name, core->tvaudio, __func__);
|
||||
return UNSET;
|
||||
@ -292,11 +298,20 @@ s32 cx88_dsp_detect_stereo_sap(struct cx88_core *core)
|
||||
switch (core->tvaudio) {
|
||||
case WW_BG:
|
||||
case WW_DK:
|
||||
case WW_EIAJ:
|
||||
case WW_M:
|
||||
ret = detect_a2_a2m_eiaj(core, samples, N);
|
||||
break;
|
||||
case WW_BTSC:
|
||||
ret = detect_btsc(core, samples, N);
|
||||
break;
|
||||
case WW_NONE:
|
||||
case WW_I:
|
||||
case WW_L:
|
||||
case WW_I2SPT:
|
||||
case WW_FM:
|
||||
case WW_I2SADC:
|
||||
break;
|
||||
}
|
||||
|
||||
kfree(samples);
|
||||
|
@ -360,7 +360,15 @@ static void set_audio_standard_NICAM(struct cx88_core *core, u32 mode)
|
||||
set_audio_registers(core, nicam_bgdki_common);
|
||||
set_audio_registers(core, nicam_i);
|
||||
break;
|
||||
default:
|
||||
case WW_NONE:
|
||||
case WW_BTSC:
|
||||
case WW_BG:
|
||||
case WW_DK:
|
||||
case WW_EIAJ:
|
||||
case WW_I2SPT:
|
||||
case WW_FM:
|
||||
case WW_I2SADC:
|
||||
case WW_M:
|
||||
dprintk("%s PAL-BGDK NICAM (status: known-good)\n", __func__);
|
||||
set_audio_registers(core, nicam_bgdki_common);
|
||||
set_audio_registers(core, nicam_default);
|
||||
@ -621,7 +629,13 @@ static void set_audio_standard_A2(struct cx88_core *core, u32 mode)
|
||||
dprintk("%s AM-L (status: devel)\n", __func__);
|
||||
set_audio_registers(core, am_l);
|
||||
break;
|
||||
default:
|
||||
case WW_NONE:
|
||||
case WW_BTSC:
|
||||
case WW_EIAJ:
|
||||
case WW_I2SPT:
|
||||
case WW_FM:
|
||||
case WW_I2SADC:
|
||||
case WW_M:
|
||||
dprintk("%s Warning: wrong value\n", __func__);
|
||||
return;
|
||||
break;
|
||||
@ -779,7 +793,7 @@ void cx88_set_tvaudio(struct cx88_core *core)
|
||||
set_audio_finish(core, EN_I2SIN_ENABLE);
|
||||
break;
|
||||
case WW_NONE:
|
||||
default:
|
||||
case WW_I2SPT:
|
||||
printk("%s/0: unknown tv audio mode [%d]\n",
|
||||
core->name, core->tvaudio);
|
||||
break;
|
||||
@ -840,7 +854,12 @@ void cx88_get_stereo(struct cx88_core *core, struct v4l2_tuner *t)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
case WW_NONE:
|
||||
case WW_I:
|
||||
case WW_L:
|
||||
case WW_I2SPT:
|
||||
case WW_FM:
|
||||
case WW_I2SADC:
|
||||
/* nothing */
|
||||
break;
|
||||
}
|
||||
@ -945,6 +964,9 @@ void cx88_set_stereo(struct cx88_core *core, u32 mode, int manual)
|
||||
}
|
||||
break;
|
||||
case WW_I2SADC:
|
||||
case WW_NONE:
|
||||
case WW_EIAJ:
|
||||
case WW_I2SPT:
|
||||
/* DO NOTHING */
|
||||
break;
|
||||
}
|
||||
@ -1000,7 +1022,12 @@ int cx88_audio_thread(void *data)
|
||||
/* automatically switch to best available mode */
|
||||
cx88_set_stereo(core, mode, 0);
|
||||
break;
|
||||
default:
|
||||
case WW_NONE:
|
||||
case WW_BTSC:
|
||||
case WW_EIAJ:
|
||||
case WW_I2SPT:
|
||||
case WW_FM:
|
||||
case WW_I2SADC:
|
||||
hw_autodetect:
|
||||
/* stereo autodetection is supported by hardware so
|
||||
we don't need to do it manually. Do nothing. */
|
||||
|
@ -281,6 +281,20 @@ struct cx88_subid {
|
||||
u32 card;
|
||||
};
|
||||
|
||||
enum cx88_tvaudio {
|
||||
WW_NONE = 1,
|
||||
WW_BTSC,
|
||||
WW_BG,
|
||||
WW_DK,
|
||||
WW_I,
|
||||
WW_L,
|
||||
WW_EIAJ,
|
||||
WW_I2SPT,
|
||||
WW_FM,
|
||||
WW_I2SADC,
|
||||
WW_M
|
||||
};
|
||||
|
||||
#define INPUT(nr) (core->board.input[nr])
|
||||
|
||||
/* ----------------------------------------------------------- */
|
||||
@ -352,7 +366,7 @@ struct cx88_core {
|
||||
/* state info */
|
||||
struct task_struct *kthread;
|
||||
v4l2_std_id tvnorm;
|
||||
u32 tvaudio;
|
||||
enum cx88_tvaudio tvaudio;
|
||||
u32 audiomode_manual;
|
||||
u32 audiomode_current;
|
||||
u32 input;
|
||||
@ -651,18 +665,6 @@ extern void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl);
|
||||
/* ----------------------------------------------------------- */
|
||||
/* cx88-tvaudio.c */
|
||||
|
||||
#define WW_NONE 1
|
||||
#define WW_BTSC 2
|
||||
#define WW_BG 3
|
||||
#define WW_DK 4
|
||||
#define WW_I 5
|
||||
#define WW_L 6
|
||||
#define WW_EIAJ 7
|
||||
#define WW_I2SPT 8
|
||||
#define WW_FM 9
|
||||
#define WW_I2SADC 10
|
||||
#define WW_M 11
|
||||
|
||||
void cx88_set_tvaudio(struct cx88_core *core);
|
||||
void cx88_newstation(struct cx88_core *core);
|
||||
void cx88_get_stereo(struct cx88_core *core, struct v4l2_tuner *t);
|
||||
|
Loading…
Reference in New Issue
Block a user