* [PATCH 1/3] mtd: brcmnand: refactor bcm63138 SoC layering
@ 2015-05-21 0:05 Brian Norris
2015-05-21 0:05 ` [PATCH 2/3] mtd: brcmnand: refactor iProc " Brian Norris
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Brian Norris @ 2015-05-21 0:05 UTC (permalink / raw)
To: Brian Norris
Cc: Scott Branden, Ray Jui, Rafał Miłecki,
bcm-kernel-feedback-list, Hauke Mehrtens, linux-mtd
Removes an unnecessary allocation and saves a little bit of pointer
chasing.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
---
drivers/mtd/nand/brcmnand/bcm63138_nand.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/drivers/mtd/nand/brcmnand/bcm63138_nand.c b/drivers/mtd/nand/brcmnand/bcm63138_nand.c
index 3f4c44c24e14..59444b3a697d 100644
--- a/drivers/mtd/nand/brcmnand/bcm63138_nand.c
+++ b/drivers/mtd/nand/brcmnand/bcm63138_nand.c
@@ -22,7 +22,8 @@
#include "brcmnand.h"
-struct bcm63138_nand_soc_priv {
+struct bcm63138_nand_soc {
+ struct brcmnand_soc soc;
void __iomem *base;
};
@@ -35,7 +36,8 @@ enum {
static bool bcm63138_nand_intc_ack(struct brcmnand_soc *soc)
{
- struct bcm63138_nand_soc_priv *priv = soc->priv;
+ struct bcm63138_nand_soc *priv =
+ container_of(soc, struct bcm63138_nand_soc, soc);
void __iomem *mmio = priv->base + BCM63138_NAND_INT_STATUS;
u32 val = brcmnand_readl(mmio);
@@ -49,7 +51,8 @@ static bool bcm63138_nand_intc_ack(struct brcmnand_soc *soc)
static void bcm63138_nand_intc_set(struct brcmnand_soc *soc, bool en)
{
- struct bcm63138_nand_soc_priv *priv = soc->priv;
+ struct bcm63138_nand_soc *priv =
+ container_of(soc, struct bcm63138_nand_soc, soc);
void __iomem *mmio = priv->base + BCM63138_NAND_INT_EN;
u32 val = brcmnand_readl(mmio);
@@ -64,25 +67,20 @@ static void bcm63138_nand_intc_set(struct brcmnand_soc *soc, bool en)
static int bcm63138_nand_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
- struct bcm63138_nand_soc_priv *priv;
+ struct bcm63138_nand_soc *priv;
struct brcmnand_soc *soc;
struct resource *res;
- soc = devm_kzalloc(dev, sizeof(*soc), GFP_KERNEL);
- if (!soc)
- return -ENOMEM;
-
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
if (!priv)
return -ENOMEM;
+ soc = &priv->soc;
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand-int-base");
priv->base = devm_ioremap_resource(dev, res);
if (IS_ERR(priv->base))
return PTR_ERR(priv->base);
- soc->pdev = pdev;
- soc->priv = priv;
soc->ctlrdy_ack = bcm63138_nand_intc_ack;
soc->ctlrdy_set_enabled = bcm63138_nand_intc_set;
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 2/3] mtd: brcmnand: refactor iProc SoC layering
2015-05-21 0:05 [PATCH 1/3] mtd: brcmnand: refactor bcm63138 SoC layering Brian Norris
@ 2015-05-21 0:05 ` Brian Norris
2015-05-21 0:05 ` [PATCH 3/3] mtd: brcmnand: remove unnecessary fields from brcmnand_soc Brian Norris
2015-09-30 20:08 ` [PATCH 1/3] mtd: brcmnand: refactor bcm63138 SoC layering Brian Norris
2 siblings, 0 replies; 4+ messages in thread
From: Brian Norris @ 2015-05-21 0:05 UTC (permalink / raw)
To: Brian Norris
Cc: Scott Branden, Ray Jui, Rafał Miłecki,
bcm-kernel-feedback-list, Hauke Mehrtens, linux-mtd
Removes an unnecessary allocation and saves a little bit of pointer
chasing.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
---
drivers/mtd/nand/brcmnand/iproc_nand.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/mtd/nand/brcmnand/iproc_nand.c b/drivers/mtd/nand/brcmnand/iproc_nand.c
index 683495c74620..585596c549b2 100644
--- a/drivers/mtd/nand/brcmnand/iproc_nand.c
+++ b/drivers/mtd/nand/brcmnand/iproc_nand.c
@@ -22,7 +22,9 @@
#include "brcmnand.h"
-struct iproc_nand_soc_priv {
+struct iproc_nand_soc {
+ struct brcmnand_soc soc;
+
void __iomem *idm_base;
void __iomem *ext_base;
spinlock_t idm_lock;
@@ -37,7 +39,8 @@ struct iproc_nand_soc_priv {
static bool iproc_nand_intc_ack(struct brcmnand_soc *soc)
{
- struct iproc_nand_soc_priv *priv = soc->priv;
+ struct iproc_nand_soc *priv =
+ container_of(soc, struct iproc_nand_soc, soc);
void __iomem *mmio = priv->ext_base + IPROC_NAND_CTLR_READY_OFFSET;
u32 val = brcmnand_readl(mmio);
@@ -51,7 +54,8 @@ static bool iproc_nand_intc_ack(struct brcmnand_soc *soc)
static void iproc_nand_intc_set(struct brcmnand_soc *soc, bool en)
{
- struct iproc_nand_soc_priv *priv = soc->priv;
+ struct iproc_nand_soc *priv =
+ container_of(soc, struct iproc_nand_soc, soc);
void __iomem *mmio = priv->idm_base + IPROC_NAND_IO_CTRL_OFFSET;
u32 val;
unsigned long flags;
@@ -72,7 +76,8 @@ static void iproc_nand_intc_set(struct brcmnand_soc *soc, bool en)
static void iproc_nand_apb_access(struct brcmnand_soc *soc, bool prepare)
{
- struct iproc_nand_soc_priv *priv = soc->priv;
+ struct iproc_nand_soc *priv =
+ container_of(soc, struct iproc_nand_soc, soc);
void __iomem *mmio = priv->idm_base + IPROC_NAND_IO_CTRL_OFFSET;
u32 val;
unsigned long flags;
@@ -94,17 +99,14 @@ static void iproc_nand_apb_access(struct brcmnand_soc *soc, bool prepare)
static int iproc_nand_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
- struct iproc_nand_soc_priv *priv;
+ struct iproc_nand_soc *priv;
struct brcmnand_soc *soc;
struct resource *res;
- soc = devm_kzalloc(dev, sizeof(*soc), GFP_KERNEL);
- if (!soc)
- return -ENOMEM;
-
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
if (!priv)
return -ENOMEM;
+ soc = &priv->soc;
spin_lock_init(&priv->idm_lock);
@@ -118,8 +120,6 @@ static int iproc_nand_probe(struct platform_device *pdev)
if (IS_ERR(priv->ext_base))
return PTR_ERR(priv->ext_base);
- soc->pdev = pdev;
- soc->priv = priv;
soc->ctlrdy_ack = iproc_nand_intc_ack;
soc->ctlrdy_set_enabled = iproc_nand_intc_set;
soc->prepare_data_bus = iproc_nand_apb_access;
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 3/3] mtd: brcmnand: remove unnecessary fields from brcmnand_soc
2015-05-21 0:05 [PATCH 1/3] mtd: brcmnand: refactor bcm63138 SoC layering Brian Norris
2015-05-21 0:05 ` [PATCH 2/3] mtd: brcmnand: refactor iProc " Brian Norris
@ 2015-05-21 0:05 ` Brian Norris
2015-09-30 20:08 ` [PATCH 1/3] mtd: brcmnand: refactor bcm63138 SoC layering Brian Norris
2 siblings, 0 replies; 4+ messages in thread
From: Brian Norris @ 2015-05-21 0:05 UTC (permalink / raw)
To: Brian Norris
Cc: Scott Branden, Ray Jui, Rafał Miłecki,
bcm-kernel-feedback-list, Hauke Mehrtens, linux-mtd
These really aren't needed, especially now that we embed the soc struct
in our private struct, so we can stash things there if needed.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
---
drivers/mtd/nand/brcmnand/brcmnand.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/mtd/nand/brcmnand/brcmnand.h b/drivers/mtd/nand/brcmnand/brcmnand.h
index a20c73630b7b..09a9043637b5 100644
--- a/drivers/mtd/nand/brcmnand/brcmnand.h
+++ b/drivers/mtd/nand/brcmnand/brcmnand.h
@@ -21,8 +21,6 @@ struct platform_device;
struct dev_pm_ops;
struct brcmnand_soc {
- struct platform_device *pdev;
- void *priv;
bool (*ctlrdy_ack)(struct brcmnand_soc *soc);
void (*ctlrdy_set_enabled)(struct brcmnand_soc *soc, bool en);
void (*prepare_data_bus)(struct brcmnand_soc *soc, bool prepare);
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH 1/3] mtd: brcmnand: refactor bcm63138 SoC layering
2015-05-21 0:05 [PATCH 1/3] mtd: brcmnand: refactor bcm63138 SoC layering Brian Norris
2015-05-21 0:05 ` [PATCH 2/3] mtd: brcmnand: refactor iProc " Brian Norris
2015-05-21 0:05 ` [PATCH 3/3] mtd: brcmnand: remove unnecessary fields from brcmnand_soc Brian Norris
@ 2015-09-30 20:08 ` Brian Norris
2 siblings, 0 replies; 4+ messages in thread
From: Brian Norris @ 2015-09-30 20:08 UTC (permalink / raw)
To: linux-mtd, bcm-kernel-feedback-list, Hauke Mehrtens,
Rafał Miłecki, Ray Jui, Scott Branden
On Wed, May 20, 2015 at 05:05:04PM -0700, Brian Norris wrote:
> Removes an unnecessary allocation and saves a little bit of pointer
> chasing.
>
> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Pushed these 3 to l2-mtd.git
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-09-30 20:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-21 0:05 [PATCH 1/3] mtd: brcmnand: refactor bcm63138 SoC layering Brian Norris
2015-05-21 0:05 ` [PATCH 2/3] mtd: brcmnand: refactor iProc " Brian Norris
2015-05-21 0:05 ` [PATCH 3/3] mtd: brcmnand: remove unnecessary fields from brcmnand_soc Brian Norris
2015-09-30 20:08 ` [PATCH 1/3] mtd: brcmnand: refactor bcm63138 SoC layering Brian Norris
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.