-
Notifications
You must be signed in to change notification settings - Fork 1
Imaging ACPI configuration and upstream GMSL driver #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: linux/v6.17
Are you sure you want to change the base?
Conversation
Internal source pads will be used as routing endpoints in V4L2 [GS]_ROUTING IOCTLs, to indicate that the stream begins in the entity. Internal source pads are pads that have both SINK and INTERNAL flags set. Also prevent creating links to pads that have been flagged as internal and initialising SOURCE pads with INTERNAL flag set. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Analog Devices is taking responsability for the maintenance of the Maxim GMSL2/3 devices. Add myself to the maintainers list and to the device tree bindings. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org>
MAX96717 is capable of address translation for the connected I2C slaves. Add support for I2C ATR while keeping I2C gate for compatibility to support this usecase. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
MAX96717 is capable of configuring various pin properties. Add pinctrl/pinconf properties to support this usecase. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
MAX9295A is an older variant of the MAX96717 which does not support tunnel mode. Document the compatibility. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org>
MAX96793 is a newer variant of the MAX96717 which also supports GMSL3 links. Document this compatibility. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org>
Analog Devices is taking responsability for the maintenance of the Maxim GMSL2/3 devices. Add myself to the maintainers list and to the device tree bindings. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
The MAX96712 and MAX96724 support up to 4 separate PHYs, depending on the selected PHY configuration. Use patternProperties to document this. The input ports are all the same, use patternProperties for them. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
MAX96712 and MAX96724 have more than one GMSL2 link, and each link is capable of connecting to a separate serializer. If these serializers have the same CFG pins configuration, they will also have the same I2C address, causing conflicts unless the deserializer changes the address of the connected serializers. The MAX96712 and MAX96724 support changing the I2C address of the connected serializers. Document this capability. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
The GMSL links can carry power to the serializer when using coaxial cables. Document this capability. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
MAX96724F/MAX96724R are a lower capability variant of the MAX96724 which only support a fixed rate of 3Gbps in the forward direction. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Analog Devices is taking responsability for the maintenance of the Maxim GMSL2/3 devices. Add myself to the maintainers list and to the device tree bindings. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org>
MAX96714R is a lower capability variant of the MAX96714 which only supports a fixed rate of 3Gbps in the forward direction. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org>
The MAX9296A deserializer converts single or dual serial inputs to MIPI CSI-2 outputs. The GMSL2 links operate at a fixed rate of 3Gbps or 6Gbps in the forward direction and 187.5Mbps in the reverse direction. In GMSL1 mode, each serial link can be paired with 3.12Gbps or 1.5Gbps GMSL1 serializers or operate up to 4.5Gbps with GMSL2 serializers with GMSL1 backward compatibility. The MAX9296A supports mixed GMSL2 and GMSL1 links. The serial inputs operate independently, allowing videos with different timings and resolutions to be received on each input. MAX96716A supports both tunnel and pixel mode. MAX96792A supports both tunnel and pixel mode, and has two GMSL3 links. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Rob Herring (Arm) <robh@kernel.org>
These drivers are meant to be used as a common framework for Maxim GMSL2/3 serializers and deserializers. This framework enables support for the following new features across all the chips: * Full Streams API support * .get_frame_desc() * .get_mbus_config() * I2C ATR * automatic GMSL link version negotiation * automatic stream id selection * automatic VC remapping * automatic pixel mode / tunnel mode selection * automatic double mode selection / data padding * logging of internal state and chip status registers via .log_status() * PHY modes * serializer pinctrl * TPG Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com>
These drivers are meant to be used as a common framework for Maxim GMSL2/3 serializers. This framework enables support for the following new features across all the chips: * Full Streams API support * .get_frame_desc() * .get_mbus_config() * I2C ATR * automatic GMSL link version negotiation * automatic stream id selection * automatic VC remapping * automatic pixel mode / tunnel mode selection * automatic double mode selection / data padding * logging of internal state and chip status registers via .log_status() * PHY modes * serializer pinctrl * TPG Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com>
These drivers are meant to be used as a common framework for Maxim GMSL2/3 deserializer. This framework enables support for the following new features across all the chips: * Full Streams API support * .get_frame_desc() * .get_mbus_config() * I2C ATR * automatic GMSL link version negotiation * automatic stream id selection * automatic VC remapping * automatic pixel mode / tunnel mode selection * automatic double mode selection / data padding * logging of internal state and chip status registers via .log_status() * PHY modes * serializer pinctrl * TPG Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com>
Add a new MAX96717 driver that also supports MAX9295A, MAX96717F and MAX96793. Integrate it with the common serializer framework, while keeping compatibility with existing usecases, avoiding code duplication, and also enabling more features across all chips. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com>
Add a new MAX96724 driver that also supports MAX96712, MAX96724F and MAX96724R. Integrate it with the common deserializer framework, while keeping compatibility with existing usecases, avoiding code duplication, and also enabling more features across all chips. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Add a new MAX9296A driver that also supports MAX96714, MAX96714F, MAX96714R, MAX96716A and MAX96792A. Integrate it with the common Deserializer framework, while keeping compatibility with existing usecases, avoiding code duplication, and also enabling more features across all chips. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com>
The staging MAX96712 driver will be removed as its functionality has been moved to the MAX96724 driver which makes use of the Maxim GMSL2/3 deserializer framework. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com>
Remove the staging MAX96712 driver. Its functionality has been moved to the MAX96724 driver which makes use of the Maxim GMSL2/3 deserializer framework. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
The previous MAX96717 driver has been removed and its functionality has been moved to a MAX96717 driver which makes use of the Maxim GMSL2/3 serializer framework. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com>
The previous MAX96714 driver has been removed and its functionality has been moved to the MAX9296A driver which makes use of the Maxim GMSL2/3 serializer framework. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com>
Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
Parse fwnode to check data lanes Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
In GMSL case, if device is not found as described in SSDT, it will trigger unbind_subdev, which there are no subdev to be unbind to begin with. Directly return to avoid calling unbind or unregister_subdev to prevent kenel panic. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Add logs to print out sub devices that are pending to be bound onto notifier Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Look for secondary fwnode in v4l2_subdev_get_fwnode_pad_1_to_1 Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
fwnode does not support i2c-atr nodes structure. points to parent fwnode instead. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Work for GMSL case. Need further checking on other use case Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
In ACPI, ATR and MUX adapter are created dynamically by drivers, there are no pre-allocated resource in ACPI namespace. Adding identifier so that acpi driver can handle devices that resides on ATR and MUX adapter. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
In ACPI table, devices that should residing on parent MUX or ATR adapters have dependencies on parent devices. Hence, clear the dependencies if the adapter created is based by parent through ATR or MUX. ACPI driver can then call register client for the devices Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
pinconf_generic_dt_xxx only handled OF node, calling it in ACPI might cause failure. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Retrieve adapter id from fwnode for static i2c adapter numbering. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Utilize i2c_add_numbered_adapter if static numbering is obtained from FWnode. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
…izer Retrieve and use the ID for child MUX Adapter if ID is found in FWnode. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
… streaming Starting second stream in max_des will override the masking for first stream. Instead of re-write all streams, only write to current selection of stream. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
use_atr should be in max_des_ops, instead of chip_info Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Register does not show the reflect the status of first pipe. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Index used for BACKTOP22 to configure PHY and stream ID used for RX50_STR_SEL is incorrect. Update to use correct value. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
In ACPI, there are no child node named i2c-gate available. instead, store i2c-gate information in property Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
In GMSL case, field is not propagated to Serializer. Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
In case driver does not have v4l2-control that stores link frequency, try to retrieve link frequency from pad Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
In case driver does not have v4l2-control that stores link frequency, try to retrieve link frequency from pad Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
7e55674 to
d5f2d7f
Compare
|
|
||
| return adapter_pool; | ||
|
|
||
| kfree(adapter_pool->adapters); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we cannot reach this line.
| err_free_adapter_pool: | ||
| i2c_atr_free_adapter_pool(adapter_pool); | ||
| return ret; | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add new line between the functions
|
|
||
| static void i2c_atr_free_adapter_pool(struct i2c_atr_adapter_pool *adapter_pool) | ||
| { | ||
| kfree(adapter_pool->adapters); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need to check for null pointers before freeing them? if we do or if there's no harm kfree a nullptr, then we can use this function in line 167?
d483493 to
a94ae6f
Compare
Signed-off-by: He, Pengpeng <pengpengx.he@intel.com> Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
No description provided.