mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-14 21:01:29 +00:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
Pull trivial tree updates from Jiri Kosina. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: kfifo: fix inaccurate comment tools/thermal: tmon: fix for segfault net: Spelling s/stucture/structure/ edd: don't spam log if no EDD information is present Documentation: Fix early-microcode.txt references after file rename tracing: Block comments should align the * on each line treewide: Fix typos in printk GenWQE: Fix a typo in two comments treewide: Align function definition open/close braces
This commit is contained in:
commit
672a9c1069
@ -2,14 +2,14 @@
|
||||
- this file
|
||||
boot.txt
|
||||
- List of boot protocol versions
|
||||
early-microcode.txt
|
||||
- How to load microcode from an initrd-CPIO archive early to fix CPU issues.
|
||||
earlyprintk.txt
|
||||
- Using earlyprintk with a USB2 debug port key.
|
||||
entry_64.txt
|
||||
- Describe (some of the) kernel entry points for x86.
|
||||
exception-tables.txt
|
||||
- why and how Linux kernel uses exception tables on x86
|
||||
microcode.txt
|
||||
- How to load microcode from an initrd-CPIO archive early to fix CPU issues.
|
||||
mtrr.txt
|
||||
- how to use x86 Memory Type Range Registers to increase performance
|
||||
pat.txt
|
||||
|
@ -1296,7 +1296,7 @@ config MICROCODE
|
||||
the Linux kernel.
|
||||
|
||||
The preferred method to load microcode from a detached initrd is described
|
||||
in Documentation/x86/early-microcode.txt. For that you need to enable
|
||||
in Documentation/x86/microcode.txt. For that you need to enable
|
||||
CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the
|
||||
initrd for microcode blobs.
|
||||
|
||||
|
@ -123,7 +123,7 @@ static inline long long arch_atomic64_read(const atomic64_t *v)
|
||||
long long r;
|
||||
alternative_atomic64(read, "=&A" (r), "c" (v) : "memory");
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* arch_atomic64_add_return - add and return
|
||||
|
@ -58,7 +58,7 @@ static u8 amd_ucode_patch[PATCH_MAX_SIZE];
|
||||
|
||||
/*
|
||||
* Microcode patch container file is prepended to the initrd in cpio
|
||||
* format. See Documentation/x86/early-microcode.txt
|
||||
* format. See Documentation/x86/microcode.txt
|
||||
*/
|
||||
static const char
|
||||
ucode_path[] __maybe_unused = "kernel/x86/microcode/AuthenticAMD.bin";
|
||||
|
@ -94,7 +94,7 @@ static void __exit acpi_custom_method_exit(void)
|
||||
{
|
||||
if (cm_dentry)
|
||||
debugfs_remove(cm_dentry);
|
||||
}
|
||||
}
|
||||
|
||||
module_init(acpi_custom_method_init);
|
||||
module_exit(acpi_custom_method_exit);
|
||||
|
@ -219,7 +219,7 @@ fan_set_cur_state(struct thermal_cooling_device *cdev, unsigned long state)
|
||||
return fan_set_state_acpi4(device, state);
|
||||
else
|
||||
return fan_set_state(device, state);
|
||||
}
|
||||
}
|
||||
|
||||
static const struct thermal_cooling_device_ops fan_cooling_ops = {
|
||||
.get_max_state = fan_get_max_state,
|
||||
|
@ -748,14 +748,12 @@ edd_init(void)
|
||||
int rc=0;
|
||||
struct edd_device *edev;
|
||||
|
||||
if (!edd_num_devices())
|
||||
return -ENODEV;
|
||||
|
||||
printk(KERN_INFO "BIOS EDD facility v%s %s, %d devices found\n",
|
||||
EDD_VERSION, EDD_DATE, edd_num_devices());
|
||||
|
||||
if (!edd_num_devices()) {
|
||||
printk(KERN_INFO "EDD information not available.\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
edd_kset = kset_create_and_add("edd", NULL, firmware_kobj);
|
||||
if (!edd_kset)
|
||||
return -ENOMEM;
|
||||
|
@ -244,7 +244,7 @@ int fmc_device_register_n_gw(struct fmc_device **devs, int n,
|
||||
if (!fmc->carrier_name || !fmc->carrier_data ||
|
||||
!fmc->device_id) {
|
||||
dev_err(fmc->hwdev,
|
||||
"deivce nr %i: carrier name, "
|
||||
"device nr %i: carrier name, "
|
||||
"data or dev_id not set\n", i);
|
||||
ret = -EINVAL;
|
||||
}
|
||||
|
@ -277,7 +277,7 @@ amdgpu_ucode_get_load_type(struct amdgpu_device *adev, int load_type)
|
||||
else
|
||||
return AMDGPU_FW_LOAD_PSP;
|
||||
default:
|
||||
DRM_ERROR("Unknow firmware load type\n");
|
||||
DRM_ERROR("Unknown firmware load type\n");
|
||||
}
|
||||
|
||||
return AMDGPU_FW_LOAD_DIRECT;
|
||||
|
@ -589,7 +589,7 @@ static void disable_dangling_plane(struct dc *dc, struct dc_state *context)
|
||||
******************************************************************************/
|
||||
|
||||
struct dc *dc_create(const struct dc_init_data *init_params)
|
||||
{
|
||||
{
|
||||
struct dc *dc = kzalloc(sizeof(*dc), GFP_KERNEL);
|
||||
unsigned int full_pipe_count;
|
||||
|
||||
|
@ -1626,7 +1626,7 @@ static void cnl_cdclk_pll_disable(struct drm_i915_private *dev_priv)
|
||||
|
||||
/* Timeout 200us */
|
||||
if (wait_for((I915_READ(BXT_DE_PLL_ENABLE) & BXT_DE_PLL_LOCK) == 0, 1))
|
||||
DRM_ERROR("timout waiting for CDCLK PLL unlock\n");
|
||||
DRM_ERROR("timeout waiting for CDCLK PLL unlock\n");
|
||||
|
||||
dev_priv->cdclk.hw.vco = 0;
|
||||
}
|
||||
@ -1644,7 +1644,7 @@ static void cnl_cdclk_pll_enable(struct drm_i915_private *dev_priv, int vco)
|
||||
|
||||
/* Timeout 200us */
|
||||
if (wait_for((I915_READ(BXT_DE_PLL_ENABLE) & BXT_DE_PLL_LOCK) != 0, 1))
|
||||
DRM_ERROR("timout waiting for CDCLK PLL lock\n");
|
||||
DRM_ERROR("timeout waiting for CDCLK PLL lock\n");
|
||||
|
||||
dev_priv->cdclk.hw.vco = vco;
|
||||
}
|
||||
|
@ -885,7 +885,7 @@ static int msp34xxg_modus(struct i2c_client *client)
|
||||
}
|
||||
|
||||
static void msp34xxg_set_source(struct i2c_client *client, u16 reg, int in)
|
||||
{
|
||||
{
|
||||
struct msp_state *state = to_state(i2c_get_clientdata(client));
|
||||
int source, matrix;
|
||||
|
||||
|
@ -2967,7 +2967,7 @@ out_unlock:
|
||||
mutex_unlock(&ioc->sas_mgmt.mutex);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
mptsas_parse_device_info(struct sas_identify *identify,
|
||||
|
@ -453,7 +453,7 @@ int genwqe_setup_sgl(struct genwqe_dev *cd, struct genwqe_sgl *sgl,
|
||||
s += 8; /* continue 8 elements further */
|
||||
}
|
||||
fixup:
|
||||
if (j == 1) { /* combining happend on last entry! */
|
||||
if (j == 1) { /* combining happened on last entry! */
|
||||
s -= 8; /* full shift needed on previous sgl block */
|
||||
j = 7; /* shift all elements */
|
||||
}
|
||||
@ -471,7 +471,7 @@ int genwqe_setup_sgl(struct genwqe_dev *cd, struct genwqe_sgl *sgl,
|
||||
* genwqe_free_sync_sgl() - Free memory for sgl and overlapping pages
|
||||
*
|
||||
* After the DMA transfer has been completed we free the memory for
|
||||
* the sgl and the cached pages. Data is being transfered from cached
|
||||
* the sgl and the cached pages. Data is being transferred from cached
|
||||
* pages into user-space buffers.
|
||||
*/
|
||||
int genwqe_free_sync_sgl(struct genwqe_dev *cd, struct genwqe_sgl *sgl)
|
||||
|
@ -603,7 +603,7 @@ static struct uni_table_desc *nx_get_table_desc(const u8 *unirom, int section)
|
||||
|
||||
static int
|
||||
netxen_nic_validate_header(struct netxen_adapter *adapter)
|
||||
{
|
||||
{
|
||||
const u8 *unirom = adapter->fw->data;
|
||||
struct uni_table_desc *directory = (struct uni_table_desc *) &unirom[0];
|
||||
u32 fw_file_size = adapter->fw->size;
|
||||
|
@ -321,7 +321,7 @@ static int qed_pglub_rbc_attn_cb(struct qed_hwfn *p_hwfn)
|
||||
tmp = qed_rd(p_hwfn, p_hwfn->p_dpc_ptt,
|
||||
PGLUE_B_REG_TX_ERR_WR_DETAILS_ICPL);
|
||||
if (tmp & PGLUE_ATTENTION_ICPL_VALID)
|
||||
DP_INFO(p_hwfn, "ICPL eror - %08x\n", tmp);
|
||||
DP_INFO(p_hwfn, "ICPL error - %08x\n", tmp);
|
||||
|
||||
tmp = qed_rd(p_hwfn, p_hwfn->p_dpc_ptt,
|
||||
PGLUE_B_REG_MASTER_ZLR_ERR_DETAILS);
|
||||
|
@ -1901,7 +1901,7 @@ ThunderLAN driver adapter related routines
|
||||
* Nothing
|
||||
* Parms:
|
||||
* dev The device structure with the list
|
||||
* stuctures to be reset.
|
||||
* structures to be reset.
|
||||
*
|
||||
* This routine sets the variables associated with managing
|
||||
* the TLAN lists to their initial values.
|
||||
|
@ -252,7 +252,7 @@ ath_tid_pull(struct ath_atx_tid *tid)
|
||||
}
|
||||
|
||||
return skb;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static bool ath_tid_has_buffered(struct ath_atx_tid *tid)
|
||||
|
@ -3861,7 +3861,7 @@ static int reset_atmel_card(struct net_device *dev)
|
||||
|
||||
set all the Mib values which matter in the card to match
|
||||
their settings in the atmel_private structure. Some of these
|
||||
can be altered on the fly, but many (WEP, infrastucture or ad-hoc)
|
||||
can be altered on the fly, but many (WEP, infrastructure or ad-hoc)
|
||||
can only be changed by tearing down the world and coming back through
|
||||
here.
|
||||
|
||||
|
@ -4431,7 +4431,7 @@ void rtl8xxxu_gen1_init_aggregation(struct rtl8xxxu_priv *priv)
|
||||
timeout = page_thresh;
|
||||
else if (rtl8xxxu_dma_agg_pages <= 6)
|
||||
dev_err(&priv->udev->dev,
|
||||
"%s: dma_agg_pages=%i too small, minium is 6\n",
|
||||
"%s: dma_agg_pages=%i too small, minimum is 6\n",
|
||||
__func__, rtl8xxxu_dma_agg_pages);
|
||||
else
|
||||
dev_err(&priv->udev->dev,
|
||||
|
@ -492,7 +492,7 @@ static void eeepc_platform_exit(struct eeepc_laptop *eeepc)
|
||||
* potentially bad time, such as a timer interrupt.
|
||||
*/
|
||||
static void tpd_led_update(struct work_struct *work)
|
||||
{
|
||||
{
|
||||
struct eeepc_laptop *eeepc;
|
||||
|
||||
eeepc = container_of(work, struct eeepc_laptop, tpd_led_work);
|
||||
|
@ -648,7 +648,7 @@ static int abb5zes3_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
|
||||
ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
/* Enable or disable battery low irq generation */
|
||||
static inline int _abb5zes3_rtc_battery_low_irq_enable(struct regmap *regmap,
|
||||
|
@ -786,7 +786,7 @@ static int aac_src_restart_adapter(struct aac_dev *dev, int bled, u8 reset_type)
|
||||
if (!is_ctrl_up)
|
||||
dev_err(&dev->pdev->dev, "IOP reset failed\n");
|
||||
else {
|
||||
dev_info(&dev->pdev->dev, "IOP reset succeded\n");
|
||||
dev_info(&dev->pdev->dev, "IOP reset succeeded\n");
|
||||
goto set_startup;
|
||||
}
|
||||
}
|
||||
@ -808,7 +808,7 @@ static int aac_src_restart_adapter(struct aac_dev *dev, int bled, u8 reset_type)
|
||||
ret = -ENODEV;
|
||||
goto out;
|
||||
} else
|
||||
dev_info(&dev->pdev->dev, "SOFT reset succeded\n");
|
||||
dev_info(&dev->pdev->dev, "SOFT reset succeeded\n");
|
||||
}
|
||||
|
||||
set_startup:
|
||||
|
@ -3524,7 +3524,7 @@ static int adpt_i2o_systab_send(adpt_hba* pHba)
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*============================================================================
|
||||
|
@ -1882,7 +1882,7 @@ static int qedi_map_scsi_sg(struct qedi_ctx *qedi, struct qedi_cmd *cmd)
|
||||
bd[bd_count].sge_len = (u16)sg_len;
|
||||
|
||||
QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_IO,
|
||||
"single-cashed-sgl: bd_count:%d addr=%llx, len=%x",
|
||||
"single-cached-sgl: bd_count:%d addr=%llx, len=%x",
|
||||
sg_count, addr, sg_len);
|
||||
|
||||
return ++bd_count;
|
||||
|
@ -1393,7 +1393,7 @@ static struct Scsi_Host *sym_attach(struct scsi_host_template *tpnt, int unit,
|
||||
scsi_host_put(shost);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
@ -559,7 +559,7 @@ static const struct lock_manager_operations lease_manager_ops = {
|
||||
* Initialize a lease, use the default lock manager operations
|
||||
*/
|
||||
static int lease_init(struct file *filp, long type, struct file_lock *fl)
|
||||
{
|
||||
{
|
||||
if (assign_type(fl, type) != 0)
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -398,7 +398,7 @@ static int ocfs2_control_do_setnode_msg(struct file *file,
|
||||
|
||||
static int ocfs2_control_do_setversion_msg(struct file *file,
|
||||
struct ocfs2_control_message_setv *msg)
|
||||
{
|
||||
{
|
||||
long major, minor;
|
||||
char *ptr = NULL;
|
||||
struct ocfs2_control_private *p = file->private_data;
|
||||
|
@ -500,7 +500,7 @@ int orangefs_normalize_to_errno(__s32 error_code)
|
||||
* server.
|
||||
*/
|
||||
} else if (error_code > 0) {
|
||||
gossip_err("orangefs: error status receieved.\n");
|
||||
gossip_err("orangefs: error status received.\n");
|
||||
gossip_err("orangefs: assuming error code is inverted.\n");
|
||||
error_code = -error_code;
|
||||
}
|
||||
|
@ -122,7 +122,7 @@ xfs_nfs_get_inode(
|
||||
struct super_block *sb,
|
||||
u64 ino,
|
||||
u32 generation)
|
||||
{
|
||||
{
|
||||
xfs_mount_t *mp = XFS_M(sb);
|
||||
xfs_inode_t *ip;
|
||||
int error;
|
||||
|
@ -364,7 +364,7 @@ struct iw_handler_def {
|
||||
* defined in struct iw_priv_args.
|
||||
*
|
||||
* For standard IOCTLs, things are quite different and we need to
|
||||
* use the stuctures below. Actually, this struct is also more
|
||||
* use the structures below. Actually, this struct is also more
|
||||
* efficient, but that's another story...
|
||||
*/
|
||||
|
||||
|
@ -443,15 +443,15 @@ static int audit_set_failure(u32 state)
|
||||
* Drop any references inside the auditd connection tracking struct and free
|
||||
* the memory.
|
||||
*/
|
||||
static void auditd_conn_free(struct rcu_head *rcu)
|
||||
{
|
||||
static void auditd_conn_free(struct rcu_head *rcu)
|
||||
{
|
||||
struct auditd_connection *ac;
|
||||
|
||||
ac = container_of(rcu, struct auditd_connection, rcu);
|
||||
put_pid(ac->pid);
|
||||
put_net(ac->net);
|
||||
kfree(ac);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* auditd_set - Set/Reset the auditd connection state
|
||||
|
@ -2380,7 +2380,7 @@ EXPORT_SYMBOL_GPL(trace_event_buffer_commit);
|
||||
* trace_buffer_unlock_commit_regs()
|
||||
* trace_event_buffer_commit()
|
||||
* trace_event_raw_event_xxx()
|
||||
*/
|
||||
*/
|
||||
# define STACK_SKIP 3
|
||||
|
||||
void trace_buffer_unlock_commit_regs(struct trace_array *tr,
|
||||
|
@ -196,7 +196,7 @@ struct notifier_block module_trace_bprintk_format_nb = {
|
||||
};
|
||||
|
||||
int __trace_bprintk(unsigned long ip, const char *fmt, ...)
|
||||
{
|
||||
{
|
||||
int ret;
|
||||
va_list ap;
|
||||
|
||||
@ -214,7 +214,7 @@ int __trace_bprintk(unsigned long ip, const char *fmt, ...)
|
||||
EXPORT_SYMBOL_GPL(__trace_bprintk);
|
||||
|
||||
int __ftrace_vbprintk(unsigned long ip, const char *fmt, va_list ap)
|
||||
{
|
||||
{
|
||||
if (unlikely(!fmt))
|
||||
return 0;
|
||||
|
||||
|
@ -39,7 +39,7 @@ int __kfifo_alloc(struct __kfifo *fifo, unsigned int size,
|
||||
size_t esize, gfp_t gfp_mask)
|
||||
{
|
||||
/*
|
||||
* round down to the next power of 2, since our 'let the indices
|
||||
* round up to the next power of 2, since our 'let the indices
|
||||
* wrap' technique works only in this case.
|
||||
*/
|
||||
size = roundup_pow_of_two(size);
|
||||
|
@ -91,7 +91,7 @@ static void raid6_sse21_gen_syndrome(int disks, size_t bytes, void **ptrs)
|
||||
|
||||
static void raid6_sse21_xor_syndrome(int disks, int start, int stop,
|
||||
size_t bytes, void **ptrs)
|
||||
{
|
||||
{
|
||||
u8 **dptr = (u8 **)ptrs;
|
||||
u8 *p, *q;
|
||||
int d, z, z0;
|
||||
@ -200,9 +200,9 @@ static void raid6_sse22_gen_syndrome(int disks, size_t bytes, void **ptrs)
|
||||
kernel_fpu_end();
|
||||
}
|
||||
|
||||
static void raid6_sse22_xor_syndrome(int disks, int start, int stop,
|
||||
static void raid6_sse22_xor_syndrome(int disks, int start, int stop,
|
||||
size_t bytes, void **ptrs)
|
||||
{
|
||||
{
|
||||
u8 **dptr = (u8 **)ptrs;
|
||||
u8 *p, *q;
|
||||
int d, z, z0;
|
||||
@ -265,7 +265,7 @@ static void raid6_sse22_gen_syndrome(int disks, size_t bytes, void **ptrs)
|
||||
|
||||
asm volatile("sfence" : : : "memory");
|
||||
kernel_fpu_end();
|
||||
}
|
||||
}
|
||||
|
||||
const struct raid6_calls raid6_sse2x2 = {
|
||||
raid6_sse22_gen_syndrome,
|
||||
@ -366,9 +366,9 @@ static void raid6_sse24_gen_syndrome(int disks, size_t bytes, void **ptrs)
|
||||
kernel_fpu_end();
|
||||
}
|
||||
|
||||
static void raid6_sse24_xor_syndrome(int disks, int start, int stop,
|
||||
static void raid6_sse24_xor_syndrome(int disks, int start, int stop,
|
||||
size_t bytes, void **ptrs)
|
||||
{
|
||||
{
|
||||
u8 **dptr = (u8 **)ptrs;
|
||||
u8 *p, *q;
|
||||
int d, z, z0;
|
||||
@ -471,7 +471,7 @@ static void raid6_sse24_gen_syndrome(int disks, size_t bytes, void **ptrs)
|
||||
}
|
||||
asm volatile("sfence" : : : "memory");
|
||||
kernel_fpu_end();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const struct raid6_calls raid6_sse2x4 = {
|
||||
|
@ -1536,7 +1536,7 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
|
||||
*
|
||||
* 1003.1g adds the ability to recvmsg() to query connection pending
|
||||
* status to recvmsg. We need to add that support in a way thats
|
||||
* clean when we restucture accept also.
|
||||
* clean when we restructure accept also.
|
||||
*/
|
||||
|
||||
int __sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr,
|
||||
|
@ -886,7 +886,7 @@ static const struct snd_pcm_ops fsl_dma_ops = {
|
||||
};
|
||||
|
||||
static int fsl_soc_dma_probe(struct platform_device *pdev)
|
||||
{
|
||||
{
|
||||
struct dma_object *dma;
|
||||
struct device_node *np = pdev->dev.of_node;
|
||||
struct device_node *ssi_np;
|
||||
|
@ -486,6 +486,7 @@ int zone_instance_to_index(int zone_inst)
|
||||
int update_thermal_data()
|
||||
{
|
||||
int i;
|
||||
int next_thermal_record = cur_thermal_record + 1;
|
||||
char tz_name[256];
|
||||
static unsigned long samples;
|
||||
|
||||
@ -495,9 +496,9 @@ int update_thermal_data()
|
||||
}
|
||||
|
||||
/* circular buffer for keeping historic data */
|
||||
if (cur_thermal_record >= NR_THERMAL_RECORDS)
|
||||
cur_thermal_record = 0;
|
||||
gettimeofday(&trec[cur_thermal_record].tv, NULL);
|
||||
if (next_thermal_record >= NR_THERMAL_RECORDS)
|
||||
next_thermal_record = 0;
|
||||
gettimeofday(&trec[next_thermal_record].tv, NULL);
|
||||
if (tmon_log) {
|
||||
fprintf(tmon_log, "%lu ", ++samples);
|
||||
fprintf(tmon_log, "%3.1f ", p_param.t_target);
|
||||
@ -507,11 +508,12 @@ int update_thermal_data()
|
||||
snprintf(tz_name, 256, "%s/%s%d", THERMAL_SYSFS, TZONE,
|
||||
ptdata.tzi[i].instance);
|
||||
sysfs_get_ulong(tz_name, "temp",
|
||||
&trec[cur_thermal_record].temp[i]);
|
||||
&trec[next_thermal_record].temp[i]);
|
||||
if (tmon_log)
|
||||
fprintf(tmon_log, "%lu ",
|
||||
trec[cur_thermal_record].temp[i]/1000);
|
||||
trec[next_thermal_record].temp[i] / 1000);
|
||||
}
|
||||
cur_thermal_record = next_thermal_record;
|
||||
for (i = 0; i < ptdata.nr_cooling_dev; i++) {
|
||||
char cdev_name[256];
|
||||
unsigned long val;
|
||||
|
@ -336,7 +336,6 @@ int main(int argc, char **argv)
|
||||
show_data_w();
|
||||
show_cooling_device();
|
||||
}
|
||||
cur_thermal_record++;
|
||||
time_elapsed += ticktime;
|
||||
controller_handler(trec[0].temp[target_tz_index] / 1000,
|
||||
&yk);
|
||||
|
Loading…
Reference in New Issue
Block a user