Page MenuHomeFreeBSD

D8873.id.diff
No OneTemporary

D8873.id.diff

Index: head/sys/arm/freescale/imx/imx6_ssi.c
===================================================================
--- head/sys/arm/freescale/imx/imx6_ssi.c
+++ head/sys/arm/freescale/imx/imx6_ssi.c
@@ -66,6 +66,7 @@
bus_space_write_4(_sc->bst, _sc->bsh, _reg, _val)
#define SSI_NCHANNELS 1
+#define DMAS_TOTAL 8
/* i.MX6 SSI registers */
@@ -187,8 +188,8 @@
struct sdma_conf *conf;
struct ssi_rate *sr;
struct sdma_softc *sdma_sc;
- int sdma_ev_rx;
- int sdma_ev_tx;
+ uint32_t sdma_ev_rx;
+ uint32_t sdma_ev_tx;
int sdma_channel;
};
@@ -437,7 +438,7 @@
struct sdma_softc *sdma_sc;
phandle_t node, sdma_node;
device_t sdma_dev;
- int dts_value[8];
+ pcell_t dts_value[DMAS_TOTAL];
int len;
if ((node = ofw_bus_get_node(sc->dev)) == -1)
@@ -446,7 +447,14 @@
if ((len = OF_getproplen(node, "dmas")) <= 0)
return (ENXIO);
- OF_getencprop(node, "dmas", &dts_value, len);
+ if (len != sizeof(dts_value)) {
+ device_printf(sc->dev,
+ "\"dmas\" property length is invalid: %d (expected %d)",
+ len, sizeof(dts_value));
+ return (ENXIO);
+ }
+
+ OF_getencprop(node, "dmas", dts_value, sizeof(dts_value));
sc->sdma_ev_rx = dts_value[1];
sc->sdma_ev_tx = dts_value[5];
@@ -850,4 +858,5 @@
DRIVER_MODULE(ssi, simplebus, ssi_pcm_driver, pcm_devclass, 0, 0);
MODULE_DEPEND(ssi, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER);
+MODULE_DEPEND(ssi, sdma, 0, 0, 0);
MODULE_VERSION(ssi, 1);

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 22, 9:06 AM (14 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25943131
Default Alt Text
D8873.id.diff (1 KB)

Event Timeline