Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(482)

Side by Side Diff: flashrom.c

Issue 6897014: Do not call EC programmer shutdown functions explicitly. (Closed) Base URL: svn://coreboot.org/flashrom/trunk
Patch Set: rename shutdown() to flashrom_shutdown() to avoid conflict with shutdown(2) Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cli_mfg.c ('k') | internal.c » ('j') | internal.c » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This file is part of the flashrom project. 2 * This file is part of the flashrom project.
3 * 3 *
4 * Copyright (C) 2000 Silicon Integrated System Corporation 4 * Copyright (C) 2000 Silicon Integrated System Corporation
5 * Copyright (C) 2004 Tyan Corp <yhlu@tyan.com> 5 * Copyright (C) 2004 Tyan Corp <yhlu@tyan.com>
6 * Copyright (C) 2005-2008 coresystems GmbH 6 * Copyright (C) 2005-2008 coresystems GmbH
7 * Copyright (C) 2008,2009 Carl-Daniel Hailfinger 7 * Copyright (C) 2008,2009 Carl-Daniel Hailfinger
8 * 8 *
9 * This program is free software; you can redistribute it and/or modify 9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by 10 * it under the terms of the GNU General Public License as published by
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 unsigned long flashbase; 117 unsigned long flashbase;
118 118
119 /* Is writing allowed with this programmer? */ 119 /* Is writing allowed with this programmer? */
120 int programmer_may_write; 120 int programmer_may_write;
121 121
122 const struct programmer_entry programmer_table[] = { 122 const struct programmer_entry programmer_table[] = {
123 #if CONFIG_INTERNAL == 1 123 #if CONFIG_INTERNAL == 1
124 { 124 {
125 .name = "internal", 125 .name = "internal",
126 .init = internal_init, 126 .init = internal_init,
127 » » .shutdown» » = internal_shutdown, 127 » » /* called implicitly using shutdown callback */
128 //» » .shutdown» » = internal_shutdown,
Louis 2011/04/26 10:06:06 This line should be restored. See programmer_shutd
128 .map_flash_region = physmap, 129 .map_flash_region = physmap,
129 .unmap_flash_region = physunmap, 130 .unmap_flash_region = physunmap,
130 .chip_readb = internal_chip_readb, 131 .chip_readb = internal_chip_readb,
131 .chip_readw = internal_chip_readw, 132 .chip_readw = internal_chip_readw,
132 .chip_readl = internal_chip_readl, 133 .chip_readl = internal_chip_readl,
133 .chip_readn = internal_chip_readn, 134 .chip_readn = internal_chip_readn,
134 .chip_writeb = internal_chip_writeb, 135 .chip_writeb = internal_chip_writeb,
135 .chip_writew = internal_chip_writew, 136 .chip_writew = internal_chip_writew,
136 .chip_writel = internal_chip_writel, 137 .chip_writel = internal_chip_writel,
137 .chip_writen = fallback_chip_writen, 138 .chip_writen = fallback_chip_writen,
138 .delay = internal_delay, 139 .delay = internal_delay,
139 }, 140 },
140 #endif 141 #endif
141 142
142 #if CONFIG_DUMMY == 1 143 #if CONFIG_DUMMY == 1
143 { 144 {
144 .name = "dummy", 145 .name = "dummy",
145 .init = dummy_init, 146 .init = dummy_init,
146 .shutdown = dummy_shutdown, 147 .shutdown = dummy_shutdown,
Louis 2011/04/26 10:06:06 Those (below) shutdown functions are no longer cal
147 .map_flash_region = dummy_map, 148 .map_flash_region = dummy_map,
148 .unmap_flash_region = dummy_unmap, 149 .unmap_flash_region = dummy_unmap,
149 .chip_readb = dummy_chip_readb, 150 .chip_readb = dummy_chip_readb,
150 .chip_readw = dummy_chip_readw, 151 .chip_readw = dummy_chip_readw,
151 .chip_readl = dummy_chip_readl, 152 .chip_readl = dummy_chip_readl,
152 .chip_readn = dummy_chip_readn, 153 .chip_readn = dummy_chip_readn,
153 .chip_writeb = dummy_chip_writeb, 154 .chip_writeb = dummy_chip_writeb,
154 .chip_writew = dummy_chip_writew, 155 .chip_writew = dummy_chip_writew,
155 .chip_writel = dummy_chip_writel, 156 .chip_writel = dummy_chip_writel,
156 .chip_writen = dummy_chip_writen, 157 .chip_writen = dummy_chip_writen,
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 569
569 while (chip_restore_fn_count > 0) { 570 while (chip_restore_fn_count > 0) {
570 int i = --chip_restore_fn_count; 571 int i = --chip_restore_fn_count;
571 rc |= chip_restore_fn[i].func(chip_restore_fn[i].flash, 572 rc |= chip_restore_fn[i].func(chip_restore_fn[i].flash,
572 chip_restore_fn[i].status); 573 chip_restore_fn[i].status);
573 } 574 }
574 575
575 return rc; 576 return rc;
576 } 577 }
577 578
578 int programmer_shutdown(void) 579 int flashrom_shutdown(void)
Louis 2011/04/26 10:06:06 We don't need to change to flashrom_shutdown. prog
dhendrix 2011/04/27 02:08:06 Agreed. That was a bit ambitious of me :-) Revert
579 { 580 {
581 msg_gdbg("%s: carrying out %d shutdown callbacks\n",
582 __func__, shutdown_fn_count);
580 /* Registering shutdown functions is no longer allowed. */ 583 /* Registering shutdown functions is no longer allowed. */
Louis 2011/04/26 10:06:06 Could you add the following code to avoid flashrom
dhendrix 2011/04/27 02:08:06 Good idea, however may_register_shutdown is set by
581 may_register_shutdown = 0; 584 may_register_shutdown = 0;
582 while (shutdown_fn_count > 0) { 585 while (shutdown_fn_count > 0) {
583 int i = --shutdown_fn_count; 586 int i = --shutdown_fn_count;
584 shutdown_fn[i].func(shutdown_fn[i].data); 587 shutdown_fn[i].func(shutdown_fn[i].data);
585 } 588 }
586 » return programmer_table[programmer].shutdown(); 589 » return 0;
Louis 2011/04/26 10:06:06 We still need programmer_table[programmer].shutdow
dhendrix 2011/04/27 02:08:06 Hmm, the reason I removed programmer_table[program
Louis 2011/04/27 02:25:33 Sorry that I didn't say my comment very clearly. M
dhendrix 2011/04/27 20:07:29 Ah! That makes more sense. Thanks for the detailed
587 } 590 }
588 591
589 void *programmer_map_flash_region(const char *descr, unsigned long phys_addr, 592 void *programmer_map_flash_region(const char *descr, unsigned long phys_addr,
590 size_t len) 593 size_t len)
591 { 594 {
592 return programmer_table[programmer].map_flash_region(descr, 595 return programmer_table[programmer].map_flash_region(descr,
593 phys_addr, len); 596 phys_addr, len);
594 } 597 }
595 598
596 void programmer_unmap_flash_region(void *virt_addr, size_t len) 599 void programmer_unmap_flash_region(void *virt_addr, size_t len)
(...skipping 1404 matching lines...) Expand 10 before | Expand all | Expand 10 after
2001 if (ret && write_it) 2004 if (ret && write_it)
2002 emergency_help_message(); 2005 emergency_help_message();
2003 } 2006 }
2004 2007
2005 out: 2008 out:
2006 free(oldcontents); 2009 free(oldcontents);
2007 free(newcontents); 2010 free(newcontents);
2008 out_nofree: 2011 out_nofree:
2009 chip_restore(); /* must be done before programmer_shutdown() */ 2012 chip_restore(); /* must be done before programmer_shutdown() */
2010 /* 2013 /*
2011 » * programmer_shutdown() call is moved to cli_mfg() in chromium os 2014 » * flashrom_shutdown() call is moved to cli_mfg() in chromium os
2012 * tree. This is because some operations, such as write protection, 2015 * tree. This is because some operations, such as write protection,
2013 * requires programmer_shutdown() but does not call doit(). 2016 * requires programmer_shutdown() but does not call doit().
2014 */ 2017 */
2015 //» programmer_shutdown(); 2018 //» flashrom_shutdown();
2016 return ret; 2019 return ret;
2017 } 2020 }
OLDNEW
« no previous file with comments | « cli_mfg.c ('k') | internal.c » ('j') | internal.c » ('J')

Powered by Google App Engine
This is Rietveld 408576698