Skip to content

Commit fe932ef

Browse files
net: dsa: sja1105: replace sja1105_xfer_buf()
Use dedicated sja1105_read_buf() and sja1105_write_buf() where appropriate, and get rid of the bidirectional sja1105_xfer_buf(). Signed-off-by: Vladimir Oltean <[email protected]>
1 parent c43a786 commit fe932ef

File tree

8 files changed

+60
-58
lines changed

8 files changed

+60
-58
lines changed

drivers/net/dsa/sja1105/sja1105.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -324,9 +324,10 @@ int sja1105_devlink_info_get(struct dsa_switch *ds,
324324
struct netlink_ext_ack *extack);
325325

326326
/* From sja1105_spi.c */
327-
int sja1105_xfer_buf(const struct sja1105_private *priv,
328-
sja1105_spi_rw_mode_t rw, u64 reg_addr,
329-
u8 *buf, size_t len);
327+
int sja1105_read_buf(const struct sja1105_private *priv, u64 reg_addr, u8 *buf,
328+
size_t len);
329+
int sja1105_write_buf(const struct sja1105_private *priv, u64 reg_addr,
330+
const u8 *buf, size_t len);
330331
int sja1105_read_u64(const struct sja1105_private *priv, u64 reg_addr,
331332
u64 *value, struct ptp_system_timestamp *ptp_sts);
332333
int sja1105_write_u64(const struct sja1105_private *priv, u64 reg_addr,

drivers/net/dsa/sja1105/sja1105_clocking.c

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ static int sja1105_cgu_idiv_config(struct sja1105_private *priv, int port,
133133
idiv.pd = enabled ? 0 : 1; /* Power down? */
134134
sja1105_cgu_idiv_packing(packed_buf, &idiv, PACK);
135135

136-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->cgu_idiv[port],
137-
packed_buf, SJA1105_SIZE_CGU_CMD);
136+
return sja1105_write_buf(priv, regs->cgu_idiv[port], packed_buf,
137+
SJA1105_SIZE_CGU_CMD);
138138
}
139139

140140
static void
@@ -184,8 +184,8 @@ static int sja1105_cgu_mii_tx_clk_config(struct sja1105_private *priv,
184184
mii_tx_clk.pd = 0; /* Power Down off => enabled */
185185
sja1105_cgu_mii_control_packing(packed_buf, &mii_tx_clk, PACK);
186186

187-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->mii_tx_clk[port],
188-
packed_buf, SJA1105_SIZE_CGU_CMD);
187+
return sja1105_write_buf(priv, regs->mii_tx_clk[port], packed_buf,
188+
SJA1105_SIZE_CGU_CMD);
189189
}
190190

191191
static int
@@ -211,8 +211,8 @@ sja1105_cgu_mii_rx_clk_config(struct sja1105_private *priv, int port)
211211
mii_rx_clk.pd = 0; /* Power Down off => enabled */
212212
sja1105_cgu_mii_control_packing(packed_buf, &mii_rx_clk, PACK);
213213

214-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->mii_rx_clk[port],
215-
packed_buf, SJA1105_SIZE_CGU_CMD);
214+
return sja1105_write_buf(priv, regs->mii_rx_clk[port], packed_buf,
215+
SJA1105_SIZE_CGU_CMD);
216216
}
217217

218218
static int
@@ -238,8 +238,8 @@ sja1105_cgu_mii_ext_tx_clk_config(struct sja1105_private *priv, int port)
238238
mii_ext_tx_clk.pd = 0; /* Power Down off => enabled */
239239
sja1105_cgu_mii_control_packing(packed_buf, &mii_ext_tx_clk, PACK);
240240

241-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->mii_ext_tx_clk[port],
242-
packed_buf, SJA1105_SIZE_CGU_CMD);
241+
return sja1105_write_buf(priv, regs->mii_ext_tx_clk[port], packed_buf,
242+
SJA1105_SIZE_CGU_CMD);
243243
}
244244

245245
static int
@@ -265,8 +265,8 @@ sja1105_cgu_mii_ext_rx_clk_config(struct sja1105_private *priv, int port)
265265
mii_ext_rx_clk.pd = 0; /* Power Down off => enabled */
266266
sja1105_cgu_mii_control_packing(packed_buf, &mii_ext_rx_clk, PACK);
267267

268-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->mii_ext_rx_clk[port],
269-
packed_buf, SJA1105_SIZE_CGU_CMD);
268+
return sja1105_write_buf(priv, regs->mii_ext_rx_clk[port], packed_buf,
269+
SJA1105_SIZE_CGU_CMD);
270270
}
271271

272272
static int sja1105_mii_clocking_setup(struct sja1105_private *priv, int port,
@@ -367,8 +367,8 @@ static int sja1105_cgu_rgmii_tx_clk_config(struct sja1105_private *priv,
367367
txc.pd = 0;
368368
sja1105_cgu_mii_control_packing(packed_buf, &txc, PACK);
369369

370-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->rgmii_tx_clk[port],
371-
packed_buf, SJA1105_SIZE_CGU_CMD);
370+
return sja1105_write_buf(priv, regs->rgmii_tx_clk[port], packed_buf,
371+
SJA1105_SIZE_CGU_CMD);
372372
}
373373

374374
/* AGU */
@@ -418,8 +418,8 @@ static int sja1105_rgmii_cfg_pad_tx_config(struct sja1105_private *priv,
418418
pad_mii_tx.clk_ipud = 2; /* TX_CLK input stage (default) */
419419
sja1105_cfg_pad_mii_packing(packed_buf, &pad_mii_tx, PACK);
420420

421-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->pad_mii_tx[port],
422-
packed_buf, SJA1105_SIZE_CGU_CMD);
421+
return sja1105_write_buf(priv, regs->pad_mii_tx[port], packed_buf,
422+
SJA1105_SIZE_CGU_CMD);
423423
}
424424

425425
static int sja1105_cfg_pad_rx_config(struct sja1105_private *priv, int port)
@@ -454,8 +454,8 @@ static int sja1105_cfg_pad_rx_config(struct sja1105_private *priv, int port)
454454
/* plain input (default) */
455455
sja1105_cfg_pad_mii_packing(packed_buf, &pad_mii_rx, PACK);
456456

457-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->pad_mii_rx[port],
458-
packed_buf, SJA1105_SIZE_CGU_CMD);
457+
return sja1105_write_buf(priv, regs->pad_mii_rx[port], packed_buf,
458+
SJA1105_SIZE_CGU_CMD);
459459
}
460460

461461
static void
@@ -532,8 +532,8 @@ int sja1105pqrs_setup_rgmii_delay(const void *ctx, int port)
532532
pad_mii_id.txc_pd = 1;
533533
sja1105_cfg_pad_mii_id_packing(packed_buf, &pad_mii_id, PACK);
534534

535-
rc = sja1105_xfer_buf(priv, SPI_WRITE, regs->pad_mii_id[port],
536-
packed_buf, SJA1105_SIZE_CGU_CMD);
535+
rc = sja1105_write_buf(priv, regs->pad_mii_id[port], packed_buf,
536+
SJA1105_SIZE_CGU_CMD);
537537
if (rc < 0)
538538
return rc;
539539

@@ -548,8 +548,8 @@ int sja1105pqrs_setup_rgmii_delay(const void *ctx, int port)
548548
}
549549
sja1105_cfg_pad_mii_id_packing(packed_buf, &pad_mii_id, PACK);
550550

551-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->pad_mii_id[port],
552-
packed_buf, SJA1105_SIZE_CGU_CMD);
551+
return sja1105_write_buf(priv, regs->pad_mii_id[port], packed_buf,
552+
SJA1105_SIZE_CGU_CMD);
553553
}
554554

555555
int sja1110_setup_rgmii_delay(const void *ctx, int port)
@@ -579,8 +579,8 @@ int sja1110_setup_rgmii_delay(const void *ctx, int port)
579579

580580
sja1110_cfg_pad_mii_id_packing(packed_buf, &pad_mii_id, PACK);
581581

582-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->pad_mii_id[port],
583-
packed_buf, SJA1105_SIZE_CGU_CMD);
582+
return sja1105_write_buf(priv, regs->pad_mii_id[port], packed_buf,
583+
SJA1105_SIZE_CGU_CMD);
584584
}
585585

586586
static int sja1105_rgmii_clocking_setup(struct sja1105_private *priv, int port,
@@ -660,8 +660,8 @@ static int sja1105_cgu_rmii_ref_clk_config(struct sja1105_private *priv,
660660
ref_clk.pd = 0; /* Power Down off => enabled */
661661
sja1105_cgu_mii_control_packing(packed_buf, &ref_clk, PACK);
662662

663-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->rmii_ref_clk[port],
664-
packed_buf, SJA1105_SIZE_CGU_CMD);
663+
return sja1105_write_buf(priv, regs->rmii_ref_clk[port], packed_buf,
664+
SJA1105_SIZE_CGU_CMD);
665665
}
666666

667667
static int
@@ -680,8 +680,8 @@ sja1105_cgu_rmii_ext_tx_clk_config(struct sja1105_private *priv, int port)
680680
ext_tx_clk.pd = 0; /* Power Down off => enabled */
681681
sja1105_cgu_mii_control_packing(packed_buf, &ext_tx_clk, PACK);
682682

683-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->rmii_ext_tx_clk[port],
684-
packed_buf, SJA1105_SIZE_CGU_CMD);
683+
return sja1105_write_buf(priv, regs->rmii_ext_tx_clk[port], packed_buf,
684+
SJA1105_SIZE_CGU_CMD);
685685
}
686686

687687
static int sja1105_cgu_rmii_pll_config(struct sja1105_private *priv)
@@ -712,8 +712,8 @@ static int sja1105_cgu_rmii_pll_config(struct sja1105_private *priv)
712712
pll.pd = 0x1;
713713

714714
sja1105_cgu_pll_control_packing(packed_buf, &pll, PACK);
715-
rc = sja1105_xfer_buf(priv, SPI_WRITE, regs->rmii_pll1, packed_buf,
716-
SJA1105_SIZE_CGU_CMD);
715+
rc = sja1105_write_buf(priv, regs->rmii_pll1, packed_buf,
716+
SJA1105_SIZE_CGU_CMD);
717717
if (rc < 0) {
718718
dev_err(dev, "failed to configure PLL1 for 50MHz\n");
719719
return rc;
@@ -723,8 +723,8 @@ static int sja1105_cgu_rmii_pll_config(struct sja1105_private *priv)
723723
pll.pd = 0x0;
724724

725725
sja1105_cgu_pll_control_packing(packed_buf, &pll, PACK);
726-
rc = sja1105_xfer_buf(priv, SPI_WRITE, regs->rmii_pll1, packed_buf,
727-
SJA1105_SIZE_CGU_CMD);
726+
rc = sja1105_write_buf(priv, regs->rmii_pll1, packed_buf,
727+
SJA1105_SIZE_CGU_CMD);
728728
if (rc < 0) {
729729
dev_err(dev, "failed to enable PLL1\n");
730730
return rc;
@@ -847,14 +847,14 @@ int sja1110_disable_microcontroller(struct sja1105_private *priv)
847847
/* Power down the BASE_TIMER_CLK to disable the watchdog timer */
848848
sja1110_cgu_outclk_packing(packed_buf, &outclk_7_c, PACK);
849849

850-
rc = sja1105_xfer_buf(priv, SPI_WRITE, SJA1110_BASE_TIMER_CLK,
851-
packed_buf, SJA1105_SIZE_CGU_CMD);
850+
rc = sja1105_write_buf(priv, SJA1110_BASE_TIMER_CLK, packed_buf,
851+
SJA1105_SIZE_CGU_CMD);
852852
if (rc)
853853
return rc;
854854

855855
/* Power down the BASE_MCSS_CLOCK to gate the microcontroller off */
856856
sja1110_cgu_outclk_packing(packed_buf, &outclk_6_c, PACK);
857857

858-
return sja1105_xfer_buf(priv, SPI_WRITE, SJA1110_BASE_MCSS_CLK,
859-
packed_buf, SJA1105_SIZE_CGU_CMD);
858+
return sja1105_write_buf(priv, SJA1110_BASE_MCSS_CLK, packed_buf,
859+
SJA1105_SIZE_CGU_CMD);
860860
}

drivers/net/dsa/sja1105/sja1105_dynamic_config.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,8 +1184,7 @@ sja1105_dynamic_config_poll_valid(struct sja1105_private *priv,
11841184
int rc;
11851185

11861186
/* Read back the whole entry + command structure. */
1187-
rc = sja1105_xfer_buf(priv, SPI_READ, ops->addr, packed_buf,
1188-
ops->packed_size);
1187+
rc = sja1105_read_buf(priv, ops->addr, packed_buf, ops->packed_size);
11891188
if (rc)
11901189
return rc;
11911190

@@ -1298,8 +1297,7 @@ int sja1105_dynamic_config_read(struct sja1105_private *priv,
12981297

12991298
/* Send SPI write operation: read config table entry */
13001299
mutex_lock(&priv->dynamic_config_lock);
1301-
rc = sja1105_xfer_buf(priv, SPI_WRITE, ops->addr, packed_buf,
1302-
ops->packed_size);
1300+
rc = sja1105_write_buf(priv, ops->addr, packed_buf, ops->packed_size);
13031301
if (rc < 0)
13041302
goto out;
13051303

@@ -1357,8 +1355,7 @@ int sja1105_dynamic_config_write(struct sja1105_private *priv,
13571355

13581356
/* Send SPI write operation: read config table entry */
13591357
mutex_lock(&priv->dynamic_config_lock);
1360-
rc = sja1105_xfer_buf(priv, SPI_WRITE, ops->addr, packed_buf,
1361-
ops->packed_size);
1358+
rc = sja1105_write_buf(priv, ops->addr, packed_buf, ops->packed_size);
13621359
if (rc < 0)
13631360
goto out;
13641361

drivers/net/dsa/sja1105/sja1105_ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@ static int sja1105_port_counter_read(struct sja1105_private *priv, int port,
549549

550550
regs = priv->info->regs->stats[c->area][port];
551551

552-
rc = sja1105_xfer_buf(priv, SPI_READ, regs + c->offset, buf, size);
552+
rc = sja1105_read_buf(priv, regs + c->offset, buf, size);
553553
if (rc)
554554
return rc;
555555

drivers/net/dsa/sja1105/sja1105_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3269,7 +3269,7 @@ static int sja1105_check_device_id(struct sja1105_private *priv)
32693269
if (rc < 0)
32703270
return rc;
32713271

3272-
rc = sja1105_xfer_buf(priv, SPI_READ, regs->prod_id, prod_id,
3272+
rc = sja1105_read_buf(priv, regs->prod_id, prod_id,
32733273
SJA1105_SIZE_DEVICE_ID);
32743274
if (rc < 0)
32753275
return rc;

drivers/net/dsa/sja1105/sja1105_ptp.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ int sja1105_ptp_cmd_read(struct dsa_switch *ds, struct sja1105_ptp_cmd *cmd)
172172
u8 buf[SJA1105_SIZE_PTP_CMD] = {0};
173173
int rc;
174174

175-
rc = sja1105_xfer_buf(priv, SPI_READ, regs->ptp_control, buf,
175+
rc = sja1105_read_buf(priv, regs->ptp_control, buf,
176176
SJA1105_SIZE_PTP_CMD);
177177
if (rc)
178178
return rc;
@@ -191,8 +191,8 @@ int sja1105_ptp_cmd_write(struct dsa_switch *ds,
191191

192192
priv->info->ptp_cmd_packing(buf, (struct sja1105_ptp_cmd *)cmd, PACK);
193193

194-
return sja1105_xfer_buf(priv, SPI_WRITE, regs->ptp_control, buf,
195-
SJA1105_SIZE_PTP_CMD);
194+
return sja1105_write_buf(priv, regs->ptp_control, buf,
195+
SJA1105_SIZE_PTP_CMD);
196196
}
197197

198198
/* The switch returns partial timestamps (24 bits for SJA1105 E/T, which wrap
@@ -265,8 +265,8 @@ static int sja1105_ptpegr_ts_poll(struct dsa_switch *ds, int port, u64 *ts)
265265
int rc;
266266

267267
do {
268-
rc = sja1105_xfer_buf(priv, SPI_READ, regs->ptpegr_ts[port],
269-
packed_buf, priv->info->ptpegr_ts_bytes);
268+
rc = sja1105_read_buf(priv, regs->ptpegr_ts[port], packed_buf,
269+
priv->info->ptpegr_ts_bytes);
270270
if (rc < 0)
271271
return rc;
272272

drivers/net/dsa/sja1105/sja1105_spi.c

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,16 @@ static int sja1105_xfer(const struct sja1105_private *priv,
112112
return 0;
113113
}
114114

115-
int sja1105_xfer_buf(const struct sja1105_private *priv,
116-
sja1105_spi_rw_mode_t rw, u64 reg_addr,
117-
u8 *buf, size_t len)
115+
int sja1105_read_buf(const struct sja1105_private *priv, u64 reg_addr, u8 *buf,
116+
size_t len)
118117
{
119-
return sja1105_xfer(priv, rw, reg_addr, buf, len, NULL);
118+
return sja1105_xfer(priv, SPI_READ, reg_addr, buf, len, NULL);
119+
}
120+
121+
int sja1105_write_buf(const struct sja1105_private *priv, u64 reg_addr,
122+
const u8 *buf, size_t len)
123+
{
124+
return sja1105_xfer(priv, SPI_WRITE, reg_addr, (u8 *)buf, len, NULL);
120125
}
121126

122127
int sja1105_read_u64(const struct sja1105_private *priv, u64 reg_addr,
@@ -256,7 +261,7 @@ static int sja1105_status_get(struct sja1105_private *priv,
256261
u8 packed_buf[4];
257262
int rc;
258263

259-
rc = sja1105_xfer_buf(priv, SPI_READ, regs->status, packed_buf, 4);
264+
rc = sja1105_read_buf(priv, regs->status, packed_buf, 4);
260265
if (rc < 0)
261266
return rc;
262267

@@ -352,8 +357,7 @@ int sja1105_static_config_upload(struct sja1105_private *priv)
352357
/* Wait for the switch to come out of reset */
353358
usleep_range(1000, 5000);
354359
/* Upload the static config to the device */
355-
rc = sja1105_xfer_buf(priv, SPI_WRITE, regs->config,
356-
config_buf, buf_len);
360+
rc = sja1105_write_buf(priv, regs->config, config_buf, buf_len);
357361
if (rc < 0) {
358362
dev_err(dev, "Failed to upload config, retrying...\n");
359363
continue;

drivers/net/dsa/sja1105/sja1105_vl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -778,7 +778,7 @@ int sja1105_vl_stats(struct sja1105_private *priv, int port,
778778
if (vlid < 0)
779779
return 0;
780780

781-
rc = sja1105_xfer_buf(priv, SPI_READ, regs->vl_status + 2 * vlid, buf,
781+
rc = sja1105_read_buf(priv, regs->vl_status + 2 * vlid, buf,
782782
SJA1105_SIZE_VL_STATUS);
783783
if (rc) {
784784
NL_SET_ERR_MSG_MOD(extack, "SPI access failed");

0 commit comments

Comments
 (0)