* [PATCH] HPA Detect From Resume
@ 2007-05-12 6:39 Lee Trager
2007-06-02 22:24 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 4+ messages in thread
From: Lee Trager @ 2007-05-12 6:39 UTC (permalink / raw)
To: IDE/ATA development list
Currently when system which have HPA require HPA to be detected and
disabled upon resume from RAM or disk. The current IDE drivers do not do
this nor does libata(obviously it since it doesn't support HPA yet). I
have implemented this into the current IDE drivers and it has been
tested by many others since 7/15/2006 in bug number
6840(http://bugzilla.kernel.org/show_bug.cgi?id=6840) and it has been
confirmed to work fine with no problems.
--- linux-2.6.21.1-old/include/linux/ide.h 2007-05-01 02:54:12.000000000 -0400
+++ linux-2.6.21.1/include/linux/ide.h 2007-04-28 01:06:20.000000000 -0400
@@ -1005,6 +1005,7 @@
int (*probe)(ide_drive_t *);
void (*remove)(ide_drive_t *);
void (*shutdown)(ide_drive_t *);
+ void (*resume)(ide_drive_t *);
} ide_driver_t;
#define to_ide_driver(drv) container_of(drv, ide_driver_t, gen_driver)
--- linux-2.6.21.1-old/drivers/ide/ide.c 2007-05-01 02:54:12.000000000 -0400
+++ linux-2.6.21.1/drivers/ide/ide.c 2007-04-28 03:41:24.000000000 -0400
@@ -1260,9 +1260,11 @@
{
ide_drive_t *drive = dev->driver_data;
ide_hwif_t *hwif = HWIF(drive);
+ ide_driver_t *drv = to_ide_driver(dev->driver);
struct request rq;
struct request_pm_state rqpm;
ide_task_t args;
+ int err;
/* Call ACPI _STM only once */
if (!(drive->dn % 2))
@@ -1279,7 +1281,12 @@
rqpm.pm_step = ide_pm_state_start_resume;
rqpm.pm_state = PM_EVENT_ON;
- return ide_do_drive_cmd(drive, &rq, ide_head_wait);
+ err = ide_do_drive_cmd(drive, &rq, ide_head_wait);
+
+ if (err == 0 && drv->resume)
+ drv->resume(drive);
+
+ return err;
}
int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device *bdev,
--- linux-2.6.21.1-old/drivers/ide/ide-disk.c 2007-05-01 02:54:12.000000000 -0400
+++ linux-2.6.21.1/drivers/ide/ide-disk.c 2007-04-28 01:06:20.000000000 -0400
@@ -1024,6 +1024,17 @@
static int ide_disk_probe(ide_drive_t *drive);
+/*
+ * On HPA drives the capacity needs to be
+ * reinitilized on resume otherwise the disk
+ * can not be used and a hard reset is required
+ */
+static void ide_disk_resume(ide_drive_t *drive)
+{
+ if (idedisk_supports_hpa(drive->id))
+ init_idedisk_capacity(drive);
+}
+
static void ide_device_shutdown(ide_drive_t *drive)
{
#ifdef CONFIG_ALPHA
@@ -1067,6 +1078,7 @@
.error = __ide_error,
.abort = __ide_abort,
.proc = idedisk_proc,
+ .resume = ide_disk_resume,
};
static int idedisk_open(struct inode *inode, struct file *filp)
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] HPA Detect From Resume
2007-05-12 6:39 [PATCH] HPA Detect From Resume Lee Trager
@ 2007-06-02 22:24 ` Bartlomiej Zolnierkiewicz
2007-06-05 8:55 ` Lee Trager
0 siblings, 1 reply; 4+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2007-06-02 22:24 UTC (permalink / raw)
To: Lee Trager; +Cc: IDE/ATA development list
Hi,
On Saturday 12 May 2007, Lee Trager wrote:
> Currently when system which have HPA require HPA to be detected and
> disabled upon resume from RAM or disk. The current IDE drivers do not do
> this nor does libata(obviously it since it doesn't support HPA yet). I
> have implemented this into the current IDE drivers and it has been
> tested by many others since 7/15/2006 in bug number
> 6840(http://bugzilla.kernel.org/show_bug.cgi?id=6840) and it has been
> confirmed to work fine with no problems.
Big thanks for working on this bug.
The patch looks good, applied.
> --- linux-2.6.21.1-old/include/linux/ide.h 2007-05-01 02:54:12.000000000 -0400
> +++ linux-2.6.21.1/include/linux/ide.h 2007-04-28 01:06:20.000000000 -0400
> @@ -1005,6 +1005,7 @@
> int (*probe)(ide_drive_t *);
> void (*remove)(ide_drive_t *);
> void (*shutdown)(ide_drive_t *);
> + void (*resume)(ide_drive_t *);
> } ide_driver_t;
ide_driver_t changed a bit in 2.6.22 due to /proc/ide/ rework so this
chunk (and one chunk in ide-disk.c) rejected to apply. Fixed them by hand.
> @@ -1279,7 +1281,12 @@
> rqpm.pm_step = ide_pm_state_start_resume;
> rqpm.pm_state = PM_EVENT_ON;
>
> - return ide_do_drive_cmd(drive, &rq, ide_head_wait);
> + err = ide_do_drive_cmd(drive, &rq, ide_head_wait);
> +
> + if (err == 0 && drv->resume)
> + drv->resume(drive);
> +
Added extra drv != NULL check (there may be no IDE device driver et all).
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] HPA Detect From Resume
2007-06-02 22:24 ` Bartlomiej Zolnierkiewicz
@ 2007-06-05 8:55 ` Lee Trager
2007-06-15 22:43 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 4+ messages in thread
From: Lee Trager @ 2007-06-05 8:55 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: IDE/ATA development list
Bartlomiej Zolnierkiewicz wrote:
> Hi,
>
> On Saturday 12 May 2007, Lee Trager wrote:
>
>> Currently when system which have HPA require HPA to be detected and
>> disabled upon resume from RAM or disk. The current IDE drivers do not do
>> this nor does libata(obviously it since it doesn't support HPA yet). I
>> have implemented this into the current IDE drivers and it has been
>> tested by many others since 7/15/2006 in bug number
>> 6840(http://bugzilla.kernel.org/show_bug.cgi?id=6840) and it has been
>> confirmed to work fine with no problems.
>>
>
> Big thanks for working on this bug.
>
> The patch looks good, applied.
>
>
>> --- linux-2.6.21.1-old/include/linux/ide.h 2007-05-01 02:54:12.000000000 -0400
>> +++ linux-2.6.21.1/include/linux/ide.h 2007-04-28 01:06:20.000000000 -0400
>> @@ -1005,6 +1005,7 @@
>> int (*probe)(ide_drive_t *);
>> void (*remove)(ide_drive_t *);
>> void (*shutdown)(ide_drive_t *);
>> + void (*resume)(ide_drive_t *);
>> } ide_driver_t;
>>
>
> ide_driver_t changed a bit in 2.6.22 due to /proc/ide/ rework so this
> chunk (and one chunk in ide-disk.c) rejected to apply. Fixed them by hand.
>
>
>> @@ -1279,7 +1281,12 @@
>> rqpm.pm_step = ide_pm_state_start_resume;
>> rqpm.pm_state = PM_EVENT_ON;
>>
>> - return ide_do_drive_cmd(drive, &rq, ide_head_wait);
>> + err = ide_do_drive_cmd(drive, &rq, ide_head_wait);
>> +
>> + if (err == 0 && drv->resume)
>> + drv->resume(drive);
>> +
>>
>
> Added extra drv != NULL check (there may be no IDE device driver et all).
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ide" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
Thanks for cleaning it up I've been really busy lately. I just
downloaded 2.6.22-rc3 and the patch still wasn't in there will it be in
rc4 or is there something else I need to do? Also a few weeks ago I
tested the HPA patch for libata and the same issue comes up. I'll look
into releasing another patch for libata once its in the kernel and I
have more time.
Lee
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] HPA Detect From Resume
2007-06-05 8:55 ` Lee Trager
@ 2007-06-15 22:43 ` Bartlomiej Zolnierkiewicz
0 siblings, 0 replies; 4+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2007-06-15 22:43 UTC (permalink / raw)
To: Lee Trager; +Cc: IDE/ATA development list
Hi,
On Tuesday 05 June 2007, Lee Trager wrote:
> Bartlomiej Zolnierkiewicz wrote:
> > Hi,
> >
> > On Saturday 12 May 2007, Lee Trager wrote:
> >
> >> Currently when system which have HPA require HPA to be detected and
> >> disabled upon resume from RAM or disk. The current IDE drivers do not do
> >> this nor does libata(obviously it since it doesn't support HPA yet). I
> >> have implemented this into the current IDE drivers and it has been
> >> tested by many others since 7/15/2006 in bug number
> >> 6840(http://bugzilla.kernel.org/show_bug.cgi?id=6840) and it has been
> >> confirmed to work fine with no problems.
> >>
> >
> > Big thanks for working on this bug.
> >
> > The patch looks good, applied.
> >
> >
> >> --- linux-2.6.21.1-old/include/linux/ide.h 2007-05-01 02:54:12.000000000 -0400
> >> +++ linux-2.6.21.1/include/linux/ide.h 2007-04-28 01:06:20.000000000 -0400
> >> @@ -1005,6 +1005,7 @@
> >> int (*probe)(ide_drive_t *);
> >> void (*remove)(ide_drive_t *);
> >> void (*shutdown)(ide_drive_t *);
> >> + void (*resume)(ide_drive_t *);
> >> } ide_driver_t;
> >>
> >
> > ide_driver_t changed a bit in 2.6.22 due to /proc/ide/ rework so this
> > chunk (and one chunk in ide-disk.c) rejected to apply. Fixed them by hand.
> >
> >
> >> @@ -1279,7 +1281,12 @@
> >> rqpm.pm_step = ide_pm_state_start_resume;
> >> rqpm.pm_state = PM_EVENT_ON;
> >>
> >> - return ide_do_drive_cmd(drive, &rq, ide_head_wait);
> >> + err = ide_do_drive_cmd(drive, &rq, ide_head_wait);
> >> +
> >> + if (err == 0 && drv->resume)
> >> + drv->resume(drive);
> >> +
> >>
> >
> > Added extra drv != NULL check (there may be no IDE device driver et all).
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-ide" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> Thanks for cleaning it up I've been really busy lately. I just
> downloaded 2.6.22-rc3 and the patch still wasn't in there will it be in
> rc4 or is there something else I need to do? Also a few weeks ago I
IDE fixes went in 4 days after -rc4 so this patch will show up in -rc5.
> tested the HPA patch for libata and the same issue comes up. I'll look
> into releasing another patch for libata once its in the kernel and I
> have more time.
Please do.
Thanks,
Bart
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-06-15 23:26 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-12 6:39 [PATCH] HPA Detect From Resume Lee Trager
2007-06-02 22:24 ` Bartlomiej Zolnierkiewicz
2007-06-05 8:55 ` Lee Trager
2007-06-15 22:43 ` Bartlomiej Zolnierkiewicz
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).