Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7b0364b authored by Dominik Brodowski's avatar Dominik Brodowski
Browse files

pcmcia: move some window-related code to pcmcia_ioctl.c



pcmcia_get_window() and pcmcia_get_mem_page() were only called from
pcmcia_ioctl.c. Therefore, move these functions to that file, and
remove the useless EXPORTs.

Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
parent 0bdf9b3d
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -148,10 +148,6 @@ extern struct rw_semaphore pcmcia_socket_list_rwsem;
extern struct list_head pcmcia_socket_list;
extern struct class pcmcia_socket_class;

int pcmcia_get_window(struct pcmcia_socket *s,
		      window_handle_t *wh_out,
		      window_handle_t wh,
		      win_req_t *req);
int pccard_register_pcmcia(struct pcmcia_socket *s, struct pcmcia_callback *c);
struct pcmcia_socket *pcmcia_get_socket_by_nr(unsigned int nr);

@@ -227,8 +223,6 @@ extern void pcmcia_put_dev(struct pcmcia_device *p_dev);

struct pcmcia_device *pcmcia_device_add(struct pcmcia_socket *s,
					unsigned int function);
int pcmcia_get_mem_page(struct pcmcia_socket *skt, window_handle_t win,
			memreq_t *req);

/* pcmcia_ioctl.c */
extern void __init pcmcia_setup_ioctl(void);
+55 −0
Original line number Diff line number Diff line
@@ -218,6 +218,61 @@ static int pcmcia_adjust_resource_info(adjust_t *adj)
	return (ret);
}


/** pcmcia_get_window
 */
static int pcmcia_get_window(struct pcmcia_socket *s, window_handle_t *wh_out,
			window_handle_t wh, win_req_t *req)
{
	window_t *win;
	window_handle_t w;

	wh--;
	if (!s || !(s->state & SOCKET_PRESENT))
		return -ENODEV;
	if (wh >= MAX_WIN)
		return -EINVAL;
	for (w = wh; w < MAX_WIN; w++)
		if (s->state & SOCKET_WIN_REQ(w))
			break;
	if (w == MAX_WIN)
		return -EINVAL;
	win = &s->win[w];
	req->Base = win->ctl.res->start;
	req->Size = win->ctl.res->end - win->ctl.res->start + 1;
	req->AccessSpeed = win->ctl.speed;
	req->Attributes = 0;
	if (win->ctl.flags & MAP_ATTRIB)
		req->Attributes |= WIN_MEMORY_TYPE_AM;
	if (win->ctl.flags & MAP_ACTIVE)
		req->Attributes |= WIN_ENABLE;
	if (win->ctl.flags & MAP_16BIT)
		req->Attributes |= WIN_DATA_WIDTH_16;
	if (win->ctl.flags & MAP_USE_WAIT)
		req->Attributes |= WIN_USE_WAIT;

	*wh_out = w + 1;
	return 0;
} /* pcmcia_get_window */


/** pcmcia_get_mem_page
 *
 * Change the card address of an already open memory window.
 */
static int pcmcia_get_mem_page(struct pcmcia_socket *skt, window_handle_t wh,
			memreq_t *req)
{
	wh--;
	if (wh >= MAX_WIN)
		return -EINVAL;

	req->Page = 0;
	req->CardOffset = skt->win[wh].ctl.card_start;
	return 0;
} /* pcmcia_get_mem_page */


/** pccard_get_status
 *
 * Get the current socket state bits.  We don't support the latched
+0 −57
Original line number Diff line number Diff line
@@ -185,63 +185,6 @@ int pcmcia_access_configuration_register(struct pcmcia_device *p_dev,
EXPORT_SYMBOL(pcmcia_access_configuration_register);


/** pcmcia_get_window
 */
int pcmcia_get_window(struct pcmcia_socket *s, window_handle_t *wh_out,
		window_handle_t wh, win_req_t *req)
{
	window_t *win;
	window_handle_t w;

	if (!s || !(s->state & SOCKET_PRESENT))
		return -ENODEV;

	wh--;
	if (wh >= MAX_WIN)
		return -EINVAL;
	for (w = wh; w < MAX_WIN; w++)
		if (s->state & SOCKET_WIN_REQ(w))
			break;
	if (w == MAX_WIN)
		return -EINVAL;
	win = &s->win[w];
	req->Base = win->ctl.res->start;
	req->Size = win->ctl.res->end - win->ctl.res->start + 1;
	req->AccessSpeed = win->ctl.speed;
	req->Attributes = 0;
	if (win->ctl.flags & MAP_ATTRIB)
		req->Attributes |= WIN_MEMORY_TYPE_AM;
	if (win->ctl.flags & MAP_ACTIVE)
		req->Attributes |= WIN_ENABLE;
	if (win->ctl.flags & MAP_16BIT)
		req->Attributes |= WIN_DATA_WIDTH_16;
	if (win->ctl.flags & MAP_USE_WAIT)
		req->Attributes |= WIN_USE_WAIT;

	*wh_out = w++;
	return 0;
} /* pcmcia_get_window */
EXPORT_SYMBOL(pcmcia_get_window);


/** pcmcia_get_mem_page
 *
 * Change the card address of an already open memory window.
 */
int pcmcia_get_mem_page(struct pcmcia_socket *skt, window_handle_t wh,
			memreq_t *req)
{
	wh--;
	if (wh >= MAX_WIN)
		return -EINVAL;

	req->Page = 0;
	req->CardOffset = skt->win[wh].ctl.card_start;
	return 0;
} /* pcmcia_get_mem_page */
EXPORT_SYMBOL(pcmcia_get_mem_page);


int pcmcia_map_mem_page(struct pcmcia_device *p_dev, window_handle_t wh,
			memreq_t *req)
{