|
@@ -46,8 +46,10 @@
|
|
|
#ifndef __COMMON_H__
|
|
|
#define __COMMON_H__
|
|
|
|
|
|
+#include <linux/delay.h>
|
|
|
#include <linux/init.h>
|
|
|
#include <linux/interrupt.h>
|
|
|
+#include <linux/io.h>
|
|
|
#include <linux/kernel.h>
|
|
|
#include <linux/module.h>
|
|
|
#include <linux/pci.h>
|
|
@@ -149,6 +151,25 @@ struct zip_operation {
|
|
|
u32 sizeofzops;
|
|
|
};
|
|
|
|
|
|
+static inline int zip_poll_result(union zip_zres_s *result)
|
|
|
+{
|
|
|
+ int retries = 1000;
|
|
|
+
|
|
|
+ while (!result->s.compcode) {
|
|
|
+ if (!--retries) {
|
|
|
+ pr_err("ZIP ERR: request timed out");
|
|
|
+ return -ETIMEDOUT;
|
|
|
+ }
|
|
|
+ udelay(10);
|
|
|
+ /*
|
|
|
+ * Force re-reading of compcode which is updated
|
|
|
+ * by the ZIP coprocessor.
|
|
|
+ */
|
|
|
+ rmb();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/* error messages */
|
|
|
#define zip_err(fmt, args...) pr_err("ZIP ERR:%s():%d: " \
|
|
|
fmt "\n", __func__, __LINE__, ## args)
|