diff --git a/patches/fmc-adc-100m14b4cha-sw.diff b/patches/fmc-adc-100m14b4cha-sw.diff new file mode 100644 index 0000000000000000000000000000000000000000..00d1d494bc046645d38d29012e8fa5917423d07f --- /dev/null +++ b/patches/fmc-adc-100m14b4cha-sw.diff @@ -0,0 +1,123 @@ +diff --git a/kernel/fa-zio-drv.c b/kernel/fa-zio-drv.c +index a3a288d..69f545e 100644 +--- a/kernel/fa-zio-drv.c ++++ b/kernel/fa-zio-drv.c +@@ -193,10 +193,13 @@ static int zfad_conf_set(struct device *dev, struct zio_attribute *zattr, + return 0; + case ZFA_SW_CH1_OFFSET_ZERO: + i--; ++ __attribute__((fallthrough)); + case ZFA_SW_CH2_OFFSET_ZERO: + i--; ++ /*fallthrough*/ + case ZFA_SW_CH3_OFFSET_ZERO: + i--; ++ /*fallthrough*/ + case ZFA_SW_CH4_OFFSET_ZERO: + i--; + +@@ -223,10 +226,13 @@ static int zfad_conf_set(struct device *dev, struct zio_attribute *zattr, + /* FIXME temporary until TLV control */ + case ZFA_CH1_OFFSET: + i--; ++ /*fallthrough*/ + case ZFA_CH2_OFFSET: + i--; ++ /*fallthrough*/ + case ZFA_CH3_OFFSET: + i--; ++ /*fallthrough*/ + case ZFA_CH4_OFFSET: + i--; + +@@ -252,9 +258,13 @@ static int zfad_conf_set(struct device *dev, struct zio_attribute *zattr, + break; + /* FIXME temporary until TLV control */ + case ZFA_CH1_CTL_TERM: ++ /*fallthrough*/ + case ZFA_CH2_CTL_TERM: ++ /*fallthrough*/ + case ZFA_CH3_CTL_TERM: ++ /*fallthrough*/ + case ZFA_CH4_CTL_TERM: ++ /*fallthrough*/ + case ZFA_CHx_CTL_TERM: + if (usr_val > 1) + usr_val = 1; +@@ -263,10 +273,13 @@ static int zfad_conf_set(struct device *dev, struct zio_attribute *zattr, + /* FIXME temporary until TLV control */ + case ZFA_CH1_CTL_RANGE: + i--; ++ /*fallthrough*/ + case ZFA_CH2_CTL_RANGE: + i--; ++ /*fallthrough*/ + case ZFA_CH3_CTL_RANGE: + i--; ++ /*fallthrough*/ + case ZFA_CH4_CTL_RANGE: + i--; + range = zfad_convert_user_range(usr_val); +@@ -336,10 +349,13 @@ static int zfad_info_get(struct device *dev, struct zio_attribute *zattr, + /* FIXME temporary until TLV control */ + case ZFA_CH1_OFFSET: + i--; ++ /*fallthrough*/ + case ZFA_CH2_OFFSET: + i--; ++ /*fallthrough*/ + case ZFA_CH3_OFFSET: + i--; ++ /*fallthrough*/ + case ZFA_CH4_OFFSET: + i--; + *usr_val = fa->user_offset[i]; +@@ -349,7 +365,9 @@ static int zfad_info_get(struct device *dev, struct zio_attribute *zattr, + *usr_val = fa->user_offset[to_zio_chan(dev)->index]; + return 0; + case ZFAT_ADC_TST_PATTERN: ++ /*fallthrough*/ + case ZFA_SW_R_NOADDRES_NBIT: ++ /*fallthrough*/ + case ZFA_SW_R_NOADDERS_AUTO: + /* ZIO automatically return the attribute value */ + return 0; +@@ -363,16 +381,21 @@ static int zfad_info_get(struct device *dev, struct zio_attribute *zattr, + return 0; + case ZFA_SW_CH1_OFFSET_ZERO: + i--; ++ /*fallthrough*/ + case ZFA_SW_CH2_OFFSET_ZERO: + i--; ++ /*fallthrough*/ + case ZFA_SW_CH3_OFFSET_ZERO: + i--; ++ /*fallthrough*/ + case ZFA_SW_CH4_OFFSET_ZERO: + i--; + *usr_val = fa->zero_offset[i]; + return 0; + case ZFA_CHx_SAT: ++ /*fallthrough*/ + case ZFA_CHx_CTL_TERM: ++ /*fallthrough*/ + case ZFA_CHx_CTL_RANGE: + reg_index = zfad_get_chx_index(zattr->id, to_zio_chan(dev)); + break; +diff --git a/kernel/fmc-adc-100m14b4cha.h b/kernel/fmc-adc-100m14b4cha.h +index 98ace36..359e312 100644 +--- a/kernel/fmc-adc-100m14b4cha.h ++++ b/kernel/fmc-adc-100m14b4cha.h +@@ -11,11 +11,10 @@ + #include <linux/types.h> + #else + #include <stdint.h> +-#endif +- + #ifndef BIT + #define BIT(nr) (1UL << (nr)) + #endif ++#endif + + /* Trigger sources */ + #define FA100M14B4C_TRG_SRC_EXT BIT(0) diff --git a/patches/zio.diff b/patches/zio.diff new file mode 100644 index 0000000000000000000000000000000000000000..0ebb7eac30580b11f01544752274e54a1e528cb2 --- /dev/null +++ b/patches/zio.diff @@ -0,0 +1,24 @@ +diff --git a/drivers/zio/devices/zio-loop.c b/drivers/zio/devices/zio-loop.c +index 4edd97f..c88acda 100644 +--- a/drivers/zio/devices/zio-loop.c ++++ b/drivers/zio/devices/zio-loop.c +@@ -186,6 +186,7 @@ static int zloop_raw_output(struct zio_cset *cset) + + case ZLOOP_CSET_OUT_DATA: + index = ZLOOP_TYPE_READ_DATA; ++ /*@fallthrough@*/ + case ZLOOP_CSET_OUT_CTRLDATA: + if (index < 0) + index = ZLOOP_TYPE_READ_CTRLDATA; +diff --git a/drivers/zio/sysfs.c b/drivers/zio/sysfs.c +index 42f292a..9f0ca40 100644 +--- a/drivers/zio/sysfs.c ++++ b/drivers/zio/sysfs.c +@@ -764,6 +764,7 @@ static ssize_t zio_store_alarm(struct device *dev, + switch (sscanf(buf, "%i %i", &v1, &v2)) { + case 2: + ctrl->drv_alarms &= (~v2); ++ /*@fallthrough@*/ + case 1: + ctrl->zio_alarms &= (~v1); + break; diff --git a/scripts/zio_build.sh b/scripts/zio_build.sh index 0f2ba39069272a4580d9265db12e93f2393b939f..5b045b38a0211b3777fa366f40fc3d96e42c4e46 100644 --- a/scripts/zio_build.sh +++ b/scripts/zio_build.sh @@ -9,6 +9,7 @@ cd $BUILD_DIR [ -d $PROJECT ] || git clone https://ohwr.org/project/zio.git $PROJECT cd $PROJECT git checkout -B release v1.4.2 +[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff make -C drivers/zio sudo -E make -C drivers/zio modules_install