|
@@ -170,6 +170,7 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data)
|
|
|
struct vc4_dev *vc4 = drm->dev_private;
|
|
|
struct vc4_hvs *hvs = NULL;
|
|
|
int ret;
|
|
|
+ u32 dispctrl;
|
|
|
|
|
|
hvs = devm_kzalloc(&pdev->dev, sizeof(*hvs), GFP_KERNEL);
|
|
|
if (!hvs)
|
|
@@ -211,6 +212,19 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data)
|
|
|
return ret;
|
|
|
|
|
|
vc4->hvs = hvs;
|
|
|
+
|
|
|
+ dispctrl = HVS_READ(SCALER_DISPCTRL);
|
|
|
+
|
|
|
+ dispctrl |= SCALER_DISPCTRL_ENABLE;
|
|
|
+
|
|
|
+ /* Set DSP3 (PV1) to use HVS channel 2, which would otherwise
|
|
|
+ * be unused.
|
|
|
+ */
|
|
|
+ dispctrl &= ~SCALER_DISPCTRL_DSP3_MUX_MASK;
|
|
|
+ dispctrl |= VC4_SET_FIELD(2, SCALER_DISPCTRL_DSP3_MUX);
|
|
|
+
|
|
|
+ HVS_WRITE(SCALER_DISPCTRL, dispctrl);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|