From: Nikhil Devshatwar <nikhil.nd@ti.com>
input_bus_flags are specified in drm_bridge_timings (legacy) as well
as drm_bridge_state->input_bus_cfg.flags
The flags from the timings will be deprecated. Bridges are supposed
to validate and set the bridge state flags from atomic_check.
Implement atomic_check hook for the same.
Signed-off-by: Nikhil Devshatwar <nikhil.nd@ti.com>
---
Notes:
changes from v4:
* fix a warning Reported-by: kernel test robot <lkp@intel.com>
changes from v5:
* Moved the return statement here from patch 4 (where it was added
by mistake).
drivers/gpu/drm/bridge/ti-tfp410.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
index 7dacc7e03eee..631ae8f11a77 100644
--- a/drivers/gpu/drm/bridge/ti-tfp410.c
+++ b/drivers/gpu/drm/bridge/ti-tfp410.c
@@ -228,6 +228,21 @@ static u32 *tfp410_get_input_bus_fmts(struct drm_bridge *bridge,
return input_fmts;
}
+static int tfp410_atomic_check(struct drm_bridge *bridge,
+ struct drm_bridge_state *bridge_state,
+ struct drm_crtc_state *crtc_state,
+ struct drm_connector_state *conn_state)
+{
+ struct tfp410 *dvi = drm_bridge_to_tfp410(bridge);
+
+ /*
+ * There might be flags negotiation supported in future.
+ * Set the bus flags in atomic_check statically for now.
+ */
+ bridge_state->input_bus_cfg.flags = dvi->timings.input_bus_flags;
+ return 0;
+}
+
static const struct drm_bridge_funcs tfp410_bridge_funcs = {
.attach = tfp410_attach,
.detach = tfp410_detach,
@@ -238,6 +253,7 @@ static const struct drm_bridge_funcs tfp410_bridge_funcs = {
.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
.atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
.atomic_get_input_bus_fmts = tfp410_get_input_bus_fmts,
+ .atomic_check = tfp410_atomic_check,
};
static const struct drm_bridge_timings tfp410_default_timings = {
--
2.40.1
On 09/05/2023 11:30, Aradhya Bhatia wrote:
> From: Nikhil Devshatwar <nikhil.nd@ti.com>
>
> input_bus_flags are specified in drm_bridge_timings (legacy) as well
> as drm_bridge_state->input_bus_cfg.flags
>
> The flags from the timings will be deprecated. Bridges are supposed
> to validate and set the bridge state flags from atomic_check.
>
> Implement atomic_check hook for the same.
>
> Signed-off-by: Nikhil Devshatwar <nikhil.nd@ti.com>
> ---
>
> Notes:
> changes from v4:
> * fix a warning Reported-by: kernel test robot <lkp@intel.com>
>
> changes from v5:
> * Moved the return statement here from patch 4 (where it was added
> by mistake).
>
> drivers/gpu/drm/bridge/ti-tfp410.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
> index 7dacc7e03eee..631ae8f11a77 100644
> --- a/drivers/gpu/drm/bridge/ti-tfp410.c
> +++ b/drivers/gpu/drm/bridge/ti-tfp410.c
> @@ -228,6 +228,21 @@ static u32 *tfp410_get_input_bus_fmts(struct drm_bridge *bridge,
> return input_fmts;
> }
>
> +static int tfp410_atomic_check(struct drm_bridge *bridge,
> + struct drm_bridge_state *bridge_state,
> + struct drm_crtc_state *crtc_state,
> + struct drm_connector_state *conn_state)
> +{
> + struct tfp410 *dvi = drm_bridge_to_tfp410(bridge);
> +
> + /*
> + * There might be flags negotiation supported in future.
> + * Set the bus flags in atomic_check statically for now.
> + */
> + bridge_state->input_bus_cfg.flags = dvi->timings.input_bus_flags;
A newline here before return would look better
> + return 0;
> +}
> +
> static const struct drm_bridge_funcs tfp410_bridge_funcs = {
> .attach = tfp410_attach,
> .detach = tfp410_detach,
> @@ -238,6 +253,7 @@ static const struct drm_bridge_funcs tfp410_bridge_funcs = {
> .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
> .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
> .atomic_get_input_bus_fmts = tfp410_get_input_bus_fmts,
> + .atomic_check = tfp410_atomic_check,
> };
>
> static const struct drm_bridge_timings tfp410_default_timings = {
With that fixed:
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Hi Neil,
On 16-May-23 12:55, Neil Armstrong wrote:
> On 09/05/2023 11:30, Aradhya Bhatia wrote:
>> From: Nikhil Devshatwar <nikhil.nd@ti.com>
>>
>> input_bus_flags are specified in drm_bridge_timings (legacy) as well
>> as drm_bridge_state->input_bus_cfg.flags
>>
>> The flags from the timings will be deprecated. Bridges are supposed
>> to validate and set the bridge state flags from atomic_check.
>>
>> Implement atomic_check hook for the same.
>>
>> Signed-off-by: Nikhil Devshatwar <nikhil.nd@ti.com>
>> ---
>>
>> Notes:
>> changes from v4:
>> * fix a warning Reported-by: kernel test robot <lkp@intel.com>
>>
>> changes from v5:
>> * Moved the return statement here from patch 4 (where it was added
>> by mistake).
>>
>> drivers/gpu/drm/bridge/ti-tfp410.c | 16 ++++++++++++++++
>> 1 file changed, 16 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c
>> b/drivers/gpu/drm/bridge/ti-tfp410.c
>> index 7dacc7e03eee..631ae8f11a77 100644
>> --- a/drivers/gpu/drm/bridge/ti-tfp410.c
>> +++ b/drivers/gpu/drm/bridge/ti-tfp410.c
>> @@ -228,6 +228,21 @@ static u32 *tfp410_get_input_bus_fmts(struct
>> drm_bridge *bridge,
>> return input_fmts;
>> }
>> +static int tfp410_atomic_check(struct drm_bridge *bridge,
>> + struct drm_bridge_state *bridge_state,
>> + struct drm_crtc_state *crtc_state,
>> + struct drm_connector_state *conn_state)
>> +{
>> + struct tfp410 *dvi = drm_bridge_to_tfp410(bridge);
>> +
>> + /*
>> + * There might be flags negotiation supported in future.
>> + * Set the bus flags in atomic_check statically for now.
>> + */
>> + bridge_state->input_bus_cfg.flags = dvi->timings.input_bus_flags;
>
> A newline here before return would look better
Yup! Will add one.
>
>> + return 0;
>> +}
>> +
>> static const struct drm_bridge_funcs tfp410_bridge_funcs = {
>> .attach = tfp410_attach,
>> .detach = tfp410_detach,
>> @@ -238,6 +253,7 @@ static const struct drm_bridge_funcs
>> tfp410_bridge_funcs = {
>> .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
>> .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
>> .atomic_get_input_bus_fmts = tfp410_get_input_bus_fmts,
>> + .atomic_check = tfp410_atomic_check,
>> };
>> static const struct drm_bridge_timings tfp410_default_timings = {
>
> With that fixed:
>
> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Thank you!
Regards
Aradhya
© 2016 - 2026 Red Hat, Inc.