|
@@ -398,8 +398,7 @@ static ssize_t cable_state_show(struct device *dev,
|
|
|
int i = cable->cable_index;
|
|
|
|
|
|
return sprintf(buf, "%d\n",
|
|
|
- extcon_get_cable_state_(cable->edev,
|
|
|
- cable->edev->supported_cable[i]));
|
|
|
+ extcon_get_state(cable->edev, cable->edev->supported_cable[i]));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -495,13 +494,14 @@ static int extcon_update_state(struct extcon_dev *edev, u32 mask, u32 state)
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * extcon_get_cable_state_() - Get the status of a specific cable.
|
|
|
+ * extcon_get_state() - Get the state of a external connector.
|
|
|
* @edev: the extcon device that has the cable.
|
|
|
* @id: the unique id of each external connector in extcon enumeration.
|
|
|
*/
|
|
|
-int extcon_get_cable_state_(struct extcon_dev *edev, const unsigned int id)
|
|
|
+int extcon_get_state(struct extcon_dev *edev, const unsigned int id)
|
|
|
{
|
|
|
- int index;
|
|
|
+ int index, state;
|
|
|
+ unsigned long flags;
|
|
|
|
|
|
if (!edev)
|
|
|
return -EINVAL;
|
|
@@ -510,22 +510,23 @@ int extcon_get_cable_state_(struct extcon_dev *edev, const unsigned int id)
|
|
|
if (index < 0)
|
|
|
return index;
|
|
|
|
|
|
- if (edev->max_supported && edev->max_supported <= index)
|
|
|
- return -EINVAL;
|
|
|
+ spin_lock_irqsave(&edev->lock, flags);
|
|
|
+ state = is_extcon_attached(edev, index);
|
|
|
+ spin_unlock_irqrestore(&edev->lock, flags);
|
|
|
|
|
|
- return is_extcon_attached(edev, index);
|
|
|
+ return state;
|
|
|
}
|
|
|
-EXPORT_SYMBOL_GPL(extcon_get_cable_state_);
|
|
|
+EXPORT_SYMBOL_GPL(extcon_get_state);
|
|
|
|
|
|
/**
|
|
|
- * extcon_set_cable_state_() - Set the status of a specific cable.
|
|
|
+ * extcon_set_state() - Set the state of a external connector.
|
|
|
* @edev: the extcon device that has the cable.
|
|
|
* @id: the unique id of each external connector
|
|
|
* in extcon enumeration.
|
|
|
* @state: the new cable status. The default semantics is
|
|
|
* true: attached / false: detached.
|
|
|
*/
|
|
|
-int extcon_set_cable_state_(struct extcon_dev *edev, unsigned int id,
|
|
|
+int extcon_set_state(struct extcon_dev *edev, unsigned int id,
|
|
|
bool cable_state)
|
|
|
{
|
|
|
u32 state;
|
|
@@ -538,9 +539,6 @@ int extcon_set_cable_state_(struct extcon_dev *edev, unsigned int id,
|
|
|
if (index < 0)
|
|
|
return index;
|
|
|
|
|
|
- if (edev->max_supported && edev->max_supported <= index)
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
/*
|
|
|
* Initialize the value of extcon property before setting
|
|
|
* the detached state for an external connector.
|
|
@@ -551,7 +549,7 @@ int extcon_set_cable_state_(struct extcon_dev *edev, unsigned int id,
|
|
|
state = cable_state ? (1 << index) : 0;
|
|
|
return extcon_update_state(edev, 1 << index, state);
|
|
|
}
|
|
|
-EXPORT_SYMBOL_GPL(extcon_set_cable_state_);
|
|
|
+EXPORT_SYMBOL_GPL(extcon_set_state);
|
|
|
|
|
|
/**
|
|
|
* extcon_get_property() - Get the property value of a specific cable.
|