linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: linux-hotplug@vger.kernel.org
Subject: Re: Adding PCMCIA support to the kernel tree -- developers needed.
Date: Sun, 04 Feb 2001 09:55:59 +0000	[thread overview]
Message-ID: <marc-linux-hotplug-98140333615703@msgid-missing> (raw)
In-Reply-To: <marc-linux-hotplug-98118528107653@msgid-missing>

On Sat, 3 Feb 2001, Miles Lane wrote:

> Well, would care to elaborate on what the PCI mess is, exactly?  

See attached patch. 

> I like the idea of not overloading drivers, if overloading leads to 
> horribly complex or unmaintainable code.  Is there any generic code in
> the 
> i82365 driver that you think should be split out and included in drivers
> for the various bridge drivers?

Some, yes. But I'm not sure there's enough there to justify doing so.

> Why do you think the codebase needs to be jettisoned?

It appears to be based on the PCMCIA spec. It allows for silly legacy 
drivers which work with only certain IRQs and IO addresses - sort of 
ioremap(MAP_FIXED) stuff. It's complex, racy, overdesigned, the layering 
is wrong... oh and it uses sleep_on() :)

I don't want that to come across as a criticism of David Hinds; there are 
reasons why some of it was specified like that, and maybe the code for 
other operating systems actually requires some of the stuff which appears 
in Linux to be superfluous. 

In another conversation, Linus has agreed with my assessment. 

> Which do you think should happen first:  you develop an exploratory 
> implementation or have a general discussion of design issues?

I'm in the middle of writing JFFS2 at the moment. An exploratory 
implementation isn't going to happen for a while. I think a discussion of 
design issues is worth having.

Bearing in mind that it's first thing on a Sunday morning and I haven't 
really fleshed this out very much yet (i.e. be kind), here's my basic 
idea.

Remove cardmgr completely. It doesn't do anything that can't be done from
an improved /sbin/hotplug usermodehelper.

We use the 'hotplug isapnp' concept. Pick fields which can be used in 
place of manufacturer and device ID to identify devices and match them 
with drivers. PCMCIA devices actually have mfr and device IDs - I'm not 
sure how reliable they are. They can also have a text string.

As with PCI, drivers register with the core PCMCIA code a pcmcia_device_id
table which identifies a superset of the devices they want to drive.  
Further elimination is done by the driver's probe() routine, which can 
check the CIS if it needs to, or check for the existing of the letters 
'modem' in the text string, etc. 

Upon arrival of a card, the CIS is parsed by the core code and turned into 
a set of resource structs in the pcmcia_dev_t, just like PCI. If 
necessary, a driver can fix these up before calling 
pcmcia_enable_device(). We probably want a way for resources to be enabled 
individually, rather than in one go with pcmcia_enable_device. Especially 
because some of them (attribute memory space/normal memory space) are 
mutually exclusive. 

The 'bus' abstraction is useful - see include/pcmcia/bus_ops.h. But also 
'grep --context=2 doesn include/linux/mtd/map.h' :) But now might not be 
the time to push that, as apparently Linus doesn't like it. I don't want 
that argument to get in the way. 

Core PCMCIA code has functions for parsing a CIS, doing the necessary 
resets and delays when cards are inserted, etc. Nothing on top of the 
socket drivers like ds.o at the moment. 

Expose the CIS to userspace via /proc/bus/pcmcia as a whole. We don't care 
if we have to duplicate the CIS parsing code in userspace and it's 
already in the kernel. 

Some way for userspace to override which driver gets to 'bind' to a
particular card? Maybe, but not with the ugly 'bind' stuff we already
have, and not by requiring userspace to get involved every time. Maybe
just 'echo drivername > /proc/bus/pcmcia/00/driver' and use 'drivername'
as an extra field to match in the core code when seeking a driver to go
with any particular card?


-- 
dwmw2




_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

  parent reply	other threads:[~2001-02-04  9:55 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-03  7:28 Adding PCMCIA support to the kernel tree -- developers needed Miles Lane
2001-02-03 10:07 ` Jeff Garzik
2001-02-03 19:27 ` David Woodhouse
2001-02-03 23:59 ` Miles Lane
2001-02-04  0:00 ` David Hinds
2001-02-04  0:05 ` David Woodhouse
2001-02-04  1:19 ` David Brownell
2001-02-04  1:58 ` Miles Lane
2001-02-04  3:26 ` Keith Owens
2001-02-04  5:59 ` Miles Lane
2001-02-04  8:56 ` David Hinds
2001-02-04  9:55 ` David Woodhouse [this message]
2001-02-04 10:00 ` David Woodhouse
2001-02-04 10:10 ` Oliver Neukum
2001-02-04 10:53 ` David Woodhouse
2001-02-04 11:37 ` David Woodhouse
2001-02-04 17:34 ` David Hinds
2001-02-04 18:02 ` Miles Lane
2001-02-04 18:16 ` Oliver Neukum
2001-02-04 18:54 ` Miles Lane
2001-02-05  1:14 ` Jeff Garzik
2001-02-05  1:56 ` David Brownell
2001-02-05  2:43 ` Miles Lane
2001-02-05  8:42 ` Miles Lane
2001-02-05 10:01 ` Keith Owens
2001-02-05 10:13 ` Keith Owens
2001-02-05 23:43 ` David Woodhouse
2001-02-05 23:45 ` David Woodhouse
2001-02-05 23:59 ` Oliver Neukum
2001-02-06  0:27 ` Miles Lane
2001-02-06  1:10 ` David Brownell
2001-02-06  1:40 ` David Brownell
2001-02-06  6:55 ` Miles Lane
2001-02-06  7:11 ` David Woodhouse
2001-02-06  7:58 ` David Hinds
2001-02-06  8:02 ` David Hinds
2001-02-06  8:13 ` David Hinds
2001-02-06  9:51 ` Oliver Neukum
2001-02-06 13:46 ` Andrew Morton
2001-02-06 15:15 ` Jeff Garzik
2001-02-06 15:20 ` David Woodhouse
2001-02-06 15:33 ` Oliver Neukum
2001-02-06 15:35 ` David Woodhouse
2001-02-06 15:54 ` Oliver Neukum
2001-02-06 16:43 ` Jeff Garzik
2001-02-06 18:56 ` David Brownell
2001-02-06 19:22 ` David Brownell
2001-02-06 19:31 ` David Brownell
2001-02-06 22:09 ` Adam J. Richter
2001-02-06 22:10 ` Andrew Morton
2001-02-06 22:50 ` Oliver Neukum
2001-02-06 23:07 ` Andrew Morton
2001-02-06 23:12 ` Andrew Morton
2001-02-06 23:14 ` Andrew Morton
2001-02-06 23:20 ` David Woodhouse
2001-02-06 23:30 ` Oliver Neukum
2001-02-06 23:34 ` Oliver Neukum
2001-02-06 23:36 ` Andrew Morton
2001-02-07  1:33 ` David Brownell
2001-02-07  2:11 ` Miles Lane
2001-02-07  2:38 ` Adam J. Richter
2001-02-07  9:02 ` Oliver Neukum
2001-02-07  9:09 ` Vojtech Pavlik
2001-02-07  9:10 ` David Woodhouse
2001-02-07  9:35 ` Oliver Neukum
2001-02-07  9:37 ` Vojtech Pavlik
2001-02-07  9:57 ` Oliver Neukum
2001-02-07 10:11 ` Vojtech Pavlik
2001-02-07 10:27 ` David Woodhouse
2001-02-07 10:29 ` Oliver Neukum
2001-02-07 10:30 ` David Woodhouse
2001-02-07 14:45 ` Oliver Neukum
2001-02-07 15:19 ` Adam J. Richter
2001-02-07 16:11 ` Oliver Neukum
2001-02-07 17:37 ` Miles Lane
2001-02-07 17:48 ` Vojtech Pavlik
2001-02-07 18:24 ` David Brownell
2001-02-07 18:42 ` David Brownell
2001-02-07 18:47 ` David Brownell
2001-02-07 18:47 ` Oliver Neukum
2001-02-07 19:00 ` David Brownell
2001-02-07 19:29 ` Vojtech Pavlik
2001-02-07 19:59 ` Miles Lane
2001-02-07 21:02 ` Oliver Neukum
2001-02-07 21:14 ` David Brownell
2001-02-07 22:43 ` Oliver Neukum
2001-02-08  7:22 ` Miles Lane
2001-02-08  9:29 ` Adam J. Richter
2001-02-08 10:24 ` Oliver Neukum
2001-02-08 12:47 ` Andrew Morton
2001-02-08 13:22 ` Oliver Neukum
2001-02-08 13:49 ` Andrew Morton
2001-02-08 14:07 ` Oliver Neukum
2001-02-08 15:00 ` Vojtech Pavlik
2001-02-08 15:10 ` Vojtech Pavlik
2001-02-08 15:13 ` Vojtech Pavlik
2001-02-09  7:42 ` Vojtech Pavlik
2001-02-09 11:48 ` Oliver Neukum
2001-02-09 12:45 ` Vojtech Pavlik
2001-02-09 13:09 ` Oliver Neukum
2001-02-09 14:15 ` David Brownell
2001-02-09 15:45 ` Vojtech Pavlik
2001-02-26 17:47 ` David Brownell
2001-02-26 21:45 ` Chris Brand
2001-02-27  7:56 ` David Hinds
2001-02-28 16:56 ` David Brownell
2001-02-28 17:32 ` David Hinds

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-hotplug-98140333615703@msgid-missing \
    --to=dwmw2@infradead.org \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).