[git pull] PCMCIA bugfixes

Dominik Brodowski linux at dominikbrodowski.net
Fri Oct 22 12:47:48 EDT 2010


On Fri, Oct 22, 2010 at 08:21:15AM -0700, Linus Torvalds wrote:
> On Fri, Oct 22, 2010 at 12:35 AM, Anca Emanuel <anca.emanuel at gmail.com> wrote:
> >  CC [M]  drivers/net/wireless/hostap/hostap_cs.o
> > drivers/staging/comedi/drivers/ni_daq_700.c: In function ‘dio700_config’:
> > drivers/staging/comedi/drivers/ni_daq_700.c:499: error: ‘win_req_t’
> > undeclared (first use in this function)
> 
> Looks like the PCMCIA win_req_t fixup missed a driver or two.
> 
> Dominik?
> 
> And if somebody else wants to help out, look at commit cdb138080b78
> ("pcmcia: do not use win_req_t when calling pcmcia_request_window()")
> for guidance about what it is all about. That shows other drivers
> being converted.
> 
> Anyway, in this case, it looks like the problem is literally that
> _unused_ declaration of 'win_req_t req'. Just remove that line. Does
> it compile and work then?

Yes, that line is superfluous -- sorry about that. Could you please pull
from

git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git urgent

for the two attached patches, please?

Dominik Brodowski (2):
      pcmcia: IOCARD is also required for using IRQs
      pcmcia: fix ni_daq_700 compilation

 drivers/pcmcia/pcmcia_resource.c            |    4 +++-
 drivers/staging/comedi/drivers/ni_daq_700.c |    1 -
 include/pcmcia/ds.h                         |    2 ++
 3 files changed, 5 insertions(+), 2 deletions(-)

Thanks,
	Dominik


From: Dominik Brodowski <linux at dominikbrodowski.net>
Date: Fri, 22 Oct 2010 18:39:23 +0200
Subject: [PATCH] pcmcia: fix ni_daq_700 compilation

Reported-by: Anca Emanuel <anca.emanuel at gmail.com>
Signed-off-by: Dominik Brodowski <linux at dominikbrodowski.net>

diff --git a/drivers/staging/comedi/drivers/ni_daq_700.c b/drivers/staging/comedi/drivers/ni_daq_700.c
index fc772a8..6b7372e 100644
--- a/drivers/staging/comedi/drivers/ni_daq_700.c
+++ b/drivers/staging/comedi/drivers/ni_daq_700.c
@@ -496,7 +496,6 @@ static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev,
 
 static void dio700_config(struct pcmcia_device *link)
 {
-	win_req_t req;
 	int ret;
 
 	printk(KERN_INFO "ni_daq_700:  cs-config\n");


From: Dominik Brodowski <linux at dominikbrodowski.net>
Date: Fri, 22 Oct 2010 08:46:36 +0200
Subject: [PATCH] pcmcia: IOCARD is also required for using IRQs

Dave Hinds pointed out to me that 37979e1546a7 will break b43 and
ray_cs, as IOCARD is not -- as the name would suggest -- only needed
for cards using IO ports. Instead, as it re-deines several pins, it
is also required for using interrupts.

Signed-off-by: Dominik Brodowski <linux at dominikbrodowski.net>

diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index a9af0d7..0bdda5b 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -514,7 +514,9 @@ int pcmcia_enable_device(struct pcmcia_device *p_dev)
 	}
 
 	/* Pick memory or I/O card, DMA mode, interrupt */
-	if (p_dev->_io)
+	if (p_dev->_io || flags & CONF_ENABLE_IRQ)
+		flags |= CONF_ENABLE_IOCARD;
+	if (flags & CONF_ENABLE_IOCARD)
 		s->socket.flags |= SS_IOCARD;
 	if (flags & CONF_ENABLE_SPKR) {
 		s->socket.flags |= SS_SPKR_ENA;
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h
index d830c87..8479b66 100644
--- a/include/pcmcia/ds.h
+++ b/include/pcmcia/ds.h
@@ -259,6 +259,8 @@ void pcmcia_disable_device(struct pcmcia_device *p_dev);
 #define CONF_ENABLE_SPKR        0x0002
 #define CONF_ENABLE_PULSE_IRQ   0x0004
 #define CONF_ENABLE_ESR         0x0008
+#define CONF_ENABLE_IOCARD	0x0010 /* auto-enabled if IO resources or IRQ
+					* (CONF_ENABLE_IRQ) in use */
 
 /* flags used by pcmcia_loop_config() autoconfiguration */
 #define CONF_AUTO_CHECK_VCC	0x0100 /* check for matching Vcc? */



More information about the linux-pcmcia mailing list