Message ID | 20241202-fix-llvm9-v1-0-2a50f5acfd0b@chromium.org |
---|---|
Headers | show |
Series | media: Fix warnings with llvm9 | expand |
Em Mon, 02 Dec 2024 15:47:15 +0000 Ricardo Ribalda <ribalda@chromium.org> escreveu: > The code is running arithmentics with the enum, which when not done with > care makes the compiler a bit nervous. > > Because those enums are only used as defines (no argument or variable > from that enumeration type), convert it into a define and move on. > > It is required to build with llvm 9 without these warnings: > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c:673:17: warning: bitwise operation between different enumeration types ('enum TS_PORT' and 'enum POWE_TYPE') [-Wenum-enum-conversion] > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c:680:21: warning: bitwise operation between different enumeration types ('enum AVDEC_STATUS' and 'enum POWE_TYPE') [-Wenum-enum-conversion] > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c:687:21: warning: bitwise operation between different enumeration types ('enum AVDEC_STATUS' and 'enum POWE_TYPE') [-Wenum-enum-conversion] > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c:702:17: warning: bitwise operation between different enumeration types ('enum TS_PORT' and 'enum POWE_TYPE') [-Wenum-enum-conversion] > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c:709:21: warning: bitwise operation between different enumeration types ('enum TS_PORT' and 'enum POWE_TYPE') [-Wenum-enum-conversion] > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c:718:21: warning: bitwise operation between different enumeration types ('enum AVDEC_STATUS' and 'enum POWE_TYPE') [-Wenum-enum-conversion] > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c:727:21: warning: bitwise operation between different enumeration types ('enum AVDEC_STATUS' and 'enum TS_PORT') [-Wenum-enum-conversion] > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c:737:21: warning: bitwise operation between different enumeration types ('enum AVDEC_STATUS' and 'enum TS_PORT') [-Wenum-enum-conversion] > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c:749:21: warning: bitwise operation between different enumeration types ('enum AVDEC_STATUS' and 'enum TS_PORT') [-Wenum-enum-conversion] > > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> > --- > drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h | 18 +++++++----------- > 1 file changed, 7 insertions(+), 11 deletions(-) > > diff --git a/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h b/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h > index 5bc44f194d0a..62ffa16bb82c 100644 > --- a/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h > +++ b/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h > @@ -57,19 +57,17 @@ enum USB_SPEED{ > }; > > #define TS_MASK 0x6 > -enum TS_PORT{ > - NO_TS_PORT = 0x0, /* 2'b00: Neither port used. PCB not a Hybrid, > +#define NO_TS_PORT 0x0 /* 2'b00: Neither port used. PCB not a Hybrid, > only offers Analog TV or Video */ > - TS1_PORT = 0x4, /* 2'b10: TS1 Input (Hybrid mode : > +#define TS1_PORT 0x4 /* 2'b10: TS1 Input (Hybrid mode : > Digital or External Analog/Compressed source) */ > - TS1_TS2_PORT = 0x6, /* 2'b11: TS1 & TS2 Inputs > +#define TS1_TS2_PORT 0x6 /* 2'b11: TS1 & TS2 Inputs > (Dual inputs from Digital and/or > External Analog/Compressed sources) */ > - TS1_EXT_CLOCK = 0x6, /* 2'b11: TS1 & TS2 as selector > +#define TS1_EXT_CLOCK 0x6 /* 2'b11: TS1 & TS2 as selector > to external clock */ > - TS1VIP_TS2_PORT = 0x2 /* 2'b01: TS1 used as 656/VIP Output, > +#define TS1VIP_TS2_PORT 0x2 /* 2'b01: TS1 used as 656/VIP Output, > TS2 Input (from Compressor) */ > -}; > > #define EAVP_MASK 0x8 > enum EAV_PRESENT{ > @@ -89,10 +87,8 @@ enum AT_MODE{ > }; > > #define PWR_SEL_MASK 0x40 > -enum POWE_TYPE{ > - SELF_POWER = 0x0, /* 0: self power */ > - BUS_POWER = 0x40 /* 1: bus power */ > -}; > +#define SELF_POWER 0x0 /* 0: self power */ > +#define BUS_POWER 0x40 /* 1: bus power */ > > enum USB_POWE_TYPE{ > USB_SELF_POWER = 0, > IMO keeping them into enums are a lot better than defines. Perhaps the right thing would be to join both enums here. Thanks, Mauro
When we tried to build media with llvm we got some new warnings, lets try to fix them before llvm is part of our CI. Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> --- Ricardo Ribalda (3): media: cx231xx: Convert enum into a define media: atomisp: Use the actual value of the enum instead of the enum media: mediatek: vcodec: Workaround a compiler warning .../mediatek/vcodec/encoder/venc/venc_h264_if.c | 6 ++++-- drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h | 18 +++++++----------- .../media/atomisp/pci/hive_isp_css_common/irq_global.h | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) --- base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37 change-id: 20241202-fix-llvm9-4c8d705c9e3e Best regards,