From 90d09e35e4be6f0b35899238b253154249f85cb6 Mon Sep 17 00:00:00 2001 From: Zachary T Welch Date: Sun, 22 Nov 2009 06:24:19 -0800 Subject: remove nand_controller->register_callbacks Replace flash_driver callback with pointer to command_registration. Eliminates all related routines and allows drivers to omit commands. --- src/flash/davinci_nand.c | 6 ------ src/flash/lpc3180_nand_controller.c | 7 +------ src/flash/mx3_nand.c | 6 ------ src/flash/nand.c | 11 ++++++----- src/flash/nand.h | 2 +- src/flash/orion_nand.c | 6 ------ src/flash/s3c2410_nand.c | 1 - src/flash/s3c2412_nand.c | 1 - src/flash/s3c2440_nand.c | 1 - src/flash/s3c2443_nand.c | 1 - src/flash/s3c24xx_nand.c | 5 ----- src/flash/s3c24xx_nand.h | 2 -- 12 files changed, 8 insertions(+), 41 deletions(-) (limited to 'src') diff --git a/src/flash/davinci_nand.c b/src/flash/davinci_nand.c index ebd9ba8..72cd378 100644 --- a/src/flash/davinci_nand.c +++ b/src/flash/davinci_nand.c @@ -78,11 +78,6 @@ static int halted(struct target *target, const char *label) return false; } -static int davinci_register_commands(struct command_context *cmd_ctx) -{ - return ERROR_OK; -} - static int davinci_init(struct nand_device *nand) { struct davinci_nand *info = nand->controller_priv; @@ -747,7 +742,6 @@ fail: struct nand_flash_controller davinci_nand_controller = { .name = "davinci", .nand_device_command = davinci_nand_device_command, - .register_commands = davinci_register_commands, .init = davinci_init, .reset = davinci_reset, .command = davinci_command, diff --git a/src/flash/lpc3180_nand_controller.c b/src/flash/lpc3180_nand_controller.c index 2dec3e1..146c843 100644 --- a/src/flash/lpc3180_nand_controller.c +++ b/src/flash/lpc3180_nand_controller.c @@ -893,15 +893,10 @@ static const struct command_registration lpc3180_command_handler[] = { COMMAND_REGISTRATION_DONE }; -static int lpc3180_register_commands(struct command_context *cmd_ctx) -{ - return register_commands(cmd_ctx, NULL, lpc3180_command_handler); -} - struct nand_flash_controller lpc3180_nand_controller = { .name = "lpc3180", + .commands = lpc3180_command_handler, .nand_device_command = lpc3180_nand_device_command, - .register_commands = lpc3180_register_commands, .init = lpc3180_init, .reset = lpc3180_reset, .command = lpc3180_command, diff --git a/src/flash/mx3_nand.c b/src/flash/mx3_nand.c index 459e2a6..1dc4fcb 100644 --- a/src/flash/mx3_nand.c +++ b/src/flash/mx3_nand.c @@ -315,11 +315,6 @@ static int imx31_nand_ready (struct nand_device *nand, int timeout) return imx31_controller_ready (nand, timeout); } -static int imx31_register_commands (struct command_context *cmd_ctx) -{ - return ERROR_OK; -} - static int imx31_reset (struct nand_device *nand) { /* @@ -871,7 +866,6 @@ static int do_data_output (struct nand_device *nand) struct nand_flash_controller imx31_nand_flash_controller = { .name = "imx31", .nand_device_command = &imx31_nand_device_command, - .register_commands = &imx31_register_commands, .init = &imx31_init, .reset = &imx31_reset, .command = &imx31_command, diff --git a/src/flash/nand.c b/src/flash/nand.c index bc0e350..1e28ba2 100644 --- a/src/flash/nand.c +++ b/src/flash/nand.c @@ -214,11 +214,12 @@ COMMAND_HANDLER(handle_nand_list_drivers) static COMMAND_HELPER(create_nand_device, const char *bank_name, struct nand_flash_controller *controller) { - int retval = controller->register_commands(CMD_CTX); - if (ERROR_OK != retval) + if (NULL != controller->commands) { - LOG_ERROR("couldn't register '%s' commands", controller->name); - return retval; + int retval = register_commands(CMD_CTX, NULL, + controller->commands); + if (ERROR_OK != retval) + return retval; } struct nand_device *c = malloc(sizeof(struct nand_device)); @@ -233,7 +234,7 @@ static COMMAND_HELPER(create_nand_device, const char *bank_name, c->use_raw = 0; c->next = NULL; - retval = CALL_COMMAND_HANDLER(controller->nand_device_command, c); + int retval = CALL_COMMAND_HANDLER(controller->nand_device_command, c); if (ERROR_OK != retval) { LOG_ERROR("'%s' driver rejected nand flash", controller->name); diff --git a/src/flash/nand.h b/src/flash/nand.h index af52c77..b780f28 100644 --- a/src/flash/nand.h +++ b/src/flash/nand.h @@ -35,8 +35,8 @@ struct nand_device; struct nand_flash_controller { char *name; + const struct command_registration *commands; __NAND_DEVICE_COMMAND((*nand_device_command)); - int (*register_commands)(struct command_context *cmd_ctx); int (*init)(struct nand_device *nand); int (*reset)(struct nand_device *nand); int (*command)(struct nand_device *nand, uint8_t command); diff --git a/src/flash/orion_nand.c b/src/flash/orion_nand.c index c8fc969..77a03f2 100644 --- a/src/flash/orion_nand.c +++ b/src/flash/orion_nand.c @@ -120,11 +120,6 @@ static int orion_nand_controller_ready(struct nand_device *nand, int timeout) return 1; } -static int orion_nand_register_commands(struct command_context *cmd_ctx) -{ - return ERROR_OK; -} - NAND_DEVICE_COMMAND_HANDLER(orion_nand_device_command) { struct orion_nand_controller *hw; @@ -180,7 +175,6 @@ struct nand_flash_controller orion_nand_controller = .reset = orion_nand_reset, .controller_ready = orion_nand_controller_ready, .nand_device_command = orion_nand_device_command, - .register_commands = orion_nand_register_commands, .init = orion_nand_init, }; diff --git a/src/flash/s3c2410_nand.c b/src/flash/s3c2410_nand.c index 6fe8bae..ca50c99 100644 --- a/src/flash/s3c2410_nand.c +++ b/src/flash/s3c2410_nand.c @@ -110,7 +110,6 @@ static int s3c2410_nand_ready(struct nand_device *nand, int timeout) struct nand_flash_controller s3c2410_nand_controller = { .name = "s3c2410", .nand_device_command = &s3c2410_nand_device_command, - .register_commands = &s3c24xx_register_commands, .init = &s3c2410_init, .reset = &s3c24xx_reset, .command = &s3c24xx_command, diff --git a/src/flash/s3c2412_nand.c b/src/flash/s3c2412_nand.c index 2ca4cd3..acc6d99 100644 --- a/src/flash/s3c2412_nand.c +++ b/src/flash/s3c2412_nand.c @@ -64,7 +64,6 @@ static int s3c2412_init(struct nand_device *nand) struct nand_flash_controller s3c2412_nand_controller = { .name = "s3c2412", .nand_device_command = &s3c2412_nand_device_command, - .register_commands = &s3c24xx_register_commands, .init = &s3c2412_init, .reset = &s3c24xx_reset, .command = &s3c24xx_command, diff --git a/src/flash/s3c2440_nand.c b/src/flash/s3c2440_nand.c index 65e5a51..556f6f1 100644 --- a/src/flash/s3c2440_nand.c +++ b/src/flash/s3c2440_nand.c @@ -156,7 +156,6 @@ int s3c2440_write_block_data(struct nand_device *nand, uint8_t *data, int data_s struct nand_flash_controller s3c2440_nand_controller = { .name = "s3c2440", .nand_device_command = &s3c2440_nand_device_command, - .register_commands = &s3c24xx_register_commands, .init = &s3c2440_init, .reset = &s3c24xx_reset, .command = &s3c24xx_command, diff --git a/src/flash/s3c2443_nand.c b/src/flash/s3c2443_nand.c index 5afb26f..311bb69 100644 --- a/src/flash/s3c2443_nand.c +++ b/src/flash/s3c2443_nand.c @@ -65,7 +65,6 @@ static int s3c2443_init(struct nand_device *nand) struct nand_flash_controller s3c2443_nand_controller = { .name = "s3c2443", .nand_device_command = &s3c2443_nand_device_command, - .register_commands = &s3c24xx_register_commands, .init = &s3c2443_init, .reset = &s3c24xx_reset, .command = &s3c24xx_command, diff --git a/src/flash/s3c24xx_nand.c b/src/flash/s3c24xx_nand.c index 262569e..e7afb48 100644 --- a/src/flash/s3c24xx_nand.c +++ b/src/flash/s3c24xx_nand.c @@ -52,11 +52,6 @@ S3C24XX_DEVICE_COMMAND() return ERROR_OK; } -int s3c24xx_register_commands(struct command_context *cmd_ctx) -{ - return ERROR_OK; -} - int s3c24xx_reset(struct nand_device *nand) { struct s3c24xx_nand_controller *s3c24xx_info = nand->controller_priv; diff --git a/src/flash/s3c24xx_nand.h b/src/flash/s3c24xx_nand.h index 4829c7c..fad33a0 100644 --- a/src/flash/s3c24xx_nand.h +++ b/src/flash/s3c24xx_nand.h @@ -59,8 +59,6 @@ S3C24XX_DEVICE_COMMAND(); return retval; \ } while (0) -int s3c24xx_register_commands(struct command_context *cmd_ctx); - int s3c24xx_reset(struct nand_device *nand); int s3c24xx_command(struct nand_device *nand, uint8_t command); -- cgit v1.1