Commit 51faa9d2 authored by Alan Cox's avatar Alan Cox Committed by Greg Kroah-Hartman

Staging: sep: various minor tidyups

Do these in one batch rather than generate lots of tiny diffs
Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent c7b75562
/*
*
* sep_main_mod.c - Security Processor Driver main group of functions
* sep_driver.c - Security Processor Driver main group of functions
*
* Copyright(c) 2009 Intel Corporation. All rights reserved.
* Copyright(c) 2009 Discretix. All rights reserved.
......@@ -144,7 +144,6 @@ static void sep_load_rom_code(struct sep_device *sep) { }
DEFINES
-----------------------------------------*/
#define INT_MODULE_PARM(n, v) static int n = v; module_param(n, int, 0)
#define BASE_ADDRESS_FOR_SYSTEM 0xfffc0000
#define SEP_RAR_IO_MEM_REGION_SIZE 0x40000
......@@ -153,9 +152,9 @@ static void sep_load_rom_code(struct sep_device *sep) { }
--------------------------------------------*/
/* debug messages level */
static int sepDebug;
module_param(sepDebug, int , 0);
MODULE_PARM_DESC(sepDebug, "Flag to enable SEP debug messages");
static int debug;
module_param(debug, int , 0);
MODULE_PARM_DESC(debug, "Flag to enable SEP debug messages");
/* Keep this a single static object for now to keep the conversion easy */
......@@ -174,7 +173,7 @@ static DECLARE_WAIT_QUEUE_HEAD(sep_event);
/*
This functions copies the cache and resident from their source location into
destination memory, which is external to Linux VM and is given as
physical address
bus address
*/
static int sep_copy_cache_resident_to_area(struct sep_device *sep,
unsigned long src_cache_addr,
......@@ -200,7 +199,7 @@ static int sep_copy_cache_resident_to_area(struct sep_device *sep,
error = 0;
edbg("SEP Driver:rar_virtual is %p\n", sep->rar_addr);
edbg("SEP Driver:rar_physical is %08llx\n", (unsigned long long)sep->rar_bus);
edbg("SEP Driver:rar_bus is %08llx\n", (unsigned long long)sep->rar_bus);
sep->rar_region_addr = (unsigned long) sep->rar_addr;
......@@ -246,18 +245,18 @@ static int sep_copy_cache_resident_to_area(struct sep_device *sep,
resident_addr = sep->resident_addr;
edbg("SEP Driver:resident_addr (physical )is %08llx\n", (unsigned long long)sep->resident_bus);
edbg("SEP Driver:cache_addr (physical) is %08llx\n", (unsigned long long)sep->cache_bus);
edbg("SEP Driver:resident_addr (bus)is %08llx\n", (unsigned long long)sep->resident_bus);
edbg("SEP Driver:cache_addr (bus) is %08llx\n", (unsigned long long)sep->cache_bus);
edbg("SEP Driver:resident_addr (logical )is %p\n", resident_addr);
edbg("SEP Driver:cache_addr (logical) is %08llx\n", (unsigned long long)cache_addr);
edbg("SEP Driver:resident_addr (virtual)is %p\n", resident_addr);
edbg("SEP Driver:cache_addr (virtual) is %08llx\n", (unsigned long long)cache_addr);
edbg("SEP Driver:resident_size is %08lx\n", sep->resident_size);
edbg("SEP Driver:cache_size is %08llx\n", (unsigned long long)sep->cache_size);
/* physical addresses */
/* bus addresses */
*dst_new_cache_addr_ptr = sep->cache_bus;
*dst_new_resident_addr_ptr = sep->resident_bus;
end_function:
......@@ -285,9 +284,9 @@ static int sep_map_and_alloc_shared_area(struct sep_device *sep,
return -ENOMEM;
}
sep->shared_area = sep->shared_addr;
/* set the physical address of the shared area */
/* set the bus address of the shared area */
sep->shared_area_bus = sep->shared_bus;
edbg("sep: shared_area %d bytes @%p (bus %08llx)\n",
edbg("sep: shared_area %ld bytes @%p (bus %08llx)\n",
size, sep->shared_addr, (unsigned long long)sep->shared_bus);
return 0;
}
......@@ -309,7 +308,7 @@ static void sep_unmap_and_free_shared_area(struct sep_device *sep, int size)
/**
* sep_shared_area_virt_to_bus - convert bus/virt addresses
*
* Returns the physical address inside the shared area according
* Returns the bus address inside the shared area according
* to the virtual address.
*/
......@@ -317,7 +316,7 @@ static dma_addr_t sep_shared_area_virt_to_bus(struct sep_device *sep,
void *virt_address)
{
dma_addr_t pa = sep->shared_bus + (virt_address - sep->shared_addr);
edbg("sep: virt to phys p %08llx v %p\n", pa, virt_address);
edbg("sep: virt to bus b %08llx v %p\n", pa, virt_address);
return pa;
}
......@@ -403,7 +402,7 @@ static int sep_release(struct inode *inode_ptr, struct file *filp)
-----------------------------------------------------------------*/
static int sep_mmap(struct file *filp, struct vm_area_struct *vma)
{
dma_addr_t phys_addr;
dma_addr_t bus_addr;
struct sep_device *sep = filp->private_data;
dbg("-------->SEP Driver: mmap start\n");
......@@ -421,12 +420,12 @@ static int sep_mmap(struct file *filp, struct vm_area_struct *vma)
edbg("SEP Driver:sep->message_shared_area_addr is %p\n", sep->message_shared_area_addr);
/* get physical address */
phys_addr = sep->shared_area_bus;
/* get bus address */
bus_addr = sep->shared_area_bus;
edbg("SEP Driver: phys_addr is %08llx\n", (unsigned long long)phys_addr);
edbg("SEP Driver: phys_addr is %08llx\n", (unsigned long long)bus_addr);
if (remap_pfn_range(vma, vma->vm_start, phys_addr >> PAGE_SHIFT, vma->vm_end - vma->vm_start, vma->vm_page_prot)) {
if (remap_pfn_range(vma, vma->vm_start, bus_addr >> PAGE_SHIFT, vma->vm_end - vma->vm_start, vma->vm_page_prot)) {
edbg("SEP Driver remap_page_range failed\n");
printk(KERN_WARNING "SEP Driver remap_page_range failed\n");
return -EAGAIN;
......@@ -445,7 +444,7 @@ static unsigned int sep_poll(struct file *filp, poll_table * wait)
{
unsigned long count;
unsigned int mask = 0;
unsigned long retVal = 0; /* flow id */
unsigned long retval = 0; /* flow id */
struct sep_device *sep = filp->private_data;
dbg("---------->SEP Driver poll: start\n");
......@@ -453,8 +452,8 @@ static unsigned int sep_poll(struct file *filp, poll_table * wait)
#if SEP_DRIVER_POLLING_MODE
while (sep->send_ct != (retVal & 0x7FFFFFFF)) {
retVal = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR2_REG_ADDR);
while (sep->send_ct != (retval & 0x7FFFFFFF)) {
retval = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR2_REG_ADDR);
for (count = 0; count < 10 * 4; count += 4)
edbg("Poll Debug Word %lu of the message is %lu\n", count, *((unsigned long *) (sep->shared_area + SEP_DRIVER_MESSAGE_SHARED_AREA_SIZE_IN_BYTES + count)));
......@@ -478,10 +477,10 @@ static unsigned int sep_poll(struct file *filp, poll_table * wait)
for (count = 0; count < 10 * 4; count += 4)
edbg("Debug Data Word %lu of the message is %lu\n", count, *((unsigned long *) (sep->shared_area + 0x1800 + count)));
retVal = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR2_REG_ADDR);
edbg("retVal is %lu\n", retVal);
retval = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR2_REG_ADDR);
edbg("retval is %lu\n", retval);
/* check if the this is sep reply or request */
if (retVal >> 31) {
if (retval >> 31) {
edbg("SEP Driver: sep request in\n");
/* request */
mask |= POLLOUT | POLLWRNORM;
......@@ -581,7 +580,7 @@ static void sep_send_reply_command_handler(struct sep_device *sep)
/*
This function handles the allocate data pool memory request
This function returns calculates the physical address of the
This function returns calculates the bus address of the
allocated memory, and the offset of this area from the mapped address.
Therefore, the FVOs in user space can calculate the exact virtual
address of this allocated memory
......@@ -600,12 +599,11 @@ static int sep_allocate_data_pool_memory_handler(struct sep_device *sep,
/* allocate memory */
if ((sep->data_pool_bytes_allocated + command_args.num_bytes) > SEP_DRIVER_DATA_POOL_SHARED_AREA_SIZE_IN_BYTES) {
/* FIXME: ENOMEM ? */
error = -ENOTTY;
error = -ENOMEM;
goto end_function;
}
/* set the virtual and physical address */
/* set the virtual and bus address */
command_args.offset = SEP_DRIVER_DATA_POOL_AREA_OFFSET_IN_BYTES + sep->data_pool_bytes_allocated;
command_args.phys_address = sep->shared_area_bus + SEP_DRIVER_DATA_POOL_AREA_OFFSET_IN_BYTES + sep->data_pool_bytes_allocated;
......@@ -658,8 +656,7 @@ static int sep_write_into_data_pool_handler(struct sep_device *sep, unsigned lon
/* check that the range of the virtual kernel address is correct */
if (virt_address < data_pool_area_addr || virt_address > (data_pool_area_addr + SEP_DRIVER_DATA_POOL_SHARED_AREA_SIZE_IN_BYTES)) {
/* FIXME: EINVAL ? */
error = -ENOTTY;
error = -EINVAL;
goto end_function;
}
/* copy the application data */
......@@ -708,7 +705,7 @@ static int sep_read_from_data_pool_handler(struct sep_device *sep, unsigned long
and when doing that also overflows */
/* check that the range of the virtual kernel address is correct */
if (virt_address < data_pool_area_addr || virt_address > data_pool_area_addr + SEP_DRIVER_DATA_POOL_SHARED_AREA_SIZE_IN_BYTES) {
error = -ENOTTY;
error = -EINVAL;
goto end_function;
}
......@@ -1477,8 +1474,8 @@ static int sep_create_sync_dma_tables_handler(struct sep_device *sep,
if (error)
goto end_function;
/* copy to user */
error = copy_to_user((void *) arg, (void *) &command_args, sizeof(struct sep_driver_build_sync_table_t));
/* FIXME: wrong error returned ! */
if (copy_to_user((void *) arg, (void *) &command_args, sizeof(struct sep_driver_build_sync_table_t)))
error = -EFAULT;
end_function:
dbg("SEP Driver:<-------- sep_create_sync_dma_tables_handler end\n");
return error;
......@@ -1978,7 +1975,7 @@ static int sep_add_flow_tables_message_handler(struct sep_device *sep, unsigned
/*
this function returns the physical and virtual addresses of the static pool
this function returns the bus and virtual addresses of the static pool
*/
static int sep_get_static_pool_addr_handler(struct sep_device *sep, unsigned long arg)
{
......@@ -1991,7 +1988,7 @@ static int sep_get_static_pool_addr_handler(struct sep_device *sep, unsigned lon
command_args.physical_static_address = sep->shared_area_bus + SEP_DRIVER_STATIC_AREA_OFFSET_IN_BYTES;
command_args.virtual_static_address = (unsigned long)sep->shared_area + SEP_DRIVER_STATIC_AREA_OFFSET_IN_BYTES;
edbg("SEP Driver:physical_static_address is %08lx, virtual_static_address %08lx\n", command_args.physical_static_address, command_args.virtual_static_address);
edbg("SEP Driver:bus_static_address is %08lx, virtual_static_address %08lx\n", command_args.physical_static_address, command_args.virtual_static_address);
/* send the parameters to user application */
error = copy_to_user((void *) arg, &command_args, sizeof(struct sep_driver_static_pool_addr_t));
......@@ -2015,15 +2012,14 @@ static int sep_get_physical_mapped_offset_handler(struct sep_device *sep, unsign
goto end_function;
if (command_args.physical_address < sep->shared_area_bus) {
/* FIXME */
error = -ENOTTY;
error = -EINVAL;
goto end_function;
}
/*prepare the output parameters in the struct */
command_args.offset = command_args.physical_address - sep->shared_area_bus;
edbg("SEP Driver:physical_address is %08lx, offset is %lu\n", command_args.physical_address, command_args.offset);
edbg("SEP Driver:bus_address is %08lx, offset is %lu\n", command_args.physical_address, command_args.offset);
/* send the parameters to user application */
error = copy_to_user((void *) arg, &command_args, sizeof(struct sep_driver_get_mapped_offset_t));
......@@ -2130,8 +2126,8 @@ static int sep_realloc_cache_resident_handler(struct sep_device *sep,
unsigned long arg)
{
int error;
unsigned long phys_cache_address;
unsigned long phys_resident_address;
unsigned long bus_cache_address;
unsigned long bus_resident_address;
struct sep_driver_realloc_cache_resident_t command_args;
/* copy the data */
......@@ -2140,7 +2136,7 @@ static int sep_realloc_cache_resident_handler(struct sep_device *sep,
goto end_function;
/* copy cache and resident to the their intended locations */
error = sep_copy_cache_resident_to_area(sep, command_args.cache_addr, command_args.cache_size_in_bytes, command_args.resident_addr, command_args.resident_size_in_bytes, &phys_cache_address, &phys_resident_address);
error = sep_copy_cache_resident_to_area(sep, command_args.cache_addr, command_args.cache_size_in_bytes, command_args.resident_addr, command_args.resident_size_in_bytes, &bus_cache_address, &bus_resident_address);
if (error)
goto end_function;
......@@ -2148,14 +2144,14 @@ static int sep_realloc_cache_resident_handler(struct sep_device *sep,
/* find the new base address according to the lowest address between
cache, resident and shared area */
if (phys_resident_address < command_args.new_base_addr)
command_args.new_base_addr = phys_resident_address;
if (phys_cache_address < command_args.new_base_addr)
command_args.new_base_addr = phys_cache_address;
if (bus_resident_address < command_args.new_base_addr)
command_args.new_base_addr = bus_resident_address;
if (bus_cache_address < command_args.new_base_addr)
command_args.new_base_addr = bus_cache_address;
/* set the return parameters */
command_args.new_cache_addr = phys_cache_address;
command_args.new_resident_addr = phys_resident_address;
command_args.new_cache_addr = bus_cache_address;
command_args.new_resident_addr = bus_resident_address;
/* set the new shared area */
command_args.new_shared_area_addr = sep->shared_area_bus;
......@@ -2253,10 +2249,6 @@ static int sep_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, u
edbg("SEP Driver: cmd is %x\n", cmd);
/* check that the command is for sep device */
if (_IOC_TYPE(cmd) != SEP_IOC_MAGIC_NUMBER)
error = -ENOTTY;
switch (cmd) {
case SEP_IOCSENDSEPCOMMAND:
/* send command to SEP */
......@@ -2521,12 +2513,12 @@ static int __devinit sep_probe(struct pci_dev *pdev, const struct pci_device_id
sep_write_reg(sep, HW_HOST_HOST_SEP_GPR1_REG_ADDR, sep->shared_area_bus);
/* poll for SEP response */
retVal = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR1_REG_ADDR);
while (retVal != 0xffffffff && retVal != sep->shared_area_bus)
retVal = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR1_REG_ADDR);
retval = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR1_REG_ADDR);
while (retval != 0xffffffff && retval != sep->shared_area_bus)
retval = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR1_REG_ADDR);
/* check the return value (register) */
if (retVal != sep->shared_area_bus) {
if (retval != sep->shared_area_bus) {
error = -ENOMEM;
goto end_function_deallocate_sep_shared_area;
}
......@@ -2590,7 +2582,7 @@ static int __devinit sep_probe(struct pci_dev *pdev, const struct pci_device_id
/* FIXME */
sep->rar_bus = __pa(sep->rar_addr);
edbg("SEP Driver:rar_physical is %08llx\n", (unsigned long long)sep->rar_bus);
edbg("SEP Driver:rar_bus is %08llx\n", (unsigned long long)sep->rar_bus);
edbg("SEP Driver:rar_virtual is %p\n", sep->rar_addr);
#if !SEP_DRIVER_POLLING_MODE
......
......@@ -210,13 +210,13 @@
#define dbg(fmt, args...) \
do {\
if (sepDebug & SEP_DEBUG_LEVEL_BASIC) \
if (debug & SEP_DEBUG_LEVEL_BASIC) \
printk(KERN_DEBUG fmt, ##args); \
} while(0);
#define edbg(fmt, args...) \
do { \
if (sepDebug & SEP_DEBUG_LEVEL_EXTENDED) \
if (debug & SEP_DEBUG_LEVEL_EXTENDED) \
printk(KERN_DEBUG fmt, ##args); \
} while(0);
......
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