Commit 3271b25e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull phy fixes from Vinod Koul:
 "A bunch of driver fixes:

   - Freescale typec orientation switch fix, clearing register fix,
     assertion of phy reset during power on

   - Qualcomm pcs register clear before using

   - stm one off fix

   - TI runtimepm error handling, regmap leak fixes

   - Rockchip gadget mode disconnection and disruption fixes

   - Tegra register level fix

   - Broadcom pointer cast warning fix"

* tag 'phy-fixes-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy:
  phy: freescale: imx8m-pcie: assert phy reset during power on
  phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe()
  phy: broadcom: ns-usb3: Fix Wvoid-pointer-to-enum-cast warning (again)
  phy: tegra: xusb: Explicitly configure HS_DISCON_LEVEL to 0x7
  phy: rockchip: inno-usb2: fix communication disruption in gadget mode
  phy: rockchip: inno-usb2: fix disconnection in gadget mode
  phy: ti: gmii-sel: fix regmap leak on probe failure
  phy: sparx5-serdes: make it selectable for ARCH_LAN969X
  phy: ti: da8xx-usb: Handle devm_pm_runtime_enable() errors
  phy: stm32-usphyc: Fix off by one in probe()
  phy: qcom-qusb2: Fix NULL pointer dereference on early suspend
  phy: fsl-imx8mq-usb: Clear the PCS_TX_SWING_FULL field before using it
  dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Update pcie phy bindings for qcs8300
  phy: fsl-imx8mq-usb: fix typec orientation switch when built as module
parents 56bc8a18 f2ec4723
Loading
Loading
Loading
Loading
+2 −15
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ properties:

  clocks:
    minItems: 5
    maxItems: 7
    maxItems: 6

  clock-names:
    minItems: 5
@@ -67,7 +67,6 @@ properties:
      - enum: [rchng, refgen]
      - const: pipe
      - const: pipediv2
      - const: phy_aux

  power-domains:
    maxItems: 1
@@ -180,6 +179,7 @@ allOf:
          contains:
            enum:
              - qcom,glymur-qmp-gen5x4-pcie-phy
              - qcom,qcs8300-qmp-gen4x2-pcie-phy
              - qcom,sa8775p-qmp-gen4x2-pcie-phy
              - qcom,sa8775p-qmp-gen4x4-pcie-phy
              - qcom,sc8280xp-qmp-gen3x1-pcie-phy
@@ -197,19 +197,6 @@ allOf:
        clock-names:
          minItems: 6

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,qcs8300-qmp-gen4x2-pcie-phy
    then:
      properties:
        clocks:
          minItems: 7
        clock-names:
          minItems: 7

  - if:
      properties:
        compatible:
+1 −1
Original line number Diff line number Diff line
@@ -203,7 +203,7 @@ static int bcm_ns_usb3_mdio_probe(struct mdio_device *mdiodev)
	usb3->dev = dev;
	usb3->mdiodev = mdiodev;

	usb3->family = (enum bcm_ns_family)device_get_match_data(dev);
	usb3->family = (unsigned long)device_get_match_data(dev);

	syscon_np = of_parse_phandle(dev->of_node, "usb3-dmp-syscon", 0);
	err = of_address_to_resource(syscon_np, 0, &res);
+2 −1
Original line number Diff line number Diff line
@@ -89,7 +89,8 @@ static int imx8_pcie_phy_power_on(struct phy *phy)
			writel(imx8_phy->tx_deemph_gen2,
			       imx8_phy->base + PCIE_PHY_TRSV_REG6);
		break;
	case IMX8MP: /* Do nothing. */
	case IMX8MP:
		reset_control_assert(imx8_phy->reset);
		break;
	}

+1 −14
Original line number Diff line number Diff line
@@ -126,8 +126,6 @@ struct imx8mq_usb_phy {
static void tca_blk_orientation_set(struct tca_blk *tca,
				enum typec_orientation orientation);

#ifdef CONFIG_TYPEC

static int tca_blk_typec_switch_set(struct typec_switch_dev *sw,
				enum typec_orientation orientation)
{
@@ -175,18 +173,6 @@ static void tca_blk_put_typec_switch(struct typec_switch_dev *sw)
	typec_switch_unregister(sw);
}

#else

static struct typec_switch_dev *tca_blk_get_typec_switch(struct platform_device *pdev,
			struct imx8mq_usb_phy *imx_phy)
{
	return NULL;
}

static void tca_blk_put_typec_switch(struct typec_switch_dev *sw) {}

#endif /* CONFIG_TYPEC */

static void tca_blk_orientation_set(struct tca_blk *tca,
				enum typec_orientation orientation)
{
@@ -504,6 +490,7 @@ static void imx8m_phy_tune(struct imx8mq_usb_phy *imx_phy)

	if (imx_phy->pcs_tx_swing_full != PHY_TUNE_DEFAULT) {
		value = readl(imx_phy->base + PHY_CTRL5);
		value &= ~PHY_CTRL5_PCS_TX_SWING_FULL_MASK;
		value |= FIELD_PREP(PHY_CTRL5_PCS_TX_SWING_FULL_MASK,
				   imx_phy->pcs_tx_swing_full);
		writel(value, imx_phy->base + PHY_CTRL5);
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
config PHY_SPARX5_SERDES
	tristate "Microchip Sparx5 SerDes PHY driver"
	select GENERIC_PHY
	depends on ARCH_SPARX5 || COMPILE_TEST
	depends on ARCH_SPARX5 || ARCH_LAN969X || COMPILE_TEST
	depends on OF
	depends on HAS_IOMEM
	help
Loading