[PATCH v3 2/3] net: ftmac100: simplify priv->iobase casting

Sergei Antonov saproj at gmail.com
Fri Feb 3 20:09:03 CET 2023


Replace 'phys_addr_t iobase' with 'struct ftmac100 *ftmac100' in
struct ftmac100_data. It allows to remove casting in a number of places.

Since priv->iobase is phys_addr_t, use phys_to_virt() to make
a pointer from it.

Signed-off-by: Sergei Antonov <saproj at gmail.com>
---

v2 -> v3:
Fix the following warning by using phys_to_virt() to get a pointer from phys_addr_t.
(ae350_rv32) drivers/net/ftmac100.c:317:26: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
(ae350_rv32)   317 |         priv->ftmac100 = (struct ftmac100 *)pdata->iobase;

v1 -> v2:
no change

 drivers/net/ftmac100.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ftmac100.c b/drivers/net/ftmac100.c
index 7c89d7f67b8d..e7b9d88ea9cd 100644
--- a/drivers/net/ftmac100.c
+++ b/drivers/net/ftmac100.c
@@ -28,7 +28,7 @@ struct ftmac100_data {
 	struct ftmac100_rxdes rxdes[PKTBUFSRX];
 	int rx_index;
 	const char *name;
-	phys_addr_t iobase;
+	struct ftmac100 *ftmac100;
 };
 
 /*
@@ -36,7 +36,7 @@ struct ftmac100_data {
  */
 static void ftmac100_reset(struct ftmac100_data *priv)
 {
-	struct ftmac100 *ftmac100 = (struct ftmac100 *)(uintptr_t)priv->iobase;
+	struct ftmac100 *ftmac100 = priv->ftmac100;
 
 	debug ("%s()\n", __func__);
 
@@ -57,7 +57,7 @@ static void ftmac100_reset(struct ftmac100_data *priv)
 static void ftmac100_set_mac(struct ftmac100_data *priv ,
 	const unsigned char *mac)
 {
-	struct ftmac100 *ftmac100 = (struct ftmac100 *)(uintptr_t)priv->iobase;
+	struct ftmac100 *ftmac100 = priv->ftmac100;
 	unsigned int maddr = mac[0] << 8 | mac[1];
 	unsigned int laddr = mac[2] << 24 | mac[3] << 16 | mac[4] << 8 | mac[5];
 
@@ -72,7 +72,7 @@ static void ftmac100_set_mac(struct ftmac100_data *priv ,
  */
 static void _ftmac100_halt(struct ftmac100_data *priv)
 {
-	struct ftmac100 *ftmac100 = (struct ftmac100 *)(uintptr_t)priv->iobase;
+	struct ftmac100 *ftmac100 = priv->ftmac100;
 	debug ("%s()\n", __func__);
 	writel (0, &ftmac100->maccr);
 }
@@ -82,7 +82,7 @@ static void _ftmac100_halt(struct ftmac100_data *priv)
  */
 static int _ftmac100_init(struct ftmac100_data *priv, unsigned char enetaddr[6])
 {
-	struct ftmac100 *ftmac100 = (struct ftmac100 *)(uintptr_t)priv->iobase;
+	struct ftmac100 *ftmac100 = priv->ftmac100;
 	struct ftmac100_txdes *txdes = priv->txdes;
 	struct ftmac100_rxdes *rxdes = priv->rxdes;
 	unsigned int maccr;
@@ -187,7 +187,7 @@ static int __ftmac100_recv(struct ftmac100_data *priv)
  */
 static int _ftmac100_send(struct ftmac100_data *priv, void *packet, int length)
 {
-	struct ftmac100 *ftmac100 = (struct ftmac100 *)(uintptr_t)priv->iobase;
+	struct ftmac100 *ftmac100 = priv->ftmac100;
 	struct ftmac100_txdes *curr_des = priv->txdes;
 	ulong start;
 
@@ -314,7 +314,7 @@ static int ftmac100_of_to_plat(struct udevice *dev)
 	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *mac;
 	pdata->iobase = dev_read_addr(dev);
-	priv->iobase = pdata->iobase;
+	priv->ftmac100 = phys_to_virt(pdata->iobase);
 	mac = dtbmacaddr(0);
 	if (mac)
 		memcpy(pdata->enetaddr , mac , 6);
-- 
2.34.1



More information about the U-Boot mailing list