Re: [git patches] IDE updates (part 2)

2007-10-25 Thread Jeff Garzik

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
index be30923..842fe08 100644
--- a/drivers/ata/pata_icside.c
+++ b/drivers/ata/pata_icside.c
@@ -332,12 +332,13 @@ static void ata_dummy_noret(struct ata_port *port)


applied


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-25 Thread Jeff Garzik

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
index be30923..842fe08 100644
--- a/drivers/ata/pata_icside.c
+++ b/drivers/ata/pata_icside.c
@@ -332,12 +332,13 @@ static void ata_dummy_noret(struct ata_port *port)


applied


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-24 Thread Jeff Garzik

Russell King wrote:

On Wed, Oct 24, 2007 at 08:53:09AM -0400, Jeff Garzik wrote:

Russell King wrote:

On Mon, Oct 15, 2007 at 04:07:47PM -0400, Jeff Garzik wrote:

Russell King wrote:

On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

ACK from me too...  ARM folks?

Will test tomorrow/Wednesday.
Thanks.  Sorry about missing your CC on the libata-wide ata_link 
changes.  We should have poked the maintainers on that, for the drivers 
we cannot build ourselves.

I think Viro's patch got an ack from everyone.  Who's dealing with getting
this regression fix into mainline?  It seems at the moment the patch is in
limbo.
I was waiting on you, who last said "Will test tomorrow/Wednesday" (with 
presumably an ACK forthcoming after test results)


If it now has your ACK, it's ready and waiting in my mbox queue to be 
merged upstream.


Looks like it got my ack more than a week ago:


Groovy.

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-24 Thread Russell King
On Wed, Oct 24, 2007 at 08:53:09AM -0400, Jeff Garzik wrote:
> Russell King wrote:
> >On Mon, Oct 15, 2007 at 04:07:47PM -0400, Jeff Garzik wrote:
> >>Russell King wrote:
> >>>On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:
> >>>>Al Viro wrote:
> >>>>>Proposed addition to icside part, provided that ARM folks ACK it - gets
> >>>>>icside to build and AFAICS it's correct:
> >>>>ACK from me too...  ARM folks?
> >>>Will test tomorrow/Wednesday.
> >>Thanks.  Sorry about missing your CC on the libata-wide ata_link 
> >>changes.  We should have poked the maintainers on that, for the drivers 
> >>we cannot build ourselves.
> >
> >I think Viro's patch got an ack from everyone.  Who's dealing with getting
> >this regression fix into mainline?  It seems at the moment the patch is in
> >limbo.
> 
> I was waiting on you, who last said "Will test tomorrow/Wednesday" (with 
> presumably an ACK forthcoming after test results)
> 
> If it now has your ACK, it's ready and waiting in my mbox queue to be 
> merged upstream.

Looks like it got my ack more than a week ago:

| Date: Tue, 16 Oct 2007 16:55:07 +0100
| From: Russell King <[EMAIL PROTECTED]>
| To: Al Viro <[EMAIL PROTECTED]>
| Cc: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>,
| Linus Torvalds <[EMAIL PROTECTED]>,
| [EMAIL PROTECTED], linux-kernel@vger.kernel.org
| Subject: Re: [git patches] IDE updates (part 2)
| 
| On Sun, Oct 14, 2007 at 01:12:39AM +0100, Al Viro wrote:
| > Proposed addition to icside part, provided that ARM folks ACK it - gets
| > icside to build and AFAICS it's correct:
| 
| Booted and tested as working.
| 
| Whatever-tag-that-is: Russell King <[EMAIL PROTECTED]>

which I gave to the _initial_ message asking for my ack.  And no, before
you whinge and moan, I didn't drop any CC's.

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-24 Thread Jeff Garzik

Russell King wrote:

On Mon, Oct 15, 2007 at 04:07:47PM -0400, Jeff Garzik wrote:

Russell King wrote:

On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

ACK from me too...  ARM folks?

Will test tomorrow/Wednesday.
Thanks.  Sorry about missing your CC on the libata-wide ata_link 
changes.  We should have poked the maintainers on that, for the drivers 
we cannot build ourselves.


I think Viro's patch got an ack from everyone.  Who's dealing with getting
this regression fix into mainline?  It seems at the moment the patch is in
limbo.


I was waiting on you, who last said "Will test tomorrow/Wednesday" (with 
presumably an ACK forthcoming after test results)


If it now has your ACK, it's ready and waiting in my mbox queue to be 
merged upstream.


Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-24 Thread Russell King
On Mon, Oct 15, 2007 at 04:07:47PM -0400, Jeff Garzik wrote:
> Russell King wrote:
> >On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:
> >>Al Viro wrote:
> >>>Proposed addition to icside part, provided that ARM folks ACK it - gets
> >>>icside to build and AFAICS it's correct:
> >>ACK from me too...  ARM folks?
> >
> >Will test tomorrow/Wednesday.
> 
> Thanks.  Sorry about missing your CC on the libata-wide ata_link 
> changes.  We should have poked the maintainers on that, for the drivers 
> we cannot build ourselves.

I think Viro's patch got an ack from everyone.  Who's dealing with getting
this regression fix into mainline?  It seems at the moment the patch is in
limbo.

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-24 Thread Russell King
On Mon, Oct 15, 2007 at 04:07:47PM -0400, Jeff Garzik wrote:
 Russell King wrote:
 On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:
 Al Viro wrote:
 Proposed addition to icside part, provided that ARM folks ACK it - gets
 icside to build and AFAICS it's correct:
 ACK from me too...  ARM folks?
 
 Will test tomorrow/Wednesday.
 
 Thanks.  Sorry about missing your CC on the libata-wide ata_link 
 changes.  We should have poked the maintainers on that, for the drivers 
 we cannot build ourselves.

I think Viro's patch got an ack from everyone.  Who's dealing with getting
this regression fix into mainline?  It seems at the moment the patch is in
limbo.

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-24 Thread Jeff Garzik

Russell King wrote:

On Mon, Oct 15, 2007 at 04:07:47PM -0400, Jeff Garzik wrote:

Russell King wrote:

On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

ACK from me too...  ARM folks?

Will test tomorrow/Wednesday.
Thanks.  Sorry about missing your CC on the libata-wide ata_link 
changes.  We should have poked the maintainers on that, for the drivers 
we cannot build ourselves.


I think Viro's patch got an ack from everyone.  Who's dealing with getting
this regression fix into mainline?  It seems at the moment the patch is in
limbo.


I was waiting on you, who last said Will test tomorrow/Wednesday (with 
presumably an ACK forthcoming after test results)


If it now has your ACK, it's ready and waiting in my mbox queue to be 
merged upstream.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-24 Thread Russell King
On Wed, Oct 24, 2007 at 08:53:09AM -0400, Jeff Garzik wrote:
 Russell King wrote:
 On Mon, Oct 15, 2007 at 04:07:47PM -0400, Jeff Garzik wrote:
 Russell King wrote:
 On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:
 Al Viro wrote:
 Proposed addition to icside part, provided that ARM folks ACK it - gets
 icside to build and AFAICS it's correct:
 ACK from me too...  ARM folks?
 Will test tomorrow/Wednesday.
 Thanks.  Sorry about missing your CC on the libata-wide ata_link 
 changes.  We should have poked the maintainers on that, for the drivers 
 we cannot build ourselves.
 
 I think Viro's patch got an ack from everyone.  Who's dealing with getting
 this regression fix into mainline?  It seems at the moment the patch is in
 limbo.
 
 I was waiting on you, who last said Will test tomorrow/Wednesday (with 
 presumably an ACK forthcoming after test results)
 
 If it now has your ACK, it's ready and waiting in my mbox queue to be 
 merged upstream.

Looks like it got my ack more than a week ago:

| Date: Tue, 16 Oct 2007 16:55:07 +0100
| From: Russell King [EMAIL PROTECTED]
| To: Al Viro [EMAIL PROTECTED]
| Cc: Bartlomiej Zolnierkiewicz [EMAIL PROTECTED],
| Linus Torvalds [EMAIL PROTECTED],
| [EMAIL PROTECTED], linux-kernel@vger.kernel.org
| Subject: Re: [git patches] IDE updates (part 2)
| 
| On Sun, Oct 14, 2007 at 01:12:39AM +0100, Al Viro wrote:
|  Proposed addition to icside part, provided that ARM folks ACK it - gets
|  icside to build and AFAICS it's correct:
| 
| Booted and tested as working.
| 
| Whatever-tag-that-is: Russell King [EMAIL PROTECTED]

which I gave to the _initial_ message asking for my ack.  And no, before
you whinge and moan, I didn't drop any CC's.

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-24 Thread Jeff Garzik

Russell King wrote:

On Wed, Oct 24, 2007 at 08:53:09AM -0400, Jeff Garzik wrote:

Russell King wrote:

On Mon, Oct 15, 2007 at 04:07:47PM -0400, Jeff Garzik wrote:

Russell King wrote:

On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

ACK from me too...  ARM folks?

Will test tomorrow/Wednesday.
Thanks.  Sorry about missing your CC on the libata-wide ata_link 
changes.  We should have poked the maintainers on that, for the drivers 
we cannot build ourselves.

I think Viro's patch got an ack from everyone.  Who's dealing with getting
this regression fix into mainline?  It seems at the moment the patch is in
limbo.
I was waiting on you, who last said Will test tomorrow/Wednesday (with 
presumably an ACK forthcoming after test results)


If it now has your ACK, it's ready and waiting in my mbox queue to be 
merged upstream.


Looks like it got my ack more than a week ago:


Groovy.

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-16 Thread Bartlomiej Zolnierkiewicz
On Sunday 14 October 2007, Benjamin Herrenschmidt wrote:
> 
> > How's about this patch?
> > 
> > [PATCH] ide-pmac: fix pmac_ide_init_hwif_ports()
> > 
> > * pmac_ide_init_hwif_ports() can be called by ide_init_hwif_ports()
> >   (through ppc_ide_md.ide_init_hwif hook) for non IDE PMAC interfaces.
> >   If this is the case the hw->io_ports[] should be already setup by
> >   ide_init_hwif_ports()->ide_std_init_ports() so remove redundant code
> >   from pmac_ide_init_hwif_ports().
> > 
> >   As side-effect this change fixes ctl_addr == 0 special handling in
> >   ide_init_hwif_ports().
> > 
> > * Fix misleading comment while at it.
> 
> I would have to try it. Problem is, I don't actually have any powermac
> with a PCI IDE controller at hand.. ouch. I'll see what I can find.

Same problem here, would be great if somebody with PMAC could test
this patch (should apply cleanly to Linus' tree).

Well, since the change is pretty safe I'm adding the patch to IDE tree
(so it hopefully gets tested through -mm).

Thanks,
Bart
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-16 Thread Russell King
On Sun, Oct 14, 2007 at 01:12:39AM +0100, Al Viro wrote:
> Proposed addition to icside part, provided that ARM folks ACK it - gets
> icside to build and AFAICS it's correct:

Booted and tested as working.

Whatever-tag-that-is: Russell King <[EMAIL PROTECTED]>

> diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
> index be30923..842fe08 100644
> --- a/drivers/ata/pata_icside.c
> +++ b/drivers/ata/pata_icside.c
> @@ -332,12 +332,13 @@ static void ata_dummy_noret(struct ata_port *port)
>  {
>  }
>  
> -static void pata_icside_postreset(struct ata_port *ap, unsigned int *classes)
> +static void pata_icside_postreset(struct ata_link *link, unsigned int 
> *classes)
>  {
> + struct ata_port *ap = link->ap;
>   struct pata_icside_state *state = ap->host->private_data;
>  
>   if (classes[0] != ATA_DEV_NONE || classes[1] != ATA_DEV_NONE)
> - return ata_std_postreset(ap, classes);
> + return ata_std_postreset(link, classes);
>  
>   state->port[ap->port_no].disabled = 1;
>  
> @@ -395,29 +396,30 @@ static struct ata_port_operations pata_icside_port_ops 
> = {
>  
>  static void __devinit
>  pata_icside_setup_ioaddr(struct ata_port *ap, void __iomem *base,
> -  const struct portinfo *info)
> +  struct pata_icside_info *info,
> +  const struct portinfo *port)
>  {
>   struct ata_ioports *ioaddr = >ioaddr;
> - void __iomem *cmd = base + info->dataoffset;
> + void __iomem *cmd = base + port->dataoffset;
>  
>   ioaddr->cmd_addr= cmd;
> - ioaddr->data_addr   = cmd + (ATA_REG_DATA<< info->stepping);
> - ioaddr->error_addr  = cmd + (ATA_REG_ERR << info->stepping);
> - ioaddr->feature_addr= cmd + (ATA_REG_FEATURE << info->stepping);
> - ioaddr->nsect_addr  = cmd + (ATA_REG_NSECT   << info->stepping);
> - ioaddr->lbal_addr   = cmd + (ATA_REG_LBAL<< info->stepping);
> - ioaddr->lbam_addr   = cmd + (ATA_REG_LBAM<< info->stepping);
> - ioaddr->lbah_addr   = cmd + (ATA_REG_LBAH<< info->stepping);
> - ioaddr->device_addr = cmd + (ATA_REG_DEVICE  << info->stepping);
> - ioaddr->status_addr = cmd + (ATA_REG_STATUS  << info->stepping);
> - ioaddr->command_addr= cmd + (ATA_REG_CMD << info->stepping);
> -
> - ioaddr->ctl_addr= base + info->ctrloffset;
> + ioaddr->data_addr   = cmd + (ATA_REG_DATA<< port->stepping);
> + ioaddr->error_addr  = cmd + (ATA_REG_ERR << port->stepping);
> + ioaddr->feature_addr= cmd + (ATA_REG_FEATURE << port->stepping);
> + ioaddr->nsect_addr  = cmd + (ATA_REG_NSECT   << port->stepping);
> + ioaddr->lbal_addr   = cmd + (ATA_REG_LBAL<< port->stepping);
> + ioaddr->lbam_addr   = cmd + (ATA_REG_LBAM<< port->stepping);
> + ioaddr->lbah_addr   = cmd + (ATA_REG_LBAH<< port->stepping);
> + ioaddr->device_addr = cmd + (ATA_REG_DEVICE  << port->stepping);
> + ioaddr->status_addr = cmd + (ATA_REG_STATUS  << port->stepping);
> + ioaddr->command_addr= cmd + (ATA_REG_CMD << port->stepping);
> +
> + ioaddr->ctl_addr= base + port->ctrloffset;
>   ioaddr->altstatus_addr  = ioaddr->ctl_addr;
>  
>   ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx",
> -   info->raw_base + info->dataoffset,
> -   info->raw_base + info->ctrloffset);
> +   info->raw_base + port->dataoffset,
> +   info->raw_base + port->ctrloffset);
>  
>   if (info->raw_ioc_base)
>   ata_port_desc(ap, "iocbase 0x%lx", info->raw_ioc_base);
> @@ -441,7 +443,7 @@ static int __devinit pata_icside_register_v5(struct 
> pata_icside_info *info)
>   info->nr_ports = 1;
>   info->port[0] = _icside_portinfo_v5;
>  
> - info->raw_base = ecard_resource_start(ec, ECARD_RES_MEMC);
> + info->raw_base = ecard_resource_start(info->ec, ECARD_RES_MEMC);
>  
>   return 0;
>  }
> @@ -522,7 +524,7 @@ static int __devinit pata_icside_add_ports(struct 
> pata_icside_info *info)
>   ap->flags |= ATA_FLAG_SLAVE_POSS;
>   ap->ops = _icside_port_ops;
>  
> - pata_icside_setup_ioaddr(ap, info->base, info->port[i]);
> + pata_icside_setup_ioaddr(ap, info->base, info, info->port[i]);
>   }
>  
>   return ata_host_activate(host, ec->irq, ata_interrupt, 0,

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-16 Thread Russell King
On Sun, Oct 14, 2007 at 01:12:39AM +0100, Al Viro wrote:
 Proposed addition to icside part, provided that ARM folks ACK it - gets
 icside to build and AFAICS it's correct:

Booted and tested as working.

Whatever-tag-that-is: Russell King [EMAIL PROTECTED]

 diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
 index be30923..842fe08 100644
 --- a/drivers/ata/pata_icside.c
 +++ b/drivers/ata/pata_icside.c
 @@ -332,12 +332,13 @@ static void ata_dummy_noret(struct ata_port *port)
  {
  }
  
 -static void pata_icside_postreset(struct ata_port *ap, unsigned int *classes)
 +static void pata_icside_postreset(struct ata_link *link, unsigned int 
 *classes)
  {
 + struct ata_port *ap = link-ap;
   struct pata_icside_state *state = ap-host-private_data;
  
   if (classes[0] != ATA_DEV_NONE || classes[1] != ATA_DEV_NONE)
 - return ata_std_postreset(ap, classes);
 + return ata_std_postreset(link, classes);
  
   state-port[ap-port_no].disabled = 1;
  
 @@ -395,29 +396,30 @@ static struct ata_port_operations pata_icside_port_ops 
 = {
  
  static void __devinit
  pata_icside_setup_ioaddr(struct ata_port *ap, void __iomem *base,
 -  const struct portinfo *info)
 +  struct pata_icside_info *info,
 +  const struct portinfo *port)
  {
   struct ata_ioports *ioaddr = ap-ioaddr;
 - void __iomem *cmd = base + info-dataoffset;
 + void __iomem *cmd = base + port-dataoffset;
  
   ioaddr-cmd_addr= cmd;
 - ioaddr-data_addr   = cmd + (ATA_REG_DATA info-stepping);
 - ioaddr-error_addr  = cmd + (ATA_REG_ERR  info-stepping);
 - ioaddr-feature_addr= cmd + (ATA_REG_FEATURE  info-stepping);
 - ioaddr-nsect_addr  = cmd + (ATA_REG_NSECTinfo-stepping);
 - ioaddr-lbal_addr   = cmd + (ATA_REG_LBAL info-stepping);
 - ioaddr-lbam_addr   = cmd + (ATA_REG_LBAM info-stepping);
 - ioaddr-lbah_addr   = cmd + (ATA_REG_LBAH info-stepping);
 - ioaddr-device_addr = cmd + (ATA_REG_DEVICE   info-stepping);
 - ioaddr-status_addr = cmd + (ATA_REG_STATUS   info-stepping);
 - ioaddr-command_addr= cmd + (ATA_REG_CMD  info-stepping);
 -
 - ioaddr-ctl_addr= base + info-ctrloffset;
 + ioaddr-data_addr   = cmd + (ATA_REG_DATA port-stepping);
 + ioaddr-error_addr  = cmd + (ATA_REG_ERR  port-stepping);
 + ioaddr-feature_addr= cmd + (ATA_REG_FEATURE  port-stepping);
 + ioaddr-nsect_addr  = cmd + (ATA_REG_NSECTport-stepping);
 + ioaddr-lbal_addr   = cmd + (ATA_REG_LBAL port-stepping);
 + ioaddr-lbam_addr   = cmd + (ATA_REG_LBAM port-stepping);
 + ioaddr-lbah_addr   = cmd + (ATA_REG_LBAH port-stepping);
 + ioaddr-device_addr = cmd + (ATA_REG_DEVICE   port-stepping);
 + ioaddr-status_addr = cmd + (ATA_REG_STATUS   port-stepping);
 + ioaddr-command_addr= cmd + (ATA_REG_CMD  port-stepping);
 +
 + ioaddr-ctl_addr= base + port-ctrloffset;
   ioaddr-altstatus_addr  = ioaddr-ctl_addr;
  
   ata_port_desc(ap, cmd 0x%lx ctl 0x%lx,
 -   info-raw_base + info-dataoffset,
 -   info-raw_base + info-ctrloffset);
 +   info-raw_base + port-dataoffset,
 +   info-raw_base + port-ctrloffset);
  
   if (info-raw_ioc_base)
   ata_port_desc(ap, iocbase 0x%lx, info-raw_ioc_base);
 @@ -441,7 +443,7 @@ static int __devinit pata_icside_register_v5(struct 
 pata_icside_info *info)
   info-nr_ports = 1;
   info-port[0] = pata_icside_portinfo_v5;
  
 - info-raw_base = ecard_resource_start(ec, ECARD_RES_MEMC);
 + info-raw_base = ecard_resource_start(info-ec, ECARD_RES_MEMC);
  
   return 0;
  }
 @@ -522,7 +524,7 @@ static int __devinit pata_icside_add_ports(struct 
 pata_icside_info *info)
   ap-flags |= ATA_FLAG_SLAVE_POSS;
   ap-ops = pata_icside_port_ops;
  
 - pata_icside_setup_ioaddr(ap, info-base, info-port[i]);
 + pata_icside_setup_ioaddr(ap, info-base, info, info-port[i]);
   }
  
   return ata_host_activate(host, ec-irq, ata_interrupt, 0,

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-16 Thread Bartlomiej Zolnierkiewicz
On Sunday 14 October 2007, Benjamin Herrenschmidt wrote:
 
  How's about this patch?
  
  [PATCH] ide-pmac: fix pmac_ide_init_hwif_ports()
  
  * pmac_ide_init_hwif_ports() can be called by ide_init_hwif_ports()
(through ppc_ide_md.ide_init_hwif hook) for non IDE PMAC interfaces.
If this is the case the hw-io_ports[] should be already setup by
ide_init_hwif_ports()-ide_std_init_ports() so remove redundant code
from pmac_ide_init_hwif_ports().
  
As side-effect this change fixes ctl_addr == 0 special handling in
ide_init_hwif_ports().
  
  * Fix misleading comment while at it.
 
 I would have to try it. Problem is, I don't actually have any powermac
 with a PCI IDE controller at hand.. ouch. I'll see what I can find.

Same problem here, would be great if somebody with PMAC could test
this patch (should apply cleanly to Linus' tree).

Well, since the change is pretty safe I'm adding the patch to IDE tree
(so it hopefully gets tested through -mm).

Thanks,
Bart
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-15 Thread Jeff Garzik

Russell King wrote:

On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

ACK from me too...  ARM folks?


Will test tomorrow/Wednesday.


Thanks.  Sorry about missing your CC on the libata-wide ata_link 
changes.  We should have poked the maintainers on that, for the drivers 
we cannot build ourselves.





-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-15 Thread Russell King
On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:
> Al Viro wrote:
> >Proposed addition to icside part, provided that ARM folks ACK it - gets
> >icside to build and AFAICS it's correct:
> 
> ACK from me too...  ARM folks?

Will test tomorrow/Wednesday.

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-15 Thread Jeff Garzik

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:


ACK from me too...  ARM folks?




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-15 Thread Jeff Garzik

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:


ACK from me too...  ARM folks?




-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-15 Thread Russell King
On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:
 Al Viro wrote:
 Proposed addition to icside part, provided that ARM folks ACK it - gets
 icside to build and AFAICS it's correct:
 
 ACK from me too...  ARM folks?

Will test tomorrow/Wednesday.

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-15 Thread Jeff Garzik

Russell King wrote:

On Mon, Oct 15, 2007 at 03:54:16PM -0400, Jeff Garzik wrote:

Al Viro wrote:

Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

ACK from me too...  ARM folks?


Will test tomorrow/Wednesday.


Thanks.  Sorry about missing your CC on the libata-wide ata_link 
changes.  We should have poked the maintainers on that, for the drivers 
we cannot build ourselves.





-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-14 Thread Benjamin Herrenschmidt

> How's about this patch?
> 
> [PATCH] ide-pmac: fix pmac_ide_init_hwif_ports()
> 
> * pmac_ide_init_hwif_ports() can be called by ide_init_hwif_ports()
>   (through ppc_ide_md.ide_init_hwif hook) for non IDE PMAC interfaces.
>   If this is the case the hw->io_ports[] should be already setup by
>   ide_init_hwif_ports()->ide_std_init_ports() so remove redundant code
>   from pmac_ide_init_hwif_ports().
> 
>   As side-effect this change fixes ctl_addr == 0 special handling in
>   ide_init_hwif_ports().
> 
> * Fix misleading comment while at it.

I would have to try it. Problem is, I don't actually have any powermac
with a PCI IDE controller at hand.. ouch. I'll see what I can find.

Ben.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-14 Thread Bartlomiej Zolnierkiewicz
On Sunday 14 October 2007, Benjamin Herrenschmidt wrote:
> 
> On Sun, 2007-10-14 at 00:41 +0200, Bartlomiej Zolnierkiewicz wrote:
> > On Sunday 14 October 2007, Alan Cox wrote:
> > > > > > /* Probably a PCI interface... */
> > > > > > for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i)
> > > > > > hw->io_ports[i] = data_port + i - 
> > > > > > IDE_DATA_OFFSET;
> > > > > > hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
> > > 
> > > Ok so in actual fact
> > > 
> > > - The piece of code above can't be executed anyway
> > > - The ctrl_port argument is not needed ?
> > 
> > pmac_ide_init_hwif_ports() is also called by ide_init_hwif_ports()
> > through ppc_ide_md.init_hwif.
> 
> In which case it should be called with a ctrl_port right ?

Yep.

How's about this patch?

[PATCH] ide-pmac: fix pmac_ide_init_hwif_ports()

* pmac_ide_init_hwif_ports() can be called by ide_init_hwif_ports()
  (through ppc_ide_md.ide_init_hwif hook) for non IDE PMAC interfaces.
  If this is the case the hw->io_ports[] should be already setup by
  ide_init_hwif_ports()->ide_std_init_ports() so remove redundant code
  from pmac_ide_init_hwif_ports().

  As side-effect this change fixes ctl_addr == 0 special handling in
  ide_init_hwif_ports().

* Fix misleading comment while at it.

Cc: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
Cc: Alan Cox <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ppc/pmac.c |9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

Index: b/drivers/ide/ppc/pmac.c
===
--- a/drivers/ide/ppc/pmac.c
+++ b/drivers/ide/ppc/pmac.c
@@ -438,13 +438,8 @@ pmac_ide_init_hwif_ports(hw_regs_t *hw,
if (data_port == pmac_ide[ix].regbase)
break;
 
-   if (ix >= MAX_HWIFS) {
-   /* Probably a PCI interface... */
-   for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i)
-   hw->io_ports[i] = data_port + i - IDE_DATA_OFFSET;
-   hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
-   return;
-   }
+   if (ix >= MAX_HWIFS)
+   return; /* not an IDE PMAC interface */
 
for (i = 0; i < 8; ++i)
hw->io_ports[i] = data_port + i * 0x10;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-14 Thread Bartlomiej Zolnierkiewicz
On Sunday 14 October 2007, Al Viro wrote:
> Proposed addition to icside part, provided that ARM folks ACK it - gets
> icside to build and AFAICS it's correct:

the patch looks good and gets my ACK but it is for Jeff ;)

> diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
> index be30923..842fe08 100644
> --- a/drivers/ata/pata_icside.c
> +++ b/drivers/ata/pata_icside.c
> @@ -332,12 +332,13 @@ static void ata_dummy_noret(struct ata_port *port)
>  {
>  }
>  
> -static void pata_icside_postreset(struct ata_port *ap, unsigned int *classes)
> +static void pata_icside_postreset(struct ata_link *link, unsigned int 
> *classes)
>  {
> + struct ata_port *ap = link->ap;
>   struct pata_icside_state *state = ap->host->private_data;
>  
>   if (classes[0] != ATA_DEV_NONE || classes[1] != ATA_DEV_NONE)
> - return ata_std_postreset(ap, classes);
> + return ata_std_postreset(link, classes);
>  
>   state->port[ap->port_no].disabled = 1;
>  
> @@ -395,29 +396,30 @@ static struct ata_port_operations pata_icside_port_ops 
> = {
>  
>  static void __devinit
>  pata_icside_setup_ioaddr(struct ata_port *ap, void __iomem *base,
> -  const struct portinfo *info)
> +  struct pata_icside_info *info,
> +  const struct portinfo *port)
>  {
>   struct ata_ioports *ioaddr = >ioaddr;
> - void __iomem *cmd = base + info->dataoffset;
> + void __iomem *cmd = base + port->dataoffset;
>  
>   ioaddr->cmd_addr= cmd;
> - ioaddr->data_addr   = cmd + (ATA_REG_DATA<< info->stepping);
> - ioaddr->error_addr  = cmd + (ATA_REG_ERR << info->stepping);
> - ioaddr->feature_addr= cmd + (ATA_REG_FEATURE << info->stepping);
> - ioaddr->nsect_addr  = cmd + (ATA_REG_NSECT   << info->stepping);
> - ioaddr->lbal_addr   = cmd + (ATA_REG_LBAL<< info->stepping);
> - ioaddr->lbam_addr   = cmd + (ATA_REG_LBAM<< info->stepping);
> - ioaddr->lbah_addr   = cmd + (ATA_REG_LBAH<< info->stepping);
> - ioaddr->device_addr = cmd + (ATA_REG_DEVICE  << info->stepping);
> - ioaddr->status_addr = cmd + (ATA_REG_STATUS  << info->stepping);
> - ioaddr->command_addr= cmd + (ATA_REG_CMD << info->stepping);
> -
> - ioaddr->ctl_addr= base + info->ctrloffset;
> + ioaddr->data_addr   = cmd + (ATA_REG_DATA<< port->stepping);
> + ioaddr->error_addr  = cmd + (ATA_REG_ERR << port->stepping);
> + ioaddr->feature_addr= cmd + (ATA_REG_FEATURE << port->stepping);
> + ioaddr->nsect_addr  = cmd + (ATA_REG_NSECT   << port->stepping);
> + ioaddr->lbal_addr   = cmd + (ATA_REG_LBAL<< port->stepping);
> + ioaddr->lbam_addr   = cmd + (ATA_REG_LBAM<< port->stepping);
> + ioaddr->lbah_addr   = cmd + (ATA_REG_LBAH<< port->stepping);
> + ioaddr->device_addr = cmd + (ATA_REG_DEVICE  << port->stepping);
> + ioaddr->status_addr = cmd + (ATA_REG_STATUS  << port->stepping);
> + ioaddr->command_addr= cmd + (ATA_REG_CMD << port->stepping);
> +
> + ioaddr->ctl_addr= base + port->ctrloffset;
>   ioaddr->altstatus_addr  = ioaddr->ctl_addr;
>  
>   ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx",
> -   info->raw_base + info->dataoffset,
> -   info->raw_base + info->ctrloffset);
> +   info->raw_base + port->dataoffset,
> +   info->raw_base + port->ctrloffset);
>  
>   if (info->raw_ioc_base)
>   ata_port_desc(ap, "iocbase 0x%lx", info->raw_ioc_base);
> @@ -441,7 +443,7 @@ static int __devinit pata_icside_register_v5(struct 
> pata_icside_info *info)
>   info->nr_ports = 1;
>   info->port[0] = _icside_portinfo_v5;
>  
> - info->raw_base = ecard_resource_start(ec, ECARD_RES_MEMC);
> + info->raw_base = ecard_resource_start(info->ec, ECARD_RES_MEMC);
>  
>   return 0;
>  }
> @@ -522,7 +524,7 @@ static int __devinit pata_icside_add_ports(struct 
> pata_icside_info *info)
>   ap->flags |= ATA_FLAG_SLAVE_POSS;
>   ap->ops = _icside_port_ops;
>  
> - pata_icside_setup_ioaddr(ap, info->base, info->port[i]);
> + pata_icside_setup_ioaddr(ap, info->base, info, info->port[i]);
>   }
>  
>   return ata_host_activate(host, ec->irq, ata_interrupt, 0,
> 


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-14 Thread Bartlomiej Zolnierkiewicz
On Sunday 14 October 2007, Benjamin Herrenschmidt wrote:
 
 On Sun, 2007-10-14 at 00:41 +0200, Bartlomiej Zolnierkiewicz wrote:
  On Sunday 14 October 2007, Alan Cox wrote:
  /* Probably a PCI interface... */
  for (i = IDE_DATA_OFFSET; i = IDE_STATUS_OFFSET; ++i)
  hw-io_ports[i] = data_port + i - 
  IDE_DATA_OFFSET;
  hw-io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
   
   Ok so in actual fact
   
   - The piece of code above can't be executed anyway
   - The ctrl_port argument is not needed ?
  
  pmac_ide_init_hwif_ports() is also called by ide_init_hwif_ports()
  through ppc_ide_md.init_hwif.
 
 In which case it should be called with a ctrl_port right ?

Yep.

How's about this patch?

[PATCH] ide-pmac: fix pmac_ide_init_hwif_ports()

* pmac_ide_init_hwif_ports() can be called by ide_init_hwif_ports()
  (through ppc_ide_md.ide_init_hwif hook) for non IDE PMAC interfaces.
  If this is the case the hw-io_ports[] should be already setup by
  ide_init_hwif_ports()-ide_std_init_ports() so remove redundant code
  from pmac_ide_init_hwif_ports().

  As side-effect this change fixes ctl_addr == 0 special handling in
  ide_init_hwif_ports().

* Fix misleading comment while at it.

Cc: Benjamin Herrenschmidt [EMAIL PROTECTED]
Cc: Alan Cox [EMAIL PROTECTED]
Signed-off-by: Bartlomiej Zolnierkiewicz [EMAIL PROTECTED]
---
 drivers/ide/ppc/pmac.c |9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

Index: b/drivers/ide/ppc/pmac.c
===
--- a/drivers/ide/ppc/pmac.c
+++ b/drivers/ide/ppc/pmac.c
@@ -438,13 +438,8 @@ pmac_ide_init_hwif_ports(hw_regs_t *hw,
if (data_port == pmac_ide[ix].regbase)
break;
 
-   if (ix = MAX_HWIFS) {
-   /* Probably a PCI interface... */
-   for (i = IDE_DATA_OFFSET; i = IDE_STATUS_OFFSET; ++i)
-   hw-io_ports[i] = data_port + i - IDE_DATA_OFFSET;
-   hw-io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
-   return;
-   }
+   if (ix = MAX_HWIFS)
+   return; /* not an IDE PMAC interface */
 
for (i = 0; i  8; ++i)
hw-io_ports[i] = data_port + i * 0x10;
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-14 Thread Bartlomiej Zolnierkiewicz
On Sunday 14 October 2007, Al Viro wrote:
 Proposed addition to icside part, provided that ARM folks ACK it - gets
 icside to build and AFAICS it's correct:

the patch looks good and gets my ACK but it is for Jeff ;)

 diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
 index be30923..842fe08 100644
 --- a/drivers/ata/pata_icside.c
 +++ b/drivers/ata/pata_icside.c
 @@ -332,12 +332,13 @@ static void ata_dummy_noret(struct ata_port *port)
  {
  }
  
 -static void pata_icside_postreset(struct ata_port *ap, unsigned int *classes)
 +static void pata_icside_postreset(struct ata_link *link, unsigned int 
 *classes)
  {
 + struct ata_port *ap = link-ap;
   struct pata_icside_state *state = ap-host-private_data;
  
   if (classes[0] != ATA_DEV_NONE || classes[1] != ATA_DEV_NONE)
 - return ata_std_postreset(ap, classes);
 + return ata_std_postreset(link, classes);
  
   state-port[ap-port_no].disabled = 1;
  
 @@ -395,29 +396,30 @@ static struct ata_port_operations pata_icside_port_ops 
 = {
  
  static void __devinit
  pata_icside_setup_ioaddr(struct ata_port *ap, void __iomem *base,
 -  const struct portinfo *info)
 +  struct pata_icside_info *info,
 +  const struct portinfo *port)
  {
   struct ata_ioports *ioaddr = ap-ioaddr;
 - void __iomem *cmd = base + info-dataoffset;
 + void __iomem *cmd = base + port-dataoffset;
  
   ioaddr-cmd_addr= cmd;
 - ioaddr-data_addr   = cmd + (ATA_REG_DATA info-stepping);
 - ioaddr-error_addr  = cmd + (ATA_REG_ERR  info-stepping);
 - ioaddr-feature_addr= cmd + (ATA_REG_FEATURE  info-stepping);
 - ioaddr-nsect_addr  = cmd + (ATA_REG_NSECTinfo-stepping);
 - ioaddr-lbal_addr   = cmd + (ATA_REG_LBAL info-stepping);
 - ioaddr-lbam_addr   = cmd + (ATA_REG_LBAM info-stepping);
 - ioaddr-lbah_addr   = cmd + (ATA_REG_LBAH info-stepping);
 - ioaddr-device_addr = cmd + (ATA_REG_DEVICE   info-stepping);
 - ioaddr-status_addr = cmd + (ATA_REG_STATUS   info-stepping);
 - ioaddr-command_addr= cmd + (ATA_REG_CMD  info-stepping);
 -
 - ioaddr-ctl_addr= base + info-ctrloffset;
 + ioaddr-data_addr   = cmd + (ATA_REG_DATA port-stepping);
 + ioaddr-error_addr  = cmd + (ATA_REG_ERR  port-stepping);
 + ioaddr-feature_addr= cmd + (ATA_REG_FEATURE  port-stepping);
 + ioaddr-nsect_addr  = cmd + (ATA_REG_NSECTport-stepping);
 + ioaddr-lbal_addr   = cmd + (ATA_REG_LBAL port-stepping);
 + ioaddr-lbam_addr   = cmd + (ATA_REG_LBAM port-stepping);
 + ioaddr-lbah_addr   = cmd + (ATA_REG_LBAH port-stepping);
 + ioaddr-device_addr = cmd + (ATA_REG_DEVICE   port-stepping);
 + ioaddr-status_addr = cmd + (ATA_REG_STATUS   port-stepping);
 + ioaddr-command_addr= cmd + (ATA_REG_CMD  port-stepping);
 +
 + ioaddr-ctl_addr= base + port-ctrloffset;
   ioaddr-altstatus_addr  = ioaddr-ctl_addr;
  
   ata_port_desc(ap, cmd 0x%lx ctl 0x%lx,
 -   info-raw_base + info-dataoffset,
 -   info-raw_base + info-ctrloffset);
 +   info-raw_base + port-dataoffset,
 +   info-raw_base + port-ctrloffset);
  
   if (info-raw_ioc_base)
   ata_port_desc(ap, iocbase 0x%lx, info-raw_ioc_base);
 @@ -441,7 +443,7 @@ static int __devinit pata_icside_register_v5(struct 
 pata_icside_info *info)
   info-nr_ports = 1;
   info-port[0] = pata_icside_portinfo_v5;
  
 - info-raw_base = ecard_resource_start(ec, ECARD_RES_MEMC);
 + info-raw_base = ecard_resource_start(info-ec, ECARD_RES_MEMC);
  
   return 0;
  }
 @@ -522,7 +524,7 @@ static int __devinit pata_icside_add_ports(struct 
 pata_icside_info *info)
   ap-flags |= ATA_FLAG_SLAVE_POSS;
   ap-ops = pata_icside_port_ops;
  
 - pata_icside_setup_ioaddr(ap, info-base, info-port[i]);
 + pata_icside_setup_ioaddr(ap, info-base, info, info-port[i]);
   }
  
   return ata_host_activate(host, ec-irq, ata_interrupt, 0,
 


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-14 Thread Benjamin Herrenschmidt

 How's about this patch?
 
 [PATCH] ide-pmac: fix pmac_ide_init_hwif_ports()
 
 * pmac_ide_init_hwif_ports() can be called by ide_init_hwif_ports()
   (through ppc_ide_md.ide_init_hwif hook) for non IDE PMAC interfaces.
   If this is the case the hw-io_ports[] should be already setup by
   ide_init_hwif_ports()-ide_std_init_ports() so remove redundant code
   from pmac_ide_init_hwif_ports().
 
   As side-effect this change fixes ctl_addr == 0 special handling in
   ide_init_hwif_ports().
 
 * Fix misleading comment while at it.

I would have to try it. Problem is, I don't actually have any powermac
with a PCI IDE controller at hand.. ouch. I'll see what I can find.

Ben.


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Al Viro
Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
index be30923..842fe08 100644
--- a/drivers/ata/pata_icside.c
+++ b/drivers/ata/pata_icside.c
@@ -332,12 +332,13 @@ static void ata_dummy_noret(struct ata_port *port)
 {
 }
 
-static void pata_icside_postreset(struct ata_port *ap, unsigned int *classes)
+static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
 {
+   struct ata_port *ap = link->ap;
struct pata_icside_state *state = ap->host->private_data;
 
if (classes[0] != ATA_DEV_NONE || classes[1] != ATA_DEV_NONE)
-   return ata_std_postreset(ap, classes);
+   return ata_std_postreset(link, classes);
 
state->port[ap->port_no].disabled = 1;
 
@@ -395,29 +396,30 @@ static struct ata_port_operations pata_icside_port_ops = {
 
 static void __devinit
 pata_icside_setup_ioaddr(struct ata_port *ap, void __iomem *base,
-const struct portinfo *info)
+struct pata_icside_info *info,
+const struct portinfo *port)
 {
struct ata_ioports *ioaddr = >ioaddr;
-   void __iomem *cmd = base + info->dataoffset;
+   void __iomem *cmd = base + port->dataoffset;
 
ioaddr->cmd_addr= cmd;
-   ioaddr->data_addr   = cmd + (ATA_REG_DATA<< info->stepping);
-   ioaddr->error_addr  = cmd + (ATA_REG_ERR << info->stepping);
-   ioaddr->feature_addr= cmd + (ATA_REG_FEATURE << info->stepping);
-   ioaddr->nsect_addr  = cmd + (ATA_REG_NSECT   << info->stepping);
-   ioaddr->lbal_addr   = cmd + (ATA_REG_LBAL<< info->stepping);
-   ioaddr->lbam_addr   = cmd + (ATA_REG_LBAM<< info->stepping);
-   ioaddr->lbah_addr   = cmd + (ATA_REG_LBAH<< info->stepping);
-   ioaddr->device_addr = cmd + (ATA_REG_DEVICE  << info->stepping);
-   ioaddr->status_addr = cmd + (ATA_REG_STATUS  << info->stepping);
-   ioaddr->command_addr= cmd + (ATA_REG_CMD << info->stepping);
-
-   ioaddr->ctl_addr= base + info->ctrloffset;
+   ioaddr->data_addr   = cmd + (ATA_REG_DATA<< port->stepping);
+   ioaddr->error_addr  = cmd + (ATA_REG_ERR << port->stepping);
+   ioaddr->feature_addr= cmd + (ATA_REG_FEATURE << port->stepping);
+   ioaddr->nsect_addr  = cmd + (ATA_REG_NSECT   << port->stepping);
+   ioaddr->lbal_addr   = cmd + (ATA_REG_LBAL<< port->stepping);
+   ioaddr->lbam_addr   = cmd + (ATA_REG_LBAM<< port->stepping);
+   ioaddr->lbah_addr   = cmd + (ATA_REG_LBAH<< port->stepping);
+   ioaddr->device_addr = cmd + (ATA_REG_DEVICE  << port->stepping);
+   ioaddr->status_addr = cmd + (ATA_REG_STATUS  << port->stepping);
+   ioaddr->command_addr= cmd + (ATA_REG_CMD << port->stepping);
+
+   ioaddr->ctl_addr= base + port->ctrloffset;
ioaddr->altstatus_addr  = ioaddr->ctl_addr;
 
ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx",
- info->raw_base + info->dataoffset,
- info->raw_base + info->ctrloffset);
+ info->raw_base + port->dataoffset,
+ info->raw_base + port->ctrloffset);
 
if (info->raw_ioc_base)
ata_port_desc(ap, "iocbase 0x%lx", info->raw_ioc_base);
@@ -441,7 +443,7 @@ static int __devinit pata_icside_register_v5(struct 
pata_icside_info *info)
info->nr_ports = 1;
info->port[0] = _icside_portinfo_v5;
 
-   info->raw_base = ecard_resource_start(ec, ECARD_RES_MEMC);
+   info->raw_base = ecard_resource_start(info->ec, ECARD_RES_MEMC);
 
return 0;
 }
@@ -522,7 +524,7 @@ static int __devinit pata_icside_add_ports(struct 
pata_icside_info *info)
ap->flags |= ATA_FLAG_SLAVE_POSS;
ap->ops = _icside_port_ops;
 
-   pata_icside_setup_ioaddr(ap, info->base, info->port[i]);
+   pata_icside_setup_ioaddr(ap, info->base, info, info->port[i]);
}
 
return ata_host_activate(host, ec->irq, ata_interrupt, 0,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Benjamin Herrenschmidt

On Sun, 2007-10-14 at 00:41 +0200, Bartlomiej Zolnierkiewicz wrote:
> On Sunday 14 October 2007, Alan Cox wrote:
> > > > >   /* Probably a PCI interface... */
> > > > >   for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i)
> > > > >   hw->io_ports[i] = data_port + i - 
> > > > > IDE_DATA_OFFSET;
> > > > >   hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
> > 
> > Ok so in actual fact
> > 
> > - The piece of code above can't be executed anyway
> > - The ctrl_port argument is not needed ?
> 
> pmac_ide_init_hwif_ports() is also called by ide_init_hwif_ports()
> through ppc_ide_md.init_hwif.

In which case it should be called with a ctrl_port right ?

Ben.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Bartlomiej Zolnierkiewicz
On Sunday 14 October 2007, Alan Cox wrote:
> > > > /* Probably a PCI interface... */
> > > > for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i)
> > > > hw->io_ports[i] = data_port + i - 
> > > > IDE_DATA_OFFSET;
> > > > hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
> 
> Ok so in actual fact
> 
> - The piece of code above can't be executed anyway
> - The ctrl_port argument is not needed ?

pmac_ide_init_hwif_ports() is also called by ide_init_hwif_ports()
through ppc_ide_md.init_hwif.

Bart
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Alan Cox
> > >   /* Probably a PCI interface... */
> > >   for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i)
> > >   hw->io_ports[i] = data_port + i - IDE_DATA_OFFSET;
> > >   hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;

Ok so in actual fact

- The piece of code above can't be executed anyway
- The ctrl_port argument is not needed ?

Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Bartlomiej Zolnierkiewicz
On Saturday 13 October 2007, Alan Cox wrote:
> > Comment in pmac_ide_init_hwif_ports() is highly misleading as this function
> > returns early only for "normal" IDE PCI devices (pmac_ide_init_hwif_ports()
> > can be called outside ide-pmac driver through ppc_ide_md).
> 
> Follow the code you pasted
> 
> > pmif->regbase = (unsigned long) base + 0x2000;
> > ...
> > rc = pmac_ide_setup_device(pmif, hwif);
> 
> Ok so regbase is set
> 
> > ...
> > }
> > 
> > static int
> > pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
> > {
> > ...
> > pmac_ide_init_hwif_ports(>hw, pmif->regbase, 0, >irq);
> 
> Now we pass a honking great zero for the ctrl_port
> > ...
> > }
> > 
> > void
> > pmac_ide_init_hwif_ports(hw_regs_t *hw,
> >   unsigned long data_port, unsigned long ctrl_port,
> >   int *irq)
> > {
> > ...
> > for (ix = 0; ix < MAX_HWIFS; ++ix)

this loop is a tricky part, regbase is set so we break out early

> > if (data_port == pmac_ide[ix].regbase)
> > break;
> > ---> since pmif->regbase was set earlier ix will be < MAX_HWIFS
 ^^
> > if (ix >= MAX_HWIFS) {
^^^
> > /* Probably a PCI interface... */
> > for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i)
> > hw->io_ports[i] = data_port + i - IDE_DATA_OFFSET;
> > hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
> 
> Which is zero..
> 
> 
> See the problem ?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Alan Cox
> Comment in pmac_ide_init_hwif_ports() is highly misleading as this function
> returns early only for "normal" IDE PCI devices (pmac_ide_init_hwif_ports()
> can be called outside ide-pmac driver through ppc_ide_md).

Follow the code you pasted

>   pmif->regbase = (unsigned long) base + 0x2000;
> ...
>   rc = pmac_ide_setup_device(pmif, hwif);

Ok so regbase is set

> ...
> }
> 
> static int
> pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
> {
> ...
>   pmac_ide_init_hwif_ports(>hw, pmif->regbase, 0, >irq);

Now we pass a honking great zero for the ctrl_port
> ...
> }
> 
> void
> pmac_ide_init_hwif_ports(hw_regs_t *hw,
> unsigned long data_port, unsigned long ctrl_port,
> int *irq)
> {
> ...
>   for (ix = 0; ix < MAX_HWIFS; ++ix)
>   if (data_port == pmac_ide[ix].regbase)
>   break;
> ---> since pmif->regbase was set earlier ix will be < MAX_HWIFS

>   if (ix >= MAX_HWIFS) {
>   /* Probably a PCI interface... */
>   for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i)
>   hw->io_ports[i] = data_port + i - IDE_DATA_OFFSET;
>   hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;

Which is zero..


See the problem ?

Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Bartlomiej Zolnierkiewicz
On Saturday 13 October 2007, Alan Cox wrote:
> On Sat, 13 Oct 2007 18:25:24 +0200
> Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]> wrote:
> 
> > 
> > Hi,
> > 
> > highlights of this update:
> > 
> > * Rework of IDE PMAC host driver: bugfixes, removal of the code
> >   duplicated from the IDE core and conversion to use the generic
> >   DMA tuning code path (the rework cuts ide-pmac.c by ~200 LOC).
> 
> Reading the current driver from the git tree I don't see how the PCI
> driver ever sets the ctl register base. It seems to always be set to zero
> which means you can't issue SRST and reset sequences ?

Hi Alan,

Comment in pmac_ide_init_hwif_ports() is highly misleading as this function
returns early only for "normal" IDE PCI devices (pmac_ide_init_hwif_ports()
can be called outside ide-pmac driver through ppc_ide_md).

static int __devinit
pmac_ide_pci_attach(struct pci_dev *pdev, const struct pci_device_id *id)
{
...
pmif = _ide[i];
...
pmif->regbase = (unsigned long) base + 0x2000;
...
rc = pmac_ide_setup_device(pmif, hwif);
...
}

static int
pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
{
...
pmac_ide_init_hwif_ports(>hw, pmif->regbase, 0, >irq);
...
}

void
pmac_ide_init_hwif_ports(hw_regs_t *hw,
  unsigned long data_port, unsigned long ctrl_port,
  int *irq)
{
...
for (ix = 0; ix < MAX_HWIFS; ++ix)
if (data_port == pmac_ide[ix].regbase)
break;
---> since pmif->regbase was set earlier ix will be < MAX_HWIFS
if (ix >= MAX_HWIFS) {
/* Probably a PCI interface... */
for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i)
hw->io_ports[i] = data_port + i - IDE_DATA_OFFSET;
hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
return;
}

for (i = 0; i < 8; ++i)
hw->io_ports[i] = data_port + i * 0x10;
---> ctl register base will be set here
hw->io_ports[8] = data_port + 0x160;
...
}

Bart
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Alan Cox
On Sat, 13 Oct 2007 18:25:24 +0200
Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]> wrote:

> 
> Hi,
> 
> highlights of this update:
> 
> * Rework of IDE PMAC host driver: bugfixes, removal of the code
>   duplicated from the IDE core and conversion to use the generic
>   DMA tuning code path (the rework cuts ide-pmac.c by ~200 LOC).

Reading the current driver from the git tree I don't see how the PCI
driver ever sets the ctl register base. It seems to always be set to zero
which means you can't issue SRST and reset sequences ?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Alan Cox
On Sat, 13 Oct 2007 18:25:24 +0200
Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] wrote:

 
 Hi,
 
 highlights of this update:
 
 * Rework of IDE PMAC host driver: bugfixes, removal of the code
   duplicated from the IDE core and conversion to use the generic
   DMA tuning code path (the rework cuts ide-pmac.c by ~200 LOC).

Reading the current driver from the git tree I don't see how the PCI
driver ever sets the ctl register base. It seems to always be set to zero
which means you can't issue SRST and reset sequences ?

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Bartlomiej Zolnierkiewicz
On Saturday 13 October 2007, Alan Cox wrote:
 On Sat, 13 Oct 2007 18:25:24 +0200
 Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] wrote:
 
  
  Hi,
  
  highlights of this update:
  
  * Rework of IDE PMAC host driver: bugfixes, removal of the code
duplicated from the IDE core and conversion to use the generic
DMA tuning code path (the rework cuts ide-pmac.c by ~200 LOC).
 
 Reading the current driver from the git tree I don't see how the PCI
 driver ever sets the ctl register base. It seems to always be set to zero
 which means you can't issue SRST and reset sequences ?

Hi Alan,

Comment in pmac_ide_init_hwif_ports() is highly misleading as this function
returns early only for normal IDE PCI devices (pmac_ide_init_hwif_ports()
can be called outside ide-pmac driver through ppc_ide_md).

static int __devinit
pmac_ide_pci_attach(struct pci_dev *pdev, const struct pci_device_id *id)
{
...
pmif = pmac_ide[i];
...
pmif-regbase = (unsigned long) base + 0x2000;
...
rc = pmac_ide_setup_device(pmif, hwif);
...
}

static int
pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
{
...
pmac_ide_init_hwif_ports(hwif-hw, pmif-regbase, 0, hwif-irq);
...
}

void
pmac_ide_init_hwif_ports(hw_regs_t *hw,
  unsigned long data_port, unsigned long ctrl_port,
  int *irq)
{
...
for (ix = 0; ix  MAX_HWIFS; ++ix)
if (data_port == pmac_ide[ix].regbase)
break;
--- since pmif-regbase was set earlier ix will be  MAX_HWIFS
if (ix = MAX_HWIFS) {
/* Probably a PCI interface... */
for (i = IDE_DATA_OFFSET; i = IDE_STATUS_OFFSET; ++i)
hw-io_ports[i] = data_port + i - IDE_DATA_OFFSET;
hw-io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
return;
}

for (i = 0; i  8; ++i)
hw-io_ports[i] = data_port + i * 0x10;
--- ctl register base will be set here
hw-io_ports[8] = data_port + 0x160;
...
}

Bart
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Alan Cox
 Comment in pmac_ide_init_hwif_ports() is highly misleading as this function
 returns early only for normal IDE PCI devices (pmac_ide_init_hwif_ports()
 can be called outside ide-pmac driver through ppc_ide_md).

Follow the code you pasted

   pmif-regbase = (unsigned long) base + 0x2000;
 ...
   rc = pmac_ide_setup_device(pmif, hwif);

Ok so regbase is set

 ...
 }
 
 static int
 pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
 {
 ...
   pmac_ide_init_hwif_ports(hwif-hw, pmif-regbase, 0, hwif-irq);

Now we pass a honking great zero for the ctrl_port
 ...
 }
 
 void
 pmac_ide_init_hwif_ports(hw_regs_t *hw,
 unsigned long data_port, unsigned long ctrl_port,
 int *irq)
 {
 ...
   for (ix = 0; ix  MAX_HWIFS; ++ix)
   if (data_port == pmac_ide[ix].regbase)
   break;
 --- since pmif-regbase was set earlier ix will be  MAX_HWIFS

   if (ix = MAX_HWIFS) {
   /* Probably a PCI interface... */
   for (i = IDE_DATA_OFFSET; i = IDE_STATUS_OFFSET; ++i)
   hw-io_ports[i] = data_port + i - IDE_DATA_OFFSET;
   hw-io_ports[IDE_CONTROL_OFFSET] = ctrl_port;

Which is zero..


See the problem ?

Alan
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Bartlomiej Zolnierkiewicz
On Saturday 13 October 2007, Alan Cox wrote:
  Comment in pmac_ide_init_hwif_ports() is highly misleading as this function
  returns early only for normal IDE PCI devices (pmac_ide_init_hwif_ports()
  can be called outside ide-pmac driver through ppc_ide_md).
 
 Follow the code you pasted
 
  pmif-regbase = (unsigned long) base + 0x2000;
  ...
  rc = pmac_ide_setup_device(pmif, hwif);
 
 Ok so regbase is set
 
  ...
  }
  
  static int
  pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
  {
  ...
  pmac_ide_init_hwif_ports(hwif-hw, pmif-regbase, 0, hwif-irq);
 
 Now we pass a honking great zero for the ctrl_port
  ...
  }
  
  void
  pmac_ide_init_hwif_ports(hw_regs_t *hw,
unsigned long data_port, unsigned long ctrl_port,
int *irq)
  {
  ...
  for (ix = 0; ix  MAX_HWIFS; ++ix)

this loop is a tricky part, regbase is set so we break out early

  if (data_port == pmac_ide[ix].regbase)
  break;
  --- since pmif-regbase was set earlier ix will be  MAX_HWIFS
 ^^
  if (ix = MAX_HWIFS) {
^^^
  /* Probably a PCI interface... */
  for (i = IDE_DATA_OFFSET; i = IDE_STATUS_OFFSET; ++i)
  hw-io_ports[i] = data_port + i - IDE_DATA_OFFSET;
  hw-io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
 
 Which is zero..
 
 
 See the problem ?
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Alan Cox
 /* Probably a PCI interface... */
 for (i = IDE_DATA_OFFSET; i = IDE_STATUS_OFFSET; ++i)
 hw-io_ports[i] = data_port + i - IDE_DATA_OFFSET;
 hw-io_ports[IDE_CONTROL_OFFSET] = ctrl_port;

Ok so in actual fact

- The piece of code above can't be executed anyway
- The ctrl_port argument is not needed ?

Alan
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Bartlomiej Zolnierkiewicz
On Sunday 14 October 2007, Alan Cox wrote:
/* Probably a PCI interface... */
for (i = IDE_DATA_OFFSET; i = IDE_STATUS_OFFSET; ++i)
hw-io_ports[i] = data_port + i - 
IDE_DATA_OFFSET;
hw-io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
 
 Ok so in actual fact
 
 - The piece of code above can't be executed anyway
 - The ctrl_port argument is not needed ?

pmac_ide_init_hwif_ports() is also called by ide_init_hwif_ports()
through ppc_ide_md.init_hwif.

Bart
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Benjamin Herrenschmidt

On Sun, 2007-10-14 at 00:41 +0200, Bartlomiej Zolnierkiewicz wrote:
 On Sunday 14 October 2007, Alan Cox wrote:
   /* Probably a PCI interface... */
   for (i = IDE_DATA_OFFSET; i = IDE_STATUS_OFFSET; ++i)
   hw-io_ports[i] = data_port + i - 
 IDE_DATA_OFFSET;
   hw-io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
  
  Ok so in actual fact
  
  - The piece of code above can't be executed anyway
  - The ctrl_port argument is not needed ?
 
 pmac_ide_init_hwif_ports() is also called by ide_init_hwif_ports()
 through ppc_ide_md.init_hwif.

In which case it should be called with a ctrl_port right ?

Ben.


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] IDE updates (part 2)

2007-10-13 Thread Al Viro
Proposed addition to icside part, provided that ARM folks ACK it - gets
icside to build and AFAICS it's correct:

diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
index be30923..842fe08 100644
--- a/drivers/ata/pata_icside.c
+++ b/drivers/ata/pata_icside.c
@@ -332,12 +332,13 @@ static void ata_dummy_noret(struct ata_port *port)
 {
 }
 
-static void pata_icside_postreset(struct ata_port *ap, unsigned int *classes)
+static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
 {
+   struct ata_port *ap = link-ap;
struct pata_icside_state *state = ap-host-private_data;
 
if (classes[0] != ATA_DEV_NONE || classes[1] != ATA_DEV_NONE)
-   return ata_std_postreset(ap, classes);
+   return ata_std_postreset(link, classes);
 
state-port[ap-port_no].disabled = 1;
 
@@ -395,29 +396,30 @@ static struct ata_port_operations pata_icside_port_ops = {
 
 static void __devinit
 pata_icside_setup_ioaddr(struct ata_port *ap, void __iomem *base,
-const struct portinfo *info)
+struct pata_icside_info *info,
+const struct portinfo *port)
 {
struct ata_ioports *ioaddr = ap-ioaddr;
-   void __iomem *cmd = base + info-dataoffset;
+   void __iomem *cmd = base + port-dataoffset;
 
ioaddr-cmd_addr= cmd;
-   ioaddr-data_addr   = cmd + (ATA_REG_DATA info-stepping);
-   ioaddr-error_addr  = cmd + (ATA_REG_ERR  info-stepping);
-   ioaddr-feature_addr= cmd + (ATA_REG_FEATURE  info-stepping);
-   ioaddr-nsect_addr  = cmd + (ATA_REG_NSECTinfo-stepping);
-   ioaddr-lbal_addr   = cmd + (ATA_REG_LBAL info-stepping);
-   ioaddr-lbam_addr   = cmd + (ATA_REG_LBAM info-stepping);
-   ioaddr-lbah_addr   = cmd + (ATA_REG_LBAH info-stepping);
-   ioaddr-device_addr = cmd + (ATA_REG_DEVICE   info-stepping);
-   ioaddr-status_addr = cmd + (ATA_REG_STATUS   info-stepping);
-   ioaddr-command_addr= cmd + (ATA_REG_CMD  info-stepping);
-
-   ioaddr-ctl_addr= base + info-ctrloffset;
+   ioaddr-data_addr   = cmd + (ATA_REG_DATA port-stepping);
+   ioaddr-error_addr  = cmd + (ATA_REG_ERR  port-stepping);
+   ioaddr-feature_addr= cmd + (ATA_REG_FEATURE  port-stepping);
+   ioaddr-nsect_addr  = cmd + (ATA_REG_NSECTport-stepping);
+   ioaddr-lbal_addr   = cmd + (ATA_REG_LBAL port-stepping);
+   ioaddr-lbam_addr   = cmd + (ATA_REG_LBAM port-stepping);
+   ioaddr-lbah_addr   = cmd + (ATA_REG_LBAH port-stepping);
+   ioaddr-device_addr = cmd + (ATA_REG_DEVICE   port-stepping);
+   ioaddr-status_addr = cmd + (ATA_REG_STATUS   port-stepping);
+   ioaddr-command_addr= cmd + (ATA_REG_CMD  port-stepping);
+
+   ioaddr-ctl_addr= base + port-ctrloffset;
ioaddr-altstatus_addr  = ioaddr-ctl_addr;
 
ata_port_desc(ap, cmd 0x%lx ctl 0x%lx,
- info-raw_base + info-dataoffset,
- info-raw_base + info-ctrloffset);
+ info-raw_base + port-dataoffset,
+ info-raw_base + port-ctrloffset);
 
if (info-raw_ioc_base)
ata_port_desc(ap, iocbase 0x%lx, info-raw_ioc_base);
@@ -441,7 +443,7 @@ static int __devinit pata_icside_register_v5(struct 
pata_icside_info *info)
info-nr_ports = 1;
info-port[0] = pata_icside_portinfo_v5;
 
-   info-raw_base = ecard_resource_start(ec, ECARD_RES_MEMC);
+   info-raw_base = ecard_resource_start(info-ec, ECARD_RES_MEMC);
 
return 0;
 }
@@ -522,7 +524,7 @@ static int __devinit pata_icside_add_ports(struct 
pata_icside_info *info)
ap-flags |= ATA_FLAG_SLAVE_POSS;
ap-ops = pata_icside_port_ops;
 
-   pata_icside_setup_ioaddr(ap, info-base, info-port[i]);
+   pata_icside_setup_ioaddr(ap, info-base, info, info-port[i]);
}
 
return ata_host_activate(host, ec-irq, ata_interrupt, 0,
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/