Simple ioctl taking a single numeric argument so ditch the structs and
weirdness. While we are it lock it properly and fix the error returns.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#1: sep->cache_addr is assigned to sep->rar_addr and never changed
sep->rar_addr is never assigned after this point
#2: sep->cache_bus ditto for sep->rar_bus
#3 sep->rar_region_addr is assigned but necer used
#4 sep->io_addr is in fact private to the probe function and
the same as the reg_addr
#5 The remainig sep->io fields are in fact function locals
#6 sep->message_shared_area is assigned once from sep->shared_area
sep->shared_area does not then change
#7 sep->shared_addr and sep->shared_area_addr are the same thing, ditto
for the bus addresses.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Use the mutex as a protection for open close rather than leaving it hanging
invalidly across userspace.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Start by removing unused fields and then work this back to eliminate unused
chunks of the firmware loading ioctl (ie almost all of it)
Also fix the wrong handling of shared allocations and allocate the rar
region properly with dma_alloc_coherent not kmalloc, as it is device shared.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Do these in one batch rather than generate lots of tiny diffs
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The DMA handling in the driver is a bit of a catastrophe. Start with the
simple things - allocate the shared area properly.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
We will need to tackle this in order to begin doing something about the
bus handled and shared memory object mess.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Move from using a sep_dev global. The workqueue still uses it and we use the
pointer in order to know if a device was found.
This requires some restructuring as the pci probe and the init module logic
are all rather messed up and only worked by luck.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Don't read the IRQ from the device, the device has no idea what is going on
in the full bus topology and remapping above PCI. Use the pdev->irq field.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Make them more Linuxlike - also favour _bus over _phys
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Open is still completely bogus in this driver but we'll tackle that later -
for now fix the bogus API
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Now we have it in one file we can make it all static and see what falls out
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Now we have it trimmed down a bit merge the two pieces so we can clean it up
properly. Code moves but no changes in functions.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This doesn't need to be done at runtime so do it at compile time
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Shuffle the functions into a more normal order. Don't however change any of
them.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Ok time to indent and get the code in vague shape. No other changes in this
patch.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Replace the macros with an inline to get type safety and pass sep_dev
instead of the reg pointer
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
For now keep the field names matching the variable names
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Upstream revision 3 of the security processor kernel driver;
now located in drivers/staging
This revision adds an initial TODO file
This driver no longer requires to have the firmware compiled in
it with the CONFIG_EXTRA_FIRMWARE configuration option.
Furthermore, we now have the right to distribute the firmware
binaries.
This is the Linux kernel driver for the Security Processor, which is
a hardware device the provides cryptographic, secure storage, and
key management services.
Please be aware that this patch does not contain any encryption
algorithm. It only transports data to and from user space
applications to the security processor.
Signed-off-by: Mark Allyn <mark.a.allyn@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>