All of lore.kernel.org
 help / color / mirror / Atom feed
From: Olaf Hering <olaf@aepfle.de>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] generic check_legacy_ioport
Date: Tue, 24 Apr 2007 13:25:30 +0200	[thread overview]
Message-ID: <20070424112530.GA11489@aepfle.de> (raw)
In-Reply-To: <1177376000.14873.38.camel@localhost.localdomain>

On Tue, Apr 24, Benjamin Herrenschmidt wrote:

> Ok, I like the aproach, but why the heck those ifdef's ? Can't you just
> remove them ?

Just to keep it small for .configs without floppy, PS/2 etc. I can
remove it.

> > +	if (np) {
> > +		of_node_put(np);
> >  		return 0;
> 
> And also check now if the parent is "isa". Just to be sure. If a
> platform won't match that, then it will need it's own
> check_legacy_ioport which is fine with me.

Do you think a device_type fdc, i8042 or ipmi will appear outside an isa
node?

> To be totally correct, we should -also- check if the port number fits in
> the the actual "reg" property but I'm not sure I can be bothered :-)

Why all this complexity? Its there mainly to match a class of boards,
not to match a specific device configuration.

Thats how it may look finally, currently only compile tested.

int check_legacy_ioport(unsigned long base_port)
{
        struct device_node *parent, *np = NULL;
        int ret = -ENODEV;

        switch(base_port) {
        case I8042_DATA_REG:
                np = of_find_node_by_type(NULL, "8042");
                break;
        case FDC_BASE: /* FDC1 */
                np = of_find_node_by_type(NULL, "fdc");
                break;
        case 0xca2:
        case 0xca9:
        case 0xe4:
                np = of_find_node_by_type(NULL, "ipmi");
                break;
#ifdef CONFIG_PPC_PREP
        case _PIDXR:
        case _PNPWRP:
        case PNPBIOS_BASE:
                /* implement me */
#endif
        default:
                break;
        }
        if (np) {
                parent = of_get_parent(np);
                if (parent) {
                        ret = strcmp(parent->type, "isa");
                        of_node_put(parent);
                }
                of_node_put(np);
        }
        return ret;
}

  reply	other threads:[~2007-04-24 11:25 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-17 21:07 [PATCH] generic check_legacy_ioport Olaf Hering
2007-04-17 21:22 ` Arnd Bergmann
2007-04-17 23:28   ` Segher Boessenkool
2007-04-20 18:51 ` Olaf Hering
2007-04-22  5:15   ` Milton Miller
2007-04-22  6:46     ` Olaf Hering
2007-04-23  8:15 ` [PATCH] " Olaf Hering
2007-04-24  0:53   ` Benjamin Herrenschmidt
2007-04-24 11:25     ` Olaf Hering [this message]
2007-04-24 15:45       ` Milton Miller
2007-04-24 18:54       ` Olaf Hering
2007-04-24 22:01         ` Arnd Bergmann
2007-04-25  0:12           ` Benjamin Herrenschmidt
2007-04-25  1:54           ` Segher Boessenkool
2007-04-25  7:49             ` Arnd Bergmann
2007-04-25 13:33               ` Segher Boessenkool
2007-04-25 22:02                 ` Arnd Bergmann
2007-04-25  0:09         ` Benjamin Herrenschmidt
2007-04-24 22:34       ` Benjamin Herrenschmidt
2007-04-25 20:36   ` Olaf Hering

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=20070424112530.GA11489@aepfle.de \
    --to=olaf@aepfle.de \
    --cc=benh@kernel.crashing.org \
    --cc=linuxppc-dev@ozlabs.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.