linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2.6.9-libata1-dev1] libata-scsi: hdparm support
@ 2004-10-22 23:20 Tobias Lorenz
  2004-10-23 12:36 ` Bartlomiej Zolnierkiewicz
  2004-10-30 12:43 ` Jeff Garzik
  0 siblings, 2 replies; 9+ messages in thread
From: Tobias Lorenz @ 2004-10-22 23:20 UTC (permalink / raw)
  To: linux-ide, jgarzik

Hi,

this patch adds support for transfering drive informations via the
hd_driveid structure to the hdparm utility. At the moment, only
cylinders, sectors, heads, model and firmware version are transfered.

Our intention was to display the supported and the used UDMA mode(s),
but we didn't find the correct structures yet to get these infos...

Signed-off-by: Tobias Lorenz <tobias.lorenz@gmx.net>

> --- a/drivers/scsi/libata-scsi.c        2004-10-20 22:07:50.000000000 +0200
> +++ b/drivers/scsi/libata-scsi.c        2004-10-20 19:25:15.000000000 +0200
> @@ -215,6 +215,17 @@
>         struct ata_port *ap;
>         struct ata_device *dev;
>         int val = -EINVAL, rc = -EINVAL;
> +       struct hd_driveid drv_id = {
> +               .cyls           = 0,
> +               .sectors        = 0,
> +               .heads          = 0,
> +               .fw_rev         = "",
> +               .model          = "",
> +               .cur_cyls       = 0,
> +               .cur_heads      = 0,
> +               .cur_sectors    = 0,
> +       };
> +       int geom[3];
> 
>         ap = (struct ata_port *) &scsidev->host->hostdata[0];
>         if (!ap)
> @@ -249,7 +260,25 @@
>                         return -EACCES;
>                 return ata_task_ioctl(scsidev, arg);
> 
> +       case HDIO_GET_IDENTITY:
> +               ata_std_bios_param(scsidev, NULL, dev->n_sectors, geom);
> +               drv_id.cur_heads        = drv_id.heads          = geom[0];
> +               drv_id.cur_sectors      = drv_id.sectors        = geom[1];
> +               drv_id.cur_cyls         = drv_id.cyls           = geom[2];
> +               strncpy((char *) &drv_id.model, scsidev->model, sizeof(drv_id.model));
> +               strncpy((char *) &drv_id.fw_rev, scsidev->rev, sizeof(drv_id.fw_rev));
> +               if(copy_to_user((char *) arg, (char *) &drv_id,
> +                                sizeof(drv_id)))
> +                       return(-EFAULT);
> +               return 0;
> +
>         default:
>                 rc = -EOPNOTSUPP;
>                 break;
>         }



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2004-11-04 19:50 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-22 23:20 [PATCH 2.6.9-libata1-dev1] libata-scsi: hdparm support Tobias Lorenz
2004-10-23 12:36 ` Bartlomiej Zolnierkiewicz
2004-10-23 21:59   ` Tobias Lorenz
2004-10-30 12:43 ` Jeff Garzik
2004-10-30 14:58   ` Tobias Lorenz
2004-10-30 15:27     ` Jeff Garzik
2004-11-02 21:51       ` Bartlomiej Zolnierkiewicz
2004-11-04 16:55         ` Tobias Lorenz
2004-11-04 19:50           ` 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).