Message ID | 20170425012116.GB120971@google.com |
---|---|
State | Not Applicable |
Headers | show |
On Mon, 24 Apr 2017 18:21:16 -0700 Brian Norris <computersforpeace@gmail.com> wrote: > On Sat, Apr 15, 2017 at 09:20:58AM +0200, Boris Brezillon wrote: > > Hi Brian, > > > > No changes from my v1 except the fix in the new Atmel NAND controller > > driver (bug reported by Alexandre). > > > > As you can see, the PR is pretty big compared to 4.11, and it's mainly > > due to the Denali driver rework/cleanup (which I'd like to thank > > Masahiro for), the addition of the per-vendor initialization > > infrastructure and the complete rewrite of the Atmel driver. > > > > The rest of the commits are just simple fixes/improvements to existing > > drivers or to the core. > > > > Let me know if you see any problem. > > I've gotten partway through your PR, and fortunately Linus blessed me > with another week too :) > > Can you run some of your new stuff through sparse, and maybe coccinelle > (I think 'make coccicheck' would suffice). When I run make coccicheck MODE=patch M=drivers/mtd/nand/ V=1 it fails. I'm using spatch 1.0.4 (the one packaged by debian/ubuntu). > I see a lot of complaints, > some just from migrated/refactored code, but some new. Feel free to fix > any of these on top, of course. I'll continue to review the current PR. > > A starter diff is appended, though it has been only compile tested. Looks good to me. Thanks for the fixes, I'll squash the changes in the initial commit. I'll wait a bit before sending a new PR so that you can finish your review. Regards, Boris > > Signed-off-by: Brian Norris <computersforpeace@gmail.com> > --- > drivers/mtd/nand/atmel/nand-controller.c | 5 ++--- > drivers/mtd/nand/atmel/pmecc.c | 8 ++++---- > 2 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/mtd/nand/atmel/nand-controller.c b/drivers/mtd/nand/atmel/nand-controller.c > index d5be88f258fc..3b2446896147 100644 > --- a/drivers/mtd/nand/atmel/nand-controller.c > +++ b/drivers/mtd/nand/atmel/nand-controller.c > @@ -1744,7 +1744,6 @@ atmel_hsmc_nand_controller_legacy_init(struct atmel_hsmc_nand_controller *nc) > .reg_bits = 32, > .val_bits = 32, > .reg_stride = 4, > - .val_bits = 32, > }; > > struct device *dev = nc->base.dev; > @@ -1979,7 +1978,7 @@ static int atmel_hsmc_nand_controller_probe(struct platform_device *pdev, > return ret; > } > > -const struct atmel_nand_controller_ops atmel_hsmc_nc_ops = { > +static const struct atmel_nand_controller_ops atmel_hsmc_nc_ops = { > .probe = atmel_hsmc_nand_controller_probe, > .remove = atmel_hsmc_nand_controller_remove, > .ecc_init = atmel_hsmc_nand_ecc_init, > @@ -2038,7 +2037,7 @@ atmel_smc_nand_controller_remove(struct atmel_nand_controller *nc) > return 0; > } > > -const struct atmel_nand_controller_ops atmel_smc_nc_ops = { > +static const struct atmel_nand_controller_ops atmel_smc_nc_ops = { > .probe = atmel_smc_nand_controller_probe, > .remove = atmel_smc_nand_controller_remove, > .ecc_init = atmel_nand_ecc_init, > diff --git a/drivers/mtd/nand/atmel/pmecc.c b/drivers/mtd/nand/atmel/pmecc.c > index 1528aa4713a3..55a8ee5306ea 100644 > --- a/drivers/mtd/nand/atmel/pmecc.c > +++ b/drivers/mtd/nand/atmel/pmecc.c > @@ -371,7 +371,7 @@ atmel_pmecc_create_user(struct atmel_pmecc *pmecc, > > user->pmecc = pmecc; > > - user->partial_syn = (u16 *)PTR_ALIGN(user + 1, sizeof(u16)); > + user->partial_syn = (s16 *)PTR_ALIGN(user + 1, sizeof(u16)); > user->si = user->partial_syn + ((2 * req->ecc.strength) + 1); > user->lmu = user->si + ((2 * req->ecc.strength) + 1); > user->smu = user->lmu + (req->ecc.strength + 1); > @@ -896,20 +896,20 @@ static struct atmel_pmecc *atmel_pmecc_get_by_node(struct device *userdev, > > static const int atmel_pmecc_strengths[] = { 2, 4, 8, 12, 24, 32 }; > > -struct atmel_pmecc_caps at91sam9g45_caps = { > +static struct atmel_pmecc_caps at91sam9g45_caps = { > .strengths = atmel_pmecc_strengths, > .nstrengths = 5, > .el_offset = 0x8c, > }; > > -struct atmel_pmecc_caps sama5d4_caps = { > +static struct atmel_pmecc_caps sama5d4_caps = { > .strengths = atmel_pmecc_strengths, > .nstrengths = 5, > .el_offset = 0x8c, > .correct_erased_chunks = true, > }; > > -struct atmel_pmecc_caps sama5d2_caps = { > +static struct atmel_pmecc_caps sama5d2_caps = { > .strengths = atmel_pmecc_strengths, > .nstrengths = 6, > .el_offset = 0xac,
diff --git a/drivers/mtd/nand/atmel/nand-controller.c b/drivers/mtd/nand/atmel/nand-controller.c index d5be88f258fc..3b2446896147 100644 --- a/drivers/mtd/nand/atmel/nand-controller.c +++ b/drivers/mtd/nand/atmel/nand-controller.c @@ -1744,7 +1744,6 @@ atmel_hsmc_nand_controller_legacy_init(struct atmel_hsmc_nand_controller *nc) .reg_bits = 32, .val_bits = 32, .reg_stride = 4, - .val_bits = 32, }; struct device *dev = nc->base.dev; @@ -1979,7 +1978,7 @@ static int atmel_hsmc_nand_controller_probe(struct platform_device *pdev, return ret; } -const struct atmel_nand_controller_ops atmel_hsmc_nc_ops = { +static const struct atmel_nand_controller_ops atmel_hsmc_nc_ops = { .probe = atmel_hsmc_nand_controller_probe, .remove = atmel_hsmc_nand_controller_remove, .ecc_init = atmel_hsmc_nand_ecc_init, @@ -2038,7 +2037,7 @@ atmel_smc_nand_controller_remove(struct atmel_nand_controller *nc) return 0; } -const struct atmel_nand_controller_ops atmel_smc_nc_ops = { +static const struct atmel_nand_controller_ops atmel_smc_nc_ops = { .probe = atmel_smc_nand_controller_probe, .remove = atmel_smc_nand_controller_remove, .ecc_init = atmel_nand_ecc_init, diff --git a/drivers/mtd/nand/atmel/pmecc.c b/drivers/mtd/nand/atmel/pmecc.c index 1528aa4713a3..55a8ee5306ea 100644 --- a/drivers/mtd/nand/atmel/pmecc.c +++ b/drivers/mtd/nand/atmel/pmecc.c @@ -371,7 +371,7 @@ atmel_pmecc_create_user(struct atmel_pmecc *pmecc, user->pmecc = pmecc; - user->partial_syn = (u16 *)PTR_ALIGN(user + 1, sizeof(u16)); + user->partial_syn = (s16 *)PTR_ALIGN(user + 1, sizeof(u16)); user->si = user->partial_syn + ((2 * req->ecc.strength) + 1); user->lmu = user->si + ((2 * req->ecc.strength) + 1); user->smu = user->lmu + (req->ecc.strength + 1); @@ -896,20 +896,20 @@ static struct atmel_pmecc *atmel_pmecc_get_by_node(struct device *userdev, static const int atmel_pmecc_strengths[] = { 2, 4, 8, 12, 24, 32 }; -struct atmel_pmecc_caps at91sam9g45_caps = { +static struct atmel_pmecc_caps at91sam9g45_caps = { .strengths = atmel_pmecc_strengths, .nstrengths = 5, .el_offset = 0x8c, }; -struct atmel_pmecc_caps sama5d4_caps = { +static struct atmel_pmecc_caps sama5d4_caps = { .strengths = atmel_pmecc_strengths, .nstrengths = 5, .el_offset = 0x8c, .correct_erased_chunks = true, }; -struct atmel_pmecc_caps sama5d2_caps = { +static struct atmel_pmecc_caps sama5d2_caps = { .strengths = atmel_pmecc_strengths, .nstrengths = 6, .el_offset = 0xac,