Lines Matching +full:start +full:- +full:up
1 // SPDX-License-Identifier: GPL-2.0+
17 static int rsa8250_request_resource(struct uart_8250_port *up) in rsa8250_request_resource() argument
19 struct uart_port *port = &up->port; in rsa8250_request_resource()
20 unsigned long start = UART_RSA_BASE << port->regshift; in rsa8250_request_resource() local
21 unsigned int size = 8 << port->regshift; in rsa8250_request_resource()
23 switch (port->iotype) { in rsa8250_request_resource()
26 start += port->iobase; in rsa8250_request_resource()
27 if (!request_region(start, size, "serial-rsa")) in rsa8250_request_resource()
28 return -EBUSY; in rsa8250_request_resource()
31 return -EINVAL; in rsa8250_request_resource()
35 static void rsa8250_release_resource(struct uart_8250_port *up) in rsa8250_release_resource() argument
37 struct uart_port *port = &up->port; in rsa8250_release_resource()
38 unsigned long offset = UART_RSA_BASE << port->regshift; in rsa8250_release_resource()
39 unsigned int size = 8 << port->regshift; in rsa8250_release_resource()
41 switch (port->iotype) { in rsa8250_release_resource()
44 release_region(port->iobase + offset, size); in rsa8250_release_resource()
51 struct uart_8250_port *up = up_to_u8250p(port); in univ8250_config_port() local
54 up->probe &= ~UART_PROBE_RSA; in univ8250_config_port()
55 if (port->type == PORT_RSA) { in univ8250_config_port()
56 if (rsa8250_request_resource(up) == 0) in univ8250_config_port()
57 up->probe |= UART_PROBE_RSA; in univ8250_config_port()
60 if (probe_rsa[i] == up->port.iobase) { in univ8250_config_port()
61 if (rsa8250_request_resource(up) == 0) in univ8250_config_port()
62 up->probe |= UART_PROBE_RSA; in univ8250_config_port()
68 univ8250_port_base_ops->config_port(port, flags); in univ8250_config_port()
70 if (port->type != PORT_RSA && up->probe & UART_PROBE_RSA) in univ8250_config_port()
71 rsa8250_release_resource(up); in univ8250_config_port()
76 struct uart_8250_port *up = up_to_u8250p(port); in univ8250_request_port() local
79 ret = univ8250_port_base_ops->request_port(port); in univ8250_request_port()
80 if (ret == 0 && port->type == PORT_RSA) { in univ8250_request_port()
81 ret = rsa8250_request_resource(up); in univ8250_request_port()
83 univ8250_port_base_ops->release_port(port); in univ8250_request_port()
91 struct uart_8250_port *up = up_to_u8250p(port); in univ8250_release_port() local
93 if (port->type == PORT_RSA) in univ8250_release_port()
94 rsa8250_release_resource(up); in univ8250_release_port()
95 univ8250_port_base_ops->release_port(port); in univ8250_release_port()
100 ops->config_port = univ8250_config_port; in univ8250_rsa_support()
101 ops->request_port = univ8250_request_port; in univ8250_rsa_support()
102 ops->release_port = univ8250_release_port; in univ8250_rsa_support()
127 0444, -1, 0); in rsa8250_options()