Why does my Transmition is not complete.
Hello on my serdev when i set it up the transmition complete is not set:
stm32-usart 4000f000.serial: transmission complete not set
I configurated my device tree like this:
&usart3 {
compatible = "st,stm32-uart", "st,stm32f7-uart", "st,stm32h7-uart";
pinctrl-names = "default", "sleep", "idle";
pinctrl-0 = <&usart3_pins_b>;
pinctrl-1 = <&usart3_sleep_pins_b>;
pinctrl-2 = <&usart3_idle_pins_b>;
uart-has-rtscts;
status = "okay";
ethernet {
compatible = "st,stm32_usart_net";
local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
current-speed = <38400>;
};
};
So in my system it shows up like this:
/sys/devices/platform/soc/4000f000.serial/serial0/serial0-0
- driver
- modalias
- of_node
- power
- subsystem
- uevent
The probe methode of my serdev_device_driver looks like this:
struct stmuart *stm;
u32 speed = 115200;
int ret;
stm = devm_kzalloc(&serdev->dev, sizeof(*stm), GFP_KERNEL);
stm->serdev = serdev;
spin_lock_init(&stm->lock);
INIT_WORK(&stm->tx_work, stmuart_transmit);
serdev_device_set_drvdata(serdev, stm);
serdev_device_set_client_ops(serdev, &stm_serdev_ops);
ret = serdev_device_open(serdev);
if (ret) {
dev_err(&serdev->dev, "Unable to open device\n");
goto free;
}
speed = serdev_device_set_baudrate(serdev, speed);
dev_info(&serdev->dev, "Using baudrate: %u\n", speed);
serdev_device_set_flow_control(serdev, true);
return 0;
My kernel shows me the log when i call the "serdev_device_open" methode. But i can not find something to set options to the serdev_device to avoid it. I looked some other examples and there i also did not find a setting for the device tree. My Kernel is on version 5.4
