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

Merge branch 'release/v8.0.0.rc2'

parents f620300d b0ea96b5
......@@ -6,6 +6,18 @@
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
======================
Added
......
# include parent_common.mk for buildsystem's defines
# use absolute path for REPO_PARENT
REPO_PARENT ?= $(shell /bin/pwd)/..
REPO_PARENT ?= $(shell /bin/pwd)/../../
-include $(REPO_PARENT)/parent_common.mk
all: kernel lib tools
......
......@@ -11,7 +11,6 @@ ccflags-y = -DVERSION=\"$(VERSION)\"
ccflags-y += -I$(src)
ccflags-y += -I$(ZIO_ABS)/include
ccflags-y += -I$(FMC_ABS)/include
ccflags-y += -I$(FMC_ABS)/include/uapi
ccflags-$(CONFIG_FMC_TDC_DEBUG) += -DDEBUG
......
......@@ -14,7 +14,7 @@
#include <linux/jhash.h>
#include <linux/slab.h>
#include <linux/fmc.h>
#include <linux/ipmi/fru.h>
#include <uapi/linux/ipmi/fru.h>
#include <linux/zio.h>
#include "fmc-tdc.h"
......@@ -25,12 +25,6 @@ module_param_named(wr_offset_fix, wr_calibration_offset, int, 0444);
MODULE_PARM_DESC(wr_offset_fix,
"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 */
static struct ft_calibration default_calibration = {
{0, 86, 609, 572, 335}, /* zero_offset */
......@@ -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->calibration_temp = calib_raw->calibration_temp;
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,
......@@ -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->vcxo_default_tune = calib->vcxo_default_tune * 100;
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);
}
......@@ -206,7 +199,6 @@ int ft_calib_init(struct fmctdc_dev *ft)
ft->calib.wr_offset = wr_calibration_offset;
out:
ft->calib.wr_offset += wr_calibration_offset_carrier;
return 0;
}
......
......@@ -18,6 +18,7 @@ enum ft_spec_dev_offsets {
static const struct fmc_tdc_platform_data fmc_tdc_pdata = {
.flags = 0,
.wr_calibration_offset_carrier = 0,
};
static int ft_spec_probe(struct platform_device *pdev)
......
......@@ -21,6 +21,7 @@ enum ft_svec_dev_offsets {
static struct fmc_tdc_platform_data fmc_tdc_pdata = {
.flags = FMC_TDC_BIG_ENDIAN,
.wr_calibration_offset_carrier = 3000,
};
/* MFD devices */
......
......@@ -20,7 +20,7 @@
#include <linux/list.h>
#include <linux/io.h>
#include <linux/platform_device.h>
#include <linux/ipmi/fru.h>
#include <uapi/linux/ipmi/fru.h>
#include <linux/fmc.h>
#include <linux/zio.h>
......@@ -453,7 +453,15 @@ int ft_probe(struct platform_device *pdev)
if(!ft_fmc_slot_is_valid(ft))
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)
goto err_calib;
......@@ -491,6 +499,8 @@ err:
m->exit(ft);
ft_calib_exit(ft);
err_calib:
sysfs_remove_link(&ft->pdev->dev.kobj, dev_name(&ft->slot->dev));
err_fmc_link:
out_fmc_err:
out_fmc_eeprom:
out_fmc_pre:
......@@ -533,6 +543,7 @@ int ft_remove(struct platform_device *pdev)
m->exit(ft);
}
ft_calib_exit(ft);
sysfs_remove_link(&ft->pdev->dev.kobj, dev_name(&ft->slot->dev));
fmc_slot_put(ft->slot);
iounmap(ft->ft_base);
kfree(ft);
......
......@@ -22,6 +22,7 @@
#include <linux/zio-trigger.h>
#include "fmc-tdc.h"
#include "platform_data/fmc-tdc.h"
#include "hw/channel_regs.h"
#include "hw/timestamp_fifo_regs.h"
#include "hw/tdc_onewire_regs.h"
......@@ -68,14 +69,17 @@ enum ft_devtype {
*/
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_hw_timestamp hw_offset = {0, 0, 0, 0};
int32_t wr_offset = 0;
void *fifo_addr;
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.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)
ft_ts_apply_offset(&hw_offset, st->user_offset);
......
......@@ -11,6 +11,7 @@
struct fmc_tdc_platform_data {
unsigned long flags;
uint32_t wr_calibration_offset_carrier;
};
#endif
......@@ -7,7 +7,7 @@
# include parent_common.mk for buildsystem's defines
IGNORE_CPU_SUFFIX := y
REPO_PARENT ?=
REPO_PARENT ?=$(shell pwd)/../../../
-include $(REPO_PARENT)/parent_common.mk
ZIO ?= ../zio
......
......@@ -213,7 +213,7 @@ struct fmctdc_board *fmctdc_open_by_lun(int lun)
{
ssize_t ret;
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];
uint32_t dev_id;
......
......@@ -17,6 +17,7 @@ extern "C" {
#include <inttypes.h>
#include <stdint.h>
#include <fmc-tdc.h>
/**
* printf format for timestamps with pico-second resolution
......@@ -210,9 +211,6 @@ extern int fmctdc_ts_mode_get(struct fmctdc_board *userb,
/**@}*/
#include "fmctdc-lib-private.h"
/**
* @defgroup libacq Time-stamps Acquisition
* Set of functions to read time-stamps from the board
......
......@@ -5,7 +5,7 @@
# include parent_common.mk for buildsystem's defines
IGNORE_CPU_SUFFIX := y
REPO_PARENT ?=
REPO_PARENT ?= $(shell pwd)/../../../
-include $(REPO_PARENT)/parent_common.mk
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