aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18/cx18-firmware.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx18/cx18-firmware.c')
-rw-r--r--drivers/media/video/cx18/cx18-firmware.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/video/cx18/cx18-firmware.c b/drivers/media/video/cx18/cx18-firmware.c
index d9c5f55ab17c..fdea4b75204d 100644
--- a/drivers/media/video/cx18/cx18-firmware.c
+++ b/drivers/media/video/cx18/cx18-firmware.c
@@ -121,6 +121,7 @@ static int load_cpu_fw_direct(const char *fn, u8 __iomem *mem, struct cx18 *cx)
121 if (cx18_raw_readl(cx, dst) != *src) { 121 if (cx18_raw_readl(cx, dst) != *src) {
122 CX18_ERR("Mismatch at offset %x\n", i); 122 CX18_ERR("Mismatch at offset %x\n", i);
123 release_firmware(fw); 123 release_firmware(fw);
124 cx18_setup_page(cx, 0);
124 return -EIO; 125 return -EIO;
125 } 126 }
126 dst++; 127 dst++;
@@ -131,6 +132,7 @@ static int load_cpu_fw_direct(const char *fn, u8 __iomem *mem, struct cx18 *cx)
131 CX18_INFO("loaded %s firmware (%zd bytes)\n", fn, fw->size); 132 CX18_INFO("loaded %s firmware (%zd bytes)\n", fn, fw->size);
132 size = fw->size; 133 size = fw->size;
133 release_firmware(fw); 134 release_firmware(fw);
135 cx18_setup_page(cx, SCB_OFFSET);
134 return size; 136 return size;
135} 137}
136 138
@@ -150,6 +152,7 @@ static int load_apu_fw_direct(const char *fn, u8 __iomem *dst, struct cx18 *cx,
150 if (request_firmware(&fw, fn, &cx->dev->dev)) { 152 if (request_firmware(&fw, fn, &cx->dev->dev)) {
151 CX18_ERR("unable to open firmware %s\n", fn); 153 CX18_ERR("unable to open firmware %s\n", fn);
152 CX18_ERR("did you put the firmware in the hotplug firmware directory?\n"); 154 CX18_ERR("did you put the firmware in the hotplug firmware directory?\n");
155 cx18_setup_page(cx, 0);
153 return -ENOMEM; 156 return -ENOMEM;
154 } 157 }
155 158
@@ -185,6 +188,7 @@ static int load_apu_fw_direct(const char *fn, u8 __iomem *dst, struct cx18 *cx,
185 CX18_ERR("Mismatch at offset %x\n", 188 CX18_ERR("Mismatch at offset %x\n",
186 offset + j); 189 offset + j);
187 release_firmware(fw); 190 release_firmware(fw);
191 cx18_setup_page(cx, 0);
188 return -EIO; 192 return -EIO;
189 } 193 }
190 } 194 }
@@ -196,6 +200,7 @@ static int load_apu_fw_direct(const char *fn, u8 __iomem *dst, struct cx18 *cx,
196 fn, apu_version, fw->size); 200 fn, apu_version, fw->size);
197 size = fw->size; 201 size = fw->size;
198 release_firmware(fw); 202 release_firmware(fw);
203 cx18_setup_page(cx, 0);
199 return size; 204 return size;
200} 205}
201 206