@@ -275,8 +275,8 @@ static int isp_firmware_boot_stage2(struct apple_isp *isp)
275275 memset (& args , 0 , sizeof (args ));
276276 args .ipc_iova = isp -> ipc_surf -> iova ;
277277 args .ipc_size = isp -> ipc_surf -> size ;
278- args .shared_base = isp -> fw .heap_top ;
279- args .shared_size = 0x10000000UL - isp -> fw . heap_top ;
278+ args .shared_base = isp -> fw .heap_top & 0xffffffff ;
279+ args .shared_size = 0x10000000UL - args . shared_base ;
280280 args .extra_iova = isp -> extra_surf -> iova ;
281281 args .extra_size = isp -> extra_surf -> size ;
282282 args .platform_id = isp -> hw -> platform_id ;
@@ -287,7 +287,7 @@ static int isp_firmware_boot_stage2(struct apple_isp *isp)
287287 isp_iowrite (isp , args_iova , & args , sizeof (args ));
288288
289289 isp_gpio_write32 (isp , ISP_GPIO_0 , args_iova );
290- isp_gpio_write32 (isp , ISP_GPIO_1 , 0x0 );
290+ isp_gpio_write32 (isp , ISP_GPIO_1 , args_iova >> 32 );
291291 wmb ();
292292
293293 /* Wait for ISP_GPIO_7 to 0xf7fbdff9 -> 0x8042006 */
@@ -343,7 +343,8 @@ static void isp_free_channel_info(struct apple_isp *isp)
343343
344344static int isp_fill_channel_info (struct apple_isp * isp )
345345{
346- u32 table_iova = isp_gpio_read32 (isp , ISP_GPIO_0 );
346+ u64 table_iova = isp_gpio_read32 (isp , ISP_GPIO_0 ) |
347+ ((u64 )isp_gpio_read32 (isp , ISP_GPIO_1 )) << 32 ;
347348
348349 isp -> ipc_chans = kcalloc (isp -> num_ipc_chans ,
349350 sizeof (struct isp_channel * ), GFP_KERNEL );
0 commit comments