You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[POWERPC] PS3: Rework AV settings driver
Make the PS3 ps3av driver a loadable module.
- Replace static data with kmalloc()'ed.
o Allocate struct ps3av dynamically, as it contains data used as vuart
receive/transmit buffers
o Move static recv_buf from ps3av_do_pkt() to struct ps3av
- Move ps3av_vuart_{read,write}() from drivers/ps3/ps3av_cmd.c to
drivers/ps3/ps3av.c and make them static as they're used in that file only.
- Make device a PS3 system-bus device.
- Update copyright formatting.
- Make two new routines ps3av_register_flip_ctl() and ps3av_flip_ctl() to
support late binding of the frame buffer flip control routine.
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
committed by
Paul Mackerras
parent
66c63b84b2
commit
13a5e30cf7
@@ -1,4 +1,5 @@
|
||||
obj-$(CONFIG_PS3_VUART) += vuart.o
|
||||
obj-$(CONFIG_PS3_PS3AV) += ps3av.o ps3av_cmd.o
|
||||
obj-$(CONFIG_PS3_PS3AV) += ps3av_mod.o
|
||||
ps3av_mod-objs += ps3av.o ps3av_cmd.o
|
||||
obj-$(CONFIG_PPC_PS3) += sys-manager-core.o
|
||||
obj-$(CONFIG_PS3_SYS_MANAGER) += sys-manager.o
|
||||
|
||||
+200
-176
File diff suppressed because it is too large
Load Diff
+2
-33
@@ -868,7 +868,7 @@ int ps3av_cmd_avb_param(struct ps3av_pkt_avb_param *avb, u32 send_len)
|
||||
{
|
||||
int res;
|
||||
|
||||
ps3fb_flip_ctl(0); /* flip off */
|
||||
ps3av_flip_ctl(0); /* flip off */
|
||||
|
||||
/* avb packet */
|
||||
res = ps3av_do_pkt(PS3AV_CID_AVB_PARAM, send_len, sizeof(*avb),
|
||||
@@ -882,7 +882,7 @@ int ps3av_cmd_avb_param(struct ps3av_pkt_avb_param *avb, u32 send_len)
|
||||
res);
|
||||
|
||||
out:
|
||||
ps3fb_flip_ctl(1); /* flip on */
|
||||
ps3av_flip_ctl(1); /* flip on */
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -1003,34 +1003,3 @@ void ps3av_cmd_av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *
|
||||
| PS3AV_CMD_AV_LAYOUT_176 \
|
||||
| PS3AV_CMD_AV_LAYOUT_192)
|
||||
|
||||
/************************* vuart ***************************/
|
||||
|
||||
#define POLLING_INTERVAL 25 /* in msec */
|
||||
|
||||
int ps3av_vuart_write(struct ps3_vuart_port_device *dev, const void *buf,
|
||||
unsigned long size)
|
||||
{
|
||||
int error = ps3_vuart_write(dev, buf, size);
|
||||
return error ? error : size;
|
||||
}
|
||||
|
||||
int ps3av_vuart_read(struct ps3_vuart_port_device *dev, void *buf,
|
||||
unsigned long size, int timeout)
|
||||
{
|
||||
int error;
|
||||
int loopcnt = 0;
|
||||
|
||||
timeout = (timeout + POLLING_INTERVAL - 1) / POLLING_INTERVAL;
|
||||
while (loopcnt++ <= timeout) {
|
||||
error = ps3_vuart_read(dev, buf, size);
|
||||
if (!error)
|
||||
return size;
|
||||
if (error != -EAGAIN) {
|
||||
printk(KERN_ERR "%s: ps3_vuart_read failed %d\n",
|
||||
__func__, error);
|
||||
return error;
|
||||
}
|
||||
msleep(POLLING_INTERVAL);
|
||||
}
|
||||
return -EWOULDBLOCK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user