From 2c34255e413c625865e68e9980623126ad6a610c Mon Sep 17 00:00:00 2001 From: Benjamin Braatz Date: Tue, 21 Feb 2023 23:07:11 +0100 Subject: [PATCH] Modifications to compile for Kernel 6.1.12. --- device_tree/neuron-spi-new-overlay.dts | 20 ++++++++++---------- modules/rtc-unipi/rtc-unipi.c | 2 -- modules/unipi/src/unipi_iio.c | 4 ---- modules/unipi/src/unipi_spi.c | 3 +-- modules/unipi/src/unipi_tty.c | 6 +++--- modules/unipi/src/unipi_uart.c | 9 +++++++-- 6 files changed, 21 insertions(+), 23 deletions(-) diff --git a/device_tree/neuron-spi-new-overlay.dts b/device_tree/neuron-spi-new-overlay.dts index c229042..cd69c2a 100644 --- a/device_tree/neuron-spi-new-overlay.dts +++ b/device_tree/neuron-spi-new-overlay.dts @@ -12,13 +12,13 @@ status = "okay"; pinctrl-0 = <&spi0_pins &spi0_cs_pins>; cs-gpios = <&gpio 8 1>, <&gpio 7 1>, <&gpio 24 1>, <&gpio 25 1>; - neuronspi0: neuronspi@0 { + neuronspi1: neuronspi@1 { compatible = "unipi,neuron"; reg = <1>; #address-cells = <1>; #size-cells = <0>; spi-max-frequency = <12000000>; - pinctrl-0 = <&neuron_0_irq_pin>; + pinctrl-0 = <&neuron_1_irq_pin>; pinctrl-names = "default"; interrupt-parent = <&gpio>; interrupts = <27 0x1>; @@ -27,13 +27,13 @@ neuron-probe-always-succeeds = <0>; neuron-always-create-tty = <0>; }; - neuronspi1: neuronspi@1 { + neuronspi2: neuronspi@2 { compatible = "unipi,neuron"; reg = <2>; #address-cells = <1>; #size-cells = <0>; spi-max-frequency = <1200000>; - pinctrl-0 = <&neuron_1_irq_pin>; + pinctrl-0 = <&neuron_2_irq_pin>; pinctrl-names = "default"; interrupt-parent = <&gpio>; interrupts = <23 0x1>; @@ -42,14 +42,14 @@ neuron-probe-always-succeeds = <0>; neuron-always-create-tty = <0>; }; - neuronspi2: neuronspi@2 { + neuronspi3: neuronspi@3 { compatible = "unipi,neuron"; reg = <3>; #address-cells = <1>; #size-cells = <0>; spi-max-frequency = <1200000>; pinctrl-names = "default"; - pinctrl-0 = <&neuron_2_irq_pin>; + pinctrl-0 = <&neuron_3_irq_pin>; interrupt-parent = <&gpio>; interrupts = <22 0x1>; status = "okay"; @@ -82,17 +82,17 @@ brcm,function = <1>; brcm,pull = <0>; }; - neuron_0_irq_pin: neuron_0_irq_pin { + neuron_1_irq_pin: neuron_1_irq_pin { brcm,pins = <27>; brcm,function = <0>; brcm,pull = <1>; }; - neuron_1_irq_pin: neuron_1_irq_pin { + neuron_2_irq_pin: neuron_2_irq_pin { brcm,pins = <23>; brcm,function = <0>; brcm,pull = <1>; }; - neuron_2_irq_pin: neuron_2_irq_pin { + neuron_3_irq_pin: neuron_3_irq_pin { brcm,pins = <22>; brcm,function = <0>; brcm,pull = <1>; @@ -105,9 +105,9 @@ cs1_pin = <&frag0>,"cs-gpios:16", <&spi0_cs_pins>,"brcm,pins:4"; cs2_pin = <&frag0>,"cs-gpios:40", <&spi0_cs_pins>,"brcm,pins:12"; cs3_pin = <&frag0>,"cs-gpios:28", <&spi0_cs_pins>,"brcm,pins:8"; - neuron_irq_0 = <&neuronspi0>,"interrupts:0", <&neuron_0_irq_pin>,"brcm,pins:0"; neuron_irq_1 = <&neuronspi1>,"interrupts:0", <&neuron_1_irq_pin>,"brcm,pins:0"; neuron_irq_2 = <&neuronspi2>,"interrupts:0", <&neuron_2_irq_pin>,"brcm,pins:0"; + neuron_irq_3 = <&neuronspi3>,"interrupts:0", <&neuron_3_irq_pin>,"brcm,pins:0"; }; }; diff --git a/modules/rtc-unipi/rtc-unipi.c b/modules/rtc-unipi/rtc-unipi.c index 7446b21..07f3184 100644 --- a/modules/rtc-unipi/rtc-unipi.c +++ b/modules/rtc-unipi/rtc-unipi.c @@ -641,8 +641,6 @@ read_rtc: if (rtc_unipi_can_wakeup_device && !want_irq) { dev_info(rtc_unipi->dev, "'wakeup-source' is set, request for an IRQ is disabled!\n"); - /* We cannot support UIE mode if we do not have an IRQ line */ - rtc_unipi->rtc->uie_unsupported = 1; } if (want_irq) { diff --git a/modules/unipi/src/unipi_iio.c b/modules/unipi/src/unipi_iio.c index 1eb2820..4ca8fb4 100644 --- a/modules/unipi/src/unipi_iio.c +++ b/modules/unipi/src/unipi_iio.c @@ -465,7 +465,6 @@ struct iio_dev* neuronspi_stm_ai_probe(int io_count, int neuron_index, struct pl ((struct neuronspi_analog_data*)iio_priv(iio_driver))->parent = spi; ((struct neuronspi_analog_data*)iio_priv(iio_driver))->index = 0; iio_driver->modes = INDIO_DIRECT_MODE; - iio_driver->currentmode = INDIO_DIRECT_MODE; iio_driver->name = "ai_type_a"; iio_driver->dev.parent = &(board_device->dev); dev_set_name(&iio_driver->dev, "ai_%d_1", neuron_index + 1); @@ -485,7 +484,6 @@ struct iio_dev* neuronspi_stm_ao_probe(int io_count, int neuron_index, struct pl ((struct neuronspi_analog_data*)iio_priv(iio_driver))->parent = spi; ((struct neuronspi_analog_data*)iio_priv(iio_driver))->index = 0; iio_driver->modes = INDIO_DIRECT_MODE; - iio_driver->currentmode = INDIO_DIRECT_MODE; iio_driver->name = "ao_type_a"; iio_driver->dev.parent = &(board_device->dev); dev_set_name(&iio_driver->dev, "ao_%d_1", neuron_index + 1); @@ -508,7 +506,6 @@ struct iio_dev** neuronspi_sec_ai_probe(int io_count, int neuron_index, struct p ((struct neuronspi_analog_data*)iio_priv(iio_driver_arr[i]))->parent = spi; ((struct neuronspi_analog_data*)iio_priv(iio_driver_arr[i]))->index = i; iio_driver_arr[i]->modes = INDIO_DIRECT_MODE; - iio_driver_arr[i]->currentmode = INDIO_DIRECT_MODE; iio_driver_arr[i]->name = "ai_type_b"; iio_driver_arr[i]->dev.parent = &(board_device->dev); dev_set_name(&iio_driver_arr[i]->dev, "ai_%d_%d", neuron_index + 1, i + 1); @@ -531,7 +528,6 @@ struct iio_dev** neuronspi_sec_ao_probe(int io_count, int neuron_index, struct p ((struct neuronspi_analog_data*)iio_priv(iio_driver_arr[i]))->parent = spi; ((struct neuronspi_analog_data*)iio_priv(iio_driver_arr[i]))->index = i; iio_driver_arr[i]->modes = INDIO_DIRECT_MODE; - iio_driver_arr[i]->currentmode = INDIO_DIRECT_MODE; iio_driver_arr[i]->name = "ao_type_b"; iio_driver_arr[i]->dev.parent = &(board_device->dev); dev_set_name(&iio_driver_arr[i]->dev, "ao_%d_%d", neuron_index + 1, i + 1); diff --git a/modules/unipi/src/unipi_spi.c b/modules/unipi/src/unipi_spi.c index 5a50885..e866564 100644 --- a/modules/unipi/src/unipi_spi.c +++ b/modules/unipi/src/unipi_spi.c @@ -1442,7 +1442,7 @@ s32 neuronspi_spi_probe(struct spi_device *spi) return ret; } -s32 neuronspi_spi_remove(struct spi_device *spi) +void neuronspi_spi_remove(struct spi_device *spi) { int neuron_index; struct neuronspi_driver_data *n_spi = spi_get_drvdata(spi); @@ -1481,7 +1481,6 @@ s32 neuronspi_spi_remove(struct spi_device *spi) kfree(n_spi); printk(KERN_INFO "UNIPISPI: UniPi Board nspi%d removed\n", neuron_index); } - return 0; } diff --git a/modules/unipi/src/unipi_tty.c b/modules/unipi/src/unipi_tty.c index d8a9db6..a3a47c0 100644 --- a/modules/unipi/src/unipi_tty.c +++ b/modules/unipi/src/unipi_tty.c @@ -1032,7 +1032,7 @@ static void (*alias_n_tty_receive_buf)(struct tty_struct *tty, const unsigned ch const char *fp, int count); static int (*alias_n_tty_receive_buf2)(struct tty_struct *tty, const unsigned char *cp, const char *fp, int count); -static int (*alias_n_tty_ioctl)(struct tty_struct *tty, struct file *file, +static int (*alias_n_tty_ioctl)(struct tty_struct *tty, unsigned int cmd, unsigned long arg); static void unipi_tty_receive_buf(struct tty_struct *tty, const unsigned char *cp, @@ -1065,7 +1065,7 @@ static int unipi_tty_receive_buf2(struct tty_struct *tty, const unsigned char *c return ret; } -static int unipi_tty_ioctl(struct tty_struct *tty, struct file *file, +static int unipi_tty_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg) { int retval; @@ -1080,7 +1080,7 @@ static int unipi_tty_ioctl(struct tty_struct *tty, struct file *file, return retval; } } - return alias_n_tty_ioctl(tty, file, cmd, arg); + return alias_n_tty_ioctl(tty, cmd, arg); } int __init unipi_tty_init(void) diff --git a/modules/unipi/src/unipi_uart.c b/modules/unipi/src/unipi_uart.c index 57944dd..269a499 100644 --- a/modules/unipi/src/unipi_uart.c +++ b/modules/unipi/src/unipi_uart.c @@ -220,7 +220,7 @@ int neuronspi_uart_ioctl (struct uart_port *port, unsigned int ioctl_code, unsig } -void neuronspi_uart_set_termios(struct uart_port *port, struct ktermios *termios, struct ktermios *old) +void neuronspi_uart_set_termios(struct uart_port *port, struct ktermios *termios, const struct ktermios *old) { struct neuronspi_port *n_port; n_port = to_neuronspi_port(port, port); @@ -255,7 +255,7 @@ void neuronspi_uart_set_termios(struct uart_port *port, struct ktermios *termios neuronspi_uart_update_timeout(n_port, termios->c_cflag, n_port->baud); } -s32 neuronspi_uart_config_rs485(struct uart_port *port, struct serial_rs485 *rs485) +s32 neuronspi_uart_config_rs485(struct uart_port *port, struct ktermios *termios, struct serial_rs485 *rs485) { port->rs485 = *rs485; return 0; @@ -656,6 +656,11 @@ int neuronspi_uart_probe(struct spi_device* spi, struct neuronspi_driver_data *n struct neuronspi_port* port; int i, ret = 0; + if (neuronspi_uart_data_global->p == NULL) { + neuronspi_uart_data_global->p = kzalloc(sizeof(struct neuronspi_port[NEURONSPI_MAX_UART]), GFP_ATOMIC); + unipi_uart_trace("Allocated port structure for %d ttyNS devices", NEURONSPI_MAX_UART); + } + if (n_spi->uart_count_to_probe) { n_spi->uart_pindex = neuronspi_uart_data_global->p_count; for (i=0; iuart_count_to_probe; i++) { -- 2.34.1