mirror of https://github.com/OpenIPC/firmware.git
77 lines
2.1 KiB
Diff
77 lines
2.1 KiB
Diff
diff -drupN a/fs/squashfs/jz-lzma.h b/fs/squashfs/jz-lzma.h
|
|
--- a/fs/squashfs/jz-lzma.h 1970-01-01 03:00:00.000000000 +0300
|
|
+++ b/fs/squashfs/jz-lzma.h 2022-06-09 05:02:35.000000000 +0300
|
|
@@ -0,0 +1,72 @@
|
|
+#ifndef __JZ_LZMA_MY_H__
|
|
+#define __JZ_LZMA_MY_H__
|
|
+
|
|
+#include <linux/miscdevice.h>
|
|
+#define LZMA_IOC_MAGIC 'L'
|
|
+#define IOCTL_LZMA_DMA_GET_RANDOM _IO(JZlzma_IOC_MAGIC, 110)
|
|
+
|
|
+#define LZMA_CTRL 0x0
|
|
+#define LZMA_BS_BASE 0x4
|
|
+#define LZMA_BS_SIZE 0x8
|
|
+#define LZMA_DST_BASE 0xc
|
|
+#define LZMA_ICRC 0x10
|
|
+#define LZMA_CRC 0x14
|
|
+#define LZMA_FINALSIZE 0x1c
|
|
+
|
|
+#define IN_FILE_SIZE 11
|
|
+#define OUT_FILE_SIZE 12
|
|
+
|
|
+typedef struct lzma_operation {
|
|
+ struct miscdevice lzma_dev;
|
|
+ struct resource *res;
|
|
+ int state;
|
|
+ void __iomem *iomem;
|
|
+ struct clk *clk;
|
|
+ struct clk *clk_gate;
|
|
+ struct clk *ahb0_gate;
|
|
+ struct device *dev;
|
|
+ int irq;
|
|
+ char name[16];
|
|
+ unsigned long in_file;
|
|
+ unsigned long out_file;
|
|
+ int opencnt;
|
|
+ struct mutex openmutex;
|
|
+}lzma_operation_t;
|
|
+
|
|
+extern int unlzma_hardware(unsigned char *input,int in_len,unsigned char *output);
|
|
+
|
|
+extern long lzma_ioctl(struct file *file, unsigned int cmd, unsigned long val);
|
|
+
|
|
+#define miscdev_to_lzmaops(mdev) (container_of(mdev, struct lzma_operation, lzma_dev))
|
|
+
|
|
+static inline unsigned int lzma_reg_read(struct lzma_operation *lzma_ope, int offset)
|
|
+{
|
|
+// printk("%s, read:0x%08x, val = 0x%08x\n", __func__, lzma_ope->iomem + offset, readl(lzma_ope->iomem + offset));
|
|
+ return readl(lzma_ope->iomem + offset);
|
|
+}
|
|
+
|
|
+static inline void lzma_reg_write(struct lzma_operation *lzma_ope, int offset, unsigned int val)
|
|
+{
|
|
+ writel(val, lzma_ope->iomem + offset);
|
|
+// printk("%s, write:0x%08x, val = 0x%08x\n", __func__, lzma_ope->iomem + offset, val);
|
|
+}
|
|
+
|
|
+static inline void lzma_bit_set(struct lzma_operation *lzma_ope, int offset, unsigned int bit)
|
|
+{
|
|
+ unsigned int tmp = 0;
|
|
+
|
|
+ tmp = lzma_reg_read(lzma_ope, offset);
|
|
+ tmp |= (1 << bit);
|
|
+ lzma_reg_write(lzma_ope, offset, tmp);
|
|
+}
|
|
+
|
|
+static inline void lzma_bit_clr(struct lzma_operation *lzma_ope, int offset, unsigned int bit)
|
|
+{
|
|
+ unsigned int tmp = 0;
|
|
+
|
|
+ tmp = lzma_reg_read(lzma_ope, offset);
|
|
+ tmp &= ~(1 << bit);
|
|
+ lzma_reg_write(lzma_ope, offset, tmp);
|
|
+}
|
|
+
|
|
+#endif
|