mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
Merge commit 'gcl/merge' into next
Manual merge of: drivers/net/fec_mpc52xx.c
This commit is contained in:
commit
b71a107c66
18 changed files with 91 additions and 149 deletions
|
|
@ -124,7 +124,6 @@ struct xilinxfb_drvdata {
|
|||
registers */
|
||||
|
||||
dcr_host_t dcr_host;
|
||||
unsigned int dcr_start;
|
||||
unsigned int dcr_len;
|
||||
|
||||
void *fb_virt; /* virt. address of the frame buffer */
|
||||
|
|
@ -325,8 +324,8 @@ static int xilinxfb_assign(struct device *dev,
|
|||
drvdata->regs);
|
||||
}
|
||||
/* Put a banner in the log (for DEBUG) */
|
||||
dev_dbg(dev, "fb: phys=%p, virt=%p, size=%x\n",
|
||||
(void *)drvdata->fb_phys, drvdata->fb_virt, fbsize);
|
||||
dev_dbg(dev, "fb: phys=%llx, virt=%p, size=%x\n",
|
||||
(unsigned long long)drvdata->fb_phys, drvdata->fb_virt, fbsize);
|
||||
|
||||
return 0; /* success */
|
||||
|
||||
|
|
@ -404,9 +403,7 @@ xilinxfb_of_probe(struct of_device *op, const struct of_device_id *match)
|
|||
u32 tft_access;
|
||||
struct xilinxfb_platform_data pdata;
|
||||
struct resource res;
|
||||
int size, rc;
|
||||
int start = 0, len = 0;
|
||||
dcr_host_t dcr_host;
|
||||
int size, rc, start;
|
||||
struct xilinxfb_drvdata *drvdata;
|
||||
|
||||
/* Copy with the default pdata (not a ptr reference!) */
|
||||
|
|
@ -414,35 +411,39 @@ xilinxfb_of_probe(struct of_device *op, const struct of_device_id *match)
|
|||
|
||||
dev_dbg(&op->dev, "xilinxfb_of_probe(%p, %p)\n", op, match);
|
||||
|
||||
/* Allocate the driver data region */
|
||||
drvdata = kzalloc(sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata) {
|
||||
dev_err(&op->dev, "Couldn't allocate device private record\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/*
|
||||
* To check whether the core is connected directly to DCR or PLB
|
||||
* interface and initialize the tft_access accordingly.
|
||||
*/
|
||||
p = (u32 *)of_get_property(op->node, "xlnx,dcr-splb-slave-if", NULL);
|
||||
|
||||
if (p)
|
||||
tft_access = *p;
|
||||
else
|
||||
tft_access = 0; /* For backward compatibility */
|
||||
tft_access = p ? *p : 0;
|
||||
|
||||
/*
|
||||
* Fill the resource structure if its direct PLB interface
|
||||
* otherwise fill the dcr_host structure.
|
||||
*/
|
||||
if (tft_access) {
|
||||
drvdata->flags |= PLB_ACCESS_FLAG;
|
||||
rc = of_address_to_resource(op->node, 0, &res);
|
||||
if (rc) {
|
||||
dev_err(&op->dev, "invalid address\n");
|
||||
return -ENODEV;
|
||||
goto err;
|
||||
}
|
||||
|
||||
} else {
|
||||
res.start = 0;
|
||||
start = dcr_resource_start(op->node, 0);
|
||||
len = dcr_resource_len(op->node, 0);
|
||||
dcr_host = dcr_map(op->node, start, len);
|
||||
if (!DCR_MAP_OK(dcr_host)) {
|
||||
dev_err(&op->dev, "invalid address\n");
|
||||
return -ENODEV;
|
||||
drvdata->dcr_len = dcr_resource_len(op->node, 0);
|
||||
drvdata->dcr_host = dcr_map(op->node, start, drvdata->dcr_len);
|
||||
if (!DCR_MAP_OK(drvdata->dcr_host)) {
|
||||
dev_err(&op->dev, "invalid DCR address\n");
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -467,26 +468,12 @@ xilinxfb_of_probe(struct of_device *op, const struct of_device_id *match)
|
|||
if (of_find_property(op->node, "rotate-display", NULL))
|
||||
pdata.rotate_screen = 1;
|
||||
|
||||
/* Allocate the driver data region */
|
||||
drvdata = kzalloc(sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata) {
|
||||
dev_err(&op->dev, "Couldn't allocate device private record\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
dev_set_drvdata(&op->dev, drvdata);
|
||||
return xilinxfb_assign(&op->dev, drvdata, res.start, &pdata);
|
||||
|
||||
if (tft_access)
|
||||
drvdata->flags |= PLB_ACCESS_FLAG;
|
||||
|
||||
/* Arguments are passed based on the interface */
|
||||
if (drvdata->flags & PLB_ACCESS_FLAG) {
|
||||
return xilinxfb_assign(&op->dev, drvdata, res.start, &pdata);
|
||||
} else {
|
||||
drvdata->dcr_start = start;
|
||||
drvdata->dcr_len = len;
|
||||
drvdata->dcr_host = dcr_host;
|
||||
return xilinxfb_assign(&op->dev, drvdata, 0, &pdata);
|
||||
}
|
||||
err:
|
||||
kfree(drvdata);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static int __devexit xilinxfb_of_remove(struct of_device *op)
|
||||
|
|
|
|||
Loading…
Reference in a new issue