Commit 04cdff5d authored by Federico Vaga's avatar Federico Vaga

Merge branch 'release/v8.0.0.rc2'

parents f620300d b0ea96b5
...@@ -6,6 +6,18 @@ ...@@ -6,6 +6,18 @@
Changelog Changelog
========= =========
8.0.0.rc2 - 2021-07-29
======================
Changed
-------
- sw: better naming in `/dev`
- sw: better hierarchy in `/sys`
Removed
-------
- sw: module parameter to se offset. This is not handled with platform_data from
the top level driver.
8.0.0.rc1 - 2020-11-17 8.0.0.rc1 - 2020-11-17
====================== ======================
Added Added
......
# include parent_common.mk for buildsystem's defines # include parent_common.mk for buildsystem's defines
# use absolute path for REPO_PARENT # use absolute path for REPO_PARENT
REPO_PARENT ?= $(shell /bin/pwd)/.. REPO_PARENT ?= $(shell /bin/pwd)/../../
-include $(REPO_PARENT)/parent_common.mk -include $(REPO_PARENT)/parent_common.mk
all: kernel lib tools all: kernel lib tools
......
...@@ -11,7 +11,6 @@ ccflags-y = -DVERSION=\"$(VERSION)\" ...@@ -11,7 +11,6 @@ ccflags-y = -DVERSION=\"$(VERSION)\"
ccflags-y += -I$(src) ccflags-y += -I$(src)
ccflags-y += -I$(ZIO_ABS)/include ccflags-y += -I$(ZIO_ABS)/include
ccflags-y += -I$(FMC_ABS)/include ccflags-y += -I$(FMC_ABS)/include
ccflags-y += -I$(FMC_ABS)/include/uapi
ccflags-$(CONFIG_FMC_TDC_DEBUG) += -DDEBUG ccflags-$(CONFIG_FMC_TDC_DEBUG) += -DDEBUG
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include <linux/jhash.h> #include <linux/jhash.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/fmc.h> #include <linux/fmc.h>
#include <linux/ipmi/fru.h> #include <uapi/linux/ipmi/fru.h>
#include <linux/zio.h> #include <linux/zio.h>
#include "fmc-tdc.h" #include "fmc-tdc.h"
...@@ -25,12 +25,6 @@ module_param_named(wr_offset_fix, wr_calibration_offset, int, 0444); ...@@ -25,12 +25,6 @@ module_param_named(wr_offset_fix, wr_calibration_offset, int, 0444);
MODULE_PARM_DESC(wr_offset_fix, MODULE_PARM_DESC(wr_offset_fix,
"Overwrite the White-Rabbit calibration offset for calibration value computer before 2018. (Default: 229460 [ps])"); "Overwrite the White-Rabbit calibration offset for calibration value computer before 2018. (Default: 229460 [ps])");
static u32 wr_calibration_offset_carrier = 0;
module_param_named(wr_offset_carrier, wr_calibration_offset_carrier, int, 0444);
MODULE_PARM_DESC(wr_offset_carrier,
"White-Rabbit carrier calibration offset. (Default SPEC: 0 [ps])");
/* dummy calibration data - used in case of empty/corrupted EEPROM */ /* dummy calibration data - used in case of empty/corrupted EEPROM */
static struct ft_calibration default_calibration = { static struct ft_calibration default_calibration = {
{0, 86, 609, 572, 335}, /* zero_offset */ {0, 86, 609, 572, 335}, /* zero_offset */
...@@ -124,7 +118,6 @@ static void ft_calib_cpy_from_raw(struct ft_calibration *calib, ...@@ -124,7 +118,6 @@ static void ft_calib_cpy_from_raw(struct ft_calibration *calib,
calib->vcxo_default_tune = calib_raw->vcxo_default_tune / 100; calib->vcxo_default_tune = calib_raw->vcxo_default_tune / 100;
calib->calibration_temp = calib_raw->calibration_temp; calib->calibration_temp = calib_raw->calibration_temp;
calib->wr_offset = calib_raw->wr_offset / 100; calib->wr_offset = calib_raw->wr_offset / 100;
calib->wr_offset += wr_calibration_offset_carrier;
} }
static void ft_calib_cpy_to_raw(struct ft_calibration_raw *calib_raw, static void ft_calib_cpy_to_raw(struct ft_calibration_raw *calib_raw,
...@@ -136,7 +129,7 @@ static void ft_calib_cpy_to_raw(struct ft_calibration_raw *calib_raw, ...@@ -136,7 +129,7 @@ static void ft_calib_cpy_to_raw(struct ft_calibration_raw *calib_raw,
calib_raw->zero_offset[i - 1] = calib->zero_offset[i] * 100; calib_raw->zero_offset[i - 1] = calib->zero_offset[i] * 100;
calib_raw->vcxo_default_tune = calib->vcxo_default_tune * 100; calib_raw->vcxo_default_tune = calib->vcxo_default_tune * 100;
calib_raw->calibration_temp = calib->calibration_temp; calib_raw->calibration_temp = calib->calibration_temp;
calib_raw->wr_offset = (calib->wr_offset - wr_calibration_offset_carrier) * 100; calib_raw->wr_offset = calib->wr_offset * 100;
ft_calib_cpu_to_le32s(calib_raw); ft_calib_cpu_to_le32s(calib_raw);
} }
...@@ -206,7 +199,6 @@ int ft_calib_init(struct fmctdc_dev *ft) ...@@ -206,7 +199,6 @@ int ft_calib_init(struct fmctdc_dev *ft)
ft->calib.wr_offset = wr_calibration_offset; ft->calib.wr_offset = wr_calibration_offset;
out: out:
ft->calib.wr_offset += wr_calibration_offset_carrier;
return 0; return 0;
} }
......
...@@ -18,6 +18,7 @@ enum ft_spec_dev_offsets { ...@@ -18,6 +18,7 @@ enum ft_spec_dev_offsets {
static const struct fmc_tdc_platform_data fmc_tdc_pdata = { static const struct fmc_tdc_platform_data fmc_tdc_pdata = {
.flags = 0, .flags = 0,
.wr_calibration_offset_carrier = 0,
}; };
static int ft_spec_probe(struct platform_device *pdev) static int ft_spec_probe(struct platform_device *pdev)
......
...@@ -21,6 +21,7 @@ enum ft_svec_dev_offsets { ...@@ -21,6 +21,7 @@ enum ft_svec_dev_offsets {
static struct fmc_tdc_platform_data fmc_tdc_pdata = { static struct fmc_tdc_platform_data fmc_tdc_pdata = {
.flags = FMC_TDC_BIG_ENDIAN, .flags = FMC_TDC_BIG_ENDIAN,
.wr_calibration_offset_carrier = 3000,
}; };
/* MFD devices */ /* MFD devices */
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#include <linux/list.h> #include <linux/list.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/ipmi/fru.h> #include <uapi/linux/ipmi/fru.h>
#include <linux/fmc.h> #include <linux/fmc.h>
#include <linux/zio.h> #include <linux/zio.h>
...@@ -453,7 +453,15 @@ int ft_probe(struct platform_device *pdev) ...@@ -453,7 +453,15 @@ int ft_probe(struct platform_device *pdev)
if(!ft_fmc_slot_is_valid(ft)) if(!ft_fmc_slot_is_valid(ft))
goto out_fmc_err; goto out_fmc_err;
ret = ft_calib_init(ft); err = sysfs_create_link(&ft->pdev->dev.kobj, &ft->slot->dev.kobj,
dev_name(&ft->slot->dev));
if (err) {
dev_err(&ft->pdev->dev, "Failed to create FMC symlink to %s\n",
dev_name(&ft->slot->dev));
goto err_fmc_link;
}
ret = ft_calib_init(ft);
if (ret < 0) if (ret < 0)
goto err_calib; goto err_calib;
...@@ -491,6 +499,8 @@ err: ...@@ -491,6 +499,8 @@ err:
m->exit(ft); m->exit(ft);
ft_calib_exit(ft); ft_calib_exit(ft);
err_calib: err_calib:
sysfs_remove_link(&ft->pdev->dev.kobj, dev_name(&ft->slot->dev));
err_fmc_link:
out_fmc_err: out_fmc_err:
out_fmc_eeprom: out_fmc_eeprom:
out_fmc_pre: out_fmc_pre:
...@@ -533,6 +543,7 @@ int ft_remove(struct platform_device *pdev) ...@@ -533,6 +543,7 @@ int ft_remove(struct platform_device *pdev)
m->exit(ft); m->exit(ft);
} }
ft_calib_exit(ft); ft_calib_exit(ft);
sysfs_remove_link(&ft->pdev->dev.kobj, dev_name(&ft->slot->dev));
fmc_slot_put(ft->slot); fmc_slot_put(ft->slot);
iounmap(ft->ft_base); iounmap(ft->ft_base);
kfree(ft); kfree(ft);
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <linux/zio-trigger.h> #include <linux/zio-trigger.h>
#include "fmc-tdc.h" #include "fmc-tdc.h"
#include "platform_data/fmc-tdc.h"
#include "hw/channel_regs.h" #include "hw/channel_regs.h"
#include "hw/timestamp_fifo_regs.h" #include "hw/timestamp_fifo_regs.h"
#include "hw/tdc_onewire_regs.h" #include "hw/tdc_onewire_regs.h"
...@@ -68,14 +69,17 @@ enum ft_devtype { ...@@ -68,14 +69,17 @@ enum ft_devtype {
*/ */
static void ft_update_offsets(struct fmctdc_dev *ft, int channel) static void ft_update_offsets(struct fmctdc_dev *ft, int channel)
{ {
struct fmc_tdc_platform_data *pdata = ft->pdev->dev.platform_data;
struct ft_channel_state *st = &ft->channels[channel]; struct ft_channel_state *st = &ft->channels[channel];
struct ft_hw_timestamp hw_offset = {0, 0, 0, 0}; struct ft_hw_timestamp hw_offset = {0, 0, 0, 0};
int32_t wr_offset = 0;
void *fifo_addr; void *fifo_addr;
fifo_addr = ft->ft_fifo_base + TDC_FIFO_OFFSET * channel; fifo_addr = ft->ft_fifo_base + TDC_FIFO_OFFSET * channel;
ft_ts_apply_offset(&hw_offset, ft->calib.zero_offset[channel]); ft_ts_apply_offset(&hw_offset, ft->calib.zero_offset[channel]);
ft_ts_apply_offset(&hw_offset, -ft->calib.wr_offset); wr_offset = ft->calib.wr_offset + pdata->wr_calibration_offset_carrier;
ft_ts_apply_offset(&hw_offset, -wr_offset);
if (st->user_offset) if (st->user_offset)
ft_ts_apply_offset(&hw_offset, st->user_offset); ft_ts_apply_offset(&hw_offset, st->user_offset);
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
struct fmc_tdc_platform_data { struct fmc_tdc_platform_data {
unsigned long flags; unsigned long flags;
uint32_t wr_calibration_offset_carrier;
}; };
#endif #endif
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
# include parent_common.mk for buildsystem's defines # include parent_common.mk for buildsystem's defines
IGNORE_CPU_SUFFIX := y IGNORE_CPU_SUFFIX := y
REPO_PARENT ?= REPO_PARENT ?=$(shell pwd)/../../../
-include $(REPO_PARENT)/parent_common.mk -include $(REPO_PARENT)/parent_common.mk
ZIO ?= ../zio ZIO ?= ../zio
......
...@@ -213,7 +213,7 @@ struct fmctdc_board *fmctdc_open_by_lun(int lun) ...@@ -213,7 +213,7 @@ struct fmctdc_board *fmctdc_open_by_lun(int lun)
{ {
ssize_t ret; ssize_t ret;
char dev_id_str[4]; char dev_id_str[4];
char path_pattern[] = "/dev/fmc-tdc.%d"; char path_pattern[] = "/dev/tdc-1n5c.%d";
char path[sizeof(path_pattern) + 1]; char path[sizeof(path_pattern) + 1];
uint32_t dev_id; uint32_t dev_id;
......
...@@ -17,6 +17,7 @@ extern "C" { ...@@ -17,6 +17,7 @@ extern "C" {
#include <inttypes.h> #include <inttypes.h>
#include <stdint.h> #include <stdint.h>
#include <fmc-tdc.h>
/** /**
* printf format for timestamps with pico-second resolution * printf format for timestamps with pico-second resolution
...@@ -210,9 +211,6 @@ extern int fmctdc_ts_mode_get(struct fmctdc_board *userb, ...@@ -210,9 +211,6 @@ extern int fmctdc_ts_mode_get(struct fmctdc_board *userb,
/**@}*/ /**@}*/
#include "fmctdc-lib-private.h"
/** /**
* @defgroup libacq Time-stamps Acquisition * @defgroup libacq Time-stamps Acquisition
* Set of functions to read time-stamps from the board * Set of functions to read time-stamps from the board
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
# include parent_common.mk for buildsystem's defines # include parent_common.mk for buildsystem's defines
IGNORE_CPU_SUFFIX := y IGNORE_CPU_SUFFIX := y
REPO_PARENT ?= REPO_PARENT ?= $(shell pwd)/../../../
-include $(REPO_PARENT)/parent_common.mk -include $(REPO_PARENT)/parent_common.mk
DESTDIR ?= /usr/local/ DESTDIR ?= /usr/local/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment