ice: Drop auxbus use for PTP to finalize ice_adapter move

Drop unused auxbus/auxdev support from the PTP code due to
move to the ice_adapter.

Signed-off-by: Sergey Temerkhanov <sergey.temerkhanov@intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
Sergey Temerkhanov 2024-08-21 15:09:57 +02:00 committed by Tony Nguyen
parent e800654e85
commit 0333c82fc6
2 changed files with 0 additions and 273 deletions

View File

@ -2983,188 +2983,6 @@ static void ice_ptp_cleanup_pf(struct ice_pf *pf)
mutex_unlock(&pf->adapter->ports.lock);
}
}
/**
* ice_ptp_aux_dev_to_aux_pf - Get auxiliary PF handle for the auxiliary device
* @aux_dev: auxiliary device to get the auxiliary PF for
*/
static struct ice_pf *
ice_ptp_aux_dev_to_aux_pf(struct auxiliary_device *aux_dev)
{
struct ice_ptp_port *aux_port;
struct ice_ptp *aux_ptp;
aux_port = container_of(aux_dev, struct ice_ptp_port, aux_dev);
aux_ptp = container_of(aux_port, struct ice_ptp, port);
return container_of(aux_ptp, struct ice_pf, ptp);
}
/**
* ice_ptp_aux_dev_to_owner_pf - Get PF handle for the auxiliary device
* @aux_dev: auxiliary device to get the PF for
*/
static struct ice_pf *
ice_ptp_aux_dev_to_owner_pf(struct auxiliary_device *aux_dev)
{
struct ice_ptp_port_owner *ports_owner;
const struct auxiliary_driver *aux_drv;
struct ice_ptp *owner_ptp;
if (!aux_dev->dev.driver)
return NULL;
aux_drv = to_auxiliary_drv(aux_dev->dev.driver);
ports_owner = container_of(aux_drv, struct ice_ptp_port_owner,
aux_driver);
owner_ptp = container_of(ports_owner, struct ice_ptp, ports_owner);
return container_of(owner_ptp, struct ice_pf, ptp);
}
/**
* ice_ptp_auxbus_probe - Probe auxiliary devices
* @aux_dev: PF's auxiliary device
* @id: Auxiliary device ID
*/
static int ice_ptp_auxbus_probe(struct auxiliary_device *aux_dev,
const struct auxiliary_device_id *id)
{
struct ice_pf *owner_pf = ice_ptp_aux_dev_to_owner_pf(aux_dev);
struct ice_pf *aux_pf = ice_ptp_aux_dev_to_aux_pf(aux_dev);
if (WARN_ON(!owner_pf))
return -ENODEV;
INIT_LIST_HEAD(&aux_pf->ptp.port.list_node);
mutex_lock(&owner_pf->ptp.ports_owner.lock);
list_add(&aux_pf->ptp.port.list_node,
&owner_pf->ptp.ports_owner.ports);
mutex_unlock(&owner_pf->ptp.ports_owner.lock);
return 0;
}
/**
* ice_ptp_auxbus_remove - Remove auxiliary devices from the bus
* @aux_dev: PF's auxiliary device
*/
static void ice_ptp_auxbus_remove(struct auxiliary_device *aux_dev)
{
struct ice_pf *owner_pf = ice_ptp_aux_dev_to_owner_pf(aux_dev);
struct ice_pf *aux_pf = ice_ptp_aux_dev_to_aux_pf(aux_dev);
mutex_lock(&owner_pf->ptp.ports_owner.lock);
list_del(&aux_pf->ptp.port.list_node);
mutex_unlock(&owner_pf->ptp.ports_owner.lock);
}
/**
* ice_ptp_auxbus_shutdown
* @aux_dev: PF's auxiliary device
*/
static void ice_ptp_auxbus_shutdown(struct auxiliary_device *aux_dev)
{
/* Doing nothing here, but handle to auxbus driver must be satisfied */
}
/**
* ice_ptp_auxbus_suspend
* @aux_dev: PF's auxiliary device
* @state: power management state indicator
*/
static int
ice_ptp_auxbus_suspend(struct auxiliary_device *aux_dev, pm_message_t state)
{
/* Doing nothing here, but handle to auxbus driver must be satisfied */
return 0;
}
/**
* ice_ptp_auxbus_resume
* @aux_dev: PF's auxiliary device
*/
static int ice_ptp_auxbus_resume(struct auxiliary_device *aux_dev)
{
/* Doing nothing here, but handle to auxbus driver must be satisfied */
return 0;
}
/**
* ice_ptp_auxbus_create_id_table - Create auxiliary device ID table
* @pf: Board private structure
* @name: auxiliary bus driver name
*/
static struct auxiliary_device_id *
ice_ptp_auxbus_create_id_table(struct ice_pf *pf, const char *name)
{
struct auxiliary_device_id *ids;
/* Second id left empty to terminate the array */
ids = devm_kcalloc(ice_pf_to_dev(pf), 2,
sizeof(struct auxiliary_device_id), GFP_KERNEL);
if (!ids)
return NULL;
snprintf(ids[0].name, sizeof(ids[0].name), "ice.%s", name);
return ids;
}
/**
* ice_ptp_register_auxbus_driver - Register PTP auxiliary bus driver
* @pf: Board private structure
*/
static int __always_unused ice_ptp_register_auxbus_driver(struct ice_pf *pf)
{
struct auxiliary_driver *aux_driver;
struct ice_ptp *ptp;
struct device *dev;
char *name;
int err;
ptp = &pf->ptp;
dev = ice_pf_to_dev(pf);
aux_driver = &ptp->ports_owner.aux_driver;
INIT_LIST_HEAD(&ptp->ports_owner.ports);
mutex_init(&ptp->ports_owner.lock);
name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u",
pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn),
ice_get_ptp_src_clock_index(&pf->hw));
if (!name)
return -ENOMEM;
aux_driver->name = name;
aux_driver->shutdown = ice_ptp_auxbus_shutdown;
aux_driver->suspend = ice_ptp_auxbus_suspend;
aux_driver->remove = ice_ptp_auxbus_remove;
aux_driver->resume = ice_ptp_auxbus_resume;
aux_driver->probe = ice_ptp_auxbus_probe;
aux_driver->id_table = ice_ptp_auxbus_create_id_table(pf, name);
if (!aux_driver->id_table)
return -ENOMEM;
err = auxiliary_driver_register(aux_driver);
if (err) {
devm_kfree(dev, aux_driver->id_table);
dev_err(dev, "Failed registering aux_driver, name <%s>\n",
name);
}
return err;
}
/**
* ice_ptp_unregister_auxbus_driver - Unregister PTP auxiliary bus driver
* @pf: Board private structure
*/
static void __always_unused ice_ptp_unregister_auxbus_driver(struct ice_pf *pf)
{
struct auxiliary_driver *aux_driver = &pf->ptp.ports_owner.aux_driver;
auxiliary_driver_unregister(aux_driver);
devm_kfree(ice_pf_to_dev(pf), aux_driver->id_table);
mutex_destroy(&pf->ptp.ports_owner.lock);
}
/**
* ice_ptp_clock_index - Get the PTP clock index for this device
@ -3303,76 +3121,6 @@ static int ice_ptp_init_port(struct ice_pf *pf, struct ice_ptp_port *ptp_port)
}
}
/**
* ice_ptp_release_auxbus_device
* @dev: device that utilizes the auxbus
*/
static void ice_ptp_release_auxbus_device(struct device *dev)
{
/* Doing nothing here, but handle to auxbux device must be satisfied */
}
/**
* ice_ptp_create_auxbus_device - Create PTP auxiliary bus device
* @pf: Board private structure
*/
static __always_unused int ice_ptp_create_auxbus_device(struct ice_pf *pf)
{
struct auxiliary_device *aux_dev;
struct ice_ptp *ptp;
struct device *dev;
char *name;
int err;
u32 id;
ptp = &pf->ptp;
id = ptp->port.port_num;
dev = ice_pf_to_dev(pf);
aux_dev = &ptp->port.aux_dev;
name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u",
pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn),
ice_get_ptp_src_clock_index(&pf->hw));
if (!name)
return -ENOMEM;
aux_dev->name = name;
aux_dev->id = id;
aux_dev->dev.release = ice_ptp_release_auxbus_device;
aux_dev->dev.parent = dev;
err = auxiliary_device_init(aux_dev);
if (err)
goto aux_err;
err = auxiliary_device_add(aux_dev);
if (err) {
auxiliary_device_uninit(aux_dev);
goto aux_err;
}
return 0;
aux_err:
dev_err(dev, "Failed to create PTP auxiliary bus device <%s>\n", name);
devm_kfree(dev, name);
return err;
}
/**
* ice_ptp_remove_auxbus_device - Remove PTP auxiliary bus device
* @pf: Board private structure
*/
static __always_unused void ice_ptp_remove_auxbus_device(struct ice_pf *pf)
{
struct auxiliary_device *aux_dev = &pf->ptp.port.aux_dev;
auxiliary_device_delete(aux_dev);
auxiliary_device_uninit(aux_dev);
memset(aux_dev, 0, sizeof(*aux_dev));
}
/**
* ice_ptp_init_tx_interrupt_mode - Initialize device Tx interrupt mode
* @pf: Board private structure

View File

@ -140,7 +140,6 @@ struct ice_ptp_tx {
*
* @list_node: list member structure
* @tx: Tx timestamp tracking for this port
* @aux_dev: auxiliary device associated with this port
* @ov_work: delayed work task for tracking when PHY offset is valid
* @ps_lock: mutex used to protect the overall PTP PHY start procedure
* @link_up: indicates whether the link is up
@ -150,7 +149,6 @@ struct ice_ptp_tx {
struct ice_ptp_port {
struct list_head list_node;
struct ice_ptp_tx tx;
struct auxiliary_device aux_dev;
struct kthread_delayed_work ov_work;
struct mutex ps_lock; /* protects overall PTP PHY start procedure */
bool link_up;
@ -164,23 +162,6 @@ enum ice_ptp_tx_interrupt {
ICE_PTP_TX_INTERRUPT_ALL,
};
/**
* struct ice_ptp_port_owner - data used to handle the PTP clock owner info
*
* This structure contains data necessary for the PTP clock owner to correctly
* handle the timestamping feature for all attached ports.
*
* @aux_driver: the structure carring the auxiliary driver information
* @ports: list of porst handled by this port owner
* @lock: protect access to ports list
*/
struct ice_ptp_port_owner {
struct auxiliary_driver aux_driver;
struct list_head ports;
struct mutex lock;
};
#define GLTSYN_TGT_H_IDX_MAX 4
enum ice_ptp_state {
@ -245,7 +226,6 @@ struct ice_ptp_pin_desc {
* @state: current state of PTP state machine
* @tx_interrupt_mode: the TX interrupt mode for the PTP clock
* @port: data for the PHY port initialization procedure
* @ports_owner: data for the auxiliary driver owner
* @work: delayed work function for periodic tasks
* @cached_phc_time: a cached copy of the PHC time for timestamp extension
* @cached_phc_jiffies: jiffies when cached_phc_time was last updated
@ -270,7 +250,6 @@ struct ice_ptp {
enum ice_ptp_state state;
enum ice_ptp_tx_interrupt tx_interrupt_mode;
struct ice_ptp_port port;
struct ice_ptp_port_owner ports_owner;
struct kthread_delayed_work work;
u64 cached_phc_time;
unsigned long cached_phc_jiffies;