14 #include <linux/module.h>
15 #include <linux/kernel.h>
20 #include <linux/sched.h>
21 #include <linux/slab.h>
29 #define TYPE_A_HEADER_SIZE 4
30 #define TYPE_A_LOOKAHEAD_SIZE 16
31 #define YMEM0_SIZE 0x8000
32 #define DOWNLOAD_SIZE (YMEM0_SIZE - TYPE_A_HEADER_SIZE)
34 #define KRN_PATH "/lib/firmware/gdm72xx/gdmskrn.bin"
35 #define RFS_PATH "/lib/firmware/gdm72xx/gdmsrfs.bin"
55 static int download_image(
struct sdio_func *
func,
char *img_name)
69 inode = filp->f_dentry->d_inode;
76 size = i_size_read(inode->
i_mapping->host);
92 buf[1] = (
len >> 8) & 0xff;
93 buf[2] = (
len >> 16) & 0xff;
103 "packet number = %d ret = %d\n", pno, ret);
108 if (!ack_ready(func)) {
116 "packet number = %d ret = %d\n", pno, ret);
143 ret = download_image(func,
KRN_PATH);
148 ret = download_image(func,
RFS_PATH);