if (!(inb(host->base + WBSD_CSR) & WBSD_CARDPRESENT)) 
if (!(host->flags & WBSD_FCARD_PRESENT)) 
static void wbsd_request(struct mmc_host* mmc, struct mmc_request* mrq){	struct wbsd_host* host = mmc_priv(mmc);	struct mmc_command* cmd;	/*	 * Disable tasklets to avoid a deadlock.	 */	spin_lock_bh(&host->lock);	BUG_ON(host->mrq != NULL);	cmd = mrq->cmd;	host->mrq = mrq;		/*	 * If there is no card in the slot then	 * timeout immediatly.	 */	if (!(inb(host->base + WBSD_CSR) & WBSD_CARDPRESENT))	{		cmd->error = MMC_ERR_TIMEOUT;		goto done;	}	/*	 * Does the request include data?	 */	if (cmd->data)	{		wbsd_prepare_data(host, cmd->data);				if (cmd->data->error != MMC_ERR_NONE)			goto done;	}		wbsd_send_command(host, cmd);	/*	 * If this is a data transfer the request	 * will be finished after the data has	 * transfered.	 */		if (cmd->data && (cmd->error == MMC_ERR_NONE))	{		/*		 * Dirty fix for hardware bug.		 */		if (host->dma == -1)			tasklet_schedule(&host->fifo_tasklet);		spin_unlock_bh(&host->lock);		return;	}		done:	wbsd_request_end(host, mrq);	spin_unlock_bh(&host->lock);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/85bcc13072c54592596c5b41d40d1c6a18b04e19/wbsd.c/clean/drivers/mmc/wbsd.c