mirror of
https://github.com/patjak/facetimehd.git
synced 2026-04-09 11:02:31 +02:00
bcwc_pcie: minor irq handling fixes
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include "bcwc_reg.h"
|
||||
#include "bcwc_ringbuf.h"
|
||||
|
||||
#define BCWC_PCI_S2_IO 0
|
||||
#define BCWC_PCI_S2_MEM 2
|
||||
@@ -33,11 +34,12 @@ struct bcwc_reg {
|
||||
};
|
||||
|
||||
struct fw_channel {
|
||||
char *name;
|
||||
u32 offset;
|
||||
u32 size;
|
||||
u32 source;
|
||||
u32 type;
|
||||
struct bcwc_ringbuf ringbuf;
|
||||
char *name;
|
||||
};
|
||||
|
||||
struct bcwc_private {
|
||||
|
||||
14
bcwc_hw.c
14
bcwc_hw.c
@@ -21,7 +21,7 @@
|
||||
#include "bcwc_drv.h"
|
||||
#include "bcwc_hw.h"
|
||||
#include "bcwc_ddr.h"
|
||||
#include "isp.h"
|
||||
#include "bcwc_isp.h"
|
||||
|
||||
/* FIXME: Double check these */
|
||||
static u32 ddr_phy_reg_map[] = {
|
||||
@@ -79,7 +79,7 @@ static int bcwc_hw_s2_init_pcie_link(struct bcwc_private *dev_priv)
|
||||
reg = BCWC_S2_REG_READ(S2_PCIE_LINK_D124);
|
||||
if (reg != 0xac5800) {
|
||||
dev_err(&dev_priv->pdev->dev,
|
||||
"Failed to init S2 PCIe link: %u\n", reg);
|
||||
"Failed to init S2 PCIe link: %08x\n", reg);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
@@ -661,12 +661,15 @@ static int bcwc_hw_ddr_phy_save_regs(struct bcwc_private *dev_priv)
|
||||
static int bcwc_hw_irq_enable(struct bcwc_private *dev_priv)
|
||||
{
|
||||
BCWC_ISP_REG_WRITE(0xf8, ISP_REG_41004);
|
||||
pci_write_config_dword(dev_priv->pdev, 0x94, 0x200);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bcwc_hw_irq_disable(struct bcwc_private *dev_priv)
|
||||
{
|
||||
BCWC_ISP_REG_WRITE(0, ISP_REG_41004);
|
||||
pci_write_config_dword(dev_priv->pdev, 0x94, 0x0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -732,8 +735,9 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
void bcwc_hw_deinit(struct bcwc_private *priv)
|
||||
void bcwc_hw_deinit(struct bcwc_private *dev_priv)
|
||||
{
|
||||
dev_info(&priv->pdev->dev, "%s", __FUNCTION__);
|
||||
bcwc_hw_irq_disable(priv);
|
||||
dev_info(&dev_priv->pdev->dev, "%s", __FUNCTION__);
|
||||
BCWC_ISP_REG_WRITE(0, ISP_REG_41020);
|
||||
bcwc_hw_irq_disable(dev_priv);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,6 @@ int isp_mem_init(struct bcwc_private *dev_priv)
|
||||
"Failed to preallocate firmware memory\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -76,7 +75,6 @@ struct isp_mem_obj *isp_mem_create(struct bcwc_private *dev_priv,
|
||||
obj->offset = obj->base.start - root->start;
|
||||
obj->size = size;
|
||||
obj->size_aligned = obj->base.end - obj->base.start;
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
@@ -382,8 +380,6 @@ int isp_init(struct bcwc_private *dev_priv)
|
||||
pci_set_power_state(dev_priv->pdev, PCI_D0);
|
||||
mdelay(10);
|
||||
|
||||
pci_write_config_dword(dev_priv->pdev, 0x94, 0x200);
|
||||
|
||||
isp_enable_sensor(dev_priv);
|
||||
BCWC_ISP_REG_WRITE(0, ISP_IPC_NUM_CHAN);
|
||||
BCWC_ISP_REG_WRITE(0, ISP_IPC_QUEUE_SIZE);
|
||||
|
||||
Reference in New Issue
Block a user