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
这个提交包含在:

提交者
Madan Koyyalamudi

父节点
3a522a80e1
当前提交
36d5ce6684
@@ -60,6 +60,82 @@ qal_vbus_get_iorsc(int devnum, uint32_t flag, char *devname);
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
qal_vbus_release_iorsc(int devnum);
|
qal_vbus_release_iorsc(int devnum);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qal_vbus_allocate_iorsc() - allocate io resource
|
||||||
|
* @pinnum: pin Number
|
||||||
|
* @label: pin name string
|
||||||
|
*
|
||||||
|
* This function will allocate the io resource for a device
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
qal_vbus_allocate_iorsc(unsigned int pinnum, const char *label);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qal_vbus_iorsc_dir_output() - set pin dirction to output
|
||||||
|
* @pin: pin Number
|
||||||
|
* @val: value
|
||||||
|
*
|
||||||
|
* This function set the gpio pin direction to output
|
||||||
|
*
|
||||||
|
* Return: 0 on success, error no on failure
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
qal_vbus_iorsc_dir_output(unsigned int pin, int val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qal_vbus_iorsc_set_value() - set pin direction
|
||||||
|
* @pin: pin Number
|
||||||
|
* @val: value
|
||||||
|
*
|
||||||
|
* This function set the gpio pin direction based on value
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
qal_vbus_iorsc_set_value(unsigned int pin, int val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qal_vbus_iorsc_toirq() - set irq number to gpio
|
||||||
|
* @pin: pin Number
|
||||||
|
*
|
||||||
|
* This function set the irq number to gpio pin
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
qal_vbus_iorsc_toirq(unsigned int pin);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qal_vbus_request_irq() - set interrupt handler
|
||||||
|
* @irqnum: irq Number
|
||||||
|
* @handler: function handler to be called
|
||||||
|
* @flags: irq flags
|
||||||
|
* @dev_name: device name
|
||||||
|
* @ctx: pointer to device context
|
||||||
|
* This function set up the handling of the interrupt
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success, Error code on failure
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
qal_vbus_request_irq(unsigned int irqnum,
|
||||||
|
irqreturn_t (*handler)(int irq, void *arg),
|
||||||
|
unsigned long flags, const char *dev_name,
|
||||||
|
void *ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __qal_vbus_free_irq() - free irq
|
||||||
|
* @irqnum: irq Number
|
||||||
|
* @ctx: pointer to device context
|
||||||
|
*
|
||||||
|
* This function free the irq number set to gpio pin
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
__qal_vbus_free_irq(unsigned int irqnum, void *ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* qal_vbus_enable_devclk() - enable device clock
|
* qal_vbus_enable_devclk() - enable device clock
|
||||||
* @clk: Device clock
|
* @clk: Device clock
|
||||||
@@ -220,12 +296,50 @@ qal_vbus_get_iorsc(int devnum, uint32_t flag, char *devname)
|
|||||||
return __qal_vbus_get_iorsc(devnum, flag, devname);
|
return __qal_vbus_get_iorsc(devnum, flag, devname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
qal_vbus_allocate_iorsc(unsigned int pinnum, const char *label)
|
||||||
|
{
|
||||||
|
return __qal_vbus_allocate_iorsc(pinnum, label);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
qal_vbus_iorsc_dir_output(unsigned int pin, int val)
|
||||||
|
{
|
||||||
|
return __qal_vbus_iorsc_dir_output(pin, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
qal_vbus_iorsc_set_value(unsigned int pin, int val)
|
||||||
|
{
|
||||||
|
return __qal_vbus_iorsc_set_value(pin, val);
|
||||||
|
}
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
qal_vbus_release_iorsc(int devnum)
|
qal_vbus_release_iorsc(int devnum)
|
||||||
{
|
{
|
||||||
return __qal_vbus_release_iorsc(devnum);
|
return __qal_vbus_release_iorsc(devnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
qal_vbus_iorsc_toirq(unsigned int pin)
|
||||||
|
{
|
||||||
|
return __qal_vbus_iorsc_toirq(pin);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
qal_vbus_request_irq(unsigned int irqnum,
|
||||||
|
irqreturn_t (*handler)(int irq, void *arg),
|
||||||
|
unsigned long flags, const char *dev_name, void *ctx)
|
||||||
|
{
|
||||||
|
return __qal_vbus_request_irq(irqnum, handler, flags, dev_name, ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
qal_vbus_free_irq(unsigned int irqnum, void *ctx)
|
||||||
|
{
|
||||||
|
return __qal_vbus_free_irq(irqnum, ctx);
|
||||||
|
}
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
qal_vbus_enable_devclk(struct qdf_dev_clk *clk)
|
qal_vbus_enable_devclk(struct qdf_dev_clk *clk)
|
||||||
{
|
{
|
||||||
@@ -310,5 +424,4 @@ qal_vbus_rcu_read_unlock(void)
|
|||||||
return __qal_vbus_rcu_read_unlock();
|
return __qal_vbus_rcu_read_unlock();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __QAL_VBUS_DEV_H */
|
#endif /* __QAL_VBUS_DEV_H */
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-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
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -76,6 +77,117 @@ __qal_vbus_release_iorsc(int devnum)
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __qal_vbus_allocate_iorsc() - allocate io resource
|
||||||
|
* @pinnum: pin Number
|
||||||
|
* @label: name of pin
|
||||||
|
*
|
||||||
|
* This function will allocate io resource
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
__qal_vbus_allocate_iorsc(unsigned int pinnum, const char *label)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = gpio_request(pinnum, label);
|
||||||
|
|
||||||
|
return qdf_status_from_os_return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __qal_vbus_iorsc_dir_output() - set pin dirction to output
|
||||||
|
* @pin: pin Number
|
||||||
|
* @val: value
|
||||||
|
*
|
||||||
|
* This function set the gpio pin direction to output
|
||||||
|
*
|
||||||
|
* Return: 0 on success, error no on failure
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
__qal_vbus_iorsc_dir_output(unsigned int pin, int val)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = gpio_direction_output(pin, val);
|
||||||
|
|
||||||
|
return qdf_status_from_os_return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __qal_vbus_iorsc_set_value() - set pin direction
|
||||||
|
* @pin: pin Number
|
||||||
|
* @val: value
|
||||||
|
*
|
||||||
|
* This function set the gpio pin direction based on value
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
__qal_vbus_iorsc_set_value(unsigned int pin, int val)
|
||||||
|
{
|
||||||
|
gpio_set_value(pin, val);
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __qal_vbus_iorsc_toirq() - set irq number to gpio
|
||||||
|
* @pin: pin Number
|
||||||
|
*
|
||||||
|
* This function set the irq number to gpio pin
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
__qal_vbus_iorsc_toirq(unsigned int pin)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = gpio_to_irq(pin);
|
||||||
|
|
||||||
|
return qdf_status_from_os_return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __qal_vbus_request_irq() - set interrupt handler
|
||||||
|
* @irqnum: irq Number
|
||||||
|
* @handler: function handler to be called
|
||||||
|
* @flags: irq flags
|
||||||
|
* @dev_name: device name
|
||||||
|
* @ctx: pointer to device context
|
||||||
|
*
|
||||||
|
* This function set up the handling of the interrupt
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success, Error code on failure
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
__qal_vbus_request_irq(unsigned int irqnum,
|
||||||
|
irqreturn_t (*handler)(int irq, void *arg),
|
||||||
|
unsigned long flags, const char *dev_name, void *ctx)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = request_irq(irqnum, handler, flags, dev_name, ctx);
|
||||||
|
return qdf_status_from_os_return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __qal_vbus_free_irq() - free irq
|
||||||
|
* @irqnum: irq Number
|
||||||
|
* @ctx: pointer to device context
|
||||||
|
*
|
||||||
|
* This function free the irq number set to gpio pin
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
__qal_vbus_free_irq(unsigned int irqnum, void *ctx)
|
||||||
|
{
|
||||||
|
free_irq(irqnum, ctx);
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __qal_vbus_enable_devclk() - enable device clock
|
* __qal_vbus_enable_devclk() - enable device clock
|
||||||
* @clk: Device clock
|
* @clk: Device clock
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2021 The Linux Foundation. All rights reserved.
|
* 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
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -49,4 +50,9 @@
|
|||||||
#define QDF_IRQ_IS_POLLED __QDF_IRQ_IS_POLLED
|
#define QDF_IRQ_IS_POLLED __QDF_IRQ_IS_POLLED
|
||||||
#define QDF_IRQ_DISABLE_UNLAZY __QDF_IRQ_DISABLE_UNLAZY
|
#define QDF_IRQ_DISABLE_UNLAZY __QDF_IRQ_DISABLE_UNLAZY
|
||||||
|
|
||||||
|
#define QDF_IRQF_SHARED __QDF_IRQF_SHARED
|
||||||
|
#define QDF_IRQF_TRIGGER_RISING __QDF_IRQF_TRIGGER_RISING
|
||||||
|
#define QDF_IRQ_NONE __QDF_IRQ_NONE
|
||||||
|
#define QDF_IRQ_HANDLED __QDF_IRQ_HANDLED
|
||||||
|
|
||||||
#endif /* __QDF_IRQ_H */
|
#endif /* __QDF_IRQ_H */
|
||||||
|
@@ -102,7 +102,31 @@ int64_t qdf_ktime_to_us(qdf_ktime_t ktime);
|
|||||||
int64_t qdf_ktime_to_ns(qdf_ktime_t ktime);
|
int64_t qdf_ktime_to_ns(qdf_ktime_t ktime);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* qdf_system_ticks() - Count the number of ticks elapsed from the time when
|
* qdf_time_ktime_set() - Set a ktime_t variable from a seconds/nanoseconds
|
||||||
|
* value
|
||||||
|
* @secs: seconds to set
|
||||||
|
* @nsecs: nanoseconds to set
|
||||||
|
*
|
||||||
|
* Return: The qdf_ktime_t representation of the value.
|
||||||
|
*/
|
||||||
|
qdf_ktime_t qdf_time_ktime_set(const s64 secs, const unsigned long nsecs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_ktime_get_real_ns() - Gets the current time in ns using UTC
|
||||||
|
*
|
||||||
|
* Return: qdf_ktime_t in nano sec
|
||||||
|
*/
|
||||||
|
qdf_ktime_t qdf_ktime_get_real_ns(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_ktime_get_ns() - Gets the current time nano seconds
|
||||||
|
*
|
||||||
|
* Return: qdf_ktime_t in nano sec
|
||||||
|
*/
|
||||||
|
qdf_ktime_t qdf_ktime_get_ns(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_system_ticks - Count the number of ticks elapsed from the time when
|
||||||
* the system booted
|
* the system booted
|
||||||
*
|
*
|
||||||
* Return: ticks
|
* Return: ticks
|
||||||
@@ -283,50 +307,80 @@ void qdf_time_ktime_get_real_time(qdf_timespec_t *ts);
|
|||||||
* Return: current time in nanosec units.
|
* Return: current time in nanosec units.
|
||||||
*/
|
*/
|
||||||
unsigned long long qdf_time_sched_clock(void);
|
unsigned long long qdf_time_sched_clock(void);
|
||||||
#else
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_usleep_range - introduce sleep with min and max time
|
||||||
|
* @min: Minimum time in usecs to sleep
|
||||||
|
* @max: Maximum time in usecs to sleep
|
||||||
|
*
|
||||||
|
* Return: none
|
||||||
|
*/
|
||||||
|
void qdf_usleep_range(unsigned long min, unsigned long max);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
||||||
|
*/
|
||||||
|
int qdf_ktime_compare(qdf_ktime_t ktime1, qdf_ktime_t ktime2);
|
||||||
|
|
||||||
|
#else
|
||||||
static inline qdf_ktime_t qdf_ns_to_ktime(uint64_t ns)
|
static inline qdf_ktime_t qdf_ns_to_ktime(uint64_t ns)
|
||||||
{
|
{
|
||||||
return __qdf_ns_to_ktime(ns);
|
return __qdf_ns_to_ktime(ns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline qdf_ktime_t qdf_ktime_add(qdf_ktime_t ktime1, qdf_ktime_t ktime2)
|
static inline qdf_ktime_t qdf_ktime_add(qdf_ktime_t ktime1, qdf_ktime_t ktime2)
|
||||||
{
|
{
|
||||||
return __qdf_ktime_add(ktime1, ktime2);
|
return __qdf_ktime_add(ktime1, ktime2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline qdf_ktime_t qdf_ktime_get(void)
|
static inline qdf_ktime_t qdf_ktime_get(void)
|
||||||
{
|
{
|
||||||
return __qdf_ktime_get();
|
return __qdf_ktime_get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline qdf_ktime_t qdf_ktime_real_get(void)
|
static inline qdf_ktime_t qdf_ktime_real_get(void)
|
||||||
{
|
{
|
||||||
return __qdf_ktime_real_get();
|
return __qdf_ktime_real_get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline qdf_ktime_t qdf_ktime_get_real_ns(void)
|
||||||
|
{
|
||||||
|
return __qdf_ktime_get_real_ns();
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint64_t qdf_ktime_get_ns(void)
|
||||||
|
{
|
||||||
|
return __qdf_ktime_get_ns();
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline qdf_ktime_t qdf_ktime_compare(qdf_ktime_t ktime1,
|
||||||
|
qdf_ktime_t ktime2)
|
||||||
|
{
|
||||||
|
return __qdf_ktime_compare(ktime1, ktime2);
|
||||||
|
}
|
||||||
|
|
||||||
static inline qdf_ktime_t qdf_ktime_add_ns(qdf_ktime_t ktime, int64_t ns)
|
static inline qdf_ktime_t qdf_ktime_add_ns(qdf_ktime_t ktime, int64_t ns)
|
||||||
{
|
{
|
||||||
return __qdf_ktime_add_ns(ktime, ns);
|
return __qdf_ktime_add_ns(ktime, ns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline int64_t qdf_ktime_to_ms(qdf_ktime_t ktime)
|
static inline int64_t qdf_ktime_to_ms(qdf_ktime_t ktime)
|
||||||
{
|
{
|
||||||
return __qdf_ktime_to_ms(ktime);
|
return __qdf_ktime_to_ms(ktime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline int64_t qdf_ktime_to_us(qdf_ktime_t ktime)
|
static inline int64_t qdf_ktime_to_us(qdf_ktime_t ktime)
|
||||||
{
|
{
|
||||||
return __qdf_time_ktime_to_us(ktime);
|
return __qdf_time_ktime_to_us(ktime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline int64_t qdf_ktime_to_ns(qdf_ktime_t ktime)
|
static inline int64_t qdf_ktime_to_ns(qdf_ktime_t ktime)
|
||||||
{
|
{
|
||||||
return __qdf_ktime_to_ns(ktime);
|
return __qdf_ktime_to_ns(ktime);
|
||||||
@@ -338,7 +392,6 @@ static inline qdf_time_t qdf_system_ticks(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define qdf_system_ticks_per_sec __qdf_system_ticks_per_sec
|
#define qdf_system_ticks_per_sec __qdf_system_ticks_per_sec
|
||||||
|
|
||||||
static inline uint32_t qdf_system_ticks_to_msecs(unsigned long clock_ticks)
|
static inline uint32_t qdf_system_ticks_to_msecs(unsigned long clock_ticks)
|
||||||
{
|
{
|
||||||
return __qdf_system_ticks_to_msecs(clock_ticks);
|
return __qdf_system_ticks_to_msecs(clock_ticks);
|
||||||
@@ -354,7 +407,6 @@ static inline qdf_time_t qdf_get_system_uptime(void)
|
|||||||
return __qdf_get_system_uptime();
|
return __qdf_get_system_uptime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline uint64_t qdf_get_bootbased_boottime_ns(void)
|
static inline uint64_t qdf_get_bootbased_boottime_ns(void)
|
||||||
{
|
{
|
||||||
return __qdf_get_bootbased_boottime_ns();
|
return __qdf_get_bootbased_boottime_ns();
|
||||||
@@ -510,6 +562,10 @@ static inline unsigned long long qdf_time_sched_clock(void)
|
|||||||
{
|
{
|
||||||
return __qdf_time_sched_clock();
|
return __qdf_time_sched_clock();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
static inline void qdf_usleep_range(unsigned long min, unsigned long max)
|
||||||
|
{
|
||||||
|
__qdf_usleep_range(min, max);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@@ -57,6 +57,9 @@ typedef struct qdf_sglist {
|
|||||||
|
|
||||||
#define QDF_MAX_SCATTER __QDF_MAX_SCATTER
|
#define QDF_MAX_SCATTER __QDF_MAX_SCATTER
|
||||||
#define QDF_NSEC_PER_MSEC __QDF_NSEC_PER_MSEC
|
#define QDF_NSEC_PER_MSEC __QDF_NSEC_PER_MSEC
|
||||||
|
#define QDF_NSEC_PER_USEC __QDF_NSEC_PER_USEC
|
||||||
|
#define QDF_USEC_PER_MSEC __QDF_USEC_PER_MSEC
|
||||||
|
#define QDF_NSEC_PER_SEC __QDF_NSEC_PER_SEC
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* QDF_SWAP_U16 - swap input u16 value
|
* QDF_SWAP_U16 - swap input u16 value
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2021 The Linux Foundation. All rights reserved.
|
* 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
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -25,6 +26,7 @@
|
|||||||
#define _I_QDF_IRQ_H
|
#define _I_QDF_IRQ_H
|
||||||
|
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
|
#include <linux/irqreturn.h>
|
||||||
|
|
||||||
#define __QDF_IRQ_TYPE_NONE IRQ_TYPE_NONE
|
#define __QDF_IRQ_TYPE_NONE IRQ_TYPE_NONE
|
||||||
#define __QDF_IRQ_TYPE_EDGE_RISING IRQ_TYPE_EDGE_RISING
|
#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_PER_CPU_DEVID IRQ_PER_CPU_DEVID
|
||||||
#define __QDF_IRQ_IS_POLLED IRQ_IS_POLLED
|
#define __QDF_IRQ_IS_POLLED IRQ_IS_POLLED
|
||||||
#define __QDF_IRQ_DISABLE_UNLAZY IRQ_DISABLE_UNLAZY
|
#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 */
|
#endif /* _I_QDF_IRQ_H */
|
||||||
|
@@ -103,6 +103,41 @@ static inline ktime_t __qdf_ktime_real_get(void)
|
|||||||
return ktime_get_real();
|
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
|
* __qdf_ktime_add_ns() - Adds ktime object and nanoseconds value and
|
||||||
* returns the ktime object
|
* returns the ktime object
|
||||||
@@ -138,7 +173,6 @@ static inline int64_t __qdf_ktime_to_ms(ktime_t ktime)
|
|||||||
return ktime_to_ms(ktime);
|
return ktime_to_ms(ktime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __qdf_system_ticks() - get system ticks
|
* __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
|
#define __qdf_system_ticks_per_sec HZ
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __qdf_system_ticks_to_msecs() - convert system ticks into milli seconds
|
* __qdf_system_ticks_to_msecs() - convert system ticks into milli seconds
|
||||||
* @ticks: System ticks
|
* @ticks: System ticks
|
||||||
@@ -304,7 +337,6 @@ static inline uint64_t __qdf_get_monotonic_boottime(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined (MSM_PLATFORM)
|
#if defined (MSM_PLATFORM)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __qdf_get_log_timestamp() - get msm timer ticks
|
* __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
|
#endif
|
||||||
|
|
||||||
|
static inline void __qdf_usleep_range(unsigned long min, unsigned long max)
|
||||||
|
{
|
||||||
|
usleep_range(min, max);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -142,6 +142,9 @@ typedef unsigned long __sgtable_t;
|
|||||||
*/
|
*/
|
||||||
#define __QDF_MAX_SCATTER 1
|
#define __QDF_MAX_SCATTER 1
|
||||||
#define __QDF_NSEC_PER_MSEC NSEC_PER_MSEC
|
#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)
|
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||||
#define QDF_LITTLE_ENDIAN_MACHINE
|
#define QDF_LITTLE_ENDIAN_MACHINE
|
||||||
|
@@ -82,6 +82,13 @@ int64_t qdf_ktime_to_ns(qdf_ktime_t ktime)
|
|||||||
|
|
||||||
qdf_export_symbol(qdf_ktime_to_ns);
|
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)
|
qdf_time_t qdf_system_ticks(void)
|
||||||
{
|
{
|
||||||
return __qdf_system_ticks();
|
return __qdf_system_ticks();
|
||||||
@@ -249,3 +256,31 @@ unsigned long long qdf_time_sched_clock(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
qdf_export_symbol(qdf_time_sched_clock);
|
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);
|
||||||
|
在新工单中引用
屏蔽一个用户