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 ebd9ba8dde5495a464b0ca4033d12934ab3d9236..72cd378a4da7fbd1b9bf331d77bc923a4a586d0c 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 2dec3e1236ea8de78a00b2ca2d553ec037f413be..146c84382d0769862038b2067920e374442cfef2 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 459e2a60cac2656088beca0fd3200e5832efdeef..1dc4fcbc4654a7411ccf575ac97e75d9f386fffd 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 bc0e350556f9b8a4a6e646a856b7dd0c12292c5d..1e28ba2697151318a15fb91f4bceaa080d509422 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 af52c770970373fa911ef69118fc3698daf7cddf..b780f2846edbe547113c75639be33cc298a35922 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 c8fc96988421fdaf7847f609f478e2503ea3e43f..77a03f2752334a62a1a26c60978cfc4d4eb1a42a 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 6fe8bae73f12238aab9ed35dd3085b2b1f8a7190..ca50c99445adcf7471200de29792765650af79c3 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 2ca4cd31f91797e6bb9915ec01ab28160f374558..acc6d993f61cbdd16261f733ebc638cd184df82d 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 65e5a51180d6bba843a4e3ea41cc7eacdbe07345..556f6f1e89b960af560360689cf0d1f62932ad47 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 5afb26fcbb8135383dc4603583c8d2211435cf6d..311bb6977c8fb0b8399939dfd3d28311c5f8e5da 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 262569e8f1ec18cd50a3174e6b391831c65cce94..e7afb48ad7b0bece77600deb041af1fa9df11891 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 4829c7c4f22eeb5d18ac759e781e2db18c36bbe3..fad33a0c4dd84e029431a18312d920a510ba5715 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);