Author: imp
Date: Thu Jul 4 14:15:04 2019
New Revision: 349728
URL: https://svnweb.freebsd.org/changeset/base/349728
Log:
Implement missing MMCBR ivars
All MMCBR bridges have to implement all the MMCBR variables. This
implements them for everybody that currently doesn't.
A common routine for this should be written.
Modified:
head/sys/arm/amlogic/aml8726/aml8726_mmc.c
head/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c
head/sys/dev/mmc/host/dwmmc.c
head/sys/mips/ingenic/jz4780_mmc.c
Modified: head/sys/arm/amlogic/aml8726/aml8726_mmc.c
==============================================================================
--- head/sys/arm/amlogic/aml8726/aml8726_mmc.c Thu Jul 4 14:04:08 2019
(r349727)
+++ head/sys/arm/amlogic/aml8726/aml8726_mmc.c Thu Jul 4 14:15:04 2019
(r349728)
@@ -965,15 +965,26 @@ aml8726_mmc_read_ivar(device_t bus, device_t child,
case MMCBR_IVAR_POWER_MODE:
*(int *)result = sc->host.ios.power_mode;
break;
+ case MMCBR_IVAR_RETUNE_REQ:
+ *(int *)result = return_req_none;
case MMCBR_IVAR_VDD:
*(int *)result = sc->host.ios.vdd;
break;
+ case MMCBR_IVAR_VCCQ:
+ *result = sc->sc_host.ios.vccq;
+ break;
case MMCBR_IVAR_CAPS:
*(int *)result = sc->host.caps;
break;
+ case MMCBR_IVAR_TIMING:
+ *(int *)result = sc->sc_host.ios.timing;
+ break;
case MMCBR_IVAR_MAX_DATA:
*(int *)result = AML_MMC_MAX_DMA / MMC_SECTOR_SIZE;
break;
+ case MMCBR_IVAR_MAX_BUSY_TIMEOUT:
+ *(int *)result = 1000000; /* 1s max */
+ break;
default:
return (EINVAL);
}
@@ -1011,6 +1022,12 @@ aml8726_mmc_write_ivar(device_t bus, device_t child,
break;
case MMCBR_IVAR_VDD:
sc->host.ios.vdd = value;
+ break;
+ case MMCBR_IVAR_VCCQ:
+ sc->sc_host.ios.vccq = value;
+ break;
+ case MMCBR_IVAR_TIMING:
+ sc->sc_host.ios.timing = value;
break;
/* These are read-only */
case MMCBR_IVAR_CAPS:
Modified: head/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c
==============================================================================
--- head/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c Thu Jul 4 14:04:08
2019 (r349727)
+++ head/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c Thu Jul 4 14:15:04
2019 (r349728)
@@ -1245,15 +1245,27 @@ aml8726_sdxc_read_ivar(device_t bus, device_t child,
case MMCBR_IVAR_POWER_MODE:
*(int *)result = sc->host.ios.power_mode;
break;
+ case MMCBR_IVAR_RETUNE_REQ:
+ *(int *)result = return_req_none;
+ break;
case MMCBR_IVAR_VDD:
*(int *)result = sc->host.ios.vdd;
break;
+ case MMCBR_IVAR_VCCQ:
+ *result = sc->host.ios.vccq;
+ break;
case MMCBR_IVAR_CAPS:
*(int *)result = sc->host.caps;
break;
+ case MMCBR_IVAR_TIMING:
+ *(int *)result = sc->host.ios.timing;
+ break;
case MMCBR_IVAR_MAX_DATA:
*(int *)result = AML_SDXC_MAX_DMA / MMC_SECTOR_SIZE;
break;
+ case MMCBR_IVAR_MAX_BUSY_TIMEOUT:
+ *(int *)result = 1000000; /* 1s max */
+ break;
default:
return (EINVAL);
}
@@ -1291,6 +1303,12 @@ aml8726_sdxc_write_ivar(device_t bus, device_t child,
break;
case MMCBR_IVAR_VDD:
sc->host.ios.vdd = value;
+ break;
+ case MMCBR_IVAR_VCCQ:
+ sc->host.ios.vccq = value;
+ break;
+ case MMCBR_IVAR_TIMING:
+ sc->host.ios.timing = value;
break;
/* These are read-only */
case MMCBR_IVAR_CAPS:
Modified: head/sys/dev/mmc/host/dwmmc.c
==============================================================================
--- head/sys/dev/mmc/host/dwmmc.c Thu Jul 4 14:04:08 2019
(r349727)
+++ head/sys/dev/mmc/host/dwmmc.c Thu Jul 4 14:15:04 2019
(r349728)
@@ -1091,6 +1091,9 @@ dwmmc_read_ivar(device_t bus, device_t child, int whic
case MMCBR_IVAR_VDD:
*(int *)result = sc->host.ios.vdd;
break;
+ case MMCBR_IVAR_VCCQ:
+ *(int *)result = sc->host.ios.vccq;
+ break;
case MMCBR_IVAR_CAPS:
*(int *)result = sc->host.caps;
break;
@@ -1141,10 +1144,8 @@ dwmmc_write_ivar(device_t bus, device_t child, int whi
case MMCBR_IVAR_TIMING:
sc->host.ios.timing = value;
break;
-
- /* Not handled */
case MMCBR_IVAR_VCCQ:
- return (0);
+ sc->sc_host.ios.vccq = value;
break;
/* These are read-only */
case MMCBR_IVAR_CAPS:
Modified: head/sys/mips/ingenic/jz4780_mmc.c
==============================================================================
--- head/sys/mips/ingenic/jz4780_mmc.c Thu Jul 4 14:04:08 2019
(r349727)
+++ head/sys/mips/ingenic/jz4780_mmc.c Thu Jul 4 14:15:04 2019
(r349728)
@@ -774,17 +774,26 @@ jz4780_mmc_read_ivar(device_t bus, device_t child, int
case MMCBR_IVAR_POWER_MODE:
*(int *)result = sc->sc_host.ios.power_mode;
break;
+ case MMCBR_IVAR_RETUNE_REQ:
+ *(int *)result = return_req_none;
+ break;
case MMCBR_IVAR_VDD:
*(int *)result = sc->sc_host.ios.vdd;
break;
+ case MMCBR_IVAR_VCCQ:
+ *result = sc->sc_host.ios.vccq;
+ break;
case MMCBR_IVAR_CAPS:
*(int *)result = sc->sc_host.caps;
break;
+ case MMCBR_IVAR_TIMING:
+ *(int *)result = sc->sc_host.ios.timing;
+ break;
case MMCBR_IVAR_MAX_DATA:
*(int *)result = 65535;
break;
- case MMCBR_IVAR_TIMING:
- *(int *)result = sc->sc_host.ios.timing;
+ case MMCBR_IVAR_MAX_BUSY_TIMEOUT:
+ *(int *)result = 1000000; /* 1s max */
break;
}
@@ -824,6 +833,9 @@ jz4780_mmc_write_ivar(device_t bus, device_t child, in
break;
case MMCBR_IVAR_VDD:
sc->sc_host.ios.vdd = value;
+ break;
+ case MMCBR_IVAR_VCCQ:
+ sc->sc_host.ios.vccq = value;
break;
case MMCBR_IVAR_TIMING:
sc->sc_host.ios.timing = value;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"