4
4
5
5
#include " tas58xx.h"
6
6
7
+ #include < fuchsia/hardware/gpio/cpp/banjo-mock.h>
7
8
#include < lib/async-loop/cpp/loop.h>
8
9
#include < lib/async-loop/default.h>
9
10
#include < lib/ddk/metadata.h>
@@ -25,15 +26,17 @@ namespace audio_fidl = ::fuchsia::hardware::audio;
25
26
namespace signal_fidl = ::fuchsia::hardware::audio::signalprocessing;
26
27
27
28
struct Tas58xxCodec : public Tas58xx {
28
- explicit Tas58xxCodec (zx_device_t * parent, ddk::I2cChannel i2c)
29
- : Tas58xx(parent, std::move(i2c)) {}
29
+ explicit Tas58xxCodec (zx_device_t * parent, ddk::I2cChannel i2c,
30
+ ddk::GpioProtocolClient gpio_fault)
31
+ : Tas58xx(parent, std::move(i2c), std::move(gpio_fault)) {}
30
32
codec_protocol_t GetProto () { return {&this ->codec_protocol_ops_ , this }; }
31
33
uint64_t GetTopologyId () { return Tas58xx::GetTopologyId (); }
32
34
uint64_t GetAglPeId () { return Tas58xx::GetAglPeId (); }
33
35
uint64_t GetEqPeId () { return Tas58xx::GetEqPeId (); }
34
36
zx_status_t SetBand (bool enabled, size_t index, uint32_t frequency, float Q, float gain_db) {
35
37
return Tas58xx::SetBand (enabled, index, frequency, Q, gain_db);
36
38
}
39
+ bool BackgroundFaultPollingIsEnabled () override { return false ; }
37
40
};
38
41
39
42
class Tas58xxTest : public zxtest ::Test {
@@ -52,8 +55,11 @@ class Tas58xxTest : public zxtest::Test {
52
55
mock_i2c_.ExpectWrite ({0x67 }).ExpectReadStop ({0x00 }, ZX_ERR_INTERNAL); // Error will retry.
53
56
mock_i2c_.ExpectWrite ({0x67 }).ExpectReadStop ({0x00 }, ZX_ERR_INTERNAL); // Error will retry.
54
57
mock_i2c_.ExpectWrite ({0x67 }).ExpectReadStop ({0x00 }, ZX_OK); // Check DIE ID, no error now.
55
- ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(fake_parent_.get (),
56
- std::move (endpoints->client )));
58
+
59
+ ddk::MockGpio mock_fault;
60
+
61
+ ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(
62
+ fake_parent_.get (), std::move (endpoints->client ), mock_fault.GetProto ()));
57
63
58
64
auto * child_dev = fake_parent_->GetLatestChild ();
59
65
ASSERT_NOT_NULL (child_dev);
@@ -353,8 +359,11 @@ class Tas58xxSignalProcessingTest : public zxtest::Test {
353
359
354
360
loop_.StartThread ();
355
361
mock_i2c_.ExpectWrite ({0x67 }).ExpectReadStop ({0x00 }, ZX_OK); // Check DIE ID.
356
- ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(fake_parent_.get (),
357
- std::move (endpoints->client )));
362
+
363
+ ddk::MockGpio mock_fault;
364
+
365
+ ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(
366
+ fake_parent_.get (), std::move (endpoints->client ), mock_fault.GetProto ()));
358
367
359
368
auto * child_dev = fake_parent_->GetLatestChild ();
360
369
ASSERT_NOT_NULL (child_dev);
@@ -431,8 +440,10 @@ TEST(Tas58xxSignalProcessingTest, SignalProcessingConnectTooManyConnections) {
431
440
fidl::BindServer<mock_i2c::MockI2c>(loop.dispatcher (), std::move (endpoints->server ), &mock_i2c);
432
441
loop.StartThread ();
433
442
434
- ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(fake_parent.get (),
435
- std::move (endpoints->client )));
443
+ ddk::MockGpio mock_fault;
444
+
445
+ ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(
446
+ fake_parent.get (), std::move (endpoints->client ), mock_fault.GetProto ()));
436
447
auto * child_dev = fake_parent->GetLatestChild ();
437
448
ASSERT_NOT_NULL (child_dev);
438
449
auto codec = child_dev->GetDeviceContext <Tas58xxCodec>();
@@ -1219,8 +1230,10 @@ TEST(Tas58xxTest, Reset) {
1219
1230
fidl::BindServer<mock_i2c::MockI2c>(loop.dispatcher (), std::move (endpoints->server ), &mock_i2c);
1220
1231
loop.StartThread ();
1221
1232
1222
- ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(fake_parent.get (),
1223
- std::move (endpoints->client )));
1233
+ ddk::MockGpio mock_fault;
1234
+
1235
+ ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(
1236
+ fake_parent.get (), std::move (endpoints->client ), mock_fault.GetProto ()));
1224
1237
auto * child_dev = fake_parent->GetLatestChild ();
1225
1238
ASSERT_NOT_NULL (child_dev);
1226
1239
auto codec = child_dev->GetDeviceContext <Tas58xxCodec>();
@@ -1268,8 +1281,10 @@ TEST(Tas58xxTest, Bridged) {
1268
1281
fidl::BindServer<mock_i2c::MockI2c>(loop.dispatcher (), std::move (endpoints->server ), &mock_i2c);
1269
1282
loop.StartThread ();
1270
1283
1271
- ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(fake_parent.get (),
1272
- std::move (endpoints->client )));
1284
+ ddk::MockGpio mock_fault;
1285
+
1286
+ ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(
1287
+ fake_parent.get (), std::move (endpoints->client ), mock_fault.GetProto ()));
1273
1288
auto * child_dev = fake_parent->GetLatestChild ();
1274
1289
ASSERT_NOT_NULL (child_dev);
1275
1290
auto codec = child_dev->GetDeviceContext <Tas58xxCodec>();
@@ -1378,8 +1393,10 @@ TEST(Tas58xxTest, ExternalConfig) {
1378
1393
fidl::BindServer<mock_i2c::MockI2c>(loop.dispatcher (), std::move (endpoints->server ), &mock_i2c);
1379
1394
loop.StartThread ();
1380
1395
1381
- ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(fake_parent.get (),
1382
- std::move (endpoints->client )));
1396
+ ddk::MockGpio mock_fault;
1397
+
1398
+ ASSERT_OK (SimpleCodecServer::CreateAndAddToDdk<Tas58xxCodec>(
1399
+ fake_parent.get (), std::move (endpoints->client ), mock_fault.GetProto ()));
1383
1400
auto * child_dev = fake_parent->GetLatestChild ();
1384
1401
ASSERT_NOT_NULL (child_dev);
1385
1402
auto codec = child_dev->GetDeviceContext <Tas58xxCodec>();
0 commit comments