Skip to content

Commit

Permalink
Merge tag 'phy-for-4.7-rc5' of git://git.kernel.org/pub/scm/linux/ker…
Browse files Browse the repository at this point in the history
…nel/git/kishon/linux-phy into usb-linus

Kishon writes:

phy: for 4.7-rc5

*) Fix in sun4i-usb phy driver to properly handle the return value of
   gpiod_to_irq
*) Fix a sparse warning in sun4i-usb phy driver
*) Fix bcm-ns-usb2 phy driver to check the correct variable
*) Fix spurious interrupts during VBUS change in rcar-gen3-usb2 phy
   driver

Signed-off-by: Kishon Vijay Abraham I <[email protected]>
  • Loading branch information
gregkh committed Jun 25, 2016
2 parents 3641fde + 04e59a0 commit 1a34c4d
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 23 deletions.
4 changes: 2 additions & 2 deletions drivers/phy/phy-bcm-ns-usb2.c
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ static int bcm_ns_usb2_probe(struct platform_device *pdev)
}

usb2->phy = devm_phy_create(dev, NULL, &ops);
if (IS_ERR(dev))
return PTR_ERR(dev);
if (IS_ERR(usb2->phy))
return PTR_ERR(usb2->phy);

phy_set_drvdata(usb2->phy, usb2);
platform_set_drvdata(pdev, usb2);
Expand Down
14 changes: 1 addition & 13 deletions drivers/phy/phy-rcar-gen3-usb2.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,26 +144,14 @@ static void rcar_gen3_init_for_peri(struct rcar_gen3_chan *ch)
extcon_set_cable_state_(ch->extcon, EXTCON_USB, true);
}

static bool rcar_gen3_check_vbus(struct rcar_gen3_chan *ch)
{
return !!(readl(ch->base + USB2_ADPCTRL) &
USB2_ADPCTRL_OTGSESSVLD);
}

static bool rcar_gen3_check_id(struct rcar_gen3_chan *ch)
{
return !!(readl(ch->base + USB2_ADPCTRL) & USB2_ADPCTRL_IDDIG);
}

static void rcar_gen3_device_recognition(struct rcar_gen3_chan *ch)
{
bool is_host = true;

/* B-device? */
if (rcar_gen3_check_id(ch) && rcar_gen3_check_vbus(ch))
is_host = false;

if (is_host)
if (!rcar_gen3_check_id(ch))
rcar_gen3_init_for_host(ch);
else
rcar_gen3_init_for_peri(ch);
Expand Down
2 changes: 1 addition & 1 deletion drivers/phy/phy-rockchip-dp.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ static int rockchip_dp_phy_probe(struct platform_device *pdev)
return -ENODEV;

dp = devm_kzalloc(dev, sizeof(*dp), GFP_KERNEL);
if (IS_ERR(dp))
if (!dp)
return -ENOMEM;

dp->dev = dev;
Expand Down
14 changes: 7 additions & 7 deletions drivers/phy/phy-sun4i-usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ static void sun4i_usb_phy_write(struct sun4i_usb_phy *phy, u32 addr, u32 data,
{
struct sun4i_usb_phy_data *phy_data = to_sun4i_usb_phy_data(phy);
u32 temp, usbc_bit = BIT(phy->index * 2);
void *phyctl = phy_data->base + phy_data->cfg->phyctl_offset;
void __iomem *phyctl = phy_data->base + phy_data->cfg->phyctl_offset;
int i;

mutex_lock(&phy_data->mutex);
Expand Down Expand Up @@ -514,9 +514,9 @@ static int sun4i_usb_phy_remove(struct platform_device *pdev)

if (data->vbus_power_nb_registered)
power_supply_unreg_notifier(&data->vbus_power_nb);
if (data->id_det_irq >= 0)
if (data->id_det_irq > 0)
devm_free_irq(dev, data->id_det_irq, data);
if (data->vbus_det_irq >= 0)
if (data->vbus_det_irq > 0)
devm_free_irq(dev, data->vbus_det_irq, data);

cancel_delayed_work_sync(&data->detect);
Expand Down Expand Up @@ -645,11 +645,11 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)

data->id_det_irq = gpiod_to_irq(data->id_det_gpio);
data->vbus_det_irq = gpiod_to_irq(data->vbus_det_gpio);
if ((data->id_det_gpio && data->id_det_irq < 0) ||
(data->vbus_det_gpio && data->vbus_det_irq < 0))
if ((data->id_det_gpio && data->id_det_irq <= 0) ||
(data->vbus_det_gpio && data->vbus_det_irq <= 0))
data->phy0_poll = true;

if (data->id_det_irq >= 0) {
if (data->id_det_irq > 0) {
ret = devm_request_irq(dev, data->id_det_irq,
sun4i_usb_phy0_id_vbus_det_irq,
IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
Expand All @@ -660,7 +660,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
}
}

if (data->vbus_det_irq >= 0) {
if (data->vbus_det_irq > 0) {
ret = devm_request_irq(dev, data->vbus_det_irq,
sun4i_usb_phy0_id_vbus_det_irq,
IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
Expand Down

0 comments on commit 1a34c4d

Please sign in to comment.