iwlagn: remove ISR ops
The ISR (interrupt service routine) ops are now no longer necessary since they are the same for all devices this driver now handles. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
0e5884458e
commit
519d8abd35
@@ -209,13 +209,6 @@ static struct iwl_lib_ops iwl1000_lib = {
|
|||||||
.calib_version = iwlagn_eeprom_calib_version,
|
.calib_version = iwlagn_eeprom_calib_version,
|
||||||
.query_addr = iwlagn_eeprom_query_addr,
|
.query_addr = iwlagn_eeprom_query_addr,
|
||||||
},
|
},
|
||||||
.isr_ops = {
|
|
||||||
.isr = iwl_isr_ict,
|
|
||||||
.free = iwl_free_isr_ict,
|
|
||||||
.alloc = iwl_alloc_isr_ict,
|
|
||||||
.reset = iwl_reset_ict,
|
|
||||||
.disable = iwl_disable_ict,
|
|
||||||
},
|
|
||||||
.temp_ops = {
|
.temp_ops = {
|
||||||
.temperature = iwlagn_temperature,
|
.temperature = iwlagn_temperature,
|
||||||
},
|
},
|
||||||
|
@@ -292,13 +292,6 @@ static struct iwl_lib_ops iwl2000_lib = {
|
|||||||
.query_addr = iwlagn_eeprom_query_addr,
|
.query_addr = iwlagn_eeprom_query_addr,
|
||||||
.update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower,
|
.update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower,
|
||||||
},
|
},
|
||||||
.isr_ops = {
|
|
||||||
.isr = iwl_isr_ict,
|
|
||||||
.free = iwl_free_isr_ict,
|
|
||||||
.alloc = iwl_alloc_isr_ict,
|
|
||||||
.reset = iwl_reset_ict,
|
|
||||||
.disable = iwl_disable_ict,
|
|
||||||
},
|
|
||||||
.temp_ops = {
|
.temp_ops = {
|
||||||
.temperature = iwlagn_temperature,
|
.temperature = iwlagn_temperature,
|
||||||
},
|
},
|
||||||
|
@@ -378,13 +378,6 @@ static struct iwl_lib_ops iwl5000_lib = {
|
|||||||
.calib_version = iwlagn_eeprom_calib_version,
|
.calib_version = iwlagn_eeprom_calib_version,
|
||||||
.query_addr = iwlagn_eeprom_query_addr,
|
.query_addr = iwlagn_eeprom_query_addr,
|
||||||
},
|
},
|
||||||
.isr_ops = {
|
|
||||||
.isr = iwl_isr_ict,
|
|
||||||
.free = iwl_free_isr_ict,
|
|
||||||
.alloc = iwl_alloc_isr_ict,
|
|
||||||
.reset = iwl_reset_ict,
|
|
||||||
.disable = iwl_disable_ict,
|
|
||||||
},
|
|
||||||
.temp_ops = {
|
.temp_ops = {
|
||||||
.temperature = iwlagn_temperature,
|
.temperature = iwlagn_temperature,
|
||||||
},
|
},
|
||||||
@@ -440,13 +433,6 @@ static struct iwl_lib_ops iwl5150_lib = {
|
|||||||
.calib_version = iwlagn_eeprom_calib_version,
|
.calib_version = iwlagn_eeprom_calib_version,
|
||||||
.query_addr = iwlagn_eeprom_query_addr,
|
.query_addr = iwlagn_eeprom_query_addr,
|
||||||
},
|
},
|
||||||
.isr_ops = {
|
|
||||||
.isr = iwl_isr_ict,
|
|
||||||
.free = iwl_free_isr_ict,
|
|
||||||
.alloc = iwl_alloc_isr_ict,
|
|
||||||
.reset = iwl_reset_ict,
|
|
||||||
.disable = iwl_disable_ict,
|
|
||||||
},
|
|
||||||
.temp_ops = {
|
.temp_ops = {
|
||||||
.temperature = iwl5150_temperature,
|
.temperature = iwl5150_temperature,
|
||||||
},
|
},
|
||||||
|
@@ -320,13 +320,6 @@ static struct iwl_lib_ops iwl6000_lib = {
|
|||||||
.query_addr = iwlagn_eeprom_query_addr,
|
.query_addr = iwlagn_eeprom_query_addr,
|
||||||
.update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower,
|
.update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower,
|
||||||
},
|
},
|
||||||
.isr_ops = {
|
|
||||||
.isr = iwl_isr_ict,
|
|
||||||
.free = iwl_free_isr_ict,
|
|
||||||
.alloc = iwl_alloc_isr_ict,
|
|
||||||
.reset = iwl_reset_ict,
|
|
||||||
.disable = iwl_disable_ict,
|
|
||||||
},
|
|
||||||
.temp_ops = {
|
.temp_ops = {
|
||||||
.temperature = iwlagn_temperature,
|
.temperature = iwlagn_temperature,
|
||||||
},
|
},
|
||||||
@@ -385,13 +378,6 @@ static struct iwl_lib_ops iwl6030_lib = {
|
|||||||
.query_addr = iwlagn_eeprom_query_addr,
|
.query_addr = iwlagn_eeprom_query_addr,
|
||||||
.update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower,
|
.update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower,
|
||||||
},
|
},
|
||||||
.isr_ops = {
|
|
||||||
.isr = iwl_isr_ict,
|
|
||||||
.free = iwl_free_isr_ict,
|
|
||||||
.alloc = iwl_alloc_isr_ict,
|
|
||||||
.reset = iwl_reset_ict,
|
|
||||||
.disable = iwl_disable_ict,
|
|
||||||
},
|
|
||||||
.temp_ops = {
|
.temp_ops = {
|
||||||
.temperature = iwlagn_temperature,
|
.temperature = iwlagn_temperature,
|
||||||
},
|
},
|
||||||
|
@@ -2397,8 +2397,7 @@ static void __iwl_down(struct iwl_priv *priv)
|
|||||||
STATUS_EXIT_PENDING;
|
STATUS_EXIT_PENDING;
|
||||||
|
|
||||||
/* device going down, Stop using ICT table */
|
/* device going down, Stop using ICT table */
|
||||||
if (priv->cfg->ops->lib->isr_ops.disable)
|
iwl_disable_ict(priv);
|
||||||
priv->cfg->ops->lib->isr_ops.disable(priv);
|
|
||||||
|
|
||||||
iwlagn_txq_ctx_stop(priv);
|
iwlagn_txq_ctx_stop(priv);
|
||||||
iwlagn_rxq_stop(priv);
|
iwlagn_rxq_stop(priv);
|
||||||
@@ -2606,8 +2605,7 @@ static void iwl_bg_alive_start(struct work_struct *data)
|
|||||||
goto unlock;
|
goto unlock;
|
||||||
|
|
||||||
/* enable dram interrupt */
|
/* enable dram interrupt */
|
||||||
if (priv->cfg->ops->lib->isr_ops.reset)
|
iwl_reset_ict(priv);
|
||||||
priv->cfg->ops->lib->isr_ops.reset(priv);
|
|
||||||
|
|
||||||
iwl_alive_start(priv);
|
iwl_alive_start(priv);
|
||||||
unlock:
|
unlock:
|
||||||
@@ -3958,10 +3956,9 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||||||
|
|
||||||
pci_enable_msi(priv->pci_dev);
|
pci_enable_msi(priv->pci_dev);
|
||||||
|
|
||||||
if (priv->cfg->ops->lib->isr_ops.alloc)
|
iwl_alloc_isr_ict(priv);
|
||||||
priv->cfg->ops->lib->isr_ops.alloc(priv);
|
|
||||||
|
|
||||||
err = request_irq(priv->pci_dev->irq, priv->cfg->ops->lib->isr_ops.isr,
|
err = request_irq(priv->pci_dev->irq, iwl_isr_ict,
|
||||||
IRQF_SHARED, DRV_NAME, priv);
|
IRQF_SHARED, DRV_NAME, priv);
|
||||||
if (err) {
|
if (err) {
|
||||||
IWL_ERR(priv, "Error allocating IRQ %d\n", priv->pci_dev->irq);
|
IWL_ERR(priv, "Error allocating IRQ %d\n", priv->pci_dev->irq);
|
||||||
@@ -4008,8 +4005,7 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||||||
destroy_workqueue(priv->workqueue);
|
destroy_workqueue(priv->workqueue);
|
||||||
priv->workqueue = NULL;
|
priv->workqueue = NULL;
|
||||||
free_irq(priv->pci_dev->irq, priv);
|
free_irq(priv->pci_dev->irq, priv);
|
||||||
if (priv->cfg->ops->lib->isr_ops.free)
|
iwl_free_isr_ict(priv);
|
||||||
priv->cfg->ops->lib->isr_ops.free(priv);
|
|
||||||
out_disable_msi:
|
out_disable_msi:
|
||||||
pci_disable_msi(priv->pci_dev);
|
pci_disable_msi(priv->pci_dev);
|
||||||
iwl_uninit_drv(priv);
|
iwl_uninit_drv(priv);
|
||||||
@@ -4107,8 +4103,7 @@ static void __devexit iwl_pci_remove(struct pci_dev *pdev)
|
|||||||
|
|
||||||
iwl_uninit_drv(priv);
|
iwl_uninit_drv(priv);
|
||||||
|
|
||||||
if (priv->cfg->ops->lib->isr_ops.free)
|
iwl_free_isr_ict(priv);
|
||||||
priv->cfg->ops->lib->isr_ops.free(priv);
|
|
||||||
|
|
||||||
dev_kfree_skb(priv->beacon_skb);
|
dev_kfree_skb(priv->beacon_skb);
|
||||||
|
|
||||||
|
@@ -122,14 +122,6 @@ struct iwl_apm_ops {
|
|||||||
void (*config)(struct iwl_priv *priv);
|
void (*config)(struct iwl_priv *priv);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct iwl_isr_ops {
|
|
||||||
irqreturn_t (*isr) (int irq, void *data);
|
|
||||||
void (*free)(struct iwl_priv *priv);
|
|
||||||
int (*alloc)(struct iwl_priv *priv);
|
|
||||||
int (*reset)(struct iwl_priv *priv);
|
|
||||||
void (*disable)(struct iwl_priv *priv);
|
|
||||||
};
|
|
||||||
|
|
||||||
struct iwl_debugfs_ops {
|
struct iwl_debugfs_ops {
|
||||||
ssize_t (*rx_stats_read)(struct file *file, char __user *user_buf,
|
ssize_t (*rx_stats_read)(struct file *file, char __user *user_buf,
|
||||||
size_t count, loff_t *ppos);
|
size_t count, loff_t *ppos);
|
||||||
@@ -194,9 +186,6 @@ struct iwl_lib_ops {
|
|||||||
int (*send_tx_power) (struct iwl_priv *priv);
|
int (*send_tx_power) (struct iwl_priv *priv);
|
||||||
void (*update_chain_flags)(struct iwl_priv *priv);
|
void (*update_chain_flags)(struct iwl_priv *priv);
|
||||||
|
|
||||||
/* isr */
|
|
||||||
struct iwl_isr_ops isr_ops;
|
|
||||||
|
|
||||||
/* eeprom operations (as defined in iwl-eeprom.h) */
|
/* eeprom operations (as defined in iwl-eeprom.h) */
|
||||||
struct iwl_eeprom_ops eeprom_ops;
|
struct iwl_eeprom_ops eeprom_ops;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user