Commit 577092ac authored by Alan Cox's avatar Alan Cox Committed by Greg Kroah-Hartman

Staging: sep: use O_NDELAY instead of magic APIs

Open is still completely bogus in this driver but we'll tackle that later -
for now fix the bogus API
Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 7913c21a
...@@ -86,9 +86,6 @@ struct sep_device { ...@@ -86,9 +86,6 @@ struct sep_device {
/* global data for every flow */ /* global data for every flow */
struct sep_flow_context_t flows_data_array[SEP_DRIVER_NUM_FLOWS]; struct sep_flow_context_t flows_data_array[SEP_DRIVER_NUM_FLOWS];
/* flag for API mode - 1 -is blocking, 0 is non-blocking */
unsigned long block_mode_flag;
/* pointer to the workqueue that handles the flow done interrupts */ /* pointer to the workqueue that handles the flow done interrupts */
struct workqueue_struct *flow_wq_ptr; struct workqueue_struct *flow_wq_ptr;
......
...@@ -49,7 +49,6 @@ ...@@ -49,7 +49,6 @@
#include "sep_driver_hw_defs.h" #include "sep_driver_hw_defs.h"
#include "sep_driver_config.h" #include "sep_driver_config.h"
#include "sep_driver_api.h" #include "sep_driver_api.h"
#include "sep_driver_ext_api.h"
#include "sep_dev.h" #include "sep_dev.h"
#if SEP_DRIVER_ARM_DEBUG_MODE #if SEP_DRIVER_ARM_DEBUG_MODE
...@@ -345,25 +344,22 @@ static unsigned long sep_shared_area_phys_to_virt(unsigned long phys_address) ...@@ -345,25 +344,22 @@ static unsigned long sep_shared_area_phys_to_virt(unsigned long phys_address)
open function of the character driver - must only lock the mutex open function of the character driver - must only lock the mutex
must also release the memory data pool allocations must also release the memory data pool allocations
------------------------------------------------------------------------*/ ------------------------------------------------------------------------*/
static int sep_open(struct inode *inode_ptr, struct file *file_ptr) static int sep_open(struct inode *inode, struct file *filp)
{ {
int error; int error = 0;
dbg("SEP Driver:--------> open start\n"); dbg("SEP Driver:--------> open start\n");
error = 0;
/* check the blocking mode */ /* check the blocking mode */
if (sep_dev->block_mode_flag) if (filp->f_flags & O_NDELAY)
error = mutex_trylock(&sep_mutex);
else
/* lock mutex */ /* lock mutex */
mutex_lock(&sep_mutex); mutex_lock(&sep_mutex);
else
error = mutex_trylock(&sep_mutex);
/* check the error */ /* check the error */
if (error) { if (error) {
edbg("SEP Driver: down_interruptible failed\n"); edbg("SEP Driver: down_interruptible failed\n");
goto end_function; goto end_function;
} }
...@@ -388,17 +384,13 @@ static int sep_release(struct inode *inode_ptr, struct file *file_ptr) ...@@ -388,17 +384,13 @@ static int sep_release(struct inode *inode_ptr, struct file *file_ptr)
#if 0 /*!SEP_DRIVER_POLLING_MODE */ #if 0 /*!SEP_DRIVER_POLLING_MODE */
/* close IMR */ /* close IMR */
sep_write_reg(sep_dev, HW_HOST_IMR_REG_ADDR, 0x7FFF); sep_write_reg(sep_dev, HW_HOST_IMR_REG_ADDR, 0x7FFF);
/* release IRQ line */ /* release IRQ line */
free_irq(SEP_DIRVER_IRQ_NUM, &sep_dev->reg_base_address); free_irq(SEP_DIRVER_IRQ_NUM, &sep_dev->reg_base_address);
#endif #endif
/* unlock the sep mutex */ /* unlock the sep mutex */
mutex_unlock(&sep_mutex); mutex_unlock(&sep_mutex);
dbg("SEP Driver:<-------- sep_release end\n"); dbg("SEP Driver:<-------- sep_release end\n");
return 0; return 0;
} }
...@@ -2150,27 +2142,6 @@ static int sep_get_time_handler(unsigned long arg) ...@@ -2150,27 +2142,6 @@ static int sep_get_time_handler(unsigned long arg)
} }
/*
This api handles the setting of API mode to blocking or non-blocking
*/
static int sep_set_api_mode_handler(unsigned long arg)
{
int error;
unsigned long mode_flag;
dbg("SEP Driver:--------> sep_set_api_mode_handler start\n");
error = get_user(mode_flag, &(((struct sep_driver_set_api_mode_t *) arg)->mode));
if (error)
goto end_function;
/* set the global flag */
sep_dev->block_mode_flag = mode_flag;
end_function:
dbg("SEP Driver:<-------- sep_set_api_mode_handler end\n");
return error;
}
/* /*
This API handles the end transaction request This API handles the end transaction request
*/ */
...@@ -2294,10 +2265,6 @@ static int sep_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, u ...@@ -2294,10 +2265,6 @@ static int sep_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, u
/* init command to sep */ /* init command to sep */
error = sep_init_handler(arg); error = sep_init_handler(arg);
break; break;
case SEP_IOCSETAPIMODE:
/* set non- blocking mode */
error = sep_set_api_mode_handler(arg);
break;
case SEP_IOCGETSTATICPOOLADDR: case SEP_IOCGETSTATICPOOLADDR:
/* get the physical and virtual addresses of the static pool */ /* get the physical and virtual addresses of the static pool */
error = sep_get_static_pool_addr_handler(arg); error = sep_get_static_pool_addr_handler(arg);
...@@ -2639,9 +2606,6 @@ static int __init sep_init(void) ...@@ -2639,9 +2606,6 @@ static int __init sep_init(void)
for the current transaction */ for the current transaction */
sep_dev->data_pool_bytes_allocated = 0; sep_dev->data_pool_bytes_allocated = 0;
/* set the starting mode to blocking */
sep_dev->block_mode_flag = 1;
/* FIXME: Probe can occur before we are ready to survive a probe */ /* FIXME: Probe can occur before we are ready to survive a probe */
ret_val = pci_register_driver(&sep_pci_driver); ret_val = pci_register_driver(&sep_pci_driver);
if (ret_val) { if (ret_val) {
......
...@@ -83,9 +83,6 @@ ...@@ -83,9 +83,6 @@
/* init sep command */ /* init sep command */
#define SEP_IOCSEPINIT _IO(SEP_IOC_MAGIC_NUMBER , 13) #define SEP_IOCSEPINIT _IO(SEP_IOC_MAGIC_NUMBER , 13)
/* set non blocking mode */
#define SEP_IOCSETAPIMODE _IO(SEP_IOC_MAGIC_NUMBER , 14)
/* end transaction command */ /* end transaction command */
#define SEP_IOCENDTRANSACTION _IO(SEP_IOC_MAGIC_NUMBER , 15) #define SEP_IOCENDTRANSACTION _IO(SEP_IOC_MAGIC_NUMBER , 15)
...@@ -147,14 +144,6 @@ struct sep_driver_realloc_cache_resident_t { ...@@ -147,14 +144,6 @@ struct sep_driver_realloc_cache_resident_t {
unsigned long new_base_addr; unsigned long new_base_addr;
}; };
/*
set api mode command struct
*/
struct sep_driver_set_api_mode_t {
/* mode to set - 1 - blocking, 0 - non-blocking */
unsigned long mode;
};
struct sep_driver_alloc_t { struct sep_driver_alloc_t {
/* virtual address of allocated space */ /* virtual address of allocated space */
unsigned long offset; unsigned long offset;
......
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