mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 23:22:37 +02:00
programmers: Allow opaque programmers to specify custom delay
The dummyprogrammer in the opaque case can have a NOP delay to avoid wasting CPU time and energy. BUG=b:266014935 TEST=builds Change-Id: Ia86ad21f011214abc2aa0891a43559f91e2a9591 Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/72424 Reviewed-by: Sam McNally <sammc@google.com> Reviewed-by: Anastasia Klimchuk <aklm@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
31c5caa614
commit
0a6fa23924
@ -277,6 +277,9 @@ void programmer_delay(const struct flashctx *flash, unsigned int usecs)
|
|||||||
} else if (flash->mst->buses_supported & BUS_PARALLEL) {
|
} else if (flash->mst->buses_supported & BUS_PARALLEL) {
|
||||||
if (flash->mst->par.delay)
|
if (flash->mst->par.delay)
|
||||||
return flash->mst->par.delay(flash, usecs);
|
return flash->mst->par.delay(flash, usecs);
|
||||||
|
} else if (flash->mst->buses_supported & BUS_PROG) {
|
||||||
|
if (flash->mst->opaque.delay)
|
||||||
|
return flash->mst->opaque.delay(flash, usecs);
|
||||||
}
|
}
|
||||||
|
|
||||||
return default_delay(usecs);
|
return default_delay(usecs);
|
||||||
|
@ -418,6 +418,7 @@ struct opaque_master {
|
|||||||
enum flashrom_wp_result (*wp_get_ranges)(struct flashrom_wp_ranges **, struct flashctx *);
|
enum flashrom_wp_result (*wp_get_ranges)(struct flashrom_wp_ranges **, struct flashctx *);
|
||||||
void (*get_region)(const struct flashctx *flash, unsigned int addr, struct flash_region *region);
|
void (*get_region)(const struct flashctx *flash, unsigned int addr, struct flash_region *region);
|
||||||
int (*shutdown)(void *data);
|
int (*shutdown)(void *data);
|
||||||
|
void (*delay) (const struct flashctx *flash, unsigned int usecs);
|
||||||
void *data;
|
void *data;
|
||||||
};
|
};
|
||||||
int register_opaque_master(const struct opaque_master *mst, void *data);
|
int register_opaque_master(const struct opaque_master *mst, void *data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user