forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/net/ieee802154/ca8210.c
....@@ -53,6 +53,7 @@
5353 #include <linux/delay.h>
5454 #include <linux/gpio.h>
5555 #include <linux/ieee802154.h>
56
+#include <linux/io.h>
5657 #include <linux/kfifo.h>
5758 #include <linux/of.h>
5859 #include <linux/of_device.h>
....@@ -925,7 +926,7 @@
925926
926927 dev_dbg(&spi->dev, "%s called\n", __func__);
927928
928
- cas_ctl = kmalloc(sizeof(*cas_ctl), GFP_ATOMIC);
929
+ cas_ctl = kzalloc(sizeof(*cas_ctl), GFP_ATOMIC);
929930 if (!cas_ctl)
930931 return -ENOMEM;
931932
....@@ -945,7 +946,8 @@
945946 cas_ctl->transfer.bits_per_word = 0; /* Use device setting */
946947 cas_ctl->transfer.tx_buf = cas_ctl->tx_buf;
947948 cas_ctl->transfer.rx_buf = cas_ctl->tx_in_buf;
948
- cas_ctl->transfer.delay_usecs = 0;
949
+ cas_ctl->transfer.delay.value = 0;
950
+ cas_ctl->transfer.delay.unit = SPI_DELAY_UNIT_USECS;
949951 cas_ctl->transfer.cs_change = 0;
950952 cas_ctl->transfer.len = sizeof(struct mac_message);
951953 cas_ctl->msg.complete = ca8210_spi_transfer_complete;
....@@ -1943,10 +1945,9 @@
19431945 struct ca8210_priv *priv
19441946 )
19451947 {
1946
- int status;
19471948 struct ieee802154_hdr header = { };
19481949 struct secspec secspec;
1949
- unsigned int mac_len;
1950
+ int mac_len, status;
19501951
19511952 dev_dbg(&priv->spi->dev, "%s called\n", __func__);
19521953
....@@ -1954,6 +1955,8 @@
19541955 * packet
19551956 */
19561957 mac_len = ieee802154_hdr_peek_addrs(skb, &header);
1958
+ if (mac_len < 0)
1959
+ return mac_len;
19571960
19581961 secspec.security_level = header.sec.level;
19591962 secspec.key_id_mode = header.sec.key_id_mode;
....@@ -3020,14 +3023,7 @@
30203023 priv,
30213024 &test_int_fops
30223025 );
3023
- if (IS_ERR(test->ca8210_dfs_spi_int)) {
3024
- dev_err(
3025
- &priv->spi->dev,
3026
- "Error %ld when creating debugfs node\n",
3027
- PTR_ERR(test->ca8210_dfs_spi_int)
3028
- );
3029
- return PTR_ERR(test->ca8210_dfs_spi_int);
3030
- }
3026
+
30313027 debugfs_create_symlink("ca8210", NULL, node_name);
30323028 init_waitqueue_head(&test->readq);
30333029 return kfifo_alloc(