Date: Fri, 4 Jan 2008 08:43:17 GMT From: Andrew Turner <andrew@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 132471 for review Message-ID: <200801040843.m048hHTJ056148@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=132471 Change 132471 by andrew@andrew_hermies on 2008/01/04 08:43:15 Rename the softc to be inline with the filename Rename p_bug to buf and p_spare to spare in s3c24x0_nand_read_page Remove s3c24x0_nand_read_spare as it was unused and was merged into s3c24x0_nand_read_page Affected files ... .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_nand.c#2 edit Differences ... ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_nand.c#2 (text+ko) ==== @@ -53,7 +53,7 @@ #define NAND_CMD_BLKERASEC 0xd0 #define NAND_CMD_RESET 0xff -struct s3c2410_nand_softc { +struct s3c24x0_nand_softc { struct s3c2xx0_softc sc_sx; bus_space_handle_t sc_nand_ioh; @@ -89,10 +89,8 @@ static int s3c24x0_nand_attach(device_t); /* Internal functions */ -static int s3c24x0_nand_read_page(struct s3c2410_nand_softc*, int, +static int s3c24x0_nand_read_page(struct s3c24x0_nand_softc*, int, u_int8_t*, u_int8_t*); -//static int s3c24x0_nand_read_spare(struct s3c2410_nand_softc*, int, -// u_int8_t *); static d_strategy_t s3c24x0_nand_strategy; @@ -105,7 +103,7 @@ static driver_t nand_s3c2410_driver = { "nand", s3c2410_nand_methods, - sizeof(struct s3c2410_nand_softc), + sizeof(struct s3c24x0_nand_softc), }; static devclass_t nand_devclass; @@ -121,7 +119,7 @@ static int s3c24x0_nand_attach(device_t dev) { - struct s3c2410_nand_softc *sc = device_get_softc(dev); + struct s3c24x0_nand_softc *sc = device_get_softc(dev); const char *p = NULL; intrmask_t intr_mask; bus_space_handle_t ioh; @@ -229,18 +227,13 @@ for (block = 0; block < sc->blocks_disk; block++) { page = block * sc->pages_block; s3c24x0_nand_read_page(sc, page, NULL, spare); - //s3c24x0_nand_read_spare(sc, page, spare); if (spare[5] == 0xFF) { s3c24x0_nand_read_page(sc, page + (sc->data_size >> 8), NULL, spare); - //s3c24x0_nand_read_spare(sc, page + (sc->data_size >> 8), - // spare); if (spare[5] == 0xFF) { /* The block is good */ continue; } - } else { - printf("A: %X ", spare[0]); } printf("Bad block: %X\n", page); } @@ -290,12 +283,12 @@ static void s3c24x0_nand_strategy(struct bio *bp) { - struct s3c2410_nand_softc *sc; + struct s3c24x0_nand_softc *sc; u_long current_lblk, lpage, next_lblk, page, pagei; u_int8_t *p_data; long cnt; - sc = (struct s3c2410_nand_softc*)bp->bio_disk->d_drv1; + sc = (struct s3c24x0_nand_softc*)bp->bio_disk->d_drv1; if (sc == NULL) { bp->bio_error = EINVAL; goto bad; @@ -441,18 +434,17 @@ /* * Read a page from the NAND - * TODO: check if p_buf is NULL and skip the page if it is */ static int -s3c24x0_nand_read_page(struct s3c2410_nand_softc *sc, int page, - u_int8_t *p_buf, u_int8_t *p_spare) +s3c24x0_nand_read_page(struct s3c24x0_nand_softc *sc, int page, + u_int8_t *buf, u_int8_t *spare) { bus_space_handle_t ioh; bus_space_tag_t iot; intrmask_t intr_mask; int i; - KASSERT(p_buf != NULL || p_spare != NULL, + KASSERT(buf != NULL || spare != NULL, ("s3c24x0_nand_read_page: nothing to read")); ioh = sc->sc_nand_ioh; @@ -463,7 +455,7 @@ /* Issue the command read the page */ bus_space_write_1(iot, ioh, NANDFC_NFCMD, - (p_buf != NULL) ? NAND_CMD_READ0 : NAND_CMD_READ2); + (buf != NULL) ? NAND_CMD_READ0 : NAND_CMD_READ2); /* Output the address */ bus_space_write_1(iot, ioh, NANDFC_NFADDR, 0x00); @@ -487,16 +479,16 @@ DELAY(12); /* Enter a loop to read the bytes from the page */ - if (p_buf != NULL) { + if (buf != NULL) { for (i = 0; i < sc->data_size; i++) { - p_buf[i] = bus_space_read_1(iot, ioh, NANDFC_NFDATA); + buf[i] = bus_space_read_1(iot, ioh, NANDFC_NFDATA); } } /* Check if the spare data area is to be read too */ - if (p_spare != NULL) { + if (spare != NULL) { for (i = 0; i < sc->spare_size; i++) { - p_spare[i] = bus_space_read_1(iot, ioh, NANDFC_NFDATA); + spare[i] = bus_space_read_1(iot, ioh, NANDFC_NFDATA); } } @@ -505,49 +497,4 @@ return(0); } -#if 0 -static int -s3c24x0_nand_read_spare(struct s3c2410_nand_softc *sc, int page, - u_int8_t *p_buf) -{ - bus_space_handle_t ioh; - bus_space_tag_t iot; - intrmask_t intr_mask; - int i; - - ioh = sc->sc_nand_ioh; - iot = sc->sc_sx.sc_iot; - - intr_mask = splbio(); - - /* Issue the command to read the spare area */ - bus_space_write_1(iot, ioh, NANDFC_NFCMD, NAND_CMD_READ2); - - /* Set the address */ - bus_space_write_1(iot, ioh, NANDFC_NFADDR, 0x00); - bus_space_write_1(iot, ioh, NANDFC_NFADDR, page & 0xff); - bus_space_write_1(iot, ioh, NANDFC_NFADDR, (page >> 8) & 0xff); - - /* Check if a 4th address cycle is required */ - /* TODO: Fix the if statement */ - //if (sc->device_type >= 64) { - /* Output the 4th address cycle */ - // bus_space_write_1(iot, ioh, NANDFC_NFADDR, (page >> 16) & 0xff); - //} - - /* The maximum time (tR) for data transfer from the cell to the register is 12 microseconds */ - DELAY(12); - - /* Enter a loop to read the bytes from the spare area */ - for (i = 0; i < sc->spare_size; i++) { - /* Read the next byte */ - p_buf[i] = bus_space_read_1(iot, ioh, NANDFC_NFDATA); - } - - splx(intr_mask); - - return (0); -} -#endif - DRIVER_MODULE(nand, s3c2410, nand_s3c2410_driver, nand_devclass, 0, 0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200801040843.m048hHTJ056148>