~vicamo/+git/ubuntu-kernel:wip/intel-ipu6-softisp/v6.7.1

Last commit made on 2024-03-05
Get this branch:
git clone -b wip/intel-ipu6-softisp/v6.7.1 https://git.launchpad.net/~vicamo/+git/ubuntu-kernel
Only You-Sheng Yang can upload to this branch. If you are You-Sheng Yang please log in for upload directions.

Branch merges

Branch information

Name:
wip/intel-ipu6-softisp/v6.7.1
Repository:
lp:~vicamo/+git/ubuntu-kernel

Recent commits

a7f86e0... by Hans de Goede <email address hidden>

media: hi556: Add support for avdd regulator

On some ACPI platforms, such as Chromebooks the ACPI methods to
change the power-state (_PS0 and _PS3) fully take care of powering
on/off the sensor.

On other ACPI platforms, such as e.g. various HP models with IPU6 +
hi556 sensor, the sensor driver must control the avdd regulator itself.

Add support for having the driver control the sensor's avdd regulator.
Note this relies on the regulator-core providing a dummy regulator
(which it does by default) on platforms where Linux is not aware of
the avdd regulator.

Signed-off-by: Hans de Goede <email address hidden>

6c1b31e... by Hans de Goede <email address hidden>

media: hi556: Add support for external clock

On some ACPI platforms, such as Chromebooks the ACPI methods to
change the power-state (_PS0 and _PS3) fully take care of powering
on/off the sensor.

On other ACPI platforms, such as e.g. various HP models with IPU6 +
hi556 sensor, the sensor driver must control the sensor's clock itself.

Add support for having the driver control an optional clock.

Signed-off-by: Hans de Goede <email address hidden>

3c0e772... by Hans de Goede <email address hidden>

media: hi556: Add support for reset GPIO

On some ACPI platforms, such as Chromebooks the ACPI methods to
change the power-state (_PS0 and _PS3) fully take care of powering
on/off the sensor.

On other ACPI platforms, such as e.g. various HP models with IPU6 +
hi556 sensor, the sensor driver must control the reset GPIO itself.

Add support for having the driver control an optional reset GPIO.

Signed-off-by: Hans de Goede <email address hidden>

f6a5b3a... by Hans de Goede <email address hidden>

media: hi556: Return -EPROBE_DEFER if no endpoint is found

With ipu bridge, endpoints may only be created when ipu bridge has
initialised. This may happen after the sensor driver has first probed.

Signed-off-by: Hans de Goede <email address hidden>

24cb8bf... by Hans de Goede <email address hidden>

media: ipu-bridge: Change ov2740 link-frequency to 180 MHz

The only known devices that use an ov2740 sensor in combination with
the ipu-bridge code are various Lenovo ThinkPad models, which all
need the link-frequency to be 180 MHz for things to work properly.

The ov2740 driver used to only support 360 MHz link-frequency,
which is why the ipu-bridge entry used 360 MHz, but now the
ov2740 driver has been extended to also support 180 MHz.

The ov2740 is actually used with 360 MHz link-frequency on Chromebooks.
On Chromebooks the camera/sensor fwnode graph is part of the ACPI tables.
The ipu-bridge code is used to dynamically generate the graph when it is
missing, so it is not used on Chromebooks and the ov2740 will keep using
360 MHz link-frequency there as before.

Signed-off-by: Hans de Goede <email address hidden>
Signed-off-by: Sakari Ailus <email address hidden>
Signed-off-by: Hans Verkuil <email address hidden>

5494ba5... by Hans de Goede <email address hidden>

media: ov2740: Add a sleep after resetting the sensor

Split the resetting of the sensor out of the link_freq_config reg_list
and add a delay after this.

This hopefully fixes the stream sometimes not starting, this was
taken from the ov2740 sensor driver in the out of tree IPU6 driver:

https://github.com/intel/ipu6-drivers/

Signed-off-by: Hans de Goede <email address hidden>
Signed-off-by: Sakari Ailus <email address hidden>
Signed-off-by: Hans Verkuil <email address hidden>

6d8ad6c... by Hans de Goede <email address hidden>

media: ov2740: Add support for 180 MHz link frequency

On various Lenovo Thinkpad models with an ov2740 sensor the 360 MHz
link frequency is not supported.

Add support for 180 MHz link frequency, even though this has half the
pixel clock, this supports the same framerate by using half the VTS value
(significantly reducing the amount of empty lines send during vblank).

Normally if there are multiple link-frequencies then the sensor driver
choses the lowest link-frequency still usable for the chosen resolution.

In this case the board supports only 1 link-frequency. Which frequency
is supported is checked in ov2740_check_hwcfg() and then a different
set of supported_modes (using only the supported link-freq) is selected.

The register settings for this were taken from the ov2740 sensor driver
in the out of tree IPU6 driver:

https://github.com/intel/ipu6-drivers/

Signed-off-by: Hans de Goede <email address hidden>
Signed-off-by: Sakari Ailus <email address hidden>
Signed-off-by: Hans Verkuil <email address hidden>

ac16459... by Hans de Goede <email address hidden>

media: ov2740: Check hwcfg after allocating the ov2740 struct

Alloc ov2740_data and set up the drvdata pointer before calling
ov2740_check_hwcfg().

This is a preparation patch to allow ov2740_check_hwcfg()
to store some of the parsed data in the ov2740 struct.

Signed-off-by: Hans de Goede <email address hidden>
Signed-off-by: Sakari Ailus <email address hidden>
Signed-off-by: Hans Verkuil <email address hidden>

989f085... by Hans de Goede <email address hidden>

media: ov2740: Fix hts value

HTS must be more then width, so the 1080 value clearly is wrong,
this is then corrected with some weird math dividing clocks in
to_pixels_per_line() which results in the hts getting multiplied by 2,
resulting in 2160.

Instead just directly set hts to the correct value of 2160 and
drop to_pixels_per_line().

Signed-off-by: Hans de Goede <email address hidden>
Signed-off-by: Sakari Ailus <email address hidden>
Signed-off-by: Hans Verkuil <email address hidden>

e4dc443... by Hans de Goede <email address hidden>

media: ov2740: Improve ov2740_check_hwcfg() error reporting

Make ov2740_check_hwcfg() report an error on failure in all error paths,
so that it is always clear why the probe() failed.

Signed-off-by: Hans de Goede <email address hidden>
Signed-off-by: Sakari Ailus <email address hidden>
Signed-off-by: Hans Verkuil <email address hidden>