mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-24 10:11:26 +03:00
drm/tegra: Update to Linux v6.8
Update the Tegra DRM driver to align with the upstream Linux v6.8 kernel preserving all the downstream changes that still need to be upstreamed. JIRA LINQPJ14-47 Change-Id: If0a9149bcfa2fd6276ac8100933abc3d532a5ddc Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3333320 Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
@@ -601,6 +602,9 @@ static u8 tegra_clk_sor_pad_get_parent(struct clk_hw *hw)
|
||||
}
|
||||
|
||||
static const struct clk_ops tegra_clk_sor_pad_ops = {
|
||||
#if defined(NV_CLK_HW_DETERMINE_RATE_NO_REPARENT_PRESENT) /* Linux 6.4 */
|
||||
.determine_rate = clk_hw_determine_rate_no_reparent,
|
||||
#endif
|
||||
.set_parent = tegra_clk_sor_pad_set_parent,
|
||||
.get_parent = tegra_clk_sor_pad_get_parent,
|
||||
};
|
||||
@@ -1168,7 +1172,7 @@ static int tegra_sor_compute_config(struct tegra_sor *sor,
|
||||
struct drm_dp_link *link)
|
||||
{
|
||||
const u64 f = 100000, link_rate = link->rate * 1000;
|
||||
const u64 pclk = mode->clock * 1000;
|
||||
const u64 pclk = (u64)mode->clock * 1000;
|
||||
u64 input, output, watermark, num;
|
||||
struct tegra_sor_params params;
|
||||
u32 num_syms_per_line;
|
||||
@@ -1726,7 +1730,6 @@ static void tegra_sor_early_unregister(struct drm_connector *connector)
|
||||
connector->debugfs_entry,
|
||||
connector->dev->primary);
|
||||
#else
|
||||
|
||||
drm_debugfs_remove_files(sor->debugfs_files, count,
|
||||
connector->dev->primary);
|
||||
#endif
|
||||
@@ -3000,11 +3003,9 @@ static int tegra_sor_hdmi_probe(struct tegra_sor *sor)
|
||||
int err;
|
||||
|
||||
sor->avdd_io_supply = devm_regulator_get(sor->dev, "avdd-io-hdmi-dp");
|
||||
if (IS_ERR(sor->avdd_io_supply)) {
|
||||
dev_err(sor->dev, "cannot get AVDD I/O supply: %ld\n",
|
||||
PTR_ERR(sor->avdd_io_supply));
|
||||
return PTR_ERR(sor->avdd_io_supply);
|
||||
}
|
||||
if (IS_ERR(sor->avdd_io_supply))
|
||||
return dev_err_probe(sor->dev, PTR_ERR(sor->avdd_io_supply),
|
||||
"cannot get AVDD I/O supply\n");
|
||||
|
||||
err = tegra_sor_enable_regulator(sor, sor->avdd_io_supply);
|
||||
if (err < 0) {
|
||||
@@ -3014,11 +3015,9 @@ static int tegra_sor_hdmi_probe(struct tegra_sor *sor)
|
||||
}
|
||||
|
||||
sor->vdd_pll_supply = devm_regulator_get(sor->dev, "vdd-hdmi-dp-pll");
|
||||
if (IS_ERR(sor->vdd_pll_supply)) {
|
||||
dev_err(sor->dev, "cannot get VDD PLL supply: %ld\n",
|
||||
PTR_ERR(sor->vdd_pll_supply));
|
||||
return PTR_ERR(sor->vdd_pll_supply);
|
||||
}
|
||||
if (IS_ERR(sor->vdd_pll_supply))
|
||||
return dev_err_probe(sor->dev, PTR_ERR(sor->vdd_pll_supply),
|
||||
"cannot get VDD PLL supply\n");
|
||||
|
||||
err = tegra_sor_enable_regulator(sor, sor->vdd_pll_supply);
|
||||
if (err < 0) {
|
||||
@@ -3028,11 +3027,9 @@ static int tegra_sor_hdmi_probe(struct tegra_sor *sor)
|
||||
}
|
||||
|
||||
sor->hdmi_supply = devm_regulator_get(sor->dev, "hdmi");
|
||||
if (IS_ERR(sor->hdmi_supply)) {
|
||||
dev_err(sor->dev, "cannot get HDMI supply: %ld\n",
|
||||
PTR_ERR(sor->hdmi_supply));
|
||||
return PTR_ERR(sor->hdmi_supply);
|
||||
}
|
||||
if (IS_ERR(sor->hdmi_supply))
|
||||
return dev_err_probe(sor->dev, PTR_ERR(sor->hdmi_supply),
|
||||
"cannot get HDMI supply\n");
|
||||
|
||||
err = tegra_sor_enable_regulator(sor, sor->hdmi_supply);
|
||||
if (err < 0) {
|
||||
@@ -3754,7 +3751,6 @@ static int tegra_sor_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device_node *np;
|
||||
struct tegra_sor *sor;
|
||||
struct resource *regs;
|
||||
int err;
|
||||
|
||||
sor = devm_kzalloc(&pdev->dev, sizeof(*sor), GFP_KERNEL);
|
||||
@@ -3827,8 +3823,7 @@ static int tegra_sor_probe(struct platform_device *pdev)
|
||||
}
|
||||
}
|
||||
|
||||
regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
sor->regs = devm_ioremap_resource(&pdev->dev, regs);
|
||||
sor->regs = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(sor->regs)) {
|
||||
err = PTR_ERR(sor->regs);
|
||||
goto remove;
|
||||
|
||||
Reference in New Issue
Block a user