Some tests will need to retrieve the output that was just allocated by
vc4_mock_atomic_add_output().
Instead of making them look them up in the DRM device, we can simply
make vc4_mock_atomic_add_output() return an error pointer that holds the
allocated output instead of the error code.
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
struct vc4_dev *vc4_mock_device(struct kunit *test);
struct vc4_dev *vc5_mock_device(struct kunit *test);
struct vc4_dev *vc4_mock_device(struct kunit *test);
struct vc4_dev *vc5_mock_device(struct kunit *test);
-int vc4_mock_atomic_add_output(struct kunit *test,
- struct drm_atomic_state *state,
- enum vc4_encoder_type type);
+struct vc4_dummy_output *
+vc4_mock_atomic_add_output(struct kunit *test,
+ struct drm_atomic_state *state,
+ enum vc4_encoder_type type);
int vc4_mock_atomic_del_output(struct kunit *test,
struct drm_atomic_state *state,
enum vc4_encoder_type type);
int vc4_mock_atomic_del_output(struct kunit *test,
struct drm_atomic_state *state,
enum vc4_encoder_type type);
DRM_SIMPLE_MODE(640, 480, 64, 48)
};
DRM_SIMPLE_MODE(640, 480, 64, 48)
};
-int vc4_mock_atomic_add_output(struct kunit *test,
- struct drm_atomic_state *state,
- enum vc4_encoder_type type)
+struct vc4_dummy_output *
+vc4_mock_atomic_add_output(struct kunit *test,
+ struct drm_atomic_state *state,
+ enum vc4_encoder_type type)
{
struct drm_device *drm = state->dev;
struct drm_connector_state *conn_state;
{
struct drm_device *drm = state->dev;
struct drm_connector_state *conn_state;
crtc_state->active = true;
crtc_state->active = true;
}
int vc4_mock_atomic_del_output(struct kunit *test,
}
int vc4_mock_atomic_del_output(struct kunit *test,
int ret;
for (i = 0; i < params->nencoders; i++) {
int ret;
for (i = 0; i < params->nencoders; i++) {
+ struct vc4_dummy_output *output;
enum vc4_encoder_type enc_type = params->encoders[i];
enum vc4_encoder_type enc_type = params->encoders[i];
- ret = vc4_mock_atomic_add_output(test, state, enc_type);
- KUNIT_ASSERT_EQ(test, ret, 0);
+ output = vc4_mock_atomic_add_output(test, state, enc_type);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
}
ret = drm_atomic_check_only(state);
}
ret = drm_atomic_check_only(state);
int ret;
for (i = 0; i < params->nencoders; i++) {
int ret;
for (i = 0; i < params->nencoders; i++) {
+ struct vc4_dummy_output *output;
enum vc4_encoder_type enc_type = params->encoders[i];
enum vc4_encoder_type enc_type = params->encoders[i];
- ret = vc4_mock_atomic_add_output(test, state, enc_type);
- KUNIT_ASSERT_EQ(test, ret, 0);
+ output = vc4_mock_atomic_add_output(test, state, enc_type);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
}
ret = drm_atomic_check_only(state);
}
ret = drm_atomic_check_only(state);
{
struct drm_modeset_acquire_ctx *ctx;
struct drm_atomic_state *state;
{
struct drm_modeset_acquire_ctx *ctx;
struct drm_atomic_state *state;
+ struct vc4_dummy_output *output;
struct vc4_crtc_state *new_vc4_crtc_state;
struct vc4_hvs_state *new_hvs_state;
unsigned int hdmi0_channel;
struct vc4_crtc_state *new_vc4_crtc_state;
struct vc4_hvs_state *new_hvs_state;
unsigned int hdmi0_channel;
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
- KUNIT_ASSERT_EQ(test, ret, 0);
+ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
- KUNIT_ASSERT_EQ(test, ret, 0);
+ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);
{
struct drm_modeset_acquire_ctx *ctx;
struct drm_atomic_state *state;
{
struct drm_modeset_acquire_ctx *ctx;
struct drm_atomic_state *state;
+ struct vc4_dummy_output *output;
struct vc4_crtc_state *new_vc4_crtc_state;
struct vc4_hvs_state *new_hvs_state;
unsigned int old_hdmi0_channel;
struct vc4_crtc_state *new_vc4_crtc_state;
struct vc4_hvs_state *new_hvs_state;
unsigned int old_hdmi0_channel;
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
- KUNIT_ASSERT_EQ(test, ret, 0);
+ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
- KUNIT_ASSERT_EQ(test, ret, 0);
+ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);
{
struct drm_modeset_acquire_ctx *ctx;
struct drm_atomic_state *state;
{
struct drm_modeset_acquire_ctx *ctx;
struct drm_atomic_state *state;
+ struct vc4_dummy_output *output;
struct vc4_crtc_state *new_vc4_crtc_state;
struct drm_device *drm;
struct vc4_dev *vc4;
struct vc4_crtc_state *new_vc4_crtc_state;
struct drm_device *drm;
struct vc4_dev *vc4;
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
- KUNIT_ASSERT_EQ(test, ret, 0);
+ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
- KUNIT_ASSERT_EQ(test, ret, 0);
+ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);
ret = drm_atomic_check_only(state);
KUNIT_ASSERT_EQ(test, ret, 0);