Lines Matching refs:drive
202 * + _their_ children == drive objects */
212 * do_drive_get_GTF - get the drive bootup default taskfile settings
213 * @drive: the drive for which the taskfile settings should be retrieved
226 static int do_drive_get_GTF(ide_drive_t *drive,
239 if (!drive->acpidata->obj_handle) {
240 DEBPRINT("No ACPI object found for %s\n", drive->name);
250 status = acpi_evaluate_object(drive->acpidata->obj_handle, "_GTF",
299 * do_drive_set_taskfiles - write the drive taskfile settings from _GTF
300 * @drive: the drive to which the taskfile command should be sent
307 static int do_drive_set_taskfiles(ide_drive_t *drive,
339 err = ide_no_data_taskfile(drive, &cmd);
351 * ide_acpi_exec_tfs - get then write drive taskfile settings
352 * @drive: the drive for which the taskfile settings should be
362 int ide_acpi_exec_tfs(ide_drive_t *drive)
369 DEBPRINT("call get_GTF, drive=%s port=%d\n", drive->name, drive->dn);
371 ret = do_drive_get_GTF(drive, >f_length, >f_address, &obj_loc);
377 DEBPRINT("call set_taskfiles, drive=%s\n", drive->name);
379 ret = do_drive_set_taskfiles(drive, gtf_length, gtf_address);
472 * Unfortunately drive->id is a mangled version which we can't readily
483 /* Give the GTM buffer + drive Identify data to the channel via the
518 ide_drive_t *drive;
530 ide_port_for_each_present_dev(i, drive, hwif) {
531 if (drive->acpidata->obj_handle)
532 acpi_bus_set_power(drive->acpidata->obj_handle,
545 * The ACPI spec is not quite clear when the drive identify buffer
547 * is not the best of ideas as the drive might already being put to
568 ide_drive_t *drive;
583 ide_port_for_each_present_dev(i, drive, hwif) {
587 drive->name, hwif->channel, drive->dn & 1);
591 drive->dn & 1);
593 DEBPRINT("drive %s handle 0x%p\n", drive->name, dev_handle);
595 drive->acpidata->obj_handle = dev_handle;
599 ide_port_for_each_present_dev(i, drive, hwif) {
600 err = taskfile_lib_get_identify(drive, drive->acpidata->idbuff);
603 drive->name, err);
619 ide_port_for_each_present_dev(i, drive, hwif) {
620 ide_acpi_exec_tfs(drive);