serial: at91: prevent null dereference in tasklet function

Something schedules a tasklet to be scheduled when the uart port is closed. Need to supress the kernel panic for now by checking if the port is NULL or not.

Signed-off-by: Marek Roszko <mark.roszko@gmail.com>
serial: at91: disable uart timer at start of shutdown

The uart timer when it fires will schedule a tasklet. It is possible and has been observed that it can fire inside _shutdown before it is killed in the dma and pdc cleanup.
This is a somewhat lucky condition to hit but its possible if a program spams open/close on the port that the condition can be met, in particular systemd boot messages were causing the panic from this behavior.
This causes a tasklet that exists after the port is shutdown, so when the kernel finally executes it, it panics as the tty port is NULL
Moving the timer deletion to the beginning of the function stops a tasklet from being scheduled unexpectedly.

Signed-off-by: Marek Roszko <mark.roszko@gmail.com>