@@ -212,7 +212,7 @@ static int firehose_write(struct qdl_device *qdl, xmlDoc *doc)
212212 return -1 ;
213213 }
214214 if (vip_transfer_status_check_needed (qdl )) {
215- ret = firehose_read (qdl , 30000 , firehose_generic_parser , NULL );
215+ ret = firehose_read (qdl , qdl -> timeout_ms , firehose_generic_parser , NULL );
216216 if (ret ) {
217217 ux_err ("VIP: sending of digest table failed\n" );
218218 return -1 ;
@@ -430,7 +430,7 @@ static int firehose_erase(struct qdl_device *qdl, struct program *program)
430430 goto out ;
431431 }
432432
433- ret = firehose_read (qdl , 30000 , firehose_generic_parser , NULL );
433+ ret = firehose_read (qdl , qdl -> timeout_ms , firehose_generic_parser , NULL );
434434 if (ret )
435435 ux_err ("failed to erase %s+0x%x\n" , program -> start_sector , program -> num_sectors );
436436 else
@@ -445,7 +445,7 @@ static int firehose_program(struct qdl_device *qdl, struct program *program, int
445445{
446446 unsigned int num_sectors ;
447447 unsigned int sector_size ;
448- unsigned int zlp_timeout = 10000 ;
448+ unsigned int zlp_timeout = qdl -> timeout_ms ;
449449 struct stat sb ;
450450 size_t chunk_size ;
451451 xmlNode * root ;
@@ -460,13 +460,6 @@ static int firehose_program(struct qdl_device *qdl, struct program *program, int
460460 size_t i ;
461461 uint32_t fill_value ;
462462
463- /*
464- * ZLP has been measured to take up to 15 seconds on SPINOR devices,
465- * let's double it to be on the safe side...
466- */
467- if (qdl -> storage_type == QDL_STORAGE_SPINOR )
468- zlp_timeout = 30000 ;
469-
470463 num_sectors = program -> num_sectors ;
471464 sector_size = program -> sector_size ? : qdl -> sector_size ;
472465
@@ -516,7 +509,7 @@ static int firehose_program(struct qdl_device *qdl, struct program *program, int
516509 goto out ;
517510 }
518511
519- ret = firehose_read (qdl , 10000 , firehose_generic_parser , NULL );
512+ ret = firehose_read (qdl , qdl -> timeout_ms , firehose_generic_parser , NULL );
520513 if (ret ) {
521514 ux_err ("failed to setup programming\n" );
522515 goto out ;
@@ -574,7 +567,7 @@ static int firehose_program(struct qdl_device *qdl, struct program *program, int
574567 return -1 ;
575568 }
576569 if (vip_transfer_status_check_needed (qdl )) {
577- ret = firehose_read (qdl , 30000 , firehose_generic_parser , NULL );
570+ ret = firehose_read (qdl , qdl -> timeout_ms , firehose_generic_parser , NULL );
578571 if (ret ) {
579572 ux_err ("VIP: sending of digest table failed\n" );
580573 return -1 ;
@@ -587,7 +580,7 @@ static int firehose_program(struct qdl_device *qdl, struct program *program, int
587580 n = qdl_write (qdl , buf , chunk_size * sector_size , zlp_timeout );
588581 if (n < 0 ) {
589582 ux_err ("USB write failed for data chunk\n" );
590- ret = firehose_read (qdl , 30000 , firehose_generic_parser , NULL );
583+ ret = firehose_read (qdl , qdl -> timeout_ms , firehose_generic_parser , NULL );
591584 if (ret )
592585 ux_err ("flashing of chunk failed\n" );
593586
@@ -608,7 +601,7 @@ static int firehose_program(struct qdl_device *qdl, struct program *program, int
608601
609602 t = time (NULL ) - t0 ;
610603
611- ret = firehose_read (qdl , 30000 , firehose_generic_parser , NULL );
604+ ret = firehose_read (qdl , qdl -> timeout_ms , firehose_generic_parser , NULL );
612605 if (ret ) {
613606 ux_err ("flashing of %s failed\n" , program -> label );
614607 } else if (t ) {
@@ -671,7 +664,7 @@ static int firehose_issue_read(struct qdl_device *qdl, struct read_op *read_op,
671664 goto out ;
672665 }
673666
674- ret = firehose_read (qdl , 10000 , firehose_generic_parser , NULL );
667+ ret = firehose_read (qdl , qdl -> timeout_ms , firehose_generic_parser , NULL );
675668 if (ret ) {
676669 if (!quiet )
677670 ux_err ("failed to setup reading operation\n" );
@@ -685,7 +678,7 @@ static int firehose_issue_read(struct qdl_device *qdl, struct read_op *read_op,
685678 while (left > 0 || expect_empty ) {
686679 chunk_size = MIN (qdl -> max_payload_size / sector_size , left );
687680
688- n = qdl_read (qdl , buf , chunk_size * sector_size , 30000 );
681+ n = qdl_read (qdl , buf , chunk_size * sector_size , qdl -> timeout_ms );
689682 if (n < 0 ) {
690683 err (1 , "failed to read" );
691684 }
@@ -724,7 +717,7 @@ static int firehose_issue_read(struct qdl_device *qdl, struct read_op *read_op,
724717 ux_progress ("%s" , read_op -> num_sectors - left , read_op -> num_sectors , read_op -> filename );
725718 }
726719
727- ret = firehose_read (qdl , 10000 , firehose_generic_parser , NULL );
720+ ret = firehose_read (qdl , qdl -> timeout_ms , firehose_generic_parser , NULL );
728721 if (ret ) {
729722 ux_err ("read operation failed\n" );
730723 goto out ;
0 commit comments