remove nand_controller->register_callbacks
authorZachary T Welch <zw@superlucidity.net>
Sun, 22 Nov 2009 14:24:19 +0000 (06:24 -0800)
committerZachary T Welch <zw@superlucidity.net>
Wed, 25 Nov 2009 05:37:35 +0000 (21:37 -0800)
Replace flash_driver callback with pointer to command_registration.
Eliminates all related routines and allows drivers to omit commands.

12 files changed:
src/flash/davinci_nand.c
src/flash/lpc3180_nand_controller.c
src/flash/mx3_nand.c
src/flash/nand.c
src/flash/nand.h
src/flash/orion_nand.c
src/flash/s3c2410_nand.c
src/flash/s3c2412_nand.c
src/flash/s3c2440_nand.c
src/flash/s3c2443_nand.c
src/flash/s3c24xx_nand.c
src/flash/s3c24xx_nand.h

index ebd9ba8..72cd378 100644 (file)
@@ -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,
index 2dec3e1..146c843 100644 (file)
@@ -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,
index 459e2a6..1dc4fcb 100644 (file)
@@ -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,
index bc0e350..1e28ba2 100644 (file)
@@ -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);
index af52c77..b780f28 100644 (file)
@@ -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);
index c8fc969..77a03f2 100644 (file)
@@ -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,
 };
 
index 6fe8bae..ca50c99 100644 (file)
@@ -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,
index 2ca4cd3..acc6d99 100644 (file)
@@ -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,
index 65e5a51..556f6f1 100644 (file)
@@ -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,
index 5afb26f..311bb69 100644 (file)
@@ -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,
index 262569e..e7afb48 100644 (file)
@@ -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;
index 4829c7c..fad33a0 100644 (file)
@@ -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);