vpoio.c (158651) | vpoio.c (184130) |
---|---|
1/*- 2 * Copyright (c) 1998, 1999 Nicolas Souchu 3 * Copyright (c) 2000 Alcove - Nicolas Souchu 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 14 unchanged lines hidden (view full) --- 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * 27 * 28 */ 29 30#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1998, 1999 Nicolas Souchu 3 * Copyright (c) 2000 Alcove - Nicolas Souchu 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 14 unchanged lines hidden (view full) --- 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * 27 * 28 */ 29 30#include <sys/cdefs.h> |
31__FBSDID("$FreeBSD: head/sys/dev/ppbus/vpoio.c 158651 2006-05-16 14:37:58Z phk $"); | 31__FBSDID("$FreeBSD: head/sys/dev/ppbus/vpoio.c 184130 2008-10-21 18:30:10Z jhb $"); |
32 33#ifdef _KERNEL 34#include <sys/param.h> 35#include <sys/systm.h> 36#include <sys/module.h> 37#include <sys/bus.h> 38#include <sys/malloc.h> 39 --- 354 unchanged lines hidden (view full) --- 394 vpo->vpo_mode_found = VP0_MODE_NIBBLE; 395 } 396 397 /* Can't know if the interface is capable of PS/2 yet */ 398 ppb_MS_microseq(ppbus, vpo->vpo_dev, connect_spp_microseq, &ret); 399 if (!vpoio_in_disk_mode(vpo)) { 400 vpo->vpo_mode_found = VP0_MODE_UNDEFINED; 401 if (bootverbose) | 32 33#ifdef _KERNEL 34#include <sys/param.h> 35#include <sys/systm.h> 36#include <sys/module.h> 37#include <sys/bus.h> 38#include <sys/malloc.h> 39 --- 354 unchanged lines hidden (view full) --- 394 vpo->vpo_mode_found = VP0_MODE_NIBBLE; 395 } 396 397 /* Can't know if the interface is capable of PS/2 yet */ 398 ppb_MS_microseq(ppbus, vpo->vpo_dev, connect_spp_microseq, &ret); 399 if (!vpoio_in_disk_mode(vpo)) { 400 vpo->vpo_mode_found = VP0_MODE_UNDEFINED; 401 if (bootverbose) |
402 printf("vpo%d: can't connect to the drive\n", 403 vpo->vpo_unit); | 402 device_printf(vpo->vpo_dev, 403 "can't connect to the drive\n"); |
404 405 /* disconnect and release the bus */ 406 ppb_MS_microseq(ppbus, vpo->vpo_dev, disconnect_microseq, 407 &ret); 408 goto error; 409 } 410 } else { 411 vpo->vpo_mode_found = VP0_MODE_EPP; 412 } 413 414 /* send SCSI reset signal */ 415 vpoio_reset(vpo); 416 417 ppb_MS_microseq(ppbus, vpo->vpo_dev, disconnect_microseq, &ret); 418 419 /* ensure we are disconnected or daisy chained peripheral 420 * may cause serious problem to the disk */ 421 if (vpoio_in_disk_mode(vpo)) { 422 if (bootverbose) | 404 405 /* disconnect and release the bus */ 406 ppb_MS_microseq(ppbus, vpo->vpo_dev, disconnect_microseq, 407 &ret); 408 goto error; 409 } 410 } else { 411 vpo->vpo_mode_found = VP0_MODE_EPP; 412 } 413 414 /* send SCSI reset signal */ 415 vpoio_reset(vpo); 416 417 ppb_MS_microseq(ppbus, vpo->vpo_dev, disconnect_microseq, &ret); 418 419 /* ensure we are disconnected or daisy chained peripheral 420 * may cause serious problem to the disk */ 421 if (vpoio_in_disk_mode(vpo)) { 422 if (bootverbose) |
423 printf("vpo%d: can't disconnect from the drive\n", 424 vpo->vpo_unit); | 423 device_printf(vpo->vpo_dev, 424 "can't disconnect from the drive\n"); |
425 goto error; 426 } 427 428 ppb_release_bus(ppbus, vpo->vpo_dev); 429 return (0); 430 431error: 432 ppb_release_bus(ppbus, vpo->vpo_dev); --- 179 unchanged lines hidden (view full) --- 612 if ((error = ppb_request_bus(ppbus, vpo->vpo_dev, PPB_WAIT))) 613 goto error; 614 615 /* ppbus sets automatically the last mode entered during detection */ 616 switch (vpo->vpo_mode_found) { 617 case VP0_MODE_EPP: 618 ppb_MS_GET_init(ppbus, vpo->vpo_dev, epp17_instr_body); 619 ppb_MS_PUT_init(ppbus, vpo->vpo_dev, epp17_outstr_body); | 425 goto error; 426 } 427 428 ppb_release_bus(ppbus, vpo->vpo_dev); 429 return (0); 430 431error: 432 ppb_release_bus(ppbus, vpo->vpo_dev); --- 179 unchanged lines hidden (view full) --- 612 if ((error = ppb_request_bus(ppbus, vpo->vpo_dev, PPB_WAIT))) 613 goto error; 614 615 /* ppbus sets automatically the last mode entered during detection */ 616 switch (vpo->vpo_mode_found) { 617 case VP0_MODE_EPP: 618 ppb_MS_GET_init(ppbus, vpo->vpo_dev, epp17_instr_body); 619 ppb_MS_PUT_init(ppbus, vpo->vpo_dev, epp17_outstr_body); |
620 printf("vpo%d: EPP mode\n", vpo->vpo_unit); | 620 device_printf(vpo->vpo_dev, "EPP mode\n"); |
621 break; 622 case VP0_MODE_PS2: 623 ppb_MS_GET_init(ppbus, vpo->vpo_dev, ps2_inbyte_submicroseq); 624 ppb_MS_PUT_init(ppbus, vpo->vpo_dev, spp_outbyte_submicroseq); | 621 break; 622 case VP0_MODE_PS2: 623 ppb_MS_GET_init(ppbus, vpo->vpo_dev, ps2_inbyte_submicroseq); 624 ppb_MS_PUT_init(ppbus, vpo->vpo_dev, spp_outbyte_submicroseq); |
625 printf("vpo%d: PS2 mode\n", vpo->vpo_unit); | 625 device_printf(vpo->vpo_dev, "PS2 mode\n"); |
626 break; 627 case VP0_MODE_NIBBLE: 628 ppb_MS_GET_init(ppbus, vpo->vpo_dev, vpo->vpo_nibble_inbyte_msq); 629 ppb_MS_PUT_init(ppbus, vpo->vpo_dev, spp_outbyte_submicroseq); | 626 break; 627 case VP0_MODE_NIBBLE: 628 ppb_MS_GET_init(ppbus, vpo->vpo_dev, vpo->vpo_nibble_inbyte_msq); 629 ppb_MS_PUT_init(ppbus, vpo->vpo_dev, spp_outbyte_submicroseq); |
630 printf("vpo%d: NIBBLE mode\n", vpo->vpo_unit); | 630 device_printf(vpo->vpo_dev, "NIBBLE mode\n"); |
631 break; 632 default: 633 panic("vpo: unknown mode %d", vpo->vpo_mode_found); 634 } 635 636 ppb_release_bus(ppbus, vpo->vpo_dev); 637 638error: --- 143 unchanged lines hidden --- | 631 break; 632 default: 633 panic("vpo: unknown mode %d", vpo->vpo_mode_found); 634 } 635 636 ppb_release_bus(ppbus, vpo->vpo_dev); 637 638error: --- 143 unchanged lines hidden --- |