qcacmn: Add new QDF API's to handle gpio requirements

Add new QDF APIs to handle gpio, irqf and timer related
handling in TSF feature.

Change-Id: Iff6f85c6debe351c5533906559400b4a51333d4d
CRs-Fixed: 3469020
This commit is contained in:
Roopavathi Lingampalli
2023-03-24 13:16:20 +05:30
committed by Madan Koyyalamudi
parent 3a522a80e1
commit 36d5ce6684
9 changed files with 385 additions and 15 deletions

View File

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -25,6 +26,7 @@
#define _I_QDF_IRQ_H
#include <linux/irq.h>
#include <linux/irqreturn.h>
#define __QDF_IRQ_TYPE_NONE IRQ_TYPE_NONE
#define __QDF_IRQ_TYPE_EDGE_RISING IRQ_TYPE_EDGE_RISING
@@ -48,5 +50,9 @@
#define __QDF_IRQ_PER_CPU_DEVID IRQ_PER_CPU_DEVID
#define __QDF_IRQ_IS_POLLED IRQ_IS_POLLED
#define __QDF_IRQ_DISABLE_UNLAZY IRQ_DISABLE_UNLAZY
#define __QDF_IRQF_SHARED IRQF_SHARED
#define __QDF_IRQF_TRIGGER_RISING IRQF_TRIGGER_RISING
#define __QDF_IRQ_NONE IRQ_NONE
#define __QDF_IRQ_HANDLED IRQ_HANDLED
#endif /* _I_QDF_IRQ_H */

View File

@@ -103,6 +103,41 @@ static inline ktime_t __qdf_ktime_real_get(void)
return ktime_get_real();
}
/**
* __qdf_ktime_get_ns() - Gets the current time nano seconds
*
* Return: ktime in nano sec
*/
static inline ktime_t __qdf_ktime_get_ns(void)
{
return ktime_get_ns();
}
/**
* __qdf_ktime_get_real_ns() - Gets the current time in ns using UTC
*
* Return: ktime in nano sec
*/
static inline ktime_t __qdf_ktime_get_real_ns(void)
{
return ktime_get_real_ns();
}
/**
* __qdf_ktime_compare - compare two qdf_ktime_t objects
* @ktime1: time as qdf_ktime_t object
* @ktime2: time as qdf_ktime_t object
*
* Return:
* * ktime1 < ktime2 - return <0
* * ktime1 == ktime2 - return 0
* * ktime1 > ktime2 - return >0
*/
static inline int __qdf_ktime_compare(ktime_t ktime1, ktime_t ktime2)
{
return ktime_compare(ktime1, ktime2);
}
/**
* __qdf_ktime_add_ns() - Adds ktime object and nanoseconds value and
* returns the ktime object
@@ -138,7 +173,6 @@ static inline int64_t __qdf_ktime_to_ms(ktime_t ktime)
return ktime_to_ms(ktime);
}
/**
* __qdf_system_ticks() - get system ticks
*
@@ -150,7 +184,6 @@ static inline __qdf_time_t __qdf_system_ticks(void)
}
#define __qdf_system_ticks_per_sec HZ
/**
* __qdf_system_ticks_to_msecs() - convert system ticks into milli seconds
* @ticks: System ticks
@@ -304,7 +337,6 @@ static inline uint64_t __qdf_get_monotonic_boottime(void)
}
#if defined (MSM_PLATFORM)
/**
* __qdf_get_log_timestamp() - get msm timer ticks
*
@@ -474,4 +506,8 @@ static inline void __qdf_time_ktime_get_real_time(__qdf_timespec_t *ts)
}
#endif
static inline void __qdf_usleep_range(unsigned long min, unsigned long max)
{
usleep_range(min, max);
}
#endif

View File

@@ -142,6 +142,9 @@ typedef unsigned long __sgtable_t;
*/
#define __QDF_MAX_SCATTER 1
#define __QDF_NSEC_PER_MSEC NSEC_PER_MSEC
#define __QDF_NSEC_PER_USEC NSEC_PER_USEC
#define __QDF_USEC_PER_MSEC USEC_PER_MSEC
#define __QDF_NSEC_PER_SEC NSEC_PER_SEC
#if defined(__LITTLE_ENDIAN_BITFIELD)
#define QDF_LITTLE_ENDIAN_MACHINE

View File

@@ -82,6 +82,13 @@ int64_t qdf_ktime_to_ns(qdf_ktime_t ktime)
qdf_export_symbol(qdf_ktime_to_ns);
qdf_ktime_t qdf_time_ktime_set(const s64 secs, const unsigned long nsecs)
{
return __qdf_time_ktime_set(secs, nsecs);
}
qdf_export_symbol(qdf_time_ktime_set);
qdf_time_t qdf_system_ticks(void)
{
return __qdf_system_ticks();
@@ -249,3 +256,31 @@ unsigned long long qdf_time_sched_clock(void)
}
qdf_export_symbol(qdf_time_sched_clock);
void qdf_usleep_range(unsigned long min, unsigned long max)
{
__qdf_usleep_range(min, max);
}
qdf_export_symbol(qdf_usleep_range);
qdf_ktime_t qdf_ktime_get_ns(void)
{
return __qdf_ktime_get_ns();
}
qdf_export_symbol(qdf_ktime_get_ns);
qdf_ktime_t qdf_ktime_get_real_ns(void)
{
return __qdf_ktime_get_real_ns();
}
qdf_export_symbol(qdf_ktime_get_real_ns);
int qdf_ktime_compare(qdf_ktime_t ktime1, qdf_ktime_t ktime2)
{
return __qdf_ktime_compare(ktime1, ktime2);
}
qdf_export_symbol(qdf_ktime_compare);