Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/pcmcia Advertise ATAC_CAP_DATA32 also for memory-map...



details:   https://anonhg.NetBSD.org/src/rev/193f16913213
branches:  trunk
changeset: 1023961:193f16913213
user:      rin <rin%NetBSD.org@localhost>
date:      Tue Oct 05 08:21:10 2021 +0000

description:
Advertise ATAC_CAP_DATA32 also for memory-mapped mode.

It seems that this flag bit is not enabled because memory-mapped mode
has its own wdc_softc:data{in,out}_pio routines. However, nowadays,
32-bit data access capability of a disk drive is not checked by ata(4)
backend unless this flag bit is set.

Tested with CF cards of few vendors and hd64461pcmcia(4) found for some
hpcsh machine models.

diffstat:

 sys/dev/pcmcia/wdc_pcmcia.c |  7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diffs (35 lines):

diff -r 253f1173b3d6 -r 193f16913213 sys/dev/pcmcia/wdc_pcmcia.c
--- a/sys/dev/pcmcia/wdc_pcmcia.c       Tue Oct 05 08:08:40 2021 +0000
+++ b/sys/dev/pcmcia/wdc_pcmcia.c       Tue Oct 05 08:21:10 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: wdc_pcmcia.c,v 1.128 2021/10/05 08:08:40 rin Exp $ */
+/*     $NetBSD: wdc_pcmcia.c,v 1.129 2021/10/05 08:21:10 rin Exp $ */
 
 /*-
  * Copyright (c) 1998, 2003, 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_pcmcia.c,v 1.128 2021/10/05 08:08:40 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_pcmcia.c,v 1.129 2021/10/05 08:21:10 rin Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -231,7 +231,7 @@
        }
 
        cfe = pa->pf->cfe;
-       sc->sc_wdcdev.sc_atac.atac_cap |= ATAC_CAP_DATA16;
+       sc->sc_wdcdev.sc_atac.atac_cap |= ATAC_CAP_DATA16 | ATAC_CAP_DATA32;
 
        sc->sc_wdcdev.regs = wdr = &sc->wdc_regs;
 
@@ -286,7 +286,6 @@
                aprint_normal_dev(self, "i/o mapped mode\n");
                wdr->data32iot = wdr->cmd_iot;
                wdr->data32ioh = wdr->cmd_iohs[wd_data];
-               sc->sc_wdcdev.sc_atac.atac_cap |= ATAC_CAP_DATA32;
        }
 
        sc->sc_wdcdev.sc_atac.atac_pio_cap = 0;



Home | Main Index | Thread Index | Old Index