|
@@ -191,6 +191,30 @@ qcaspi_read_legacy(struct qcaspi *qca, u8 *dst, u32 len)
|
|
|
return len;
|
|
|
}
|
|
|
|
|
|
+static int
|
|
|
+qcaspi_tx_cmd(struct qcaspi *qca, u16 cmd)
|
|
|
+{
|
|
|
+ __be16 tx_data;
|
|
|
+ struct spi_message *msg = &qca->spi_msg1;
|
|
|
+ struct spi_transfer *transfer = &qca->spi_xfer1;
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ tx_data = cpu_to_be16(cmd);
|
|
|
+ transfer->len = sizeof(tx_data);
|
|
|
+ transfer->tx_buf = &tx_data;
|
|
|
+ transfer->rx_buf = NULL;
|
|
|
+
|
|
|
+ ret = spi_sync(qca->spi_dev, msg);
|
|
|
+
|
|
|
+ if (!ret)
|
|
|
+ ret = msg->status;
|
|
|
+
|
|
|
+ if (ret)
|
|
|
+ qcaspi_spi_error(qca);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
static int
|
|
|
qcaspi_tx_frame(struct qcaspi *qca, struct sk_buff *skb)
|
|
|
{
|