| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: sdhc_acpi.c,v 1.18 2022/01/15 15:54:40 jmcneill Exp $ */ | | 1 | /* $NetBSD: sdhc_acpi.c,v 1.19 2022/01/15 18:02:33 jmcneill Exp $ */ |
2 | | | 2 | |
3 | /* | | 3 | /* |
4 | * Copyright (c) 2016 Kimihiro Nonaka <nonaka@NetBSD.org> | | 4 | * Copyright (c) 2016 Kimihiro Nonaka <nonaka@NetBSD.org> |
5 | * All rights reserved. | | 5 | * All rights reserved. |
6 | * | | 6 | * |
7 | * Redistribution and use in source and binary forms, with or without | | 7 | * Redistribution and use in source and binary forms, with or without |
8 | * modification, are permitted provided that the following conditions | | 8 | * modification, are permitted provided that the following conditions |
9 | * are met: | | 9 | * are met: |
10 | * 1. Redistributions of source code must retain the above copyright | | 10 | * 1. Redistributions of source code must retain the above copyright |
11 | * notice, this list of conditions and the following disclaimer. | | 11 | * notice, this list of conditions and the following disclaimer. |
12 | * 2. The name of the author may not be used to endorse or promote products | | 12 | * 2. The name of the author may not be used to endorse or promote products |
13 | * derived from this software without specific prior written permission. | | 13 | * derived from this software without specific prior written permission. |
14 | * | | 14 | * |
| @@ -16,27 +16,27 @@ | | | @@ -16,27 +16,27 @@ |
16 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | | 16 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
17 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | | 17 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
18 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | | 18 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | | 19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
20 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | | 20 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
21 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | | 21 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
22 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | | 22 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
23 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | 23 | * 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 | | 24 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
25 | * SUCH DAMAGE. | | 25 | * SUCH DAMAGE. |
26 | */ | | 26 | */ |
27 | | | 27 | |
28 | #include <sys/cdefs.h> | | 28 | #include <sys/cdefs.h> |
29 | __KERNEL_RCSID(0, "$NetBSD: sdhc_acpi.c,v 1.18 2022/01/15 15:54:40 jmcneill Exp $"); | | 29 | __KERNEL_RCSID(0, "$NetBSD: sdhc_acpi.c,v 1.19 2022/01/15 18:02:33 jmcneill Exp $"); |
30 | | | 30 | |
31 | #include <sys/param.h> | | 31 | #include <sys/param.h> |
32 | #include <sys/device.h> | | 32 | #include <sys/device.h> |
33 | #include <sys/systm.h> | | 33 | #include <sys/systm.h> |
34 | #include <sys/kmem.h> | | 34 | #include <sys/kmem.h> |
35 | | | 35 | |
36 | #include <dev/acpi/acpireg.h> | | 36 | #include <dev/acpi/acpireg.h> |
37 | #include <dev/acpi/acpivar.h> | | 37 | #include <dev/acpi/acpivar.h> |
38 | #include <dev/acpi/acpi_intr.h> | | 38 | #include <dev/acpi/acpi_intr.h> |
39 | | | 39 | |
40 | #include <dev/sdmmc/sdhcreg.h> | | 40 | #include <dev/sdmmc/sdhcreg.h> |
41 | #include <dev/sdmmc/sdhcvar.h> | | 41 | #include <dev/sdmmc/sdhcvar.h> |
42 | #include <dev/sdmmc/sdmmcvar.h> | | 42 | #include <dev/sdmmc/sdmmcvar.h> |
| @@ -371,20 +371,20 @@ sdhc_acpi_rockchip_bus_clock(struct sdhc | | | @@ -371,20 +371,20 @@ sdhc_acpi_rockchip_bus_clock(struct sdhc |
371 | arg3.Package.Elements = &targetfreq; | | 371 | arg3.Package.Elements = &targetfreq; |
372 | | | 372 | |
373 | rv = acpi_dsm_integer(asc->sc_handle, sdhc_acpi_rockchip_dsm_uuid, | | 373 | rv = acpi_dsm_integer(asc->sc_handle, sdhc_acpi_rockchip_dsm_uuid, |
374 | ROCKCHIP_DSM_REV, ROCKCHIP_DSM_FUNC_SET_CARD_CLOCK, &arg3, | | 374 | ROCKCHIP_DSM_REV, ROCKCHIP_DSM_FUNC_SET_CARD_CLOCK, &arg3, |
375 | &actfreq); | | 375 | &actfreq); |
376 | if (ACPI_FAILURE(rv)) { | | 376 | if (ACPI_FAILURE(rv)) { |
377 | aprint_error_dev(sc->sc_dev, | | 377 | aprint_error_dev(sc->sc_dev, |
378 | "eMMC Set Card Clock DSM failed: %s\n", | | 378 | "eMMC Set Card Clock DSM failed: %s\n", |
379 | AcpiFormatException(rv)); | | 379 | AcpiFormatException(rv)); |
380 | return ENXIO; | | 380 | return ENXIO; |
381 | } | | 381 | } |
382 | | | 382 | |
383 | aprint_debug_dev(sc->sc_dev, | | 383 | aprint_debug_dev(sc->sc_dev, |
384 | "eMMC Set Card Clock DSM returned %lu Hz\n", actfreq); | | 384 | "eMMC Set Card Clock DSM returned %" PRIu64 " Hz\n", actfreq); |
385 | if (actfreq == 0) { | | 385 | if (actfreq == 0 && freq != 0) { |
386 | return EINVAL; | | 386 | return EINVAL; |
387 | } | | 387 | } |
388 | | | 388 | |
389 | return 0; | | 389 | return 0; |
390 | } | | 390 | } |