pcmcia: (re)move {pcmcia,pccard}_get_status
Except for one debug message in a driver marked BROKEN, pcmcia_get_status is only used by the ioctl. Therefore, move it to pcmcia_ioctl.c and unexport it. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
parent
6351a71cfa
commit
4aeba0134f
5 changed files with 62 additions and 73 deletions
|
@ -560,9 +560,7 @@ static int pcmciamtd_config(struct pcmcia_device *link)
|
|||
DEBUG(1, "Allocated a window of %dKiB", dev->win_size >> 10);
|
||||
|
||||
/* Get write protect status */
|
||||
CS_CHECK(GetStatus, pcmcia_get_status(link, &status));
|
||||
DEBUG(2, "status value: 0x%x window handle = 0x%8.8lx",
|
||||
status.CardState, (unsigned long)link->win);
|
||||
DEBUG(2, "window handle = 0x%8.8lx", (unsigned long)link->win);
|
||||
dev->win_base = ioremap(req.Base, req.Size);
|
||||
if(!dev->win_base) {
|
||||
err("ioremap(%lu, %u) failed", req.Base, req.Size);
|
||||
|
|
|
@ -118,7 +118,6 @@ extern struct list_head pcmcia_socket_list;
|
|||
int pcmcia_get_window(struct pcmcia_socket *s, window_handle_t *handle, int idx, win_req_t *req);
|
||||
int pccard_get_configuration_info(struct pcmcia_socket *s, struct pcmcia_device *p_dev, config_info_t *config);
|
||||
int pccard_reset_card(struct pcmcia_socket *skt);
|
||||
int pccard_get_status(struct pcmcia_socket *s, struct pcmcia_device *p_dev, cs_status_t *status);
|
||||
|
||||
|
||||
struct pcmcia_callback{
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <pcmcia/cs_types.h>
|
||||
#include <pcmcia/cs.h>
|
||||
#include <pcmcia/cistpl.h>
|
||||
#include <pcmcia/cisreg.h>
|
||||
#include <pcmcia/ds.h>
|
||||
#include <pcmcia/ss.h>
|
||||
|
||||
|
@ -224,6 +225,66 @@ static int pcmcia_adjust_resource_info(adjust_t *adj)
|
|||
return (ret);
|
||||
}
|
||||
|
||||
/** pccard_get_status
|
||||
*
|
||||
* Get the current socket state bits. We don't support the latched
|
||||
* SocketState yet: I haven't seen any point for it.
|
||||
*/
|
||||
|
||||
static int pccard_get_status(struct pcmcia_socket *s,
|
||||
struct pcmcia_device *p_dev,
|
||||
cs_status_t *status)
|
||||
{
|
||||
config_t *c;
|
||||
int val;
|
||||
|
||||
s->ops->get_status(s, &val);
|
||||
status->CardState = status->SocketState = 0;
|
||||
status->CardState |= (val & SS_DETECT) ? CS_EVENT_CARD_DETECT : 0;
|
||||
status->CardState |= (val & SS_CARDBUS) ? CS_EVENT_CB_DETECT : 0;
|
||||
status->CardState |= (val & SS_3VCARD) ? CS_EVENT_3VCARD : 0;
|
||||
status->CardState |= (val & SS_XVCARD) ? CS_EVENT_XVCARD : 0;
|
||||
if (s->state & SOCKET_SUSPEND)
|
||||
status->CardState |= CS_EVENT_PM_SUSPEND;
|
||||
if (!(s->state & SOCKET_PRESENT))
|
||||
return CS_NO_CARD;
|
||||
|
||||
c = (p_dev) ? p_dev->function_config : NULL;
|
||||
|
||||
if ((c != NULL) && (c->state & CONFIG_LOCKED) &&
|
||||
(c->IntType & (INT_MEMORY_AND_IO | INT_ZOOMED_VIDEO))) {
|
||||
u_char reg;
|
||||
if (c->CardValues & PRESENT_PIN_REPLACE) {
|
||||
pcmcia_read_cis_mem(s, 1, (c->ConfigBase+CISREG_PRR)>>1, 1, ®);
|
||||
status->CardState |=
|
||||
(reg & PRR_WP_STATUS) ? CS_EVENT_WRITE_PROTECT : 0;
|
||||
status->CardState |=
|
||||
(reg & PRR_READY_STATUS) ? CS_EVENT_READY_CHANGE : 0;
|
||||
status->CardState |=
|
||||
(reg & PRR_BVD2_STATUS) ? CS_EVENT_BATTERY_LOW : 0;
|
||||
status->CardState |=
|
||||
(reg & PRR_BVD1_STATUS) ? CS_EVENT_BATTERY_DEAD : 0;
|
||||
} else {
|
||||
/* No PRR? Then assume we're always ready */
|
||||
status->CardState |= CS_EVENT_READY_CHANGE;
|
||||
}
|
||||
if (c->CardValues & PRESENT_EXT_STATUS) {
|
||||
pcmcia_read_cis_mem(s, 1, (c->ConfigBase+CISREG_ESR)>>1, 1, ®);
|
||||
status->CardState |=
|
||||
(reg & ESR_REQ_ATTN) ? CS_EVENT_REQUEST_ATTENTION : 0;
|
||||
}
|
||||
return CS_SUCCESS;
|
||||
}
|
||||
status->CardState |=
|
||||
(val & SS_WRPROT) ? CS_EVENT_WRITE_PROTECT : 0;
|
||||
status->CardState |=
|
||||
(val & SS_BATDEAD) ? CS_EVENT_BATTERY_DEAD : 0;
|
||||
status->CardState |=
|
||||
(val & SS_BATWARN) ? CS_EVENT_BATTERY_LOW : 0;
|
||||
status->CardState |=
|
||||
(val & SS_READY) ? CS_EVENT_READY_CHANGE : 0;
|
||||
return CS_SUCCESS;
|
||||
} /* pccard_get_status */
|
||||
|
||||
/*======================================================================
|
||||
|
||||
|
|
|
@ -309,74 +309,6 @@ int pcmcia_get_window(struct pcmcia_socket *s, window_handle_t *handle,
|
|||
EXPORT_SYMBOL(pcmcia_get_window);
|
||||
|
||||
|
||||
/** pccard_get_status
|
||||
*
|
||||
* Get the current socket state bits. We don't support the latched
|
||||
* SocketState yet: I haven't seen any point for it.
|
||||
*/
|
||||
|
||||
int pccard_get_status(struct pcmcia_socket *s, struct pcmcia_device *p_dev,
|
||||
cs_status_t *status)
|
||||
{
|
||||
config_t *c;
|
||||
int val;
|
||||
|
||||
s->ops->get_status(s, &val);
|
||||
status->CardState = status->SocketState = 0;
|
||||
status->CardState |= (val & SS_DETECT) ? CS_EVENT_CARD_DETECT : 0;
|
||||
status->CardState |= (val & SS_CARDBUS) ? CS_EVENT_CB_DETECT : 0;
|
||||
status->CardState |= (val & SS_3VCARD) ? CS_EVENT_3VCARD : 0;
|
||||
status->CardState |= (val & SS_XVCARD) ? CS_EVENT_XVCARD : 0;
|
||||
if (s->state & SOCKET_SUSPEND)
|
||||
status->CardState |= CS_EVENT_PM_SUSPEND;
|
||||
if (!(s->state & SOCKET_PRESENT))
|
||||
return CS_NO_CARD;
|
||||
|
||||
c = (p_dev) ? p_dev->function_config : NULL;
|
||||
|
||||
if ((c != NULL) && (c->state & CONFIG_LOCKED) &&
|
||||
(c->IntType & (INT_MEMORY_AND_IO | INT_ZOOMED_VIDEO))) {
|
||||
u_char reg;
|
||||
if (c->CardValues & PRESENT_PIN_REPLACE) {
|
||||
pcmcia_read_cis_mem(s, 1, (c->ConfigBase+CISREG_PRR)>>1, 1, ®);
|
||||
status->CardState |=
|
||||
(reg & PRR_WP_STATUS) ? CS_EVENT_WRITE_PROTECT : 0;
|
||||
status->CardState |=
|
||||
(reg & PRR_READY_STATUS) ? CS_EVENT_READY_CHANGE : 0;
|
||||
status->CardState |=
|
||||
(reg & PRR_BVD2_STATUS) ? CS_EVENT_BATTERY_LOW : 0;
|
||||
status->CardState |=
|
||||
(reg & PRR_BVD1_STATUS) ? CS_EVENT_BATTERY_DEAD : 0;
|
||||
} else {
|
||||
/* No PRR? Then assume we're always ready */
|
||||
status->CardState |= CS_EVENT_READY_CHANGE;
|
||||
}
|
||||
if (c->CardValues & PRESENT_EXT_STATUS) {
|
||||
pcmcia_read_cis_mem(s, 1, (c->ConfigBase+CISREG_ESR)>>1, 1, ®);
|
||||
status->CardState |=
|
||||
(reg & ESR_REQ_ATTN) ? CS_EVENT_REQUEST_ATTENTION : 0;
|
||||
}
|
||||
return CS_SUCCESS;
|
||||
}
|
||||
status->CardState |=
|
||||
(val & SS_WRPROT) ? CS_EVENT_WRITE_PROTECT : 0;
|
||||
status->CardState |=
|
||||
(val & SS_BATDEAD) ? CS_EVENT_BATTERY_DEAD : 0;
|
||||
status->CardState |=
|
||||
(val & SS_BATWARN) ? CS_EVENT_BATTERY_LOW : 0;
|
||||
status->CardState |=
|
||||
(val & SS_READY) ? CS_EVENT_READY_CHANGE : 0;
|
||||
return CS_SUCCESS;
|
||||
} /* pccard_get_status */
|
||||
|
||||
int pcmcia_get_status(struct pcmcia_device *p_dev, cs_status_t *status)
|
||||
{
|
||||
return pccard_get_status(p_dev->socket, p_dev, status);
|
||||
}
|
||||
EXPORT_SYMBOL(pcmcia_get_status);
|
||||
|
||||
|
||||
|
||||
/** pcmcia_get_mem_page
|
||||
*
|
||||
* Change the card address of an already open memory window.
|
||||
|
|
|
@ -373,7 +373,6 @@ struct pcmcia_socket;
|
|||
|
||||
int pcmcia_access_configuration_register(struct pcmcia_device *p_dev, conf_reg_t *reg);
|
||||
int pcmcia_get_configuration_info(struct pcmcia_device *p_dev, config_info_t *config);
|
||||
int pcmcia_get_status(struct pcmcia_device *p_dev, cs_status_t *status);
|
||||
int pcmcia_get_mem_page(window_handle_t win, memreq_t *req);
|
||||
int pcmcia_map_mem_page(window_handle_t win, memreq_t *req);
|
||||
int pcmcia_modify_configuration(struct pcmcia_device *p_dev, modconf_t *mod);
|
||||
|
|
Loading…
Reference in a new issue