2021-01-29 18:30:40

by Richard Neumann

[permalink] [raw]
Subject: [PATCH v1 0/2] Cleanup i2c-amd-mp2 driver

From: Richard Neumann <[email protected]>

Cleaned up the i2c-amd-mp2-{pci,plat} drivers:
* Migrated kernel logging to pci_* log macros where applicable.
* Removed unused macros.

Richard Neumann (2):
Removed NIH log functions
Removed unused work_amd_i2c_common macro

drivers/i2c/busses/i2c-amd-mp2-pci.c | 37 ++++++++++++++-------------
drivers/i2c/busses/i2c-amd-mp2-plat.c | 5 ++--
drivers/i2c/busses/i2c-amd-mp2.h | 6 -----
3 files changed, 21 insertions(+), 27 deletions(-)

--
2.30.0


2021-01-29 18:30:57

by Richard Neumann

[permalink] [raw]
Subject: [PATCH v1 2/2] Removed unused work_amd_i2c_common macro

From: Richard Neumann <[email protected]>

The macro work_amd_i2c_common is not used anywhere in the driver.
Removed it.

Signed-off-by: Richard Neumann <[email protected]>
---
drivers/i2c/busses/i2c-amd-mp2.h | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/i2c/busses/i2c-amd-mp2.h b/drivers/i2c/busses/i2c-amd-mp2.h
index 6b91e285745d..ddecd0c88656 100644
--- a/drivers/i2c/busses/i2c-amd-mp2.h
+++ b/drivers/i2c/busses/i2c-amd-mp2.h
@@ -185,9 +185,6 @@ struct amd_mp2_dev {
unsigned int probed;
};

-#define work_amd_i2c_common(__work) \
- container_of(__work, struct amd_i2c_common, work.work)
-
/* PCIe communication driver */

int amd_mp2_rw(struct amd_i2c_common *i2c_common, enum i2c_cmd reqcmd);
--
2.30.0

2021-01-29 18:33:21

by Richard Neumann

[permalink] [raw]
Subject: [PATCH v1 1/2] Removed NIH log functions

From: Richard Neumann <[email protected]>

Removed unnecessary ndev_pdev, ndev_name and ndev_dev macros.
Using pci_{info,warn,err,dbg} functions of the kernel's PCI API.

Signed-off-by: Richard Neumann <[email protected]>
---
drivers/i2c/busses/i2c-amd-mp2-pci.c | 37 ++++++++++++++-------------
drivers/i2c/busses/i2c-amd-mp2-plat.c | 5 ++--
drivers/i2c/busses/i2c-amd-mp2.h | 3 ---
3 files changed, 21 insertions(+), 24 deletions(-)

diff --git a/drivers/i2c/busses/i2c-amd-mp2-pci.c b/drivers/i2c/busses/i2c-amd-mp2-pci.c
index cd3fd5ee5f65..6a864c481b87 100644
--- a/drivers/i2c/busses/i2c-amd-mp2-pci.c
+++ b/drivers/i2c/busses/i2c-amd-mp2-pci.c
@@ -30,7 +30,7 @@ static void amd_mp2_c2p_mutex_unlock(struct amd_i2c_common *i2c_common)
struct amd_mp2_dev *privdata = i2c_common->mp2_dev;

if (unlikely(privdata->c2p_lock_busid != i2c_common->bus_id)) {
- dev_warn(ndev_dev(privdata),
+ pci_warn(privdata->pci_dev,
"bus %d attempting to unlock C2P locked by bus %d\n",
i2c_common->bus_id, privdata->c2p_lock_busid);
return;
@@ -59,7 +59,7 @@ int amd_mp2_bus_enable_set(struct amd_i2c_common *i2c_common, bool enable)
struct amd_mp2_dev *privdata = i2c_common->mp2_dev;
union i2c_cmd_base i2c_cmd_base;

- dev_dbg(ndev_dev(privdata), "%s id: %d\n", __func__,
+ pci_dbg(privdata->pci_dev, "%s id: %d\n", __func__,
i2c_common->bus_id);

i2c_cmd_base.ul = 0;
@@ -116,14 +116,14 @@ static void amd_mp2_pci_check_rw_event(struct amd_i2c_common *i2c_common)
bool err = false;

if (unlikely(len != i2c_common->msg->len)) {
- dev_err(ndev_dev(privdata),
+ pci_err(privdata->pci_dev,
"length %d in event doesn't match buffer length %d!\n",
len, i2c_common->msg->len);
err = true;
}

if (unlikely(slave_addr != i2c_common->msg->addr)) {
- dev_err(ndev_dev(privdata),
+ pci_err(privdata->pci_dev,
"unexpected slave address %x (expected: %x)!\n",
slave_addr, i2c_common->msg->addr);
err = true;
@@ -142,7 +142,8 @@ static void __amd_mp2_process_event(struct amd_i2c_common *i2c_common)

if (res != command_success) {
if (res != command_failed)
- dev_err(ndev_dev(privdata), "invalid response to i2c command!\n");
+ pci_err(privdata->pci_dev,
+ "invalid response to i2c command!\n");
return;
}

@@ -155,7 +156,7 @@ static void __amd_mp2_process_event(struct amd_i2c_common *i2c_common)
privdata->mmio + AMD_C2P_MSG2,
len);
} else if (sts != i2c_readfail_event) {
- dev_err(ndev_dev(privdata),
+ pci_err(privdata->pci_dev,
"invalid i2c status after read (%d)!\n", sts);
}
break;
@@ -163,14 +164,14 @@ static void __amd_mp2_process_event(struct amd_i2c_common *i2c_common)
if (sts == i2c_writecomplete_event)
amd_mp2_pci_check_rw_event(i2c_common);
else if (sts != i2c_writefail_event)
- dev_err(ndev_dev(privdata),
+ pci_err(privdata->pci_dev,
"invalid i2c status after write (%d)!\n", sts);
break;
case i2c_enable:
if (sts == i2c_busenable_complete)
i2c_common->cmd_success = true;
else if (sts != i2c_busenable_failed)
- dev_err(ndev_dev(privdata),
+ pci_err(privdata->pci_dev,
"invalid i2c status after bus enable (%d)!\n",
sts);
break;
@@ -178,7 +179,7 @@ static void __amd_mp2_process_event(struct amd_i2c_common *i2c_common)
if (sts == i2c_busdisable_complete)
i2c_common->cmd_success = true;
else if (sts != i2c_busdisable_failed)
- dev_err(ndev_dev(privdata),
+ pci_err(privdata->pci_dev,
"invalid i2c status after bus disable (%d)!\n",
sts);
break;
@@ -192,7 +193,7 @@ void amd_mp2_process_event(struct amd_i2c_common *i2c_common)
struct amd_mp2_dev *privdata = i2c_common->mp2_dev;

if (unlikely(i2c_common->reqcmd == i2c_none)) {
- dev_warn(ndev_dev(privdata),
+ pci_warn(privdata->pci_dev,
"received msg but no cmd was sent (bus = %d)!\n",
i2c_common->bus_id);
return;
@@ -236,7 +237,7 @@ static irqreturn_t amd_mp2_irq_isr(int irq, void *dev)
val = readl(privdata->mmio + AMD_P2C_MSG_INTEN);
if (val != 0) {
writel(0, privdata->mmio + AMD_P2C_MSG_INTEN);
- dev_warn(ndev_dev(privdata),
+ pci_warn(privdata->pci_dev,
"received irq without message\n");
ret = IRQ_HANDLED;
}
@@ -260,7 +261,7 @@ int amd_mp2_register_cb(struct amd_i2c_common *i2c_common)
return -EINVAL;

if (privdata->busses[i2c_common->bus_id]) {
- dev_err(ndev_dev(privdata),
+ pci_err(privdata->pci_dev,
"Bus %d already taken!\n", i2c_common->bus_id);
return -EINVAL;
}
@@ -301,13 +302,13 @@ static int amd_mp2_pci_init(struct amd_mp2_dev *privdata,

rc = pcim_enable_device(pci_dev);
if (rc) {
- dev_err(ndev_dev(privdata), "Failed to enable MP2 PCI device\n");
+ pci_err(privdata->pci_dev, "Failed to enable MP2 PCI device\n");
goto err_pci_enable;
}

rc = pcim_iomap_regions(pci_dev, 1 << 2, pci_name(pci_dev));
if (rc) {
- dev_err(ndev_dev(privdata), "I/O memory remapping failed\n");
+ pci_err(privdata->pci_dev, "I/O memory remapping failed\n");
goto err_pci_enable;
}
privdata->mmio = pcim_iomap_table(pci_dev)[2];
@@ -327,7 +328,7 @@ static int amd_mp2_pci_init(struct amd_mp2_dev *privdata,
rc = devm_request_irq(&pci_dev->dev, pci_dev->irq, amd_mp2_irq_isr,
IRQF_SHARED, dev_name(&pci_dev->dev), privdata);
if (rc)
- dev_err(&pci_dev->dev, "Failure requesting irq %i: %d\n",
+ pci_err(pci_dev, "Failure requesting irq %i: %d\n",
pci_dev->irq, rc);

return rc;
@@ -363,7 +364,7 @@ static int amd_mp2_pci_probe(struct pci_dev *pci_dev,

privdata->probed = true;

- dev_info(&pci_dev->dev, "MP2 device registered.\n");
+ pci_info(pci_dev, "MP2 device registered.\n");
return 0;
}

@@ -397,7 +398,7 @@ static int amd_mp2_pci_suspend(struct device *dev)

ret = pci_save_state(pci_dev);
if (ret) {
- dev_err(ndev_dev(privdata),
+ pci_err(privdata->pci_dev,
"pci_save_state failed = %d\n", ret);
return ret;
}
@@ -417,7 +418,7 @@ static int amd_mp2_pci_resume(struct device *dev)
pci_restore_state(pci_dev);
ret = pci_enable_device(pci_dev);
if (ret < 0) {
- dev_err(ndev_dev(privdata),
+ pci_err(privdata->pci_dev,
"pci_enable_device failed = %d\n", ret);
return ret;
}
diff --git a/drivers/i2c/busses/i2c-amd-mp2-plat.c b/drivers/i2c/busses/i2c-amd-mp2-plat.c
index 506433bc0ff2..d02ca7ab9a3b 100644
--- a/drivers/i2c/busses/i2c-amd-mp2-plat.c
+++ b/drivers/i2c/busses/i2c-amd-mp2-plat.c
@@ -88,9 +88,8 @@ static void i2c_amd_cmd_completion(struct amd_i2c_common *i2c_common)
union i2c_event *event = &i2c_common->eventval;

if (event->r.status == i2c_readcomplete_event)
- dev_dbg(&i2c_dev->pdev->dev, "%s readdata:%*ph\n",
- __func__, event->r.length,
- i2c_common->msg->buf);
+ dev_dbg(&i2c_dev->pdev->dev, "%s readdata:%*ph\n", __func__,
+ event->r.length, i2c_common->msg->buf);

complete(&i2c_dev->cmd_complete);
}
diff --git a/drivers/i2c/busses/i2c-amd-mp2.h b/drivers/i2c/busses/i2c-amd-mp2.h
index 058362edebaa..6b91e285745d 100644
--- a/drivers/i2c/busses/i2c-amd-mp2.h
+++ b/drivers/i2c/busses/i2c-amd-mp2.h
@@ -185,9 +185,6 @@ struct amd_mp2_dev {
unsigned int probed;
};

-#define ndev_pdev(ndev) ((ndev)->pci_dev)
-#define ndev_name(ndev) pci_name(ndev_pdev(ndev))
-#define ndev_dev(ndev) (&ndev_pdev(ndev)->dev)
#define work_amd_i2c_common(__work) \
container_of(__work, struct amd_i2c_common, work.work)

--
2.30.0

2021-01-29 18:55:06

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v1 2/2] Removed unused work_amd_i2c_common macro

On Fri, Jan 29, 2021 at 07:26:06PM +0100, [email protected] wrote:
> From: Richard Neumann <[email protected]>
>
> The macro work_amd_i2c_common is not used anywhere in the driver.
> Removed it.

After addressing Subject as per comment against the previous patch, feel free
to add

Reviewed-by: Andy Shevchenko <[email protected]>

> Signed-off-by: Richard Neumann <[email protected]>
> ---
> drivers/i2c/busses/i2c-amd-mp2.h | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-amd-mp2.h b/drivers/i2c/busses/i2c-amd-mp2.h
> index 6b91e285745d..ddecd0c88656 100644
> --- a/drivers/i2c/busses/i2c-amd-mp2.h
> +++ b/drivers/i2c/busses/i2c-amd-mp2.h
> @@ -185,9 +185,6 @@ struct amd_mp2_dev {
> unsigned int probed;
> };
>
> -#define work_amd_i2c_common(__work) \
> - container_of(__work, struct amd_i2c_common, work.work)
> -
> /* PCIe communication driver */
>
> int amd_mp2_rw(struct amd_i2c_common *i2c_common, enum i2c_cmd reqcmd);
> --
> 2.30.0
>

--
With Best Regards,
Andy Shevchenko


2021-01-29 18:55:53

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v1 1/2] Removed NIH log functions

On Fri, Jan 29, 2021 at 07:26:05PM +0100, [email protected] wrote:
> From: Richard Neumann <[email protected]>

Thanks for the patch, my comments below.

> Removed unnecessary ndev_pdev, ndev_name and ndev_dev macros.
> Using pci_{info,warn,err,dbg} functions of the kernel's PCI API.

First of all Subject should be in imperative mode with corresponding prefix,
something like: "i2c: amd-mp2: Remove NIH logging functions". Same to the rest
of the series.

While at it, drop useless __func__ parameters.

...

> - dev_dbg(ndev_dev(privdata), "%s id: %d\n", __func__,
> + pci_dbg(privdata->pci_dev, "%s id: %d\n", __func__,
> i2c_common->bus_id);

E.g. this will become one line after dropping __func__.

...

Also in some cases, like here, you may consider simple trick to reduce amount
of LOCs.

struct pci_dev *pdev = privdata->pci_dev;

> if (res != command_failed)
> - dev_err(ndev_dev(privdata), "invalid response to i2c command!\n");

> + pci_err(privdata->pci_dev,
> + "invalid response to i2c command!\n");

pci_err(pdev, "invalid response to i2c command!\n");

> return;

--
With Best Regards,
Andy Shevchenko